1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641572735013846230912297024924836055850737212644121497099935831413222665927505592755799950501152782060571470109559971605970274534596862014728517418640889198609552329230484308714321450839762603627995251407989687253396546331808829640620615258352395054745750287759961729835575220337531857011354374603408498847160386899970699004815030544027790316454247823068492936918621580578463111596668713013015618568987237235288509264861249497715421833420428568606014682472077143585487415565706967765372022648544701585880162075847492265722600208558446652145839889394437092659180031138824646815708263010059485870400318648034219489727829064104507263688131373985525611732204024509122770022694112757362728049573810896750401836986836845072579936472906076299694138047565482372899718032680247442062926912485905218100445984215059112024944134172853147810580360337107730918286931471017111168391658172688941975871658215212822951848847208969463386289156288276595263514054226765323969461751129160240871551013515045538128756005263146801712740265396947024030051749531886292563138518816347800156936917688185237868405228783762938921430065586956868596459515550164472450983689603688732311438941557665104088391429233811320605243362948531704991577175622854974143899918802176243096520656421182731672625753959471725593463723863226148274262220867115583959992652117625269891754098815934864008345708518147223181420407042650905653233339843645786579679651926729239987536661721598257886026336361782749599421940377775368142621773879919455139723127406689832998989538672882285637869774966251996658352577619893932284534473569479496295216889148549253890475582883452609652409654288939453864662574492755638196441031697983306185201937938494005715633372054806854057586799967012137223947582142630658513221740883238294728761739364746783743196000159218880734785761725221186749042497736692920731109636972160893370866115673458533483329525467585164471075784860246360083444911481858765555428645512331421992631133251797060843655970435285641008791850076036100915946567067688360557174007675690509613671940132493560524018599910506210816359772643138060546701029356997104242510578174953105725593498445112692278034491350663756874776028316282960553242242695753452902883876844642917328277088831808702533985233812274999081237189254072647536785030482159180188616710897286922920119759988070381854333253646021108229927929307287178079988809917674177410898306080032631181642798823117154363869661702999934161614878686018045505553986913115186010386375325004558186044804075024119518430567453368361367459737442398855328517930896037389891517319587413442881784212502191695187559344438739618931454999990610758704909026088351763622474975785885836803745793115733980209998662218694992259591327642361941059210032802614987456659968887406795616739185957288864247346358588686449682238600698335264279905628316561391394255764906206518602164726303336297507569787060660685649816009271870929215313236828135698893709741650447459096053747279652447709409924123871061447054398674364733847745481910087288622214958952959118789214917983398108378827815306556231581036064867587303601450227320882935134138722768417667843690529428698490838455744579409598626074249954916802853077398938296036213353987532050919989360751390644449576845699347127636450716327915470159773354863893942325727754003826027478567417258095141630715959784981800944356037939098559016827215403458158152100493666295344882710729239660232163823826661262683050257278116945103537937156882336593229782319298606467978986409208560955814261436363100461559433255047449397593399912541953230093217530447653396470662761166175351875464620967634558738616488019884849747926404506544489691004079421181692579685756378488149898641685499491635761448404702103398921534237703723335311564594438970365316672194904935188290580630740134686264167247011065346349391640714628556798017793381442404526913706660977763878486623800339232437047411533187253190601916599645538115788841380843323210533767461812178014296092832411362752540887372905129407339479433061943956936702079429515878228349321931666411130154959469837897767434443539337709957134988407890850815892366070088658105470949790465722988880892461282816013133701029080290999745647849581545614648715516390502419857906131093458783306200262207372471676685455499904994085710809925759928893236615438271955005781625133038153146577907926868500806984428479152424275441026805756321565322061885751225113063937025362927161968251259192025216058701189596732244239267423734490764646727375347964598819149807931718002423855453886038368310800779182466462754117444250018727779518164383451463461299020763343017968554385631667723518389336667042222110939144930287963812839889311731308430042125550185498506529455637766031461255909104611384768282359592477228629042642736163264585443392877263860343149804896397363329754885925681149296836126725898573833216436663487023477302610106130507298611534129948808774473111229542652751653665911730142360626525869077198217037098104644360477226739282987415259306956206384710827408218490673723305874302970924289948173924407869375284401044399048520878851914193541512900681735170306938697059004742515765524807844736214410501620084544412225595620298472594035280190679806809830039645398568593045862526063779745355992774729906488874545124249607637801086390019105809287476472075110923860595019543228160208879621516233852161287522851802529287618325703717285740676394490982546442218465430880661058020158472840671263025459379890650816857137165668594130053319703659640337667414610495637651030836613489310947802681293557331890551970520184515039969098663152512411611192594055280856498931958983456233198368349488080617156243911286631279784837197895336901527760054980551663501978555711014055529763384127504468604647663183266116518206750120476699109872191044474403268943641595942792199442355371870429955924031409171284815854386600538571358363981630945240755700932516824344168240836197927337282521546224696153321702682995097908903459485887834943961620435842249739718711395892730509219705491717696160044558089942787888036916943289459514722672292612485069617316380941082186004528610269654757630431025602715231396948213551982140971654909731999283492567409749039229712634869341457493319804171807611196390227866407592243416776246623623891311027034330457636814112832132630858223945621959808661293999620123415617631817431242008901498384856048087986460839359649236651429681257731432291456871682762199611827826953157498380262465175905410397618128760421638613450221326272775661244113361077519555774950865636067378665062318564069912280187574178549466125327599769796059776059075648910666101583841720281853043211904465775255427754379872605488173619826758168628329526078993222668360283851351228105931859102864150815705631971731518313625024359041463212239217663398268936825315053005989154702909537193266207341123494743367884690201390497842852163414429214589558287847669394646426781221904978563635526336827805186009869924893778600239876916980765662194389854437080594643336233381058745816235475600136592435242657143083465545768002370814675732525470255074763747163506785159917369379325103268276062864591461820472148637037077192692682362333472037924596469181052613915308628029144096548256387309273042654466292904589606375191871146934536197332478957270703153093090192119919999361576500350398405406742538792752792272473356677060783791138448893626136765706026360031513295209539520285489738448625613492441470860708660267634997879342087583612194711699422384848259591430452810706260150896913530301772006271705440209066951491527459771970594769547409521028787255785688002219371774355811079393088338455864827729100862955456614130672123084874022712105868632338823741388442893815544464710575565146843570294663506289387356986868837648032651952841465351739530273612013742030098673983851432190043602898269829352939941412923058038456502270721681516194101144982630136490087704839848838609065336859905458389520318564804149327214239086516499943165920796595356943072311291162928679751715668890543932203569129332457020806719444049730494398140822782960279942454108316667592142483518272381720504103927428880155622338079614751243351473102128454594489944499600075243751957011668341744749079588209951783676802323651767497230148745774272599476096219843271483529861119027287358490521797590837419748602670605374623153003937521236786775284869219585713755426968482783631786110993368014391590597484285805451613023014397905701610889862777961075067333267604865492925139978139053588227689373220494148394013556035656044214017612060513180689198996260618483185340183623782172663758045524719626617492542285280457144204857834211322800852870420548899234127855481236761537707104254469868521991122835426634999712748366076246241820736466617128394748473280474430403344107200428727127567027956758242926271945458053002666489965079569778178621942172005237165369467704195111912704624836051130289046437751148694887849615118841471910001255883836660677208411235153558811267789571558590412576261601067513153580212427331871000635824954504099579407254798900316826512373119055668291519430537084893078691974282904903860372311609928342431712225099454715019286664878710795199518005463388384431548172463548024451803084527343100062137103462573306001234973744355818096567846464153390514656919324562353140577919369898842364718352537580525771331120079710406831549266540202604680681839143782721476906324246951712863673844313983337117615941869993466262345373452356794012416809229116360956372167452839170990914664850739205151605604737871061547021699607465693097944261214692561593425649401912298951473254471518126325836889728226283329524035970072786336460459470712417472946877570595815734996284809956783925547424044899188707106967524250774520122936081057414265323472406416214103335334055110452126175035902840374545918645047276243420717709297935401021409646450283683418040758608100140721619247717980985968111540446443728568959286831977797786934641598469745133917741537904877880830022058335046746555323028587325835157085996490686728759672950387254757087916955473669170870124133392214846685174370666154881952933227273743604108254259660303986932654223505236910859512630083184675550345975839550584035670155887977736443804818213870700344023618041200211483727942274078737893316270810136264982896292725624458053971341422145110999954458214292378388102648394823395141876746896783186286817882725558257319395181553169516450149435726310604569492967098625204339385207822076221910034469269663342590853058160449780257763254489370800626778731795485298566839486946733569630014029313141902578077581694581527252934342259051979183166216444875178169677527677091304315734256405492293818739511084416683092491115978577332736388414185073793630026392180680019498239666471231317190252370319905877197741000713240751920418122141324253272949186000420084154851154741157305987219621298854166372087752248376948597476729330186839052250014869038261084824819816759310777270264882620907238477529058765040326672758482521851623107454498875882746567809497123087661442641482415790357039331225651893335628183618540574670638061839848946628424573656456421390721630529552935928487755524275455951338277150017840165530548544228501198836557568015934645055899442484962741271186988315804769181415679618532165716964522259459471246931995711641986188479778912114268116438377238483631867318607564778536999303870546632296980756758468212302807726100696917407820247949882109547334301126545442170195852375880785348003737247118761110008771903553881573192251333842494774503118811947455953653366092064192934400350785642234329232492972708472482355767174058950012687636008124521124487564342809465931336185643241485578079193115126509729589160529930307710563524545148345720922455198489058890421980654397335375759982485803754639273653764196748062696838271292001434956674852247241454863603621158472323173699806171993642113631458071198839681295705611588124620588579665056221507482089747764177083787052924202880290044002480686812542207579059424347046448957544023873693604740130860360759917438761563529677605801833493087964662707116080507376107180022155251919937962007091613832272801773133201900597804820796075803249946223853858035734780187138028403981200468123707909245727285765451048971703102370548678793364378157807400767747421528031184981557698165615162611572020454026441299316117077331253846128936763791838537050094206306091032540258476822203676824927947340006177512952630726563785309736864200077666658899328456612246507300220956287727262227808039548340381096280576492897465184363194984026129976189004678190927370964782787243577522066846540002468330746087835876558905305694257499098903922046300471457205905371209131427588653769314804000087179138456909936299878478854217781540735051706253205095144782206672526086204107996222703480818013800661007192268140291976835488424399162809803618597719358892265485872816327690542861746632308136287764990073775993244175214767760469369622332151759264505564525638405467004045215800754543796810384355851479430922963521978522832957454572715647931850418896070128059492295921835949370745803903214104366016376509554894454190263391196074110066949778024695409365628127538496323601062584653667050765177029695130396858702367912875413588064402634238235680607640745176119088333712091415762805652237901273564193534565267629624402660228245426196034228352400205032950531908532014968045135643341034313292235896972831087395694381318094316669133905264891483328798827628525630451206376149000452186427171115089762827528671466361173898285874253172165962476433238400349004962987894870010518844941186604397391074937573495289347707396386659332554385899935379941438406624221022683285116625113683447328966132105267508937948344634930352785321301278211526859429843756517451093039924958664609423868470021535501803780001870111131519378754010914958890807647334550026409805683214381160075146182788449046812481468930974300001090198432086663092251381121115994812796367839081222437819101877799403407652740603823415053271741627867488808575410121428667466310361088001818843540182368653221687750411978076525811538417365621835675013034456595936590974690077656309515636628348639979754937563840529672328356340303159165495886112229959996868270142840723914623001617354408314364380458922055411017953513558852713479849378761337910756559954145289177701575813487576801862429222297766621154224971133417396031967639093505123209476166427534743883338886999799164638367503241863248628418784699609638082751299633817393742209534758616322163052027035170374902985685255958141929549951765525821234731081976633013417508151236775231516073208818295640726347645058875761361893618701289040267922647049496787237402581300834763975644632633549675285749537015127100694464420624617536442894986049205218232133843262753351988294920864907096059216545737690959513893789976626287708683235059640980501885698199740566005441532138407349781540809435407596815613389643208404153151024324324765063558240978534681151056323898040138038148497352874442906939344373381801090101788592056406907697263909339111613684666699318068382346740389223672292551660244685974607635829037285294971583690637290950336859511823872403865668038440985913599965883006227997529136849456170519932915994923243404137272538076368402951873698179735366570959942204751059644075907078002039362324718238041377992837396735880963895473938471289506230448447324704438233902513149138594475212792714610672252683555520931014098250324104135681188893441706348018188790385243728434504139952675083907492931559489927997402060166861010605738362034369613992370502059136912247881448219700455646296061801529572677466540252240321520106268059246929418414651692694297031644748922553356819470105586075395031257487792718220198068050655134718926265099870403872393615262809117150163983918382080371076644472311255942979308415748575497128495677076891305313915192831607493722604648374121124105274045807690774990321676153199656609743008902847879220989455514034956677632936841891292822888937913925657903061704219517464266717628600737654825489490823670490417898279469481337100543757352292625939568095371679771777384281661195993198781503744022325294016651359648839891877126666764459282807247741980511834035772630194150562227092668881510087408102163045511193689703398758991634367665524596900229663906182345992244371615681887167850195521926904770088876288170124359072384218859094323025240087283634113460024746350540763174302856103288314463952599557771416249751599288603441010475334677453043727868857611962268589481389788435122516690676187913234462077242638989111751935755367550897717360807798549929337485758794079694890118538260511136235917340391398609001872245402872651292350725134633603994779721125344079696419658432924858389615370786254462405273418372961658712809962156751416778888521820178268579475088605619176143345053072422579442150440118993803282117694275351550050359384026192712484073534480576415134920906643326087188693187839113724913542906314327731414756523442769892641072919296477831522676530963377190788702121017362889280133206655384688752270982141699474534678397306188433806368856788750934837128129945947141674021064794462304750959691121328418573745076880217420009190378611492899932136982825505043941252342938789152929448806729045337155868589391194058679926796801975192946353132120460582730136524635491974771784312551471956108944817168736959500975514909058042377055076583166045526317881915928858015141099033515999276492602091675379658565407172149027277207207953304640949267929698014564740758616841751827035541915232859013199189756444272091958066473785396547494350336609845569422054123220914947698522660668693134941284605243600626191920095455959929920357663584472520888843877010984850961455366250564822233108277487712496459239403441038488045655720915372083692370422039030816692153443365555296591477375952079459597059149213024383337957093747163036409452240119825455037543972608037636658736525989526911679960102783588811157158411574479474035286890009482413391845137805999225189847359411654219009436698502918007261527089548324769107905475023957665941978881844105201828871641167052826446947446470988688065894417009014570173959237988806312013429508341441096700460069706630113988380654410359590363854288905339597947613555539309235350010227464025739965492603187121005439516931510273625146958084366948374911338531532378042624794961776929562250613257826661658752817061548468817844604918515850022357850768844467787401475044226257510173648618326337325335419213096310532213256241946140930278933582531173554831218618818580827449664258680454578880416040961000384987331075563389034724418801470496014452154644635276874530046342937046578746123041142858413931547069644559886270234135533696146889413057952434482857881384291313340044438826945627745720446489275037188960025021481024322662324744667592222095757968039875833011880941234859410553979311501661498241094773404559447736214072981906734227122132982820189355181480711612936047539354519164488519197681989432468826658469990810348743305715425211489829249406413520486993317085243654602908006502421529859811925120962833268076725280142924263810662092200671624239053539428775750079135870037680650406932904623670199806464238166278074558454279728136364961281560063361281911718077749857212849096540456380602527979290014116718088821672762326957314452995379093599963572019569105382318332322879603661549343561955635777887203805140714702862748666577272849638060682090874337475577893122071661832909979680774069583054550581694639105380254712980950191640591772921470612053797375831881690403457373089228704876429883276343106156560414235310211126077177930873317131713383405539907714874603987863410018154894306021276414517536855678124104876278918445986488750725691907070561261890651154153743433170477107351208974966458587123232606122776764880174190417053262190112929941342406859477970648454512304327003620444460307001911450415420812728658532659862596583412919318743374681425409919891908009325715225950256975763625837854206876078753364238902453524223147811695030742299688266236189437975463431486940473705466022052365853522433491893414953731854617756390850630149805930744131272144306096868121549167999336020911246342068160464235634526699224710694338071397510765670422960906083000214645676075669544782233742030122313638536548811896867622119656961068380955681107416168288872914897089291727202031664475298155649165099329642475935553094342723473525567423358885410408162561808385896759248129675817885803743143764480510225754841455195600309544841537831759812222780836261003829621913668746990601355910987901789394509507080084701971030094963485673126176537990696366534238478394751006091980236622402583791667733659818620969012370485544178833081743224152709618583973205487774714196202102091912200354193993755848965796596777487966649833738446446288492322091596625208177109455185578491934224903911264401625403534152918596062784425849799075376503511436623012687450387484181980800217351152127310554254895445643053521744126476037398814323922379955208037256315382789576756032695341537131622868422311990717366271592521668095025759913553680411403143637492857050001618258980705687363948032236140460401148062340622683096408506456518494786208730853799331508268638345592991800295650260071290522134614514259168323849973637929532416676726366084513932912700528134634265444592028824614276217753754229656117767743526836337792772705308668887120354478767845607440345181873913358163841356718363981550075711601024702306220913618021304133261781624175122446212690513758760331529783229668819279803172061409242730362390098385148700836077981403811439849201510068822963670055497394328533470698676995279400828080040887151019376746773088292096077414289492431907659952326954148087386353237788054208223725636775370667314730349686397070489803124544608810665620493011658369924285914317195732663911794046087335417041038747767656843417541651961987492489250742089376014119442402963942541763016560472956766133449919069368073355165850315039691338748343529636805412521888303216646059455373944512375217839746535033276728569491819398825995286097569880061191625687329230623058567418985383804557080935837791462858624687231102599401587675769083167717428392530301160083884604807147836160964171559454639922182910492796922925111279379566401338199116350696353932636098595646205761040870568380030269451971124863811185337891098140224052458392216045634521122174170104056797330753958464705847475496044322334263006692105777670057477179244790338841739989539562521831475434182885422927738852103176503318168511642398484245909066856408486471222753472917600277208709111991625353652320730412740345728114307679074883543500432172487106703331203925605890876383694747842860145113448225688152250529570476441145769813803859119271335634955178084147363210776806156756794279876371559640348376284440532510433462372579811524905785545455445212845961230415496214883974720036142299205566304524989647365828018945143047860790847927831976949691073126310983048563350679552136745945274063783000139125120642601924734330752385197760034508307554267103843989779508070291869840943188845228389534104745800831025593432233326837667291509223364131596765312061158745849598848150544242432843168407286751243034320658177339853340866974604466757145667522200433006339665327271163921628284335936391597053560535146139148456846240048462693520906354536685148549734459502217491295621682053434716945890306665011223995373925076914959998073116487568322310735601290888907448004113911492936466067954282677357899960171447474782259719736910220617662974796335941382050865383536691317089100975862932298234558521880977160913141561228379423014074285751721960970839246880724106433466382037888019429996892334057743994558718772167194941217397842484555112423949510823133419009549809749441168544692712681046436762979495162894921486424919613171491129916472358023000050647844611081191444911581229976463342447099617414852944517582991415713137288174497866346697983468306337722694621120245442034905736776108249328738791270683888932801298767917008111013901499822724475459424814219503645301778419933971029278097100317280048051240745515497327504868037239901358433766912730559957132820621881599214113087695580663895157966577539424441324131537107136966138173470057448274546002818512219488109409909320308369628663945659676275012481150509089501450785795316471138353523678315051944246260303302423386660777762396353236779252054307107281417908996345847694198785104928828504633007622235900139196301577195048263673593364045491122586219822988355056461120043009052033100696984447142351053140715042763732999158344068698636753335107965892117923261988421354121495287883366948652448614748351333806766614073993972117117425807701477617341316035580252600506134605099451449480811517675922265832243506690165070858696930166440782947613410095355855502555973395101109712982941416813316290912997166393978677025389558919147940326682699991849349352114564167382591282244626047468699834100268935708716982158995131447262467443514267122434836046487724457790530292549488581897683740905363270069003593581538188328074082813302203650906064911027884819719163134090296747687267948570819849982146273590252424351803325179402961321341636186016067064672657983380169296326898852006013626012730812272157483534506894383494122935439024253757527693524278539886290839492645978852496906310901636809532041133852046696303735415933935227561197627473067132308491427621300053095193231288414895541068061674064879931162881972434099673760093836031980956229275123373419530042271675265748542474829460337386503866752565580996454755226926589758885256385329219380197569254277349692561147688808641172670221349315285514221157052005896966663805203810451469223001795260740738674659562840145829279363809900432408357426572160610058927693490946782925464310438235881712153416395794282917217936240819776881989901997873314036121857968065863583681465355895573818783787921002532420801656741983252643950421108215392201737850391435167419957715215621463635905890855285566097475552854234030326468862317166327230631411325306588361329177680754321404626368882759447161433892832690259970501823014903709779911493218297003434555386240394208057786127575849415156825642208045323007930901911661535434782211794369044850125888462028698089681465461734973783155478921042628944839050685441203272065237493140532517069357580009079941792855931728105699437643941269466493457090248072223606251713359488442890486187912569014513670645923509231256300836211549569864274282298329804951850042279615522077218816950177204015235268213256238476819646794650831075753170392260855614693319107682836365658528506686770877331479964670857626275466029627167630759318984357338670965701737932282823481921617818770070473496728966318770344833120724574590213487958256049482718461476580841721149994685480368165473705573911900059789002103437746927946879076185986897099046690702863327364632147856592456222718627461789624261730819156571095378088790621013763456255345542787249857645111051479264218160233667141898013970071297298687328282216186384163112913908793714410044378773172449682982352021429758644082491778114730760837277351515304536922595690891630329022499883027293104164006492014028225328887590279313085776562376554657649941846426710369869170705919138598933085937543746577874402434042176722612456357840029668745472450723789377260484172953753114924961186297590821985464529962159178987220330170865589981371124750963304730972280650602581293632629202372176989811854218162149703665231050649219585761363407227297346446752747385236677803974225626527428873816339627915234448947500710357043230550863307387055950470970422311237621219319575390604993566746301074276845939499546595549721549209431431360022852655133088268256844678367207086930272733332654314093695979977475725164865609388901597496620477213530723125776395662827622901153667810443564268355205959032732041101941591062313224980121075141619321442104168538720916349784817562178617762228890105867147994106015776350936484541015472003561105423001876393719462379052951539126455419411099300801282463142808366035865498594382415741276615019556596477471231145521988678134484244364073854528351409647126347426960370617561065388275867938635884085367748880421728768315437910382402724164103510769580691860549061336294668741293179916557774775664852417361469670995689731625551315071526377319131717516989497832401686871488313669781158182326385822972697878024287822121295698816233680033879843352183322680767487176431408751324746234052349879184847668268295616438928794038967706478767283588109660648162531582424385915943578234529335797618609442793133303422963677328821148012516066324362292892965570524145729258190733355159023087111957026902387019554455972339436581286903114329458125014251884569396776835149554430476026363981924230113099136607386910994818916701658918535224610165524399123034154691509650613337574536443198759207334823839043618145230004162856240178989661872993243359237891279256608949415876734705551490720707611671730965073513646926538883863019930030541130154220297873483229683717362289165329531827179977341842423073500560498706316137883700547174126357960794405301742138827466684118222343231694126094014895249875267394863904890764212721169711722001376013590455819175168779717618660293497250710388274361157014106644578105100135067350691284817103249133295514721029682665729358377600776585271406735718234186091576190979074852627061960974327839744062195281371868901178670869015790015505061922360571445739706041858743996318822577354587091346279727560768912856748610370590980611321876045048742172796985312160568894934224324078228305238271344062958369171976697184275805197218719577589349082463036176217101228587191361637847857196761183924798254488891446680529057852098644781989368929078732480501714397606548833506889116194809729552395960841262628560342743775801058132345724648829660857216592741563562814964100804954256817567964768010548889433267801048640465724291697524024598579943231020276941986194545670508140448615912446109549533985036181892267470044724119922280866415538338996517840392327919638032934090652006414740476650917711590990708088204104346134836618874309123514878956003809594186791967316693219121047834208947318434885713285636144080344037386737479499390765225963002337807256201081672843774094748204430163722131953928089072365430666400928276985103383216798330940406099575230599049471231939871959905163126572572261789646567477042538713251064353097458323097084107331189812014476464577914235732488764319711258271029798752633428433557953569922565057949092308669377002790666364522037314515749656148162618588528566810640204720142433222213898082335243400026257218104923740342933520854088533181454180287778125463001936557949148442799953029441147175167081886444216707023391688783428021896673288216515803065115988169156137091318045012481261833398057451020283579255536354601188115754159547114922870847335885068942708517824011738597558630393366332930143668899742102317345796658515711559591969533870407520797373330628808526843124917431727930361698319604976090563017785959731984177147632175931492540471398181234408341869060733107306870228133005451668137079990879890896319546202343993187247995643712325767418916631641520305278194069574048089437747208545199695746253535088240456185255957108021743597126705069402546421153273914043481749358234446028849190352971703436186271496582233771781042198935335106366316511744501656381651924049615625150790861123581699291613239493471905931734777040136846628050980683375370187721517051788910354822136744744507147985432589265397179154182200674651520853969869855735788497937797044600765865255116963424515704282934552014699955648618896440313524095881591474720300214138468364419662076817723310317917887052884598193251871105991350352530179848772285579328648747510119395405150337615279010491080759804228691400393319028263349547295323420601927809493799847565270984159107385233884180781423770536990134871607432113148850945467393627487976562942243817376907563041889199286011385645730880188613316329240974971000708463519482079184540766343351027570040116194011622716103906572667405672256009559428943731864738247050130431656666130451464605937112335551717957973722411712068702063535219152026527849027407511026265343043315754436881070612837812844732501052153518010772445277458385730783648224018800322616203232907208329809769383668685800069973518747397202959194669023450643675578102384992969727455341418306093449899312157772241906026800623570674269249772226120743789058476111060257666158745586875622582550035734089923749042088099268182627148504640310299043867049761304778281317298375434758468562285515316895777469463870064037754926243703710129095432705433160333728289782255475444444227007559779374371297825365563599228976958159661680570196314668280419693762657495320367583950167250715570756500062690707616790422965605952710360566741912039358481154279888794065527558958744552724092498126774727471452308938843418007389008724337759647009819364955225450734415522752098432934019141715414983309288810063694274547281280789229402486723336101369756372840819922663761854682236519361763497647845137473756616967628855789170667082251171010943232882194016351752879388736349546261136605626539219877015044180646644716784170484103012500577844094006298771448112187534232558819875778652128925470375335523326396925604885158199771244352968552501257680057546513365471605302991928259130215610309005059944873590785730383495571350930663153180517931158961867762547087754711590881373036345572061857715124105150273564389556372727660990012146374937836569984369724203417187541800986648213183612968672516761496296664564669348778549236775986272015762841692251062456553394374917413118580922685713815582165894450020270637582431211568456296709555527152909856531233367256240336441979645063736522520823642708484502822307474084993075376292187136083351595193920219186192671193701358125212484822791952216151439719087370505830012594354791425050385642891854243615316713053475848979939510346687138762262362372538548677556900174675437827946629739386773874945640043196206581695997083207077665032120855635374157575882558312929783771821512319785991044208633962927307646088593993032873430661030778989234534533196297244687315502858747540107704119551610317087571162921446635572549738012992388637705689415576125467097824379913333377964873736012161213902941507629441970311220004144089656360853166155685229523073291613018415220811271211227734144979970422675114556689510280812800582634997341889417972363660543907777501647907549514280125817646962364117033609865560475961247925538624995714282292955679692746260884732461036322075023669471255566552869371975229694107782162776214571985467528781914519203081164542918836892738872619023775795587728491178355064181775413505305997916909793969792456540087910814551398458396766145577245689395553150739466696535026509966850271443051262931097998079520353299643002444634280240274736843076796953319491804234456810156311992894834398460468689872742242177814949388605014754884379970939734981852913525338301453151828796086459952326988283347100236401838291725278341273738640666245802148727756428972299544060597513577001986991628472554970016071182024578967968158564657314262224877543669476519463693836506566789343062392326668275111275772430334941335651369199105559241378214475688185781780077186548780184222149322390618241356017799421999175387651161578576615155101027802462805741316233726642812613900156212662619223003712152333794076607281811997397841248780786280472984172909617911950490054527478842891474683437939537409780072395505514292390524534949136960220313917531092117398384927473343632030950911822555561599146928761124663047656336405052136042847014536422838527206755878969079040538611528127557733754719832203233098976119276400759872804631822114987314292008136703491086726569396915742534345070213579000070031696886368027300595763575239160114955002117871042587197128809222305905743457885861012482476647303858561110317798451435659416239682506612220734704433659690571495163939290724188904597156504340511480824810215705437251433642048223044617508213655669468218845397273062639036121831890362753976560136913970052841569734854919035023490451602585364379385478817639655917963803486228938713533096155087418574107461096881806667535070560182644715189747984686603911002762680380730817785478385096636245047271387897025405364299964211314233619832199795409136576000393375079861518000175643580478329033283471843561266708710954866363043225866343793454780051780011756166014492176528084010101440369775459722443768278944292549208167967764647197217257545147797075211863098424510087860132651431648987799947854943873553254379024786728025848361510402694442455156323601139368422462509851532099476470448560512625993913709189705852386235637562692855231081896326880675289493668599793184604134237684440336901849227468856083911956169695876401290430511628127821705206972452779549504095761619333598859857227710210288714937349080624959773839137666339228330184067875379162021012647111774030977087930222108946883937295481893909854437708501418358182991808305774515064776260450541994774782158464281318349971792158319205591128414048616145269365955861855464844493564688907781478169958123011218965259351683133112142340453646388211350328896987524840571604491077086777802178182613136383399390163577456756513329802954798276111986432116358744014065462993561840710021577568164299571406401295906901768433327643063232085217085355735886569296877887589645482173884335540903166206051304434939375711227965527548574120764798615024076571465819844366219118382562648520564336574690135042580985766778124052019290114713099710492195311483750874457215436533840579277426291932045801313717202040712448663189994721389623376545899837362761587357815853603314227084459792805042400693459843042630083662968532617864045721873192446699638696454586680008134507336594803012423262312133786375162043111134116238211119783069551958914027187876592649601616857888476222074761532077193952960225140206240821732843378393514233838017678394252283483885434209224077105610958918457376838528575615266732358885920947474936431785650705531298667991193175998658992092891921781617575202113652786114767825751839802921408203900012760728976858600811752319802211535122940876574297746368670930301533354042505876419710508686326525802333436233049391551201677671326659274888072479646189506345714267569003107657792403740183793650784135113625589549081262294416887286614583983762086408041050915365312279820434798190351011688129014952981278293406133559720783871832834088196015929999299121096033073373712169024641636446304874881968464564757094641689688460871409599119519973254965726406483843922572258412511918769939622931453201641095088963852064915799311485402280581550241179261559887325584878513172605144302425726069475882436481259595591540465302362984078996353807707650948558516135354146792570105749963139986912371978904265479156242614010007994823832489417782772271882740652836291392018233281578858145033518522318538874421508888669101204815843705404920469111027400170278408702706485799844978158759769305805439458747805448319244201977444492101700884184024293611319537332618885234142417406213682357180373988155185695942497362734412808745922457487682418439222816669227541594855008049451382268726790362850241656065982805107741460640500054848784878194182423214846678122311690563230281722262857575946307593532477265942060542960523988692857374789307916898837007866446739050576653805329709977873116913720190027659226188534167486915203363948587646776288492694099495288715908780627806987802906139433747600048361453496032824189890282094520716524778600924948587110886065783034906823611518317458702866204703590700071818222989617616104520552122083050429482802786645547333041418294918179647407872227409447128655909107702357938704193439657117639818895959447921962924738402384171704015600699570356545750450132933867878713516430316243644019789281503193748012171922328279894902604435212202101318761466736804703332629661958615449276335248725796843014401366222808724218879910365630968028866955572266516048259619138614074341054176795057047095531565276740478324459215141358681974417356115983458320840843449077508142558038557611529920147998231060948065495783981077910699685265343953707981913113238269311117870975086318046174715446662353497595612344038068630107988627673813829107773359239847810548093036983351346666011073138325052897668687745920935838176471656412641517727319652989122173699569705621032245038583754345277187831546765055044685774931955647240374118060285192356204710925809364707663845502832806755033020458624956775940441426525369414949972082899994584268377071791215193119609340124229016485881974963474119047740088853511241709157592591227191220002359503860509042343246105094622593372726213413938436753646927599595410529840001088413264447174764520123282736217589892141193999946948441369514369619763842733256285232529219518989172845243123852254297710892508760339780370485334487795583155936673210347188973299845388011947388133655725242975193442870072001448859671295536804127482305934611899717880691738544671457700115369612316180595097817834153399001398481455354099377404992426995196861832699269946325537155869228761860506060507061840734000563675275334886036742023475156373689703886743108209866994049690502669479231473640787115858105506038462515563235263240282545564834599331855876612297669814567419544451069068664115283619163749142296258456740251678293324445713935543848362952000221622973728472380783953125476953296978412246764766897750503778707954585099465734766105959282648479162127265147333714974786068724874656468457996516823818047486208639399702114384003624031276953150134532531865744081940728136254525735688772260231760244420545378366504721735640057712508300954139490386351574956433805173257869964789327299719496026264503359887841770357330300023432065491650366083213819335288780140443318771461129612999495974389473956353448951049478489768312961734496506525968406089249347647708994207282027014614871969807413291500568197160097872130332309364491117781934744090215271944017370233250077397024706959185138767651447545375907964667893301687759721489190304416223564578197194882215265407483841217854917951524294882784020121077081655850191398287252765675980698945155002422931749032065026270218368116580448447645089731741413671459208326173540401236700828514142473989285506753833431077530665526316843790419944247417809302602100031732945394085126279088763229433193800342265764644841021896467735570178137036061937548335258599049883870330384196376795448483679140018038163747284816800767664754940394972396865390224794024215404538900270276169672888712427857947952384037517773146608337339463023876729355175445149772124385592746637673694393964857066192980863799567107440125850269656304589307878805324388666730381407549734117196560422202879633779182102288053209673681509751899520891106599866988852635308376193021574689011537668608996794704094180626565501352868740815993886120322030111594061182446399300482656094561170359107762796253304173748127879051808361854605298555896292320009007305425858386832568575339513259107804924211768041524831351887471604766588669691643081048193966139336023890619475975599497748510875866796154075857278141937216203111887249106055864046160999817711720672881994807515769271628929643007862934601446714418560008931480844500959672310385304161504986804480616583979716886941739364678410767440448687796901200703210042827374474796211835326232432047358078880632728231585497047082724971877214745215504008594260404510912088373432529152926532479596042573138563588683228070140030264080612880060008898641916339059982448682187190964939848992338301494710175080496926888824379178670615759344649442616472571866238287613990869687156073082856521280595718479879560183119773830270559923178823440384514602354072263007045787248526984908941526094759583033775223934767875274104420437065612609371413726549880470673824939312379118652595124683582804477350994580729223931130972793987392361812631943096481898536859944820011153261842229066274726540591773625705433761085381247442200491249632733186958760096568931154532359221388876828824545806516753584472701959281934805506372955231339033113407673474234153903577957829074523891094012992679871798411698623419548183057020626582248467852422524369020135797576596623705195199831059811253304419437017070854095177972071003190321025453984009957070942503495150746856825980488147179013195437493294399761098025368238696911921186015299676513178634812953731989724093306756560955924741143521960670690556920536104484244769384241107340114278316700302003015720229251048693235061688787988969301675060274646004080375056756535803338066107458990020233373740299070189902028605763751232647218642412537402434910892814966098167808853565253937850054761967825513451930242937933658119101886946363849445012294396359384398370881217563652996761776075431925954975718196352433073047754533528496174798515452568060805976165223267351645319250326185637617955431931660513667169056027137983054868737838614958230647405707900055095614094148846646892516754902088056624848504548278924376071069610068178033701718533779405456967726082477046081330935274810370127029477327489274967622163267185884772368074416620126647917396977166943779859700682687364538617004490235759286375303570179540375491673164960133258686874457567031896575675812847816273181844956202742753471149364542573327681432438939484704170121614743916434295703517455006492339273189753185442216417129969425228023293004442589577706722997943828242301565275899905088901270972491725795179603430027908759536936374942315788139099243210459633657286189410039768953962504579309721764800839180643341684234559596063605140764089546204553894014532820227843158604855652349218114981875538424592728130968057352907443423864220673699052499869154632693592589210886976436366539530433169369640177286993747131991421946669901881966979295073526261786609805788458647648308227141198220445748755200829596720839536965193473048145286544494102820335365582420692207911465212651237956732530440644237954334821772596401045040552152959052371112839746180348884903390326196229563405843217266259091872438043745553937279542011816164296406991236138911467050840045969769640374114967073380135804694085365777926309308797921364654985038386837841145415843769910612781475640292011584695306813986984532289610168793263478338876889693953526579427398779547470782735451209487021061585757351160236800128034370557255625628136319012179681222929269118918021141720927752996926560410082331193447219766611841373699520782459591169068990193077092069948814403436140507458296828125875278272639945513864136292080871688130706863338330854547869605583603432740471299417082864517904256443350944847645743112317048178036452077024087747337492631043175078601331693671301273570108597692472166657343010444339057977426569205584780409818108407733336140020516333981124319584817819861339523803974993276983590221969704659930364551109698236136845714968140930715263184937825998116719460774917159333173695518691040162381274478781444679099598450990105397322033012235439745285280640806709888386840835171818490211197897594836725096842939280047649454653794697598385911139823390122193866891492010815357765522498565703094058519395681997171691353579840844267086540750698988833848166559548976692500671475854403353961845164435748740811532588069232409471555444223103379511376956704623279392250007706025119580019429886442116421620329314077052939545392506918101475025262312875938399069835945699084816738409395505924940605848447018372246732065910929094536639407414105334304051450275049946264432995162753193974927723699185718024325079924404555533697823341354432641342560206353430010389981604290292175532054322504650029194341686140498878586688119207039528953193443334871768241700998962859352542402410701184621765941752268136830818831765200487385758029661017971089549127570947046489759129639007254667188342147605130167826403409147120125602598837513243335844131697171767415629859478458077885114464255059160272700568192111366269662812553558340331687855546902774658573359081661542195251366174312006329379420601306543017582598239468956494648116545055390624462725406525479479520219701418780042911357850041499690353504628814180305514470449917503150195660058811212783334496747320124448032344802415393768109674482458241312048590792681414597406667344685030610277478316041655687622785246875058882517136185256484722427960428595470210473813298857964535405357603697315889368419165369032023057368360867004267909362423796784531756321205149225137647815617416945610416541243837594873990931592744759832350597374956768131105471847279354166515395579482036289678773485797629754502544180155935890854389844222603048640124318039638378885276773370192062902845451597025581202504361006001112531944426879016772637322785841600719933913185599409074310795418593262199463893176001227990537893419265036013681605468564329550360195733799901686338997528893727234215754501570469769720205152135293736295242968882748141252048116650708513692920803795632514256690878025634323429587433403882136167496786404155767494467602605282041289287962848285758752341071805593570366530432349131209079594106357008435034219422627649478365640786969808554542081740120785882884821056614021730273552277066888500781041121548046161417849974165352504936135794776622784715986124764760047228960130941509909166246722184918897434467121597437223325499296049770726302139173065441729802795980349084083968689158617693995858034740709860552853425403750735096292845603705860686840495194231816971707615567104584517241361922202643053754028443119193828048336531921493320922072547282506580404252101696735962650496651073419586745688796717488418213932617116579362931337038775652158908792452762358734202425423140152449334603162278308242701173785145399042133334722508677016724357299122652803938725712403230922229537968296464216212785215379601136627303094078844958905770356652779293806364682136117769294951902200134673919809779027300348286119813484546377912772389286614197852030271658363892153890385366494876123770645703230255802861929586723503282627688897726101265747749494480826571174723974756628052551858982567229825928322231387358845915710606585694855058835874432169046454888603341334813106611848825000070160640513375523188953746504609479920730008226393564093104427957490663780119645396079426600626973342925246176438600440721766950864969268391001088420896521097467350634685962265583283912523545645272987766200762220371487732537070400155528825970102275280159694340899625067953723547753999695910112369758569177202965673610612975808050773887480337838161904464500674830561380385278213603474559601181012788527955584874209957099753233799842699695489209017419661694182498693048400010174476727654651333965743064219836533659962808651629686035001589764756451087762072682963738867020702851539641909240161428236551624029650653572587665192464711535810871295539339854069941033002330634579855310655236896611325592313459648329118567672303987658897687749701847989976051218813234632616533026381238636597779674033218196650540961237063293716393797098273098580710232572012777466350089759975104880602383527650773792309294417805333322727796577431198584012256682418802192089628319963930036038411146713369697692883934484912602643489065656225866057754305087290995914211323424741574521721099726489807368890170132471888351212088296396370612147792661230055051710298455668792986382063016098973104006337670839080512545036901493804379108248508281594436013584745840929625587151841217634410197320044553719129215488827160303317100705888096860077741740045533448000790761133472081969235273640713238527458709819672647597512236925439442477598890292096224000368959283427301680829481082283101985970282376390800208691203359588971802640208471924301693547330365414618962400317081137392230856016735056262924146462893386205033055220097953895938353631809795599770868836357012687031453198018120625451641006511812169083352150679494164517304039595720468002672950589025515141865466113840656821372738009284426725892776147582143215908383810832568820002777155534894374767130225141950601038921389639566902931314889239914268584159991742826682730540397745142831895264622936671448449573864029146761229775001810461727959065065756513327638101661904781758664456657695214865018768561026425419731126410054532930068397674707313336359184429131422989410803443536065645663582940485048733170982324017271144748972770359568190632029118210423261650595565782133323546654482884359061766605790588614248813346357765059041466892885776440329177042461715391943797856251580795148477966947482140233074678464139784662835425038623548630992643480410294445673529698760460906381780965306982690386734440883538016719939368920779404685751838151236544728684016704027075884547372561953243413448526099035571020650586790851913797158621449539849840235004112363536807838130275069181546173573824762475760832100962363685586976297787009534556587139739863244630913294204273696242535023487897534355193281478565836126483249809219652251694822665983111598350229169131916850076727220371364227407961799788103712048285960031433268431416844696125836521370349961702947067338352949219384325563207785965014593217593049923157358111716202990181011608029125973653269974899357811789092645393769510696083563696466690863213326136941880295444272595703675842780334963440157413676706481520914742337818101330420947747960303128191424549248893170607343512334157541582399186191500948768127069366407693256848703525658962619484927155667168903936579822601700065186184415659381217798571735580440915607598682915725975222720539344098210181778912284306859228294906958965336979663693350967509356641681005301021805899184428308454417751614746804142896154454395232909010580009309436525991080119714002351839451339612134964138194688898001976120071442328497455191597135213671725907974310079925677786269310582770500792732805721913026425862762543822644725639831757967216060873772270700021138363447042683627578086491383591440275148043459289812203454797338530174518036472948348418089340890975449230622418396212568707815284887155951992949165577042825219296362835005623329567534098433775982043055172747143946563361678752740742876275043174545445702040240125297616443664977189331182357443858658311531489950580802950206764435359448511681279140813996657873229884931821399923828901845337294565241034844143455640782713146255947594802484935839792424234164818170162108562951085686086285448829806466118341936588645763210990416871202906932496663482041599168986643798084844003141342322172181658847260132435671255852451058169307284656917731429130531247718944039694989636997447789764860923307226645170456253718186127303584059545163664895610437330073771272279200156567995378031247205974297131412981259416770308527181005745430412395587546406596032691194609795151344882808084731373454445112298739309065885320445896148932905793045215817522399088952879387755318810699658799320433970534899898698208767374943265836499721544855267749965769677935328274695651315773542066508298180688581935115127233827093691596309262621984606811798995103777226538340189071111198886737639805446914674924185301937862891276435819954723405245312211501558714201141137497217192605963327547721911843685593399532199369212206821905271682209513219410455392100590674314857142314459630317171000592426400482007539828668975411773473108593139331501837998492264158546951466694153700543359379646114368205531212665116272769210238730863687262055505672929417531371203477962556784504902094025767563058429712467999430446230591017399419204950194342657820138585406388831957843416369188122243389238351143743288346288359590746057709378162661199734253851551697684598502846035592484778391817986912902544641699068542898836931961182064433505736870702428110702166817260932052243533026707533056920333214465177063888725397373500271583232902054364176155787908580611180858397584803485810879659490202844033269885078885041060467223091712547763397713685723061243493898569915025672260508412972369997004839250606562040918969526378696787980392014150482873790588762565780550005242906273463962375623054679118620001635604198994979562624309272091232992357546653577698938170307917025324150989156587502723822494086215600076956061106974112689496855471042565167341718605952384423172487737708462387772193551279200598892369972284150048261043248077478655992069975397574636503794449698363175087375450513247264487482753623060607966152286746972593567515381575149522565759942135387833071521338838128783859603737299520010916053358387527644974761986358162125312281501812905983953014824525414557454526212738188573323133928463979356408142026972923490128392025809051491261839090675061884531975337020640612294304444275805064779159749336573401533926397627673963336248332293574440118808311169441487931690069774888539353731197173308958396644551523034824508124284162793149454322320589319178868305869959503122035525214561446118844216924570515483293916126121999827505250330517136660894229629325561994587944390318976630944845516575345625610579592195755535999844122423288431439772555595890755258422681451944869451228535866393496464909819698652087211344500914828145755889690366326804913166756611185321032017780566434202532346311476942787912313866354173873586957336186786064530482757940518147787207339807926203008726870151185361518816841879567673161743411650618881526247457623347383065234460073372622817162889218538995128370423109972683248240468976071261077292767386674853605212108354426442408346748907261219832081313662512857920937934944798421455298099231020094567862851594335264137364298862051841990444852422143065475604189290836882817597753371087945237917048968738996375479301058583517216241122677671281618474479754467578242632566208850993974670067310764146680359388099782968611398214337545205422439445551522455241105674288506993884491161805134133808298946311956944711591917897786840869588536133614652720684334671280159543248400595674643160213326180490225465760275285125888473202132861224658072848370991181771981177340303142648535657007585877191928240243301802444894257848277994469592955972212468606777310411888492033459387042315351802331222898583582557009421832811155898240120992711169828439870694491860758525326822720244649288960272906918172434683263998237135804262124608646105971833399004870047504187049651102049353551146920702328204858904222689963295155878673371674456725075945385523368891396458398811435696507927510725728182976425878574946661187957897477733463359388518783553433157953426295479867243580878170136954304119962159853039218825637687463329967371788495324062894691388966540048631221038141236600786670452829456153073971238409058476301293731264425967374516845452328200877319086160661627110437570036375367328738745704086371179028159999987344604440020963749298030795213343965109259228597537875380419909012692250837491255207861262882996449377514866130878803049455936712181195202791459823744299021406696767875826178485711637052587641101796019006942346410523360067172561539898706506777875469671503660133418718697500867435677714205884228707289047701358775134455372697471025689359377388712424354124682865618220158950057363148747084594614591861516203772928775044352420480544912301066829804692613009481229576675197277360619090261779665869900690976642138987576243880142913948476344796808881560134668212477434054148778256309264847350380057592323314004487429487071997970519324225565604551109182345493570007703556531845978446814796513821811530772630548875288508425199730838054993126227287735677341562839988146981121259394625946679856904955141339506348429211408202958855166721682108056429824532420778069985652883111328331310542304759782691201121385112067250087278905334720419164284682394905692606133725351059019097116853701174234955621182711274255570002270211337515684948738685404761604113827062978548015269111634816868528256231469098226365938413463344424544417170497559760783977338885255245716121700780795631066673763058534407191441975982229590283686750985188125833762936368366551099846156576045778966351373382267458229680017179593762740180616778490228611601706406484707043888643660222155818017629878412123453927010932005775540670517574148255468756513849780884642990151441395513660062811348565425421068766393639258795013623530443971689538378314083939107750992790930486153364018398447683464025385768781520193975210325362759481185578899652727343674576455584845847773500584259976309254756114320982475343609148161177400605922382552751925663334882867674712078462283767101016236902943646604679225075853681060032844671118837076001400597584937363086365433374197736775524699258653050277350266606714191556666864687886579822209018952788333167012426169749094300773729952380444149494909027835310866444892377213749006819205031417627865872155594836498386733604503991532255897190319282394547584797131870483762835104132591105942727578076761908474006113880300728516089589192409606779112236230653962051297934752122958996176435169353494530047153184863668413243894009525398632652004477117892428320103779865347219904572845415851815984087286169301322149405921928687997097941900213753100325831666406846702261602865900386435625505354796071937136617273228796457014025099305027914642517861683486050129853704828918560167735777605497791858643212657653285422167458624782085802950251274548988762170157841798606480912525868988002411278522219216206834716931675626416741428940528712945808484815735648963550765789242702462293299582988239118458889620332427926947766482549820405259377519621652990126872873443909053936678759008111484647276587789697610031921026991013216206230101271004537108315063806563534056868126217411584933939847796799494852187496822742272390658845509778387755469957061801248566572993180607939316180435900934787333645628281128684312706422111148881232427704749743752797941388810507512477570054397279433882880130386581514017236137868750156355935361587810493338461580638725712169332198330313141273354654755982390259358787752290502687307770120907848526659461381651342335125293268178922972376215703394507421721159565873775982457052597791621491855787691150814732731257542274716165559248418484200562554021397199296994105390213648183501485291312189142493671830377242086571379362539762551959763615879832284437399735737035621929759386760837528853926728092186397175096360437811039077166313887995329183195894938592244320386068523794567203288800376866951189335784715165708970374103094508677497123493518347674137813012176042789936533853633037174779902325593731037479745788488670535191485549697740327436862382953049019927753962958909318202394940565363488763720304196544385998752678713841495468426528947162031708340003660882632400916894465553171953787653474111966966414503933766327302267049754703510098240923019342388293823214797229705826130508155751819062638506722434142200223624431668716714403950343214382388355708805733672480570956432997054567779932759871155865332328892156532481472026179937007697648635929185343500206763632313945694722513933076937749830075341693981596664462050091364544648883344414131455202126608074717980341472514923198973730620367237541702253659346404188804620933746558189428747107610761517901465427058114037376358359830887877391963818902975146454154750751809541623214308381106726349056963359810440458510890436008752695841820807259252762145344456972925918758022603084994511876784655135839081346978582793955086136420302868361853435742897130649481645651721660936166082780902876138326558422713330309991075045952679003805165882519294596174992975706499302550212222655038938866693611102705432911960108169928238332905123359453875606234125976163171924164621710779692347830419189458705623242054661700215408057986830231946037984455224691752475014502112682931724445316540222626177592154267033290940349314896665400765573023844595294085111482727900385341195605785487716535497538773114928309553070632497023258687320707413914294991472697610966046878872334143230995716910047794119200574387785765302910379368914030761971200447818178697349240787910372322439245492881107854397549837186410236504911761446407737489230345034883749402350938401217301490967141899785605506370032951605460147220738394401349723284295068419296091139649180616873792711366448104061040525758620532706003628392288191667470852562667303949384846876701571546115648249071701389004149419396255624646222707820073404332467223604624371446114235671668991056942170763718909429292245602187552865751468836358349430550328763444625448209954325040098804602506866970033269463314558317152796197624620800189542633443056441448172153679013897051643491443128733762819639694901689346281699016735862937184446287186444480169985467098038542047821638574394754819102346948425486016633019808711836872980056105924554207288677232395731686108591648393235854840761583394921092237024220963051130236874353284764215312721871081303066538547442451130205728181239760765421954883722416510678467051282944728750033803706798291529337395828488023878824930675463927372099657801119457491945895206873223465244987991797319236605263327645628645399128609792029614690627960258306680249631570382400392999110301351062007028922768316723868014416714183132091863071816684536279508524014934360215534044594426589670464886892862229457743271450548058845728311139426809253080105845275963991035572739096442839286996385587945062720920256613591698710839283908052348693929228299402970967748384759110161341292065706660197152982109001124722391059306584622088814970477532141312437505907099415831193331148844925903669876396838395430690031613957413456427311392840698073499984178287368555008564510427558843091148647777781295418647713933295957706598482904595228438725104396033060302960232592302508628285732780003826984618105293010746735411740814210589733219880869910666138872505231021034691632195050702403687848254940529416097896539243786621386737488238456142262721314463556120570366580651540590164008052626893168416859375961614078211202892265716000880976426509622731088648435618816189585768449274666776633045564094323234114933767549856223728347524928521014958815443459149517673021484249538717438184590079856459996812246883966825999505869363386700571956697919964409109893292455885323840101498752899302908965581161533363174907167087431750077621821428566985929828672993826071571322130230313934351816834234982519631523469339886049018990568761063627431512900943798767888777636623133965111128307435444711898143604459278266921382087796712254411318576492277131584140940661991116355648346741019153064537160857227566092308130205583048918712811047389126710654316021952750051655714032393258913520641527541135617107306098555392133178538476772749624493670765575013357632971934491834252871465807275777111842058474930282769460591960306631979103393125566271794923611570200360465847108259724086413979893737872126139247372852786367829890691979087226327646389682611052447831296233813727613738019477689164311109710162348372245949254655241106518400864641465232246793625738180780143649105388210111812935670418319936071206276816344258157607739389600386697921882735963203630074190872877416490565287951120642599592880191506432436503060924244485192387881920346982159626285741350993602038928740212681605076151298624907566328174635653827493273187031286801776939138725411338762465955001438145017099893267148896220569238023855665732480710886480274909898713552114547343656474452408065145479558821678333164220893408255071599321300024463444281747785893042738350055531420523759387925655159101565970434605078596177989746944008741137721793693399242152664887960316031796662650620614263818569139403960606438837593585837846399044106270420973370160273130844938277110253074497424345238162658799791933247797136146825534509512189158193508993653586486515737988561636530420140087131537631175981878584249467710013784660770615127970109004817263664602412323904265027883390657900804986347726640740506724754757334436811709605181538991090726233708854756535489381283543146415621243832439594133918677543744535426899560991541893906587487133452044010720626931978187932229319808907501900801381576981916650864110438938525548470067215158152509223192854367106264073049550582432627125670363436476210666993585461606741737252967127566079750952961592609612035497076935708481630121503583298801379222445577659773442174269762188542020926566178276652987242826291653493437854427232247553131196623943972439195748465440460869882047305486727401957038526768935274814200211567683023855099942667859078238560601049152687413752577829378503142451053451143103237456014505605908679722820064822240398144026047616469136340044180537330891951723150998281036951559792673250552946211927872818391093620380993399928385798030988834655880015672711641091715461043075813477251066803805893479896418202662721888529527288173687994853658139763334453743127777435782955351754782256231263999086920592977527037610394538262485833302329306591783611611902487552418633532845404513084896838769363682738967256022119640832122169380147489870359737165288858708649534874876688000680960987478223854400950988340916154063676225049415612632951926313457320366362271782891759704003042441877283496541628715937213263197562080831864720722652175494743675663580389471663598132690693164680183623300348409421015826829515300196640733884921370589385960920084238999692491766920115006791804653376255938917842201565975531236852787127107096282113656036763464833233112841372424531610018182454415885002439067311237078689967521297067504116278620041686531132254858839844096765405630091503372275537956657497416379473492248614421135613726162040545965059480844938128411320484863371119220132406478370813926119459486927310646837921772957607531128915023870659165827704563403562878732557121593987972500960364551287023479374164571450469804808999173457788959902677174670632118494403687068410756473445301510806750841994203223910375675120958873743592372191310883979157055099436031428171556289717142001442335140076144165187581112195105776974966033292820712125741564953157086708969810543652584491864732730412260318669347348140712834327707320463950503103844125013067658350594372893644759011771551870603655034272166144863875662951154623540187871462663418984637582062647749117562112735684467807442404327556711916827344646941140477825805513803113053606556752755410333304196212711062103541758922064478793925222115971457497491556741408974173298889905833643680582562031627214852683506718837860400086389258903385028374307887137108166419105094005152413207182698875592480549513510196789669646339725604751293508021393539792012977188947354429118904148008636344022509636944236393489618980046408983576621229154893587709273351085113861266142999246424359059789314421032209828856970583363560123409921453479578323013375968104146526601521009392743559322795244255301370362041561004241959860840613927033541073543400625204563329989280543061483882353653425235807100389323160585469163076198510951528705238753186126838507239299874155380930685153455155253328418496610276191467504071463135170530528803541942556030306701191300447135867546449647541549750850381554438403085616011708150534687821840048055180544417980869657339735173564639087897608729973386870387038506917628992896133241573854616332055353700350305289995861815144267711516428642835786965742889556859988999288361141192942100079062186524049233943714510837642423385426582440086698147008657075999741233640387034600223775748212050930587463631876801196814431466388061602405663247377716857274021156089563642084116852276567496429289397741466239410475451146755573679069541186464411511494902588891475014524995472941838394010961880963715956965070455478022401437868663693954811012144246749362078593569199771007532523902140266322136637751777261717256821413383689984602795038423956398434843110922384874674135638900997232499796807836365296544272136405828294691818706330832928166263221601923540321762725350603294059770439361774254269004538233443629897250566773651334600833707114997409407961354196306881839067091676003409794162494980311870821858640144375266380845317830951180432872946838188255420837545477016829945529824341503142712858640292794584178258220316088295802536337238692356998947267578120746629413046554402611598750564586691401018320526625494620883628694651470387837419705195154712533945102503424131446303142826294135005346960814709771539009357073159129162615387791263906116968954258172279659229989676676368821357720287345620191099650990344664492566178866136854282935339454773671737169895312419663922666836322649042307057916121536347483567653161252116420109514370733052074259399602202506767621889726889538304908963839810624321411925758166082317255595720787849693750536045233879848911300469341228589653581746243385686295299926025919500486100483495750652354330516151990732814107246445837261781247867579877817219431863156479302872198165182535949311445438288377360063644940098751354216184387859668748054717024693712232036555563495667066057046969790814649394348890294472522332827593752675681698883536712592461198100505950308925301071141266351158160100815254484527922758271441782000590007072892166342074693997276568493359149117608258413878854021412426390559444263133225283820938552025033020446778150058628697685233839955279654482379041420955763045217769063296417005979260693495080098042294449017705415555502895008000511349893793702855412583644279730666912944783721266736965235341420741567358088898651265773905010144524380554987094858144529925398818529748316642433091353630280445121136118098716844314965476668170938600901863586455889061881457366041954357727571273970311037824325324950374558968603035469059804580090524805219475152065221926358096781987656652895186309440013208857184276942515309266731035429466107242264201241732812498273402447150889383109799379910419182336276042123295712096648980044195814436662613566788384451163564121050263499121237309751046503671948479580181575680186456961175286074874870685304584698436606446265137565940679417063035379519039560892931879933445153979210675185980974956733933281424222090810427454771158776076587830860902202981967936742213975623534393548085257919984602445145021013950681910075369181850234661866441101973044124190858102859270645710087625363831863882731481787848504613784262735399684473310432797755507736101165485896187385677181907313499353862961596302990553129544613436226392171659795617739060444078750781375494521197320847830276322479859545659055597237929805679828846247774503198212532600272376273885820225987119515047344740890810021461220868165278532503210997390708914454296879104063478906373235599328219213790993571630310742537764452477488100670645881331205355273880571508085803961469168511670424095558837349390958836118238734811158941351383529307805406721655753264003693913508428673605329164809097789370767899913128882349643314278543581180195849282875377254504318313775394101646179826838253193811536191661317279280518139507267972687124289018722507698846405259619916305924747346357816446258446073991683022179292631903145266482379044094308939163857932836408221411626187196292395484326749932248478754327496190355468488669574558723922702549241560314553852383526350808752389730129070965128819578594516557816053337278225038407540163934862986527031401590738588972353511704285313842407850349735231465486310067852600521595281453508340933008390413275657758867213449063640288173212019209135749733325170469221941500114471326906355236979650609561951415665892139089662497043235282899129805024512655064676213116436263887905970609978870413165188483706048887300507478601888978667230911883931139706583330234962133972820496218688616220094029709016768583862050464934781345224948478361305514075439530604332465884183948855617186154189335037697847148187870786185200939604866263115996301987676545932578205356528640108297245136952909841090871548909630851101798554988191830083946450010530444852548210410970690831910012581196490493143065735807449229897900646071324999784097306483815760458725706735429321340597788898623705855217237205205614350047315731350159823435072689341534060270837847653267579346480191048830868546777061117145864950907662084950470168542552271088937335678473020979847298602855021636554628958038507668388676677002229381622149463469793573548896334206807954010347711328739570209065753246144551250071037304912534626222677775724259607280729848138099657389307770964551805955244060697638070728277380073992966572391699790179048453839877268413534077275991154010206593953411520142920799065780555052439106245647266950816016694052147051352827163511944631124141422660437003496505932639360408957238637830246773800411379840147326361001263431126390140924375477317813553134996201597306848943774566269780564300502551184270682881699564099677307137179407629829565441035761519683308658539087109890857215851489397933401139371637739294787678136707765976871549547047554339745084459352577036018709144908434300255665759074622749181786148462244365350511291608781873801726694036651839127716161427785601297030604194480263605714406284882090304910087460989076455027517338881931887985748031168293096559405019779140836643136383913636065743041297671875428868773637001861784893799573689253759501032324554671033077741861776512215075785485015600600460403808821767916133958888153485390536835835657339024112365423397658088545673748305050402042558474788897929073995418826722566451559993497899280088848495814940118115211552750894168405497683171584991151734260977225012015339384659871905825822868058133754618304543440597834451541483546812250645197857759761803688685891323208833122479888073260252246598797687102039781234475182479366768436692996581465409088782308410611840928896816007171254951790836504885471999187997644447908855531737156446396563321503677153353006388026951130062064124880591235531329439718712497678981468012304904424829482453679657744383920239075645332206776354385387946571159128896702270164368070981724169828014565707214759866985806517002219159466654940714101733911549012135247135278631238814876614272013206422252454842118718010578523750479236138006145872999935099314364290590616515938704875515610290501752579023623648053915463195868672384789203756692312915565135537909157574453977984067882787370450437311782857105870869326005971482185702984457443446362339561852342767691252534292026906549787738332287134277582698753743036861324767133337725349884306212530861488745370158791732164480910388725966822730591835845175661487302534436431829083820866016304270636928071119549940076198404153541593293234952679376039935001481198599777680460351409881288168274321120312755532635911959681931760437000223395777227822789676776754293747175665570323716646532521841367635397863798115254416919360416666421744014134934964094283972486261706904821077465746394680833768216478205558909355085294610029185179304490770558725625537757212052489787929147933600614693678462364999075551247351485319637328587156622915988187331497632578517721094825408712995376793527658693743212123783411675674330649230368045871749037890999672651374927038295448153031818322424172308914473671690244716991124533772232313907212268469623438996135425684623727020516915041552365039495401390706791962940241870343054842204893603938877014013366648202935810039020761311797626319986940759662809851799819235716817297279581729715841651948084779755423346188123375382547651979386596765604694480688358675092756176552409732714433557768999789909454751207295862463783718087366020656139944933893680177362277253727464273915121319874105896814875287742261408336765301746040732265183776600426090333659716769336029220209977019768175648013796537952183073562873791691153873961548632585712718175095163364871039913270427416547053515485849654594444352868012566521749526979691389945453103743307924675142980445662970504978815307516414746398211740577996299551455308741479955181718667476430920079547958532726365902187129940867929976246545708684234733001532624953025476473690745650976121032271835167603987102018978277367918724115925392701912895082434835114872290776117982267433435766979407360603828912469423130483599276512663042165453521763321278663233259712058383666275467838765921406699693808151990956718131459262308122164003985329881546582720756311861301678630187336854793907725885653684331985652806187716564064084600562681943773758995959619880697928822444571077975372051235139967010341454266557171426397904274674997750351718849028420008473368956044791498759030197942542265996242194450179829066500729973669879558702136202082567989502948709206324201267211731912144799492650056955759855460972399018043632754432421902558724526736534147220198542897542954546515920886260269927140229680477122684482286098933914207970423551146502956041649174034880579144210273078434860101268570334887273870496978872428247151158813861859425196686450215363531487890881020102367006041289725599974693082592483870380641416377161667730936577020487319525547628253753760541038210303679961859052953708217907101041985111057168230242180385399371483109459596671797901197869665542642281944569245890045690222333489270968488703276700077176107052455037109601530065460298490510070103110348107991858636725843214018082274806838508413104205479837746138796836579347360830986329144547511177025173800915626615988382456648730723951056117559905916171776163457985736230346152597963518434759429346760528701699140452743292643758404168464671907920003118495478629224012573750850904447643004495325286210731036039591737450542409800452787755580818608277980385873818007253155720758643989512574295417462502697814949963632961012951456585594217095306982297251890048316948436358256723157448295400084701958244916381745677287832173494462975756610628104032349019445804366301636854566402398539588021357519993209567319875085876908416007240474237618011583282052650462381639011329720703771768189676527724648919676674612092539036805203406910423530239355970242860572250468175225285458771899341480889611373864090588711236077940453192423594102809875999184062360694661516688367804658822274918419315801491903181916988028884873480304406230896532954760585083215080012403532920004935164461824565897541322243255673218026405614361854176180839629514421717883772067956041181594208033251794369822511008514902095971570615106262301329719670289050862501262923472252326951792863479279694941341000084233646953496924871266415719243746095428047526267343658918170770291721457137688125541033173514829468819890079187022657360187073846816491436999871069846001916890965937202418850479724357283763891387527531360029824589318588876925612198825167294027141662741101090570516704044024080714064988288298569591973461043773310114476914752629106988538251370385357809746539047790672550164678033601816793298874314716309864805794783625496578337641768867908798352746023356762500181786562940317670366273730230923726501503186926410769746885868437414069262171643466255329161462955332591820091868779652613725643563306569303280005715654353580923307656579577201306319388757932570869244280514658717689743000692053307220325138862014097978237009489633055978558587849311423831386003901737861755220906235681003293744085341264003878153965205516755686390448447235035417669175480615380464147444507655483851899492641724833817165094163490881349455121146553699789951451412303013648308865598433415767783030640765099929137596593773285284890095105861780165363263836034603395809111783292931386020135656013902505798628455147839070634071484914541613315245887642283101055600622777141078266253896703605645481973177531073368375890351605009153672361325138128018716119307920122583597643837303705921170542579534233581980153185151260429489826201007859240316938280339604726802585012932495605604246386400643332167482783972213605148402686805999428273598411287608841108935078040508580061323437388008398098405900542930301771838007751902817105259665039177909601908319749260232035602916849270034654703150570048937755637111264094341561671575522414950016273569676725372199299736310277397549283026666274263252546058403368746037325321293661917479640045506383886393898294823698378750924533977824317875197117984743193636816414301472705131405862057213349442504853652826086444616442284385029855736431912063356549393560528222751376583300749859530518729179538247094604229850711014167901785555877648983826108043930731060045215916578730809590782763298805606422923212023207785556153105045027073177602448313854934047437970399042647219424508181069558648657392762417861386340240110604135202640266272713502211612483875854095240087201421446200392937058343619757648101926773634002215431660081416061160640995270896229218288593099178756090317108355749735181730883631517291873738669806209054702428963558923345459257118369551343960335361346448603519649389025527939685365053402798128680304499629325465471175430587610796999547234361161349354123408892945783405685856659725367317655725649769485713305414227379758298487870533624310132639587986000865556910146005634369781891592379048450417227221138617682720826016314934510531789623003430856299797357520129422912039113574659739393708186278454832703984948710950987360744921637965427060014361298906417160057885776073304230767496354964859929313969713512848393823391094916758812760931850343673001981125906979648749090125054974697682847200055383734824141193194614403562400374091100702180026220895465546541274512706706216971415872811086689228317974035669892461040487632620062190677133362752040163677097384457153483049589191650880927559011401710051857524812148350476708502011292056462410950970124567616017384328573327208277318817230624745336838689361573833975296857802502503331719723777399174039985782598352117954391300274040966709105328426507133980523034001410341683169876863854955470395133937896543915385002503656701003067221811261711571565243196617924928606574878622876972477420077912883649896709498303886417281304235898111927828247482574691101763263011711352881280103831432480281349368452398674133104779574236835508875549575273488526965135761583149375671007003490135277604956645790141664531995957497446990433598797199695053206553502595472511952572448080400924776032966917570646316344753086468547480174045910239853014554435779129735961090393970944979780387063295318989866424735922366878914374555959469496806928118729946912778432370493377298271977260171319709536331517265904039713287890405651196406180229142713622044200705353969728718738403065468974977129356623898266386278008268190047141242200315415825017019890799043039029184992776774023114938351599613235991589602889752703039458154855468605892571668778436559977302068542733383625179573643548871076433086684976164339359583201835424536080848208573291819105636411174546387949451883494308231628477397856520736896933432505025043690090985185288874927987294728224101569530387964021668409571541332653936137845139552735294207020308700545992274575452367887368694653089076496428390405765809522932770662035252033218758270193720232914632110439563616345095690255765568160535662351643780893069637328778538102328486462684668726632569819836024553474634539730348381770277517402314648559068713636266634779275593147590044788486205252992642859958724108647039265938701674029307207522362476301371724779820134551461815957808917890127270018916637309511842730615274466994265791888889100482076243255104481314716155342512488947117141460427499128365115774922007707947259860986496185911343329631755394335110930451289507573630626642462142780879169016667234797678810560325588600103602306686588413693022669739943049145604217468545171284294190498358654982488154928923021355132932515673069910031258463767012384449951877559899421892808445170078215037347024137041019090185007208205822726239987212380741019738802393932058541961574386395488647648046640683682166216295509062467299277549868479255144928450706216522980711806137306835783552442151587042260128979549155223135512831145266692273573456807485269388683007279609143202006614113904239386524937036316111221620129276578410537731241706974416256670389447561728236295672843144773152943366700427877901776942738311110559006798083210716091899419888507082116202788523813701343065850944271927518553732567281191901477623638359355828178117730416641805453045630978451363361380916347038790967555413010737080986650197366484030525081694319128439564624371539288526669659349935983418089974840846377742493511312821161574230685317854894936070562819346943759549967172982585016100150246765784126422126822176581091011290039562825561143318995164502702483307007475536540722476026249902361050453233097146711328159799639433471852799121594805159060730446062363746341889676703292149561534405782566628160280056449232276223386731127757270987083654416610184814229335329888264921116490910087436949216836020820346696252926586205918481412527158389186930391290812702408729159266280397563563343994543142194616235427381312875268140956148722245504589358175089114062856061028173578111074398672311223321059941201197212361806759123546794011400263545698434812670982802604326275936646212331323621089388712478081146130748283818165834447190472205331224644486374321898962136441487031374435112025104044421745784074075092811523087432384665628478876674176145959712529752971518144513224975267384713372535961155163523138620319715900172284292500693291230523158732902951845537261547989140169995846766985109094008132669106125081935580973666281996541935844657740768891630968823049967915308005353424277292814015761874677571823190736590935874368956444846151762447004668696123592236211147384924366497135833494720578842738616546278520547695516625982419106611044135038798227938055737359033015908199292979399480133335874776755922676625973932211382115199658351774714444572616873158903252508706873219373367750961227375728680549279733972905455456454360899509111731385587059175514229488522851050010837346085657900295481186629618299978760672979087520094593705489493599065697595352316189911229311745816603447111055379975315959071772237289835341404214597891655696311238154701167011722306748205790613780919089163994209968249006756096498035720075898352617760091071676370971913889128183579721248743542056851692355658862459510478246610728354618540563407355251883157586357621516488739322390306551714261389971796832429288582707009526905473306147378491116502485130945450912603305305497396443491704809906167884462567678620077300771232609675382905930472936089661251335344563613279076031597658615901015884405460862593306479526463377918794225290021718456555024880721684293546737490292872201906908655450396095529259763795343788944249942048060133939242871403472820148983876210208830106549918026481709848453797859052528686114316016252575345843653382749242051943921022906230046073658654974629223770070047450599484666267522190729707432875859846990709281746679934468652305386429921397137080839274376731218308318294512386419194750572634007350638924691827118405847763903455050879699988333004409879186072184653578014682856084196281354233489114374739694363534785642369172629789954212701553326328432572368750187294575496438202644243174115267893960070768483886015463552798936675821523439450238681093179827490758248696223606117671118908718043420582928955064927759289820285525402688188785922131771261189641158762163882845909013893183094864087866193081708679667602115756900642006513975026046461163026036059743338757549332953808223886183182468742654563055376015258463544421723037825491058534672711364779057972689037224033210258380759191227952438040933650725978775930909263385950083211823334150734440958536561843912342230320604898687760077111217146029396636883939671915386594731545287268963341648556369428116381153348472283132434481313929943455151930155898359570555859290007466799426361167921449154595219617372012958302251334170171951388708499010207603969241179493394755469467117645291421402556429703764404347259928659736662617346278654001493860392347932772881771137285170274148919217050779710656543029547368531518783357495349280423880578899354027744908847869712419138483130690573335950857181854096095130623235719826584874883179688563594525853904539388313443339029461468269873609180343869752816571573431212707033289791020684143470640257935011198243040907296186077415870796486167070584835028488167475387359956826856533564731357352229485434638729699798598989177590921499329969262798571252201860931724303460061476118821510714542518473650894279034137423927898874475285520315850231897848079146430232807764041773625393673711196159538202705963144011447876020127384848502076834427714104333622199459626256164107906601151599318668176918371929887916207648005862142895427224208018825936726145413404530935572267842571136771943483103242128016092651821668883105269394184292365902381079339686639259681846778381874280061815511882758206300272408834465354248609466816152093013081564287074344916807501080080990248660378418316968758960404461222731782132897982542722027371135352776767610543987171357936591502174373539890238278509238539012100771109717383826597233632330728886404183175276642610829497099276144377388765109505342607099031130707428445279399819142676244439665879805613047427878132037459035380338235159654812783578259172856014323547135910777618206818790552794502499331738649477429387357791395501356758159581613346858238512307614133274495668846663382696172890440637167571533268853116347093043023363213788723108006945584534526972255513773943264605035213531677701309191680502394414918743604219677208101568191592158883270756691728157325450039099391497124260339887120211295623518589001094344650730686775691141135176241368261569821195568108222259921865051732948026365330247148093175584238050177801641997607273461461909898500089190263171742871451992781697864528510988607875514671418804563066787585393614002815597796274867057623520631067652767847203946921013091281839671054364496445256440547307639476175553098586748905301608487274463014685683718789508661288049944496306534048894477969561267305244834145566247359797396570201203266040329304214631427086153632085282499520314729675652361380959360205483955027586999062785423591534987525231922511716934496551088361374197407404167463496095317988580072463509022046607607876681305136964724072741087387481964224775819307740140727003383821110248650781342596617044707254086945384169946229715456048444868091095495424731432287484812726937367911248640894220137100151054393048260486757649745838295824554767141860779746596621955156249953532899111994066297978107141660491316932302317871350501758804519337573895636661323599386540335632513183523325928500148626797004472894554418220918197501261409602407261652800972037395638040984264462545862860499955219755705030862181063860186403905311582495332587037591072186235859947555890670879220046911777885422670531484004433147775875150199123934825145320923033482899199988345943776205756520809364773622767697043988546371409490012012458599107070264307062406012874558888880533615858843299712328141999512525013882994581496159862096706440683217054822665774989550079431884850492238299552849738959990061025864415001500376190676475627203709205930721485289261812968204016462083979009304028739427240512807647261378296522235571004456970223561069830289021899168808537521414146834701069420292837065652389479870432383852080388119892264304208175010460964756730952609149361483004449741417170943567845087316832871833266949452987436807544218240979470534047824938981733474248966577702498877058321475653958132521173382435525362348154752570172477289142627933389726452933434537401612372518616752091715620495849619462311310315666521960552914782054426863774854840855216641789699655746142742072088593432017049838267295031698850568656044652102770693877167341129901760810835084370775118133869404623613903102247094358498936642053865124034564656908557841424644281104593315394105687973527204060327206172252075036286465512943715522763237974404118171855497696770529222206013607594290642330414035876239658126970493727442375286128256747098671730255569814272902148689008752898337083191361092119177072556894250455719781092585352808580124611354558968434802186610130009014689755785696583836036450650291828025822511350054843910944318557574728218813128163355468955686328012579208234906928758421036385901817167737610283209156526167582120017424226539919381008691624214676338154580527560900257718344646522469894450826621813773550248919876205707015928769960299812947154147762015161475159092208768904233707914876235101480973008975171035534875386224239262133662034018689476861235472440117030031893631684316400281886414895991879295453581669378268369350031802354571643675894518090626456513484174838203106805545830608671228082398808128108348053523900772925156091382805012439745165866516547041727111196431256413311316711393049098300749565198045524016966693003374204110335796805438537617153490529051680590686948370701314814217846634812644125101279863731047100172158880666374274848840840812263118029658101930003075351143610870865507287492080274430349878007272517362925905503626811846709764300003364636942438601407022944923408225297511991839235450796387904862104823960167354531787110604060630499147424555297351420641866560262489455401529366979697723532409795497244757657098855881791848858553873733181064703539477012658801349797005486178897238724019331538225696365363786520262113888973845427397852948361016889281098307644641256414735865613256948505379637978701006937906186696552220875210494275546613534831238174431435889566622901554176693273350882876653208339034363919276451727541107719650131567037216848961701113515722071666610343458336585475979958564474488580516449105369622566670578634015646031034350682879906007693372357056226457494266330946359857485000442510487802164891089455030007933936720176135560291532997895911783620461812007086883158653500465273799853943410488987602289705156310917316189182014436341745279829807231737593927513006465735738920903988419368089075346049018975887780177942342849143569793939318841622637076308889513009347272947880104755937666417705040474625254426233296689571548208693578333396036705290592920852104915004843551449668081019265548387406200091460780139011717187872675730283835341186457164599669297347944422498622374864444178059129298515782012375036904781668243727709696371377619086994861183498626507513877432645560411672575790881335383620912238352944677008821216928264574922643244007046691352205613022710846669614979774576116644155544349024364897762273821239417097164977820787904840362544545370410628322273169659546780325550038742737318123204070757481830365615508049788972663347679812582903569509755115759723954482190335723003979922274314128598099840771969382913610915745924352149287966093768643404597875782076022560344909186023689880147186453167067055002064106628450235284537259151239611719236943036887867930948239079985037695195202519927743998309172341784274929378777548704503662072581739255540445661494055234418024177812710770747786845128273551485835407921198032913704482038624198238758852965177846519006439913076833951917185582506673542168049043557865070163951671900926165142465991582451528128400358201128987770160011764016694785286320756508871639967271885204012242547218847283969664640972321710676187601264181994572228815243583291948248031868869985133021663414529227651723091588892064486502427056918008088549413949465355168409665874862644647627522037510817390649305343596430512868819016849614906383428508612629430163766290786336726447703021720769246829767958185969722722660468569638104520985436099550407957593747909500622772906782056387179132594522001224616256316344574613488311311587307401805343874457964086641007100658238767475019790164933127352790338168234071868478723497072873882483966899860778187236320548294072104260970370727304095071565826913724617311123287730851754260494993215110991571529498898696654324456537879514941350863819909653411238638987938272175137918401176543965601124271327306174769047770423405544096381857598253444024607246251205669993073841598523801163169331159074250156396575988942043985778839049737916885671412838010123244458402326415414750710124930077264370554705437651844244425022596779999768549982872344764634376672921884244785255072685847300614235789059579653979457815687860616972183333645732545551379890158902563658320758048692580673572016991927191643199409118426643673049573912346998752156210652977150030399729326256422176004621510809557819992724137060306040383394092573023089166037987313806867580951191805064849162770490540506973903748035145877377006788749736309235009170269779162300195374159297564128053597419816840715699962602287894662875040865826886232821521507262158508662960652838638661733707048697059050094449458867326395697012915120391738721577475623868192252808227762868481773621806754316808570508490509393893874901498697998586469186828807296079400909994772237388560455012772678899406338724450046508703958028240541321591513176304326525360378362788086775579334999213685527302874066024022536003311110239298849022145456915509533050377398980639703177567503750557763521863660069025143389817284622021089036907396366902458727175579021615166749545514795017823939553881891804302677593705621972238910943063056102174537510146920644948953144841979889428286951624134270670154377292246056501086506957155031888607213774271840401219770060357610152497031847062493706886460166953555915984018377008180561014752343039096237421876690381094620457446198955123326020312878114906438691250166478712184171860417104374208153257306621680307742735209544882269128736081174559286962540699023428282182725059395202533286861145669170454684329244665577430529345209792486810142414975899660249588057368696921867766007785184602172461266785370960936263733651185869854390174177193280059961759156736366726748114090800980703474709238272071597529284189556545352508125231296733255748950057538855124780075693536437757035571048482769301587449220389469468197342419500500830568925363528982454676147095134860994743540092127412011999706600910849973383929312471311472993835295474964498122314481290485429793646051673362121817908982235707895914952677143271889213980523549899219408973807655378159066080129715037173540388888571846964627038814130397860000100393108386490345825353247331006788990142739772922049764890721650719781697429439701276742051695284627965647246533154210129678212732055480400042285251756295440386698336885521375564177524428615925520708024263125885092103905466770340800096232996852631337471785422860488388418595256551698091775347963889331170907952254979001031375476868821917069604160158152180853901067048232257956981278444478426749733139346210517898769762870253347064787129338884609305183765827108922653124733086085353788558057873517817669707270955365878977362959756928204452543388618213723301363068011746035558883365655850658870405956202835390465790666065667213062084889190710804888090483693416713011681287826774373111765198860572677395625708030905456075119762668346691587200297119028020886732950438689869333967816260915745547671955620737121324230971824434907236002445485832230286358950989660408582519482238337742274756361563323203447308612988722391934921068706265661948175674345865228571723335882493980500799036257840680702719231318776244743598136794623749679724430558332102044203336403929094862008542400129423347222798825925740799066148402160927938082941706006706811034224996903354272632175234100042274348183106684950205885277793974184248682719184690954168606226966507439850158548546996496105863130669510934615412725007738788825716466512409973628339496578743816623997266417379196717781061944471130546638165753372983582838173687527749385281657193452952885964720416682003666791085477115955673202293133701257914261437462199689638898386411176621888754756973984406626761226600442603198558544109140098025925859033836013550104925012070736490932744414506167627208656282359616377339410993872211311157596703996611305906569417643741357165725273632231106604334628872248545324425738182445440059675462909064116092390859798299118346775925855053910584016870940285848781388176155999002478522077323397819580375378136771055389862207907546685423516396167218455489454730795375440698398740098343142043949927094292499275604232847079055492132188746462567878070159141817556861946590205802469345534112403206056754299170143137274007283043058780183177235430791136694112668832677717824280219739291234738400860014856058564361075584388434997079826511652674899882110279707857384658126909223084755524613713430246509038818230052967696361345332745522018586335098721272658835957875812540421012365493597315110740221130364407707288891858938295429358975039186351153781531022970569908591995222200871870655577976827292945271336293791483109333028348729657885950389501104783045195979575773823934369587247433573204044976255674177697505076947879166643662802022909118484902074785662880328675551309958851892722988111748823828481782025904515280840551504962465173801242494824704572856949430492152679860898906980481165784739686544994109125669994486852952529814851214514940233558113056905633320523552059632784626247620212643239981060564097143639527158946731296327268127070438571661498482212683750711093608397483975518175675921295965828457347011435361120229872423535247829486575868600319213752470212227793320335669711807740782948414585282299466831635609228824786990499352556177784821614723205463392040565000069932998886383549373030262566522483973399246922864132694159719898853753707269665130952894017398969025504035230017456111470766530016696968741204029690461353141906026926072697463962987213010774193417699283250364707601858936176600067932138691591863688841786104911136071200609032285632376337023678318283219257420419464815274390553993347511009210503676215459061431882713570865570797173017245961838309290071913829990594613680542985723902282445106392399692443395231333267064847975442077641937255579956775191105525714103967319287827405625829818849851072130934412785524917814319933295971386431712147302169003616732769126560358638822843668287914774267478939638337212336438774782848818625385362370817529003207086223443912149186210116810714888224882739464924838857528951876553638166109476886555297179620079751150381950654714118711747535167246480032440204765556194562417858859224203198060119457118651803665071650394490592347997592273892714374226001213377393268043612979596673494058531372403873438967022321878620598574094197319090542963750369847549744639346695388830943686926033048377585507051607024492507354751481171179212113102665663911555078907939340142459386046876430282343524690922565107326638095657960452195586444450371852173393881958172018681465801743005216492372410775788773747724587009920553606352004932539690901433544585816049618501662928393459647930348349915267309223127705076444280898096062004010173359382490278807698329013423551545344220062005916177822307126535313149741985360714507148717775600843804047409974009766889618029039656838488808952086631174963762226843614195484208400317646571199992542291812399050841052454837659703251941613742693188456218207578073549718650027761254439306652452225708153150532390400379449183666346994966288011951190310928502823265996180036245833019423076490096000604525074430581998689445361290565548540117560663019349847204079548950145120916504413105947874723854490942260858743744996935546476061329700354949300300063369801430601049798934990789527881858267159848075795056128675430276796927707327795872046784558523482640227983253296426438662078871550811474081417578741893367635187622361922402045822541332440981414423845607652700802450629810390871094652445494680419227296917219471690298512019606942389914348311986829879892757931466181778066158139620051188677967369938262613715446390383523771092855525298713000219126996338151095054272669199681860079165178570541170684879167085353373313804548723807250050506933127422023946811310534478442744443750155800512852815961482604550783837198027617850309230621085370415483753582651735465911754963662259589690784898262620374073499772571331923096731593808574259599537809924141152032492793052696703700867334778245393014408448159869413837453971705199149497025579669708461722665170509114943020181653416042416842999704830320893662121363963797094705514968049509365753204729607460685155453997467015883777115414350087578098888750384994815721318998546988000238792667457658654430804497527300346696482952619749440950421950802192675850541574878872228738355625783492870223142950932374485305090542356506579213809987245177553892878934137375064280051636545976484479293233704843719625785335028102343492904728785828101620951628739820027201184498111800451244482717938773420010826295882795850469813234914809083613071760661994334518205664709475601602786463084239884826194184937363427001748318744082245779406436726327972688338955206938083800099825043902597902488880981831373195503505411493890443148127881270013488069947395903009522914099880266130892171809908593446699514909415942081506970736259289632709540628119011753939476974499854763989875500546297537043208047850873097344465723886801481080359685122831608422446742264944341671958359445229746415160995169962681880582959245749993648205561372645918003585332749593719187578951174344717279032064170207139494940293081749840692488271265113145328853164601535611849662642126498018815189955018988616416330985958563045737962026809184006976017261417606989603668723836076934942504382797457784958849149723754161235680869787878978098401962640737766918494276694213443709775841747727400969754659378095003798000531867910249767709730173905319958866719490293590005410132433983150045667669058807604255130686117549414436795909097212410633924543595378758917162647064988276528120655566623095575662254737984005537104503992073668425004036474270240180368839064187646858428619097621128482916533506611761607881602819482023371986690733781916873175814166023024007492924309569754955744385219238746561325360081202776755878023869382367844119485394416747838809333288863666320206227147136308714439669877333609619193361846370377828624918694487882361999812358375883394954181515976474655142559989418283022679429702935106532448258855101434231738661456857179101909269367042249618541612290647773254036623671231260015809405281936687185954707267063889499383630282915166715941540343583819528070894748097619744440464220679314481106447163178488967782747046628830851323821315846589173839125252134509097532392425231824359545445619061198173593403769195185613498454654823410622801166029338705924647817514336238076047712517288520369583910645881757084281163200679519939323378549604370430406728536054056771357071964180043283168316383009466828876039948377759652718150289494752546170938263815391307096467183441953625446337897822998666656528338124272704230967290319235256580987332775830718129427875168339088670572455147995263240419530120488436471490860700967563132110498883224205320332638081448361372091818855441987207420288507830180643021284317364087189088769901754576125482851442565995748466833957154824520295520452825530748688306583100755579521031820916366427179725056876116686032701490335704032734504581494095209982055316105072892614285361314242310314246363767161719556421833703456591522175745408083127781595647081774377822924746203590084740073944026369615781923642400140263681159941485346657433261976536269975898805108081048575624975927199390000009961632646666838481493209376667839800610207473554174596946451141502679672131476135092877885801937724624464682159975265836519482829852303664931405893415251524012917086524188371684260521484369942611804958303031858724728545331989207212855947475622175391595845271806678362686280512681758821723256389651969468729523436826926855594192121473405830650799119423104497661305698528971381910777145708153393818337155375452992952791761112627519314501340842548518903141421192226581380492934176742127470192012822459546951560882250363492344832062069476358908492491259544919092198984132924396049381838859724766289986972091583691348406213322107269469664179868551385196986522090566105760602146185113236849778623153637954024426052656372405087692415928433605128045763571301466246551394605485790047892018725623704244156238421404309812770884953070691133144672219354216107440016614355348971679386940354648996362093556479886106190783768422521458236126672886808349948692105895371432203348079917653443818925725290591483242412486674070218417130070509884622605824368023689331626327880417469622598539465269379908410195187823114023010463205497725745406653849923114888887134367952316325789348332780350972522547033187808036275727020037741324542443582986901714764214792809103410556496199256445147876093747171353260512966258977026828393487696814901644751777222397149189510982903079328431087759640973547018924123905392269157526519989886191067899558889577112074565114204855717542840451083821873820456890558343501109271679834792162628863810545729094119375522755199290027345784546797020061601134296376666300542445163175087081000515364429612178782159264463330889486918677376045409703342833566234403907867901411707736726865673499589546405236966194495971026686102719252779121205295179594662385005219409482109231023915233612496547107932657730374812271860835008312331723368107791302273961833492167002942993473359943610711575379985847416587005285991294381301169327432891302603004170292676258860500653535753153187307593018283393957043677222075574615474562849288945140393796544632582558062725417831805270600088551563828395469240072130997238575838269353388019553636132047619698693251284295752411463196615582536907095449059203746537709745899530795086006955444389215859912936452846504455145691025226477772101766024004354853266114876457893399715639839604696433249018709293750594628474014917610520525039237325224709900506509317254527305247505260968519852534855817069480456335822455661831564248337329130992390646105416904426452409725545362266854683304312796750555822331100669080703797294820047564840470819363416899045698387047129410327822668446319389442393266344192644627541750838259726501718122752779115581168772255648351135903237699258486138535015832754175551508739228367969489871515758819392236472181614312664573827101192288260557732603230982560789420881389829199115292903755555696259914833345164195247407576567892151394905988796097242296469225679680916575185793741925516271125511983429905306296494173862553002205173214645651885749325229427532165665583516185640490232820045555941355289094180785599955550549905012669011210063760112481745831409784966817036060416014965954471230737474689669472413969650521658621049883368286555078135315514277785287962982748269790856453183303504256031779397220798297361852092178425762197767927549196211076655333627104910655623339300501012662360640867894074537410427996431627794196961406053720788147955547996280299615498782264106614253249882840563185599671479774534380752853344579255636529412643612344172008086550657111933649682600848895247784681597705164271493568203359179283177162748078154401544719920502040829876602421115822580951905013153430601011053655098715750895313953540727258591674006671533397083086955552602134754549093622633207456826136314508194158542732129497006744616361129709761996011892198940949196470865419692243997497359545306194279131086014292369038334800137991205149680685952826125469393887343649092930479062468649989884933235037667231560054889406612363889087988918245562531418928823305284259918725372825676370786032015695860937717363692976355952125938144353119160928241829290416201178103986136085203613169476578675997859289404265350507306077884454936897668391071982067311761170637874851252110215012837332335436243706487445633268701407294214126141578583819655514129940650921670144628012343328725840959754236971968952954112187566532204258748526092761834992565236781295020304670269904018912299723806462044238448006229131464238451489604872823180459774185700580241781294927303241952494974049341564729218343528488196727508112576782119737276055084441636930667207132253228329390348660612226639005045602266689756612045616233966547225753616251200671365830197771783446167300574045696657605910657100114164735993231257934310918101237279957059437761596709899276852365369937481650664427717516391597933666067337126269081184216937382069650869332685672783674223777363819979971985783464194126517421191221668070941413284510522833805406708986962782679403178723190081905098325670708508502281216413555738976284080744058368920926118375020348362457327780716597778179461635994718234033664931031792424610254041044980668449596283754307639569435874609863857456951585376565744178629248695330416618217499535963366703641595216130542992119948031658033452332115986056662735575878619771412113617281497999611953859206229825197269046098299639507187401578557519326079233489391643870448874451745842610546586451005430687087417270320838913658520423280753713966164128094428370410812724554393107963225204515540241070742706032947094273932172343179483151907035864431909962095508639098412726466023867122467180134672971595500184514574032071767335761669041043723387945509438207767808163131049108002521774578246521707446527879108290733900239536340718801471220522140215399101631224689985086195610048621493173721697245395352184374536368814497943581376506224108152403315854713854365800572125347895992417984967037292125328892311102801806982687955966661932910616876134760127357106961418362513491476772864112185859982763908016317795283809545587829491713068189428048121622836910514556919627018366592350533516483307694755542077529150409405190181035540191839178547813399790765698267611809420529364728853714230435426496946828152928778239740631688212237323744568623151398372583970689910936449988950374421668157449006566798089240525590421706641935048816409596391628243168321436293614401089755855067691904977026814968846369662836100299442637293757667957457287491391917603147753217991110209376451019667941478693903830533989934932993391664772590544173549043402872902989856101035947620348894598486817775279745376761775739959655575307040492731673999678223259487874059429669701814243003512541829021652127363210930823375064631626414923823595455292065492774318872262491763738171334465184798088801515135548633879143408620024253323592296896221237090088402610478255570589529966101856028960633973289754720627437700132220797858821312600468867645190073959373243314611377608574663891058377414738292260693411364473443818014671080889255488742353442381448313743601248544016766884621350526234765977665364690515679005115589257997632981115376287507195884317938258173166921329843468872381579771241224505487909139547449757281319471996537574727900424540311494660658017917689981142224157233493323425225449144990337889840035378645344035468834488701709179675190878066865656127703350754693255487739771782574987448152648933300370309195490773379470251261916810538807456674678786128953492068239904061221050925739381718440531615138398514137364038852808640897509972555645653025364592826031248120268642549893193323045885293188244858323439217007914797944908683859630751194477385606104015452434366529960923664146046098275503075606371459115789251978626502859739637236976329279913414971543547280289663777574648579564142706718323934743284939194455249840529134697320553286614101083856366818254735654463805742638551177262022623198214541563836516999406232004115831743549208446095861554294717966158703406780715747398144178688523561172253937476289392566269541532815266938674970317625157351116709166054490731505423659796963723533859198417724007176593889415905126022119557237348275540370158755337029227667485430491731121687674216295387314828119329341036213997914193491696626712896650254023849516510747201108039879798356315427365689432090869616915922085918541887438734535219770064421677183490207074355899796488879710881529204458770167924502103955916254223749002273377345402616929457615409985647486090962790397865945877984874033577711002432301800598688066362736070095660289159497530761097530365793633609839750890859513601156517371310883063152093249069573527609470451357017011918924788882522812652512649407264268109487626250804558246204741136262984374480745936137886662184231723389731576491296235226328036498518808553286225734151762135003757391584837486864158824405061562353307504470286006689074375305737618642452167403009899608866035364891460932646189873111266413966216836916488490935627175640273129072007706408700530974163798281313106366511219024399911030088878270485483569423163174979072674484949538582624173907717508695169762555838570518788001282864019251588367022075810627771266049611797895276703259769970786428542079788604232171387019842796648135064284835541030938760732070490815443090742030121271590781333586640649439379493924437297708454928359705535265406677085849323390705257245644907217484694427290042623438418863346554983647670232383107294625625326515838774192520437234716103279442144924304069082614819401145746521984035738697125400871634734116458760772663464425312570154990383873157734291514453066167664928474381950512194894888359544999816503666146509566939638328632834500995164192802421464235570114008286897082439994764773535589894670918593901815425688801356484197686184471931496425271003593076189260670131041009780780963125446954956399752638999430505554075958878885946831149394247403976745877056489412258558779849996048903032611720894927983754059347413170386316671950983957244768920602820372863959421013093696510557591526586873527488390618749593242374492626093780926083109935999770434945950307973604425994222423277773049209818449200545897836097581721604284925605666446173643082497583402956710814992309620540075933798904722130803893928112732735466476141662335389137808278668771960684647578488401622992150851636963940333557824281608989531303442377747348711731634303911959770758122944800696425160029919444365620770040792664657034817651562669216344991929163474235896840842644806257287307200895596810192472280867687589481347456885927020784590501716305293058728925909213784888447877987885892794729535421793412030717989806486372549218153478860976993518089867785531080917429201300910225072246147533661765808746819916168425851290963509646084976089536754871010431829776992502431519429691257360914521341330670749896293829658377977408480315734823152128537224019858573672684745688207891382586132086028897419773393175226557295506034690720546055956046244060661906225585256743927390967443175281033383956182479783958323386223016676855135110482677685037056119532466688121621904422766521603155047640455053452040741751357926249634203544896326387875531661721664353699085922503130582482173077303866064746870015910887074511766130474004315114390077867811939939240579709160127342878146785864085071837075241936454744080624753128820549519583203395091470619240924946977107163008534028369059175693701237962568944088269756639525277771092482831965443397032018036945265410445175606575764027226124710007458212486446273454778944080403613328250370357292980033425185161409181374834743638314897434064670264001882582540826749537589840470528822034499320891429556166893585563430244208590586224602113047965225793164405414710744209766281654836125745420156262229956168738187020870174254498991730275076076561220930373970748289844587203444264420135117992720818805357024745585319141537462474990500031060171033368907331019970564619750521748854795762069862087206127010078378706576374824756291337773642585001359466717868980825439539902564639637635134120065631409410237193140715445044575665252138619348056687055589851487547868891191443613808752793435458917871388493968005010359873591873707253162549045172113177099526603630744070471465322055515276912558017232098299125645422608817953401873950940455463292849216637057946153320286230170706963260301943478405564878783958745500550862407044886741620670250209186137619977728894106219226158928008867293875114114907228280401178881903245922826122718507854105807484727441267981177730328819369408890670881671505683174756967893688731536303873322818930336224792926842291463077857909510438643185611725112536968429711153882348451192170335188070346624849208073983633414921030978311415843471308812599520164529991171064180563816167113184732898711533870574420225546995505939857352512041762629463351519688065371271843620716465646990625301784288540415886043042767129898259981232119266390246016504902433894005797066822755735542720047950621394445165944320443902422872289351081977689068351165899212488370337874411335252932542686041602918562765504409269598113500189606119620863770849234421977820536520808230584823514310199796859818615375010280997092786494338337462171570267095173303738295139957871159192552162437759683869523143599102933236699823738449066531612367049012426436630979843012183956168862878062941018341175108595681760758998466561086175120105460187926181540205695980042415594681354116272633877216124325353288420002079985269561604503343599254645172427516952996226365258603196424848175493188606877637606863902456897645887031974811322993388979264821457773419639209363134451405284469062141229135583975145740041999929351497578304829227453622720060220578715744530677002088853275966679145981602022825115646603605700871927482891475936855018155751190048748431461762318982424555660297412390555981032682033486927822099697017430456373695146472949947085603840179166779756982607612309997918139536828425822269230740040682992721290877633861224619082549031728838690309736075525609914783932858067835801749325294881559542111670216685009987386870727080203151423967701200560571467120853617979746873954573577882026452279323188269217072012202486860291922673850428624547933798463986538776187632753933626021228652881335887439803499745252179567920387721896893717104753891180591949407466835035420064623085239758316290155801908659104200282330405860402874449484829955710323293932193071472937245896668343579998612574197419903144208320906052238756548621592897182659649411285566993721600949452393494389673340872520773462050057253347281104587877618058637069357181658912348364629759998100534363373106735930246739037227879097893316952054588945464893818453866227154915472492320654699918253968714110214107711340958230940464521625260522196399222479502459839866832619775829663231392024140711875296389495857086352840389900252844992856138845243758545676573179118747041933338239094376006454504811277025142549034521413726698344882774994609010452616986279634464386538140454229480549608325464355618377070326936375364897034020415244409457103588803652468875453623479585581996708656713543731824193003214108504615517602261419679481708921603339011621001146619088284582353856564648721339268336513052810848634956917718081194890083499460793303944156325754089158092341957795783557435003476875894387073356294613558463461536776696396235121105831607148424344059141201671558305932807002741020061762872131741758379741816546803217784620300792211690096034511397995505444488922442988178398929807549429152565018123860059409431200069071530464218068754223651064018798799273113907936944162809825304749572920885907555258684577254047721041417224529875125284917311387005170152499891766497265253533618096237887995118791607748720125157519547595096961841137958303008563738693644811289274998412436350385059445780045799453262792168773746830105313198853743883959748023755990385974954942277534495281617876834154491700947260692721948629060913159286709394672287373833540504214264068817533630155016416916410624429049093206590908566960637310666562750224702787326342167835807862572033147872881256351477909845099191916904544444960281135622813610619206622350356071552700258651864256523675948721430220368591355820629952192960722825122381900829748094932443611914554513861496188428587490697018624511650885263879911102713062439035311497749569574001647890607913409954460133375865951897973033216716202412222974144440909485900250009487747758946536205190372126470041662583560572188927187031457599198396972346076778935400206812718246544487937654029021596483583534620481655358523584031259874253302487434119011237636931691216370406128391720709877538794721589093401435231769248374665189497222113632711979000826661497871105631422518293782482165768298361762839436152504410479488172041981517714795422346164436210863986285976704632770331806589084618138876889368628942026984389895390666087608841836203161553928838684274968725636560313370644081171086928919135699610239296135770632243447029574181634766784422050863095224261518780421920734090496540261991595039939299819487485724465978847559632550270344557765375150480314227421698705646844850962335089000992309201669432418123346107216358248154625885167762539333686526396495529366749271731348988600537260470208611288988490165078446610270002027927610294917528277029999398473167099027605696790400822171989582855753925696911098876648974571071224767405684009029660208658125612789226766330841065784330968105597009417212318005487060393687939365073675026609498178169858608366650280821615604200503869795151955712733794910526341554719554640855511709795853703145168146527818597737755526557262605701504825021698057798562060736296979313287226407701889092800476175323124374434038972915202376261972729955136333792255740238681427338107379785654760040796872511782008703815949205402548892760408146627487858486097624926329419828089194170318815361491565270751091643291558421972067025964788846388722855393848756642545793430328584946456136330701631736390343004679086405410795244236115260783573687018948848669612426525159380651231214044034905377951794801024706302444361284592213665013375314366116074749464120679479320097699281913225724726859826884758655911535538042889565608768663293064114996913138251875460664941326575368108517617933326763944021356772522550478266473886668090409156616632032758575093748597681717382032585714520269941730820583457481396633322087867916879511050937332687726757823059416818613053205774762505118020878716841921707148625870719875488518687045071370952392963868017851867290217078703796721502128514724532078848703577371466186299366464079473467424980967127517110243353536572261046436317338951789893884853140464857813037004699214704400113397588532792717965222130248103118365420725309633959792588797943687736776160433894172185045717138839920983471099289765468775834897835409958193018987874562333215400686621162152761938926948944216221792515053686454198980626757917725889570013559070831541749569729196418913872831174091695889150410070812976770450587153959702156835884855948032583561137174530990192099647286738590499390834960994075594883466808656434719749261881390097388471252205412005525346421072806170256503632770700734872631036307396500375593026042273597056398676817796602809334497203618193967964971130688746517768188280330261129302225785390119763598874527969541286844480463811607668005435802378861355227919516479460292515319612754730311766368571938956754723255639640021870274658532600092759743351774139968945107389650565172692438841319501912815339537302591431318196463176596182258095618036378527076863714999152201560165332089744395363978725099828461644255186891076735420192125619885516271549967655448682568412682877655726816706262228951888511034561986758831855341400844294493471139328430151992949952468235297746169825395242808677376470455061713978353173743504186840360097375575135676089497670181779253513055606869905846331649146759272445594472917627832735953129867391142636342768882374926472663599907219869643008187930218299848362086317283216009408002477296119591884919610784407231294735475364414451705921060925264179401646471772045874587374336121990127456143960852154614654407358912213455442600103615219572641602952843814442839910866756539932062040121453413695139937188385395620385474924539285349346096451661900699063103117690967615020504010114765622039600054271804039314861869085472396944478715431387705983293141944105969917878884378960090915399234727636724770766860966598619128964656913427481555309117669484843185601983763152070901214958320198073267500436264540852413691295457394044716785408092855613024566412004614290261175081396791087839476640542708981369603180140476310626323875787137649324190402285111913037502576543610464536014583631307357675808521523363035653070518119323143761274902909932395267248923369570159111577622986061223990859697535848566645068552337675967356791464791603834042948386008223388538295784067720466882709156483932221400869534456721473867711978688217223525023148238770145203180453800866684136135736690156208891506945846744497524211868540364579708707026494680869369008226594224507285645594366208742442034285923256020825915354712538522859732064074544777123849303852489893825620422643763549958419808478553884166436151713320981292578048831405781012174094974495781636152267722155101319520969867460458368592515430336130694764274946286409294315509552107447572270540572175489570434313290467511581829283888789300937547652163699001239634738625939860195403890784538940363009564432331923073567772041865063640927939933002742148334537242855973837763831289477063272728960233405451464306137668822119456761100085170367506748919454226768822145934611508171206737292783842509827298015817973142041647698524953671992149951555297947451653999888438222038939140696496158295918288669740393081648303646534649105724162845606521076269446953420013437430636528115379011313455084762191114194741122740456671388951069875835431309565163936697451098465061715555684278056470072817474361353412680212794368306851093097992955885006214202432271217904108339414155446690667762952624984929506919222905745478174546321407572098708094712291149493770761008499228355428507198329450901274282092863442623334689650308787021434873092100017718564911473107405194353674692971573033137500295258766795998340485680120531658894371590462141072101797678142344871200494847892029048034168926130065327417934075403030486092948093449899223484072947456593142614958916181025136343649353209904841991401864993029851196991732667044451519737488556891523669816442147188824659734111360622704790116183595961190826934135046499235733051573621870163530583115826548749595821619615059000240052608555139893509111428958467222518609897484084844853544655179405017557465885145666063937755834411026580424600590629817858302225307618540618241740351470206489752469159794782021648431052861217485015073864762746585139724207728703904034310140078741053689616754211371324483854660928361918558576669954600010176617474141727322502448365306968626297264674896738852848035979571511218370064766727832798722050279258026426843266937873628926517756632776216650340218363817009113175187032551064049296021835273579272984707635052964029914972322748539512624871345908797337368583238132253325674274234549777355338750793782269776651958282893006133902509341329751405882935226609098429443937050990865888571724067433609621102849126712801532898724140721494978958802437611079526072006332908753122430686681577221675204802393368977318300642812032149784718310437196010707862395707277335777733710923343393610181500983188540611129017377359969055169457335740550394194214670665967948073831497857729771182191655389874136674962872228155321648715023542650434259338136051306568709819991047066387852524015658473737507961366730529543545035933282136981609313784013161167199252614690253058478061122606973168937163349760956672390223762220109852700372779757142358657010008102759395870426648787881569798358900645862497150125216557236224916434608833591474302716401423545872184034586511090796818243153351583656767521557011586584136001584710640314372122621706131687336590033787030056262458764765385547597542092361896308262951231831064799577596631168242460473070257433457544806490044693635062607180423703988750876455218913223565603631767898397696092679279694227187621990127764843329314212833873453688989771298838562746122937800760536001218376741451968841399812976287129007427834248941974092268806932994092771419196477246387991183531419119322996612595948070151499769788949980108195806393872783564689892520590885368242641000327101408992100639944055687565328160011575313528259667892296955780273559906656241987025805949613328827792503881690562744089946023164568580397476960568846656950116727449422534035431797441247116068101485287887851098487745483035226373427320796360212200899594796293471046994814020842125498490532005011890792572293319997166321352058592738562460733971530750071146016555926051296722523914112684095188234387881255448959172090716696701849138156619964077636872927572621530199476960575737670662072385887128705849246648482425054092264427342438072879225489225362571833428780088344826966970972858401935295872364650905313506239348311605853031843018180914689001268082243336633027339446805378246468361107537929362754776790685497591608946634196773451590414247805946940655065247192683922043446753577358176588463519232174361246032424327422885749918480296308668759457679288572093554581816405062086122371582974600523412074978539026353698139908916202198277031176779996727447389923564345527292336768922483326948996505716159087986945845058317280443829967301589119805788695066627043523008212240755893277990416633987826700910801295242845901293254417641204651718446115286206618373193981088531884923640084295640814065243647620520687116100053912565275578353771446697727535923361624397265293335193225326413081617975702155862542788863302982401064834408097403273095034507185639364296638586365106070724465969932294614871646953445244044529889972865530986201164533899683796278016988675550574292605756137390539853532457853590985538525932775936060054554283277367538934890849132319027806479643751795261865095426078162642489644028828329826661536397017903787144878701241818973815036563352108222103516824315528358841198301952486989722588426670079918855793450545398778510979360970715068383473218268428053536930975182888844642963457718808081687381365779804183532230940313485970762727213061533053501112961635808112643269593558350974004706809874108408349422633334535517272772791862450918969177677428767447414885386921064198067902138586455852099072968081473640928447641272537389964670527744066705372912960039845126256081603741766596237214867314211835452377287532746973006220953786215579083465540342684939607855565293136058877200081401369102853211259190318856284959463948499868325640291992685910387470250720900708977963039772738270005424110062929651605610201597023778269592621916764870101134329434878438514808842881155932171983331010653351200005348186317166262563805740501057722383317201659695969153707416606498801925897967153708730180009005138895084296370042707756659995617586323378797666520062813406605723054265316070167138006174983442123816737321419728069387189001926189552010924673385061461512409419100932890411060941600733901316079770376275505583419115702533898831703972699941995055096351478159684805260288935692021964959921512927089920365773958519294981139948889602137919424539659957610446297452640637746982217420307993022234199318697158541123255564473128708440295491867468183069285029044521550196056400026341582143453260654530146943786608084682989951873079601416157899244042254178725316214517646216225213142666582780295468706377513022380019462719807468888858854949214774504236038607067560745449351294849124598942711663530429173902639895163186666372237754120128893191030253584386186264083703459801211566325209312139430444527071171319014243323488052012660418432889864456775067697136947094943357177054469277285147890358975186266047010332932609291854652790173681788831819135376757564626785195387727405085218644807240035266489055573521396916421491353695622536389293267316179725366168770565532274040862384882880438007117158456245592322754537438357653129312234856718129870048712155917730061501564004954042375169753204308535728440270278399600635624141252186611054814822831548057970627998076050816223296638628024569774758688009694216445996537834141904063325604789322546711658754799284425807303164764936203908587653653497930293984969054551995743063601022890981299802734249068069017790059414966928332986713240976362760462055970622797893470481241667283156895629883924168596186955387667497272759870399897475895179809357597160841153427378502676676097982671566905406921464091972284595690908367256699926750176297831258659352863501839079174420086814312935242495491025300404424354602507645683220661433398672863547799784098988602989785115504831662265717641877850968569691672394936615749841869015712455541140938977789446495282236817392407501668182426131832734912412432781825811044831987932821642152136138709158338316242217616095644069685840929239034036630447096729301558675832464828221057724221638535022545121663493503438578622502950010172787276848939900794329183176430206756540589708168296039694625876578021899743802366404955573398459193346118957136165312361865353003407289870096391308118380082559998040483449103213188620119088809653016316727558451457962793198716592555227535907740886715824979110522695762833707787016404917835935455097396216392261768527179325691636320148351715090865259898336075449231108349645950872446874511282116421442202718529767262031078183000007292505644373715511844849685411448553024642557912184219252838263907325387203358957282265954954265010563736081895219305909620895479746601891912874664889776186997121841079360373110858478856532052711179093844392252049728866426851946745297378251637662091744802611394785141729002829703713554035959489836525376754845551655893960179117356583060476476053633145466231562346616305086268318161924521967111313898001244089372149847149677955076065973765266775402778005991565547546278653013176991675977819430291481670602854999141630104292388436370491274887939951801335803619605105925220312181764560390706748188011302373267322170133045432460721943971128789848376301680031286607677503474642572514871779585737606272488812912881806446253102814726727201210172585743323317289010725558581699512786187432116797193689997272418390990663538640974240004238213202610745109966844298812852589653553621857130278523511463734310001205931504775578436309158259657434511699489858608317881530109901526278198026391731244819265556066101195852634944527882675072171033085538235458556347808830237230969509435942193496485951409228671785534944884394315260337562800318219628560545246687454461303902046359441540691716820470141673957166242672662058932828221913893913309890607409563730031655020923553631460903572393597750701523156550167540730081453018519853882523951360482219385639993260764652395926219436037014246740600018794769715343681037937294808005525210798518891554169331568320578913174692699608618767878740236970017246206872940325145127496403166555324447327728180972374126344177420303886291924399631491216494658950648654867746282043197537903136451988820871284833716627034046400553435261613507946666383662252414391678061509457383410355300008805430501191756732783020011384131071310408374287635499945838694874452948107513441980215993782876978006771631420997045854446863954581085557028000204153747876591726449419988730428168164332941684051670350935499973384431340943656274573857542410505719748177488079677141688431602999985156081068281951646106226606081389291547918614983703762521825470946245810092886406742507584814204787851306559646101043972784631399854682597826698673658375136055675524552377425239697050196857946171979192895511493222284811332974515213342687983841664909721428908258454788659032244517767182234433651047970058218883698601891075173393913347577856455377856210640773256254889688540726395022251004019302459188062231305538458954479234012973170785064840012514050011353546270580993687973231536529719752051836270522064100691769646479111263292727918648069929245628215275499063581358292984689422572678811045675312384535921874518987118512668902532155479582961392452951295940887569032573326489600927703957864471554138119899770053022175378126706235217900240808507500790873815171446098152635428132182834097263623561826386472914592458808590234508014859121509070600273369233859690886891994755419321832747500186775608255507908792362105522044093677711437851782275122124000091725232221859649958004596111902352490142149916425667177495728726420569315889901263780803963856970507713291392034126202728145853766686409305145374958862691056564162301768730200677269476736891018998103257825198659123745186219858495153104297986267436581103741575106304349023704177085957147557069004314496761625771367855476630155339437132541332362498969638859225640173815945200916560202445242166446459535529465810117186897718953021837637988130495126913704077913691165387134699255004137644865721429277574786180230076819072363520981803013658261092590422670113829592771484041580712755014601643246825309185043584175418887683807772791147792724465606680705023747577348380404338239346472467549603942252929040308942879863428352789348544644282372644633493338840410901976510903040427094743894051573922421146699906118659681482385012307898474404084001304375718658532153391433335227171937482024026923940181062194137182774593183597307568329984578674370498030617114052341796148998160679205481978454204894933460644075181240780497037978934707881057902601628645614193068833960477385241658454863048180548997582808709429385547182288836879630594848000139105283706757808071539466347613368675602179848113052971233631105340963485012936769307074342884846818932255465201702042518657958567854174319622153016399870458506957326578699173726312169687816883498667879924249350555289006254224731729589039973364269637221255819176024957762170438351463820521865929354625605707010799444709117202658017774867515566592044890637219636998703843955175040813802211332201686173187069691914018270490434808458947677089175505553679056155707442116293075879604909151281185539633383046892995523107066025756190085526881724996840261754241658532344124161538376384394772750390446118215624398534406311249042487135738746676604568278330034984678839464002547573075562541655702020873834394597700527884545192820993793082146949911191704373149581437837047408578783529791499596529613291146465956847337292987590878176120039542412641183682698153451540063910545151240479365258675878356915858693833878396332657924944519367600603590379965343857759263772560621759158184652294533565121622663394957961474019368773614388125615610367770397104802826730389107569686526333866518183184936385835652111473878337707495763757674665023132570300066035358091877502786829320978445290188320007779178828402973052082792192733720687805834704810763651180020271060674858554398368929098049690061146006997608999865980594733698973602699435136323390946278266964284692309565632327465012975067295229587414770223720063605914896396549255239348596249209486551773322420977392616903335225163395574057761836334636404910013523228096546622853706782491764547941806463576390062691870333722327235741841760877817369966810068150509582587823059458681313728545702051373655454930902752847933706265084157073600879555705301819499285028220455491083670047801394950462421797718248466044219759373029723685918793973210856765764010214016795239327815729440826907820969340593845866994223174658978609772634541485087687913074998779398338690274173046640305245246652832024776405984249666220423547794181664377537035128644914925818483298978777203484896170057315829710494973366093112463714909826089358729341841532424337276983107977961459818132803888691746394354856432122511730902331473518590971963731117353611611702863709942255453085359012852336489779241315732515696887260434119301802831396725963832008019896562378576118824184166767695887876272903317086698741916542075192096615292488511968481087415230149450398094222109260812400885586362048740979991215032951848372557565865873276140148183646589445360131951268607645621830149413163243514368952474875546151902846306140800931603315738090451938102637940404767706620651611905886993837860677104479291457227436815667335735191099494856715423551035357043506123026852677216023585765833715688342618447134661528143111170916670171572962313889418144824757521096030796106447603417522536083096466503144986089502183327117273322840754238800891583184833606783472232566587741633470298350317474768004735093192820269182686223336157341121560631608598384038313976835338944639146755742704293329257762683420512328757521908203466866647183240965395276142082825695176614748406287579342077681970518597817053382691721356455311630562205674389277462111635738906292974687538570233034395397057772072139859552975519660286329896909002524080502247096760786726537661527369859826062702397003500684340664004437769900451195047846445227107104022326054523829559667683904192471938125128887448957718371422098966785108755555166907544663850187640464555739385270573800319104025963123138544744173288857728360608576987772787755243310312766324440423356859483642143071806162674671189432582435906450526246263221727249806484706780616369014208923397278986535316045795852431040208599315239676780573958079372994044929970067743978523233500455890205906628919668285867562799263620889774226980662716994236590015925252144491434369553129323498401228258600472378712611564927997558433565013208317601439825235160427519749672916963622425673578494195460430008685828013324633421375326168047492604791764113544918875027542445592013102874027762185948933036544418024158490422587015184711498445234615844614128067976560049284352447023668143558537723588464021317668475958836662984297905949439423744059292615678048492654231974695786565845743068892272043429078648840796138277307263390594628562986054623322045338446175064928920479168840040111018423434868088422356591178438549108023877694729170273542191569426698563254653736371530396434611877498157557391767849676264348694040496304617031412441040220240037028892307057228977506462775217463847590959285625221300657604072467676869962990777184334686319459276230645230965955872385569188875940952820138316929789723526256621022603211753643309102918959660959837428876323358735072890465394705973320808813856204329993092676708246179454318609014514914079840733067473824973503175263956044266017867824858088483446542985630723944956287419572498536650774149991594245791551439236256038360900886107473021635533487610697201254582381890404647722139986139393734481607713989976863808511177614555824668035387584006468904410760852585707900581421832514386663268815882994605932271428346446773008278980385136424428281254847314255686497416154692310230570747570191464608201858469304644199897213455644401380756206949177072501472984336849215029812359253768613345326724179735453980336483440699498367792675721566735336650918048165498077499075280872902118769409805035667528457907625582223050047705240799217303460860740935333887720796569215615351762010683272800052607398589916403758255217102527342418718600211567010666473858216634472317319379564518567789856706607497209738882354672427871737107809165066097091840406481274860374296805116236494732317769475701087261820492784717866338407888982832854186200484618984966998013397841637621187477718147913974876679750091540701448832094487221908661203516980200379683386200022336714342044837067298359300387989555999881241001034926268542731811422190616134290982449820595445485614784485432580784717334920401854420368874454959225588620196908255504874320503247491937687450417244361411162798800397896115081557473992101876441761953272324347925708107648028299054087381294477309140125504364021351709963181062059001842898924621350056868526025324759520104694228770078039960996805641017786921740630380135077058048893744101712205173820998675827310564392974536762645104745654625109708842870239660751779909797526205113445300402972054928229633982879095349027526428662066553249633678405152535209155014264367624927464842554096791461962858261954308594573909452825929040362127808712723424447277130254551998870370815819480783367007680624590220683818219303735343310701933795564067911796363440532850993286893467781803536269996581059334448735330618324719497335588343862121653952175919654228038252760492657002692000052877931182827532722238350965913776273919490241054230931198760471735769009363798892994922283155744622998576934197286282793342601271285885052956832378274835210529111938586391213752872009058138994089390542488562028006786979163119955098992704397020524617734867258429635937514010872026043674604019154123416014013292079970234704063258803431474118618656804490901631152568540022059978891449187463810151935340996004942829685229974033338014332942837003065371879906684060890510684629723692529681063679141548343924308721493417710294022733536037838139747327742933992242447896508049581343657272771507559441079320559862911971144647394718116288869101855484536264950071344417737368283646425601496506140199240775092623100223366998546982054170215216011921691591980322412096572538749339009453516032575566106095824691063054389242336169581390257238919577780564416730818550061380082427349691820410139771325022746123016087383287353763729020786469323125224800433011152253644830054333845411881252646239900141782613393281418183480355944415087499301138973421038766960863413606687587754147905435777381467852982937094912243325322343977460271442576675750096989426193399596177577224452055594976403717868668489890191216156674186439284371279703896032157424046106696145029919933126073003356096881585266598297290849339949943828707744148300009119041431035894247101194524311489880184620159338029809108721318082353691431474409053122011481432985809168872364275305531916953826956847051646360522456802331826269911562582896140854655956340593695790664499383340730657778708264501932654351588852474776557283557111436752896650355765767931200175345308387496865859128622535326712840358187342127141852813871184002117813596721388432798084287713517349501582583400148367959743190660493717800407094400463626911577317317088646570229761165202615519192689089167177454252146061589586183402470346366524330474861074817469167822830066525867007767034559466028227784062899712413479046779595762227403285473287669752295411387818855734855598823981661466796047953624133103122997850243058022261926619620020636159354612355995196814960127604930874966509355542853583612530254764362357417484411106380645031201000189472005571387397457423742736676477486303390628846116968582137894825739744814849759344785595612703273526242665956524342040768775581490007512257123531598327499003512233035109893336144107367169191840175058104967027136975975666321121419719838105632454627446029569263483143470452562388592211262285585141735421775746101963558829124365287430822926291367638377133446741927948442844286557266500642010191692880810948284725304207845440481680209678753340102687465036667583248906442701536976523842387808183754927462742235802360754271968799709096690504400828932013403243385160818447076536205664241695354141284199660635215707777966495689477377020818219857118769361177576671086982131493539782449778505992643426132998741199549436968225614974557300538306329295729441988811917773619512160507157793985716611744321988048716960209245711406991064415660072419211481463691130964169484828449354241624023321469186632761480378485469302814569886488568238803755238228827790062852230666469049640037231579550509368760170281226773923199554218321299303262945195532236935969964679267632148314820403102109199215870807192355498254561191069635646084131231511159581986564872105827287677718115274929268046052280699952733476897058209265897292345003717370843497321472928410189197524721220172362047253168697942555259248429211102220330672011867259936319551828445744883630126124556041238914976306944073738851801964599356770579238873144130166792105257341975133521814795673220317091335581873756396309726026089590334392532161788095458875725254110507652011915893975754199417243306494741279996467271655000396157430455038467478137020663464417987369500283147129821011537322098409339816041526328926946377713770766278891998466286340172392608869664719648825039910502669605321184152908950147617319117406559604815183048856869813104522010928818526140889188542384095939789514711056615552945142921992313814508653523071475557870699161002619239944872494480297773768209087781442711774120749660119237223990933831361985831541222178479268556736049951033958909689878457150048520216445511176392932430709879136791240427925563934312986498779435887407412654272130002738729827663052879302604238798486918936090648430023171196695813339877305393788287799405006277571437422464845857960364768678787334052380530982686436266547945075590275256578510617923865444193547421258262868028835528245871725796106498381772761621860191374074065530954128249552494706059172414096195657637415547955871375602230633551494909466541216056127125177305265796511162435018935513281432615520134832005822113412813115055504834745549424444584267013621600284139429261414994352562778875513933218145846454040390552728477004400435019760616910288897140602470076361256333968348508317464958068373114563715964522441296191915383211545030898420513036608387772087521504215603974866723230779198988751590604242332498165804329447453645579923388327331563740679405187646821062603415083133795182017695612787994185192946647534236526521565481510693622213328131208024681260588762698360236661567982859808588380855147940659633008455108158076849820367677347417061663387731483147090462129942240129688161454701772278200204117683477891063283819060612332252665135595803783557150387083589119626126009078196386993148474831319968985231257391273377041720731411103010527816839982350198338599915480972162367358228484889231401808946922190460104687270591356420715885753290906756547986343546592411792572830025696453366524687545625424912067603089927772746074891968443047865723321908549872122853816974721822502062059128034310093233262577610747414064902000339560689280584002259064861436060161939053620865743253048715683376034082901154503484106863475577604076641782041354343888475716694862598296562645646969173896694654340381678264565870407025678147343335875604575779713110944815271068141716576873300192578019917097184668595673482126688609797963522190563809749952589713822688487910338773041998820659710968892752303876258984398877216656511985443963403860321526511042989633355702022939724929750734985516269227620261050430041359884634878510311756376575191620509624632261788800515025578225365050800039564641221757128461661563918766819537382145737044477718386117432411175913473726395415052504928907712633541530435014908136683603657172211634465631806846048041955759203683495012856234028746439388433955260763363054587511969742647449359376825327859030814601359770107659625663991883361618458677546908954376055142460058114459533255006410753120673565800497297325782430378844781331540831256716637621299521550452304457438439297592665117066860426577353578751530487474016836427585127572445256009531417920711428196857406822473932053489170585846598378726206882980162384033248644598580521381918864775891543362556682895132146805825854443904699647747226563605987843172712166995012978466227498603384937832230912262145625334989365409177631448644478546792732983943733421122732320978316426742265607623124844251431905627528340535655499772246060731659182784669867881514003092668157409560087437800921866593266273480813708353608993781282213971121170536156861865918263939157620814999386421438243027654162516984165156378164211159384286977333122608660905790147719246633005553186700400267980679593235665802830928834462754255855516978718878764903086584202351619329476516560356393014002048592818416887797801859323376379958246873879613415144866346387883131043212242689531984801988059238429468638263176235504998045679864307972964451219352866145598336113446793872074981457891990124402609746090415605280736218498283741055836446750761172378685932299889230684865278053276164008812516245848880683444491713128516200435492550667080770840448866454400743638388024024148447348259538385859022590824751638553570447782527139700324002273892322884262561339944355254410262052294671271538458885281610335973683405830616489195990220709525886768379291761061551266307279807606737737630915269473635250507997108728493226339531823006871346614376373587721076414923202817948037992426213433794820334319114638848614981916601213030266337191196681461687109627049258337104726377427390998735608159879424820244632121553750799271245535941315823868220454136734504786146173854121977159308523975766444495924728179089916753194005622672115773267436686997722935248086291893321491995330069115845866228597450563299556008676353313825288541857905131731458477279690917964668403740089971149331759423162395457475445434877475115735596550178486230985219563288251593226302984152912565022852400792936463801982538859746685340793549639052767210896024072269021659869577010970775314521047109406641887552885697621729441615858903671766492506793367403995128417240720068641402366479876811252411751770284085934703017170673438101851855472196171537521374183351111263444308878958984454740637783183586352245153623401434714490793733021951873639973460402681697585089072311917450404327858687197525880945375927310128849342859596456872086401872072845774383907639012388672321871907584095248462917876246847081086816761684780841884132865839067000000043294549524061173879355511459114574137088509352716549231170689479090385364684603294956175353772323293785979665913217025950083202753727324958839399747119536186214836728316226635887129297617022843756237381507562064199317765673505941488906356408742818151418735854692522395700376136542875539628225829963759399046169672438989894083807247897862187001549734830970796294591891792608057128228689028445696870131141659891388631277815937747235186829630910588060109552901755566806757225496834972089590689548899654456814917493250306140495078261878955391263562485865133515709899944578683604274901959688015883856861348265436795033632524664642109589215196263378204458043464758845020234168439117871711677937177679240479512610294182246408621829468387844258097074760196627787651725417945109073277493863489443728971097911394381130681188117355659044381658979152700700805487145913767894164154690304327740505845415842174944293407553337481101487270331260271636919020914174341146184584542001530348751145664943170076322928098406452406667362667407973933310092898961345041046306813701196173376599337350426982296810198520070192540104926179606873840894727653903956794353539065093087037973352395587393947874566568255853390143120577727399625682356887548169307530016753317501074516706016825075580064625440294249618212089131354580973698294359943833782748516437222206771813583925278519392725328382034757669370716985808374063887506807859123389335065225927438630235644504618281952981031041635471400522562664010586663827704737380544453509288664814888220659661183909565735632523603659618033389887434551533557483146750234698342200841315521205494950909189973655983557246651534539961010446738675198715452561875176708887697522052827852721252820604485460171222037253036442568141656645280928800550143763605831072599649441400419681973119808782053234182126000208113210792068042499964942757481667762527792591673913680978037395166632232868301301904826669880092898622187759987573159655841613264870540340635518976161682947422170355463224451928947861531228706812863017834222011034519845010578646832487660886129690882972752186067182757637511329327786575586481259409308720160042954725762083398387146280814772481894028205521960659665142647874095368899161425601606468999906129922150985536157655635354993760431535028571399764253472376324757710818430138488723740312997073304985364300140725309779581076819870222938783671459009250049685754558710900301618164786355176697635963059040112369433213666107537263911580090184548876728884571259251099826611039220783382756269364058607217714475348934161262848509977590829911639355763739737658529140764616184218409964212269379430957767189611628732823499823852256005078402093900628869719782204416913419070028326784082903164054922552177043614948673343361726809042086027141384893838210504880946007466039473657645601377460879000944018512220141675159657625415953400988518116033345219227198829260586520381146492151567209954975746574121840872265982904709816997694770462990604449850597737439153795911727617879282581027512847087357920146530064039981653143193916378152772080529370561041950408315638404416909825498011690886933267398973578946640181868415691569823575632976824482224011287921884244618576699155294640566290166904997555669414393529884344256785426416518076588767878411277054465770026806529408460932464186308087091192877265263141021849796839359392705889477289509920676636221097905662980049143362834639400515694290573477125180157211558209996910177071719230360110070433115887838832366296966540222648404854776482834575670668905571905050511052185415435154693883935581977378138913968113261372724346005931631458890311254293622905615592792501747619619910195167789816900207923762253210088558477068718385012769327729528040165853397238089710497459473810934041091197558135961581559389688019805399375463461872776231212179233187692538078343029836896388458987200498459081033244747868863381950536877272419267534868383559434108549800543903363556858206384964264234653550606668157315771705647286943524697791931805605449457074120911949678195669619017236594583846472994019056013387918683672744493434259743126197780478441599321756578481011073143501105785760831582855970686785235841705012783070222820380459292081766496106640927499729889805268111183916478860755987823426305209615104413208150752142404324509109671650421240171104106253326215744924361333092353431584616983024586857498606452430473373731514518365749340006072826417616561705832384977643286521370293287354862490477204269209004148514789522056856285411285906533734534696296385733968323281144410784960481989255500721338759236805188689375263048910179867763637368914947698858426387568241127761679872965261242641338858639240902840317288244966550228001628069612879737546024913312161306814127036294494666848177759456627840498192413594973096775148644864308929887205923647604632874585348823225458670304948097879202324165737901191336414911072954988090539083963021483011802370047424209207770082671854797602475229075459932571479195113749248900916876844462002869991523927134171170557696878915617823679568310215819646202170605268062841247090176969222429250603239873218683970793715150469416034366731863442207507002566320578914755688747555064713998009811392613148483733264585152302298423464448008829734942151994450572536496656563106482463631167553075118974502014130143219861839532240334959239699747642275503548513019942361176576515872699768957821579059190220483491877652440833063492664368494412291351233701268002994279949241581988544598720817150219250572754536374839668598689738575712465569329905192505430082906939100414219886508603398132300645966218137730760808829302428147165467856699029504988433938817004582940209386839077536915746377446652999010401755267167297774358113176346426554373004638148907563361048092146888430637367517158905262973574771560959627262302158585557117374642320988752532686030661180547942090914121360014195622378837238528533728723829728634882076781218844601638605343275701282671541383398053762073680395271700124375396553115570201627669697781680319641721562052210362946292221283016104701097407447057662910142687135155084967150032220943811098896110184907852752677392010636059072237880166868674167425852095262040377190473541289867537952216658943815478381873874860820137904727137149971988939222482354648193099535451512553890348459945709335098462770020612180879017474441630675883913400385987412659638748372862701252772111914403730126856598525717019594672260471540427310867380506793633798256620843331428942775830692562513760062142474681658144834710510546503871896238871385241987006463380663107547894031316424064154804535409924523961352622479689882636381757714970981593195825078610353921060277752305216510677339843275314266450674010484282675234337314954580094515256032983956293022547652336780827359232907461841843476891030161344833342901755226243063511319698792050849126971947271018243364428587875535293284269729825282484359482787821833506052177951385602108048958402080128829538783797942057822400849685622048519237217117543553617025132624354927222362952735800709772928299475166588689248357999004059894584612784675689609599515570905931116137854160191251552110051005274977130047879292018260377033457938125164375482823725720732782957021042057410983675109220887927439748017521880988408409256253245834325973868908759842113000899455718586598724393991012508705161467342444873706079738343494849051683806840609480718383067644498876016088593291317440485620016445520107355321357047433056686686102946532978743616776470501884094742341482761295125197420824981366318444136996446423108261792979985398998037960667521980880112626771739268164465993658779132661046711823155999770668858329351735403503718885250058947728638653572979490380552924681128956854565756459725789749819461469903236694835739219581570030740746344141725375923687536249560274407279669799287719790568368065675758002517446452508993485322744672036308821544517845359588041866655186406830526187021087511218126191361683368466245098645013679064277060842274127247403680909143235005353059003845696441547439588167895682699445182420806573043501223079954623511158923314665938763817465915437140210678863734410503895655798040770892408671580314641149439394376235372599931494152250799217303912329678867634181271106641033130307966478300842085850637774763921568472466979694264816288608787480086896137759699007546281181295773580303706242613078119236448379973954703362284935567344782227396584445521137827520451373317832850642199633675647179246511661311435737512494997693252150483233440452237849818686342087184387202514000741141571856397351144734458803981699689023457789919174904208324377603673564973861184062978631964630255718470480763518444523704080897936615200142297942498256930240496022720340151492680197089629948435784356124801842962140761906692882645584123710141111312979271472186276733542786758773654142343913409038535494169037033765792666015811160547512327687486217351105426389665013845472331097107644641965951347245689590281054942785170595908721227949725332795524538021462213982532959003270231309900249568729010110620568291754148067381284662547128195441511108076911645887812704987214329521669621183413139645824108573058192112127475448059918604098198575505978622637009974955884766325681802238978981659343859417853544893942694894766723142249920763436365652072569283659692224366974214209582355387476047249153899476736861900960912027093375362200390699296931034771129793969764896317183915323744352652151072632441437929821458428783967093032852018822893271306734611895044285404770187278137770784848634496728298233580704824085314228666120559477516062437950446286707029704055353839128733216478558784746392564735980228828239746493959503318376833927511767385803767732061652634135632367995215832540465822980270585612273584915964357600506105216003163455141054687945371474327342265718399189927695308906556170665879368185668912115733310231205308190715465648475389386888573215248535246697210228316236789205621432981823283879027509390843953160280911718253577453848512416637698658467474879514056280077468311689979676623979747021478944281398320231201131389526309527243961976721915566416287778505437798259100704135207429947981941960413270822465942119947279940502475120652384229988927810227159148548375692440423259446680949350205021636737512050463736008212249987147205448242912269391030137916733149561764496232849828993374137871765907423140521748329011460435286516876697901031469780738496052729369185893228407486750085542645082036629814421318395421802120760385832100009534171842370529022026927034106543848927752753325796324257382464075325428415281748038733459473197490169622018768954215001540272206029102041072532709026197576567045849750117214804125196164076018674477934937045460732258590890960416724127041716580873058772301794099927643939629116264859491347685916306743688099015194538852734914845106746689933866399788783518444937698685227851517296983440711385532661614510914333461145350391808069234666244969147096969195307953162198844424807848640589114797152456891613534577827575816020583827484911653232819483544534741640315684497136526278363538076737762885087004587378911948104025466359538399604333425799132378413211942159237647907298270725355948812882706523571404770930470232463361154267575660034688321875554300668670844129600505604427103261095880945077983571314876190150806619052045361416720874183004648771097562408853671816511052404365303332413348824649238468570333817448633271556617189448664836207887091120230004675621621889075743020995219238011978290569872213224636530887377515733999566603176872798483196626573768952303853241197360707065215324837147299264439559924161309137255008996103838416890482904794126310538790441433188856007670052828812383781287122291616717521220052070352551106134253354890031681182927082868458640292118623117989197085101253766523268581522690192813332061387390262988822458755766238961585142883330878217598730372510253851239968511008436531718261841372363229969096727042968353110279432385186992814007601382340594319061575363154612559490140643536382150886792765969043327925577204786472149420573063230842780553311974076914195352371224199830695645625772195897082383514579401536383554872422722491804180955705744085355703217784603951188015481659233588426967807269087166923338793304146898887407391594264926491910392677805673285803072255394898628562314788253383009203712574159287713925517356471332045033840788903365367561184620815492305502053514420242547738475022306014022441137805024430973895967333896932377304867432056654803368621035966055031854112652878769142256221451273474978300343632273479493763602813279733421736233056233304573903005490677278971763038937153225250753251423315925512207618415959245696764814373738822362684499750047101627582464545510987887511495136185736961671496907504734837024101389259315055020671112831372797725484054662702082618087735201411283541552458611726345318916900366463101948807735868304647762276398685093881204603425006868404671688717786025580440553197933430378582162869120817532686214094847022146603229963581663852086281655456451022104229552033132499611220573020857529990047573990224708592932318300943645735747039732002306250913572347700323560852099534219222793000868849530626774320467036323156483796580846769802610147990474441341664462838174955137889646349803366906970309109118469729724222789579152361512743453095255233947150580336142424348323418166873678451162925476321573045733820916580887107767268968826113907545053994556837851883088699874424409870032898592849115349708775306049113314997826037017229286482318773383088957901502985171957096357410034905246928731745758435813679247601882648238272540827015405358941374724466023316734161109174333785576661280228494653994304820498666093426469829467693990791040383581674346908247641455109030702542413072624776684376451156006889769030832672949018788296558827698052100886554259761244005190597514495612864507851876123940258087362982292489356985198043710014235156423061630020625273696203531833977620957546572636192533438786383631674940623349323709677342123459337146572335130080140838247951957611563014919332331955918883052915262249559194608272804032759061444217159452926246260819199869035288566074511574950484275626286068081726569419140985469463235818443064549911639376688424442713921583523059739585258209712481608821717998519417591249400423647899561514303055155827674860887895693071915341348901788115546241981197426239584065819860066362572730686430927551972445629219415385313115383486726179273579886955879835762635604305697759560943312200567944001470475480342225018757059111685943755711086848047795528455442503346625703884038940277559759191502235428016845401334108029594281029161121614689972231619122887952221621590537884566064801349757139508214977380546868308440945043845606800746148309626623516729636905952418026742799118872154093031688879062067712478589872963161879196290180560475750737175327975880521988754841967325979424512019052706628704794900679695300888234418237660510967748303380548472112486197785801234964949444379673874501477769460117651526666009551851468077277268859747489230009432752933719359663162144686091531628689442313685270445713165980381309263397529088785467323876914527362236081162493646469351927938323538839377968263574128529566582286474511622247547271180078197240568261627941199052667692740705796562157641556428113607104540330246217284434731174456008899623145076673418839554570939672219528343664930583304929215030661092983553338766464272912645842817527688962595506202542048575239626270039321834995768426114911977775142076788941429831006400118382551391093666937767758713527039723201751421553028125612857041371523639616875831471285787070171673356755979565708210444933014911495323432243539926751164379164978451866863103006360140016857249532166475017410974478183682754590299571371083860339003911728901001853168390432865848368338806567919957945854252623499408918857839427217107083339950328800386368587576153700362638034029745309356709742431123897093675027595885774174039035815357243870614068518057180109808131527250633520262679489686938302273609173487114168221942543263499575668537999639871560866218551323746909561351286325345940667903285958964165322315424484035069057102883503052972493641333552195179291007156660338217039384870742443055169218734821713206549686734203160114263249728029793356530326435582384760792348537671033407214548665916120103097930022782715546688659292029520659773352296363394524859724450387409516028585432439652564446100096328204574302650660794039203396882539883077452392965599956094088224370446737347829081755521758222983669095314784799724854861316071400488575669828520998674713649909050434376462123110774192271866399161515361828702850386634084986476952215476799548211581325286463773278255278728156778779362647736694512702857896184291718329140833469382220577046133241234807226888950559710619840984561249404623734479485474113561777824193040157246283862361743849601070781780890936325344506584603856837443641848282214522769058186944477230289777073124628547305429241326162564571992358079251119691502951321713403445475484070671441963110602842675566415004617884056941811457703216674066471394370501238370055459738040308985780630482727530249554744796536269088655351776363010652426957084697431408915293581296410154487371860356619552065193207899785991833232671561730001201562113758283250270668714441877137106077403429770268590638891689202076915929005285363348052492284098353622631334172543925943120213457594854975606182850443995005650160959751347707587138544754298939357505818050502868924255337091180557005622277363047930896291610533992126095426812174490819685720249425479850890410413036411524294749205744650290204496842705855924893746453345659097852342244231821263234119509213737466519429294196312231602652546444741829562018929668807380069308694825184142030501434141129207224898182954762297596826632480456271779718911847635652377622638200360228815026088702513403178397398724853179593198545667322565668977278339948523745003786373442880684909830398020987575812862963685912654942262333203271404355357993291459929755526200964439795098182860874777834905113413717129868586256786870946489053135450526413391277177981899273198746978580473108725687573007777750895584773607312133502206051484640061570201354769512721887932594083152843599948657961785147941815922264854530094258783719297676867459100796504738476925240611218298374795332891113664799263414114087384683841695458111900413116605989651139518784419507720216794051547293749313336836480915884816571592765122359868544876567979761678379458739515729990256276835900225253724856227364334117288966305986879179043100115046958560643543033995996917315891809399938618497986085751188389318337821307130055880361516332595933068411519542119267373111484230673917210436962937549244275724662271930004333992255813091830831276929179004265651988185141796482889744593358531675287627243296879434915960933295078869129344852867341356721740028531986041556090178890874211778880973823791867569539288071374563825969406742685731415453024168235259060117255409086775544799278155975565343848658811697716425847816104483186844769570211741581285360366534345499982021762549201224073014798988721654465408396830869189353427068546470776279151573029384667462911493978892884596585554466745780114309997308891280869247030782990380509868899945717585044491230364507241925583634803591477761911406219530472081358451431836362445629741263890989241899705341699149794373776685627753457690666310721214426468153497518892199495196856192602457442567377918070886615224493861367825020016544814529751523677576522526318884819907979235486295653080916942994684329271091108445681344561067254986112850722408485930607259180414690955158215130689120007562128953769832303060706457352730082939532911222289444567152890108404033778187938575383294380972438762976357127321259505575157194015097537737527440640053236859747927517994261929991794734443623849250192114581681499296861679215324516135225603796985417894348022745622181932070812945631450296222966322412810204970543463488606030441624017397416575564868496490549830800180166338049510093984037389138030324429837926856005372481471220553305188579087839007275531215844334904707336808294381564511668753257241694677349736186421298940044746505328933365193124101091242261072370077854824491924549499438699730245598863581903169853556629025196059305557340021972187070850651177427172339175847532777570949508393335935527319649839914502190718294881850917713986718160741861878171165239444603097318199429905210651196790239863036287322560139326897024166451472659468306991470353484313449171349828509140791148832454605714057572124003362243226510030091792039557245769023361161566029952065065141490869846560642144026119588382836390731692061090569098349613691856660238080332847181037021244401533893885720775294113656554020810239243018249792081218329089865020416725425209558553228356684589580435442694875824995243779704394305599406794110535950521978519770601313240948551536880812301718041053882339519646832321111205780577132919653858474205489295985113396964427057839391958943205516581482793293027218622789176926187316074893155367302057537385146659629603591746551912698923981691295685342433871059370986761309385550662074746931758665547964706953357297947991677603796643493270378628811367553938972550251036820479690948171649472986657950579634595836460960470991994428180458473595279008340213221056565879952662322035877491590391408139178189348481774945893013824840511225910250120565691457712457611579449929440143861254585690472343601038940777843800191878731745765419571356795729480901139158239555216671547025219922566561114091742315061136785579543096635287777810249480798171645374081973840395220264570827961244668314611422417077766459901143386627160000723167760191330132940772799978025000206341086313651763055055843241550125945754360378417153696644582756162766449680514245024600551920068614081212572984604650531266194748682763104758784834286554575167147471259935802028873566512649093843934853263310694727321828473619932117372444348012457713577267462012935908620843358648827415704489627275161321975523204080993564687817591020312202994202447753644429504380150365162178811989846342625614130645714400700502412583328084568976362955672095546461018820832527270977761831631398279276249101819905468683285595767203080463563228417135451979431612063849984059758363672459054962132633951065413298623142373866070584930629638277560420520023978630952107093926751171017659822260255160435657986521963581755183821868241860009199028413460598884912381389521231982950827622531124121196040326530197924730782580398031406811438641952344417126564670564832606422497402034327334429515240209985314140746395181999373860351012551204594229066950456283703074761476311280958123261389542122293476158806401125621193416571862235163729381048523908121358833090437225355571817453835646464480625996531320509000602946036650434864936992344936410916398410650804161484438914303181559973941416197151022740608717308722046096471206433431471738628140113687020103234171719214347482997808760360819334372480624891309874521342237609464471522902259621559163697947150129651462645903109140865611543367585022112468497438784692773976440317349338355021160587407512597272129192470393436209263060008405756553085690002472631934351057860751322335205763370604614469849255694309149144981307965157972398205908444505792049470116807474646169759563863081669536698384682981069232082574548837432392071018672061223381528061166120642884199672886324428598879763421219683285274352024840383689836815965801851296716081275916515273748241307339411143007955704572668325482852892866285141890026550178535789720027423922392555937119477191135760209317196329984420272422306157108355931971126904205933909705844797205227600167221438783070169139833983312875603294787969347059977192475515958615102891463444378853076774617468009881122590775446455660873667070562955640104100116139263663699300887797047295047731303735930189493273729609006890135551669803726287372080227178300684518009763606250810591590641980001142846552364373896605418619534111958571467750352245281829574282372367306445897788046358689504817759363745414354519393999218681646587685744162026337449800922490135577732601911357700862599169118551162945167106259209824129823588659390683176904432861526478099908940539925924562992288189273680507624037912014677707046168833690345948433075280508338575048608376210781767988607640805136851140068761871489552838895075565621491998851928015863755709546340558823004455650489577977381199756175997675020632757425204845374838071886107917010694220218277401559004386142267299798593884121545892856287518482567145028100628795122830645939315080853173999925756411418507674543470208084088692145620582667375049502713041522789749812041863405833386802406333493988208966478082558789874657465179933553414305860085449275788522609483375658635623595265624979397245111337275092089168401824882701921132668303949312291434131616388803051992055714885079345780452654202001845365306595995538031248456246006559263579659260892361171470663129842074017708084938461157024656690601818602632362796165699487603519368288776106122399547885327323486730884781062237317389735506862783071453766853352247928534635558360480765505092093999410998196225401970224523473143482009646986373074426328419225719277682328344980741958841539828421249053666746526688353149997345231299475828412700805359649184652223241218497880771255632922708505922550982249878011084710990199327132302258013140753376013728890678242094211756100778010035492471418078734354837332835790933009899439522524894860613422026526780629853980899718473930284953676497167657241682177888905106857715926658386766632419195546076815297407362037096345979868978534311259849648752044957587040106871825123991316301514061733624566327203899773940706041938254450917083123574125443268221471975350517217213983564284740103540366198011170483960147876872719392629965632845127427912266960618039045892773782209529736197667320024447776753513454054437118826672896096698348697611945731977957952869855360034592912568121957142302578592580425526907023673568775514886516539135924595860291153732192184111632125056243060149876511178126088014744673499237182440559860570740404511201909780434376631494333648944848835998803124127060538611519254198406477335247375658728098874343336535662872300369179539457316447278732982909310897824467651749905971264114485151839367692473209855900082717942514698559452025465970282096520133283046514081714639060107897681665711509929670433646654827645653270093532924003816333847213928947931876556545324636354862063510383470686195316309864835065496781308127984091982071525932950487560795978133941952220297886884939041813727854095077277268648313251640311829006119933127504417502459431750816926596650723994424522063174445255440021361797923373995739178923632773787828514491222400061042129312539647507447835475380931516606487005466575728685485490474548626970314590821419556277525937224257519113728141202197400444056583220224478966026655163922550169114062047528421785182083062338389872726806838405868344957023027879203741930171645710381091244979519163422581479402653153774781001692172192771461450224463265430330064907454122403581830851834851440535140351939710790679822464935640913025446986283955333242275948209843094186470882956700692140178060262907381130440315627058123463169010109221342486294949304024358972806565660535631312376851134214384341513890883149191522727524803327578580237487834098209031986989510363909747241804423533958089753130703020102432720451029528063266183771798019915941779252799294131916839563668872938825423754268798699940887633982786640553586609298463131228032901997282042629515749816291213149015176593269685099344986114648349226949347654892158711061268312190931240115984162543314628046781658068099869208195051598021098982528227041739125693209314082735565564358734126803495697700702305161872011498761613432728087882214909738115757674619567564637820550050234304403339941396351304160166678494462053740077405418480977666221697913910445038378686482994203372593766743832564369145063356999074942547546496162404999976405331241216520288030792452155086873070345286768505638880214385950620885345644800388545519292556874093495293662083197375796754564056185311596244039930367859528539362596466694982913052217067904872393858558602864404264693781922916641414127243643110234964150100323912051081579776152364776577346891986543137670929517812718610102268277125342448748336644257741206043266191774697913308865811226500767705842280824112480502987419860574735719591631503339983902058330630628749068879335068768792800980811552879543812071685435899060710402467594301268173364762407609626548479551797512070932237996714473890388682849707485536892061083828562650667454225530025289112613696077711406298541602431572381572716477755972004387418479534627190863526437901163887688085122853415141125463023451711575779568633643851951332156206693248465442914162566291140660028923005173946353856464276434007066293398766501872543632357736655682581364556849292373991265478845709986209735688705496794859175370868379443859544474439441616896841575687815227393965986660558252958969128843664536460330424523942254369916308830044144836494077876386800641840442245357334011144695208237775215932864398414251122220245629603640704967347915497251254942052490074311339573362279612369280863840853046125965653399087855867997837596395395320586299218377464595590267622537787262291446177602035856886484150199759222254524213981734028406782117968962110203447437082757919063483750051357991326805381748313912662337375092086488062992131883253939564599355675266703224069585651681501175847175675010871072286271536023019695599818776675769339321811410620979583362627144223353378545388944748082011412517220547869561762019368267977612155759516735703134833659814819477805859303186217778054428826406082846009004337582100418769538100855096714448889555894012180543310469300347858567812066452228454755042446131252615795569557567342964437445450936895173867108541662504031879637861284041507120295618620914051016242168009039515916101095991772377415917229672646295474003762224589934688411891551898432009662589285161716199841331704689643943450221265030741336510304094471902418656982585903151563386331709936837595921387237132018946563154712240282219003311278950564759828220814621427151508677501225613329635237640000671624767113021634439420320515653273460226939041984233063942860026379972921694383326274366029002751508908374244557018406738592548697745177183878472224126066994763562570625994925148121757301405190585922183811104083625964152807850098904295422806767902965307807989540658893058083920456244130246389034678496571778384363702490593647324598851669198038048653380625983155445271880922013317760630242085916588591053957111858248252044333910915070151445055917816356581611970879510187271856243790609835816997720986761260075334296361477357929889479072541257915808235699453920924686041757377434720632552569747197475147255243866439796910806237693995336499058093157269205824461931957398315482808202214031384374855781000669777614320095504404229720464253387512087583615563771643757801658786750376686217199727778250965479744273109123637821960082073336205780389728787629908093301306657949446087847666555602049467685649301824773852419631800432528146701197340265756225529660250731601085901378762429850902498352649397453311520492204048449693668170039181737081869927806732021046752295832279970922913078301465922516554760032862551219169214315838819558364524086260510577640708474719417771818709737842971471576341893825448751695747125735822553125086118190607722729432790064068554095980267242895625832141850208878863788549412828910208327533904844635173733324653692084823823497768608518021908954933630011038257598365118308801878717051349364248541411394691775072023272269470035916375637678734322291060142324589976957411027208250135546706788187144868109503866484923781133811416097744252864613254078208036464953388341962660420845177387022687991044995908975825062522454344391953967770324346843246433773278136994598506919829854504032851125586229972688918419979783072996507769979382745289038957965649628230252732156131632409575213056060798667849219145747474554254942054572819859306837175012338047788936830310282998466793064880496296710548547382702489749542112965613675535220014144812857196312845295553369494833212975368297352333228015001768553000439464772036370627848562154192052988302249409671578167475443059071113105886627180789254560524157788168884887718745271472232225802174856315292044544310929726269554934056150433655064209799357270477269848202966000349330771729317326531777794922779153014952512900137853838754410332724288173437641300309359368489902490560710389996868304965543693636146684377671113634955412096497132561286521520759844651267798175688212970577538745124226357707710455302852103224413980955435467062182177931452673208752320605481980662555231353510076699649085880255791833388951347407096941585300725026751405745067712357796818446098791752694546371315208345247165013543159334301949313352091051309421468470146113155740229025092774037636648416852571409511027958502674682067903807391126744301413981115096270548596541251108150855267884094650594735799114349622970883187052912752501904862527024435276586846499077458311660979233310799404643134405983389904000283034219810449578082866420311378092226604792619404435548694975353437274974153358215450126380529346781788402788693682095290175864986987289389022101037880551525435744100858544429331695987438734908996864238835878722449670549801117212354910415220907180553144497649046795680097736706578825819802642522395608368661559880823740099576676867888421220640705929716011472668262818929528619705648188339895853422302199512790237667925264406639591654850707006475580049091408235516443935730821063491251644897797254319733110177810182483178211677492774107422743096867764545606648193562947593263562973904333146819270318765500743918299032268332405239028618953307028792669475186755156937052532938209780012262676376033119662824747621735334566200900039953335225281581637972870122420903972733921061415732664409491807317746426653478037947143921025635558423715790787228748966559568547383942232266077494331455840059118575642070354944121390930242670047345795001746515424571804468048593804656943466909689659990667492516130315759617567957809979348828034386837526793973509558172855807493637756630114650159546921122724366396154964419682413945760459565756692154158200242416285972280182727812607104738507926987007396770337698547413795459245654857999553175095435859577245129151318662728456575539183544299403997849130529351369409896321822979077417399564212337971923264752367924913497258458374024866877778023105822859073623924621460425244471622904734740047356960479146511462335930550375004154683466160511829101394546085033592943802850547970334218449281781785985163324838076971910404566212099802319573071565603235881815118795335946103880672375121016309374549752363834394805648074728526673796986418183939291821358427935971103592204349266105279632062639705282010705536222888561578878433991236968881593644378296452287164564767671072350532252083132114441867648986152713271814414732518854718353002944541690509761852586086987606359311001378611600633009978927635426216074480882821271261379771553096990153159218667941029839317108969737228340243416282400108545679824541319951013747302783165761336009609440420401414763559337077162172976485767730211292914949100787431547067721356618259372152299836279557677935631991336626859460809452091574369761858902876589640926931863143100204850583789668047912218894804830397652460064797437339967061293887854319825938855350932797944529796290603275782675757821645627659899548724244537320523453378820179191894405026921201295571624335756938408446580142424496069190538647435157187965986144920418939195151179126190910805598106148355599352866900952861945885586470026548808547747629847961602020618414934123063364740411066579017857167821539261994529052764106830685962693475926052534271793170721269191946748311657319715670702492537543389602285417820282041700907353164766526347482685144168691454847391532133690283579545612874686293186102790729875757325299070545278145189745586075708596005672101469411286466117673090142224242277227947058321766658062010808461680275287054389272125450021424606554711440641241212465407446377268026458855896357140861126565721943775206401385173101584125542764532436628477611492741576563360281645670028230049268124847750039116183499867120863979689860762731072597185040424286052933026110530331376007147232357053494675788598365431496077716373109146097092014906657292909149832232508132694710093836274212022653989553514444836022616285473647724381824810276302844821392455618271257325649984902319478846397100148678355940241522031353342865315348142376481388686924720619475737732061557851650961024352661844736979994044068235643301011370069231617030936299793156053336192701107612369849806454410943357527322501517148482355781080086848207375401099452860056079954143186082821487688435941080142813068567646594967169952585121370865704431835078774728445078435426999272135739397831030394332482731273889309137802935945730394700334077464264337443778402691296938450157390013765359615474197892598265875982792623384263617762210392599009298555359506629697179038212448617623447147917610568852026211760105060008838146317313087595819541299093005242147470562904588671132443469923681718759809802938288895661806339646389791696538279440642752165088524204417704376268666062933032046135387030438012035815388134737873349774822221678790602518607259256707334842177213309243258760415570968777327584189546376901296313433228447382637506229809840424960015708700139240665722119260361000334251813516562250875209277899525452021034206494269799448318019974525027145570100042335751089563089242896675466897700301158325547662328096285529815517362785655528513782137493324960004349045200248409639871995164435304855588921606557203295997940264757947152819631546998260976715097585246307388300925591906599061849396396712147427930978704308705348432899208818409098636398077516118772514583302686411393186898360755423780595481110694462655984534040057381450535566294692336366384342644906571446717715861566270965103426188641528373021945558966202939173862015662681797980942010291639627875965893310262879238555058387581366930196948753474715010421570779088066879217489759292212243826762300240655651473717930891629268983173414928730524587741577215527359805268230700996592144425005014701609402405687438930365832179426104852890717018807998771360780515801004040501775228672135046625726422563973134056219518267708175331165365994569176146150568299665987754157365627120034452933132467162566655325902532509806355126520598054761969775989817180217110645540139294996815311890758503617082726141079839356158299469064537766082685654215482742782118490221270606292041363409716991256202963747262405593719451461972177327569168982335665372138361925084150713652234188910236983870208811778383490479302562854555859895124732233885257914158158517618677831590611411221592878051007712506290642525774665452537417804112596998295651866618206916651166744805423654992928976605540829915319163675374488479166342572330889760599403264411518485022435698126497642893575232268844662544625341967280270274377763724327197753990046546792876085771180801397030740727119041899365417298661803580707415087927242862421915984267728909329899379220138582446080213885891846871191423638021142903620239478010364414801996311973698783271391591993177441987038172140167915522158918162321515428067858695570651748847365167555675913596541825440548073185132431721177692289687546541350354326757335255811306101529191382711860151308522371900288414164914530673139295923809096706452023235606679358760401167575506265702488911696737583176272017900460400267676692749627862110899890246358020376071491943557663653682270994602815412626287932852980028855974972179499934645297123088105258039766047132247009644719365490684398735048508781630167416896266916072647701167277655156040066834774138160787818012389212672519452363724537808318468831433848030825167198140618968089052483320566687461901483268367758818764227805245685657982513498189569234597340359456940113227150638134297694104057072990262382297190127896845205585807157944781059071693947639626418964435926350672982152879154911275047698955187862580801639603573978734703371835553554881815033258700955228913888638750899482110729869129502344131922578461054735535837015142540523738477863529033241683478196178759591799944600987349844195495115879993057987899290342157795289651626063174249872553095847913229326250466408133484889117903503242448394546716049169844632046388382274327538042692303465154070521687981111942758130855433008258768471163480913756486641250487228072189853700863049931287668965668226541288053138880043447740824678476810210726706283993325015504462668607173400842116670204620152915425427841131069174457516951239009857823528227442075449929281965000476789201078153310104183409444096663298071774011085797464909899548131515960640348007605506642098493770846505169408839341289198339988565199911800561472931426629306384386315889386259185884828738497120869141426106114366417985482338032356287548479994619134700198989340591389183849369244723023421004604737670233295295935944653078720603716544423855650919059094509501745153129294224214993479644003256019168814305894740752656505312846987174470333475781178339692810835058853970195117230833662034490764225749117266112852947893314184441555498570029093145997591118729631318224797033526668288782468090416828821336903891689963221046743872953974019531357807168987811269557555865758761716920586839045767760293013110244602225937203356430462922359044945885904649958267360466713350066154393466976434812666670935121091160833379393372679916031853480056319929802352741870321222530515857330339627816415588838889494007705427836352928704793293324647710644540373682355909591364187220857926084079730955370446107567688164087378949288053387776366173660213354931616909257061768263075712820010827153284559356778169495531577564238652134563702695685582204532633288912044096272859347608178097966629842088364692915398901703408355448847079359292012747431470541699705717294128799874827624067806798605386802919867166058147224221838343600513928164618316377707400285912836676113638728887666862451021959639805294990752646538358700410415570055324917260606698183869060915171768833202520936721964932303136909030613529457286583973680331569872527787582397722970116702769779858832467684833730471030811783959793204286087167930545647085704476188270329712261401926404861364609543074681478836699497737415258606034134685608642683645189454880658509954119545461419384271520315792161737141521628358670533888413703906328784668367998973365807659805937362324106672348884598472211199159500283617024045013358728270862033102946724377213510072603030079393117244854508868582610481937789921993789203796079245687792931476690559085817897327425926512156107261547098892998317747980146503443918790681249496273968187353111665731373206822046404767870789484049445448995648466516097606045473544700522168239200482843119923906265486026504486715220827690829485894937915759893790685491879872287384809480116830382432831626833765047001115674356042390523960933715959460733740788709097861910586309997098862580121132268529275504292132188086119295274763368066584777914754564047887321558880039666644780032446152121179467254554763421704559864337656567291652032269852604995069093945808064319472466099952814732360593092385055028319369680792893659095793586275643770111584101792609777326619286810591572594958413631062803307600269660571080201402332697163152360571014321270659162600297085146157740317346093864248612841320157490955996541107399841344473456506977858997247566850804340076014389159257183767501858402875253239528073215581515188128090794827140388330249784369843227326321852294750226769345340253066629566468153998511320806077859385573740046526497968599283595347672778108634671617814736775044871140972745314538196221188756376223899974415331939817256539049069980724149799332003571729050798944076337656115780628222004394937835926915575450269251321321942976904476360154334321509829191313914356015992520200090431345564538536675301838456110459031577437479508075376098551914434029691439814704175162697345808443002702166951445618297011195131877208277943215204897613708847815952573520409396553768354821742976457160259131551369266975336791974753577134977057924016224199465418512637188235156058303147140764157270169727483401077839880798181062124980860359246435586873716212435118452521392490378215110286371947314334089752167385424196049094655043794928367646043044732749090672284648588016291376971106552714916032406136840957968082571671964730912588056987024724558487984339917337806031127768512226315379252260962252205615432640644400786583495324849121394363252522274516544604048719165237760680095731110482505628921753531539181735100205964195674299034807561849023485314117797953412321123763198831025051638631416228631474410893055254742372128684509068980470573087940657756479653498934658116715951843128621818466681685993074638612579981888403043748932724323362865698133781930882208774610544883120663262019097581638816971278283182654844215681727224409900463320723609058821638175488648772040165387124547074044526505855268002244484343948972198294378443881562586461695948468849731810803658564117437808511839994940906486095700073837055518893087703694550623650637903749963182498637383668966794147577895103832647159088559964673783466980352782686729019573270674454811853590239081800004829428356835934169873703319373345371152156124832739946513968070000478390075106288999356601827011398516159698252896465540647508996989848025287502301830948866555560095149885202787330567787477432289078228343788385750690800558359997012343408584938159691515260848950810899952518871066772417316923444956238028760001505184291125109288974165231962214203059269666098203180571500959853992614074575876562174652157411186884479483096395922918562932676539250145606162987816632621410659740434840974460075637525179765047748330918484590549320535828106114033675175062708060052185165974450821866059427642543532078599488228553661721005945980516263550451153778110992123837565134592472196685047694102436767211938080945365245559762814012131183798470928613640131204051638436609648194020754951549407307285472922938773789430676853056482116871250442893012496746686216170534387699032348680886894079227921974266879140695160278261722359973143882148490140807158579419139196973572900790405545442849829901362970310050170186201350782944143139916031192838370690006548340990145948373827817621820339233458476713816544016953064033974601679449379507243621941040579088036602959053049529774433375019391297133941233793278550325563485042044466626841508356652245163280915618068131007466904072058317236047606022818728852241391312725048890992088084060592114817573119286117520734638097337673918153611812621061453437081260429042473284123758460076106044739492497880178988794737127677318665116126232510283055400359061112632219645805300344854408815306715466059081666076707726150787357634055959938568488431820758641462758688830155336517604376962446871601878310938971792555990807743554523024819713342436855991105688794694923973239816799483611892035509104312596035603646946993256122261208263742291054527683460668636519323760588827098726516449455072837106762133616677214041794261139522037965241716247312059322599195011391153584551887717571938269430070150948014330310366426192813560329012146582196217127226436617429399489367809480692222181971365547210136633442429513379707103794106334210327146316948428408869245595532475811337516093937515608839691758452730325949458965646949488021694717815101371678202342247328114467702265438936996673698083285383262322773325541595636642147062796310678425127956281919098553012061158711343264576681523824578065640503500888036599873696740678018544332642621616282025030877326483093133413019066523166925283196549343032766180651400404548881024292860938932217467138727019645865590194175399162116494696581876536633031603918947506440334382984166220304884031737739405225720293838927356543346863162516300772494132012983485399176646057605668279044965354631523661473041930059986201752343080585964443101484297626812844289460921604706294692665954659719780329509770545696325240811716725062716030841739878931637270318383327320395864781304048825801996569910738520470162608153305705037947372894118842860375125735167221542474452730765877824873814953295789586301684639264994802993180930150864743903959773869410180711651424678656639213303198486014349702448387785892937702757047857192410890753188524605142484817395295693982990221235716084635538085637757358254720837900644043765995182514792226208177102076323065826927086874371361818963475961823522725945930254559057505558487675296042254044723837979795302947610496294066489963275823161222894020304636822664932100563322108635887987647200387201007422493523494141003585620261745134918542765794490674986550709966992443316062961046188659116840398914032089612741396160137067833521714225598693592105700556718162462175716171598654392741968263586612984428891530406392684664460928413426982836852224298594131656681624327239401290079567401812012451871435000179284071118183412575509982404014009142327891795953933537366596275778411221116425460879508390043362398961318213505434938557350185579431562997559534963478952825961626153958899490700330084401208154539581688500754226837567307800001318611357191472314639008484532970885214585057073182393120557330058912983976623897047559043212059263133489498510346213412033575114673548170585028031096642025250871290765592475049995322662010662991614497839627912884947175099489315419211681509477191874112764782067310294842221286213764938736587440259687437007008077320836858392961720847775809376971805142683040915787100952620408357990763691203223382255894752329930510000725581054881108463866896219823721275055259078645305261884876777566852902964733258723702065179611143740038624933025146028067828167327587232501808623176972219639651551005417702843052071075424463320455978395715833599577646220748491510916649008845078462067699848552376288017865839826298596710473967633335400558776046629382283147940864016361323958325693485670857345321631737408255535542064412062508540975869647865685223412456515210842180324858315792684997664298709855707769061341550393986836472677805947658597683932952327182731572413547367860527336433096368699391414932137117868711839923669476453645755896545675117646522587873481660425189212771070546470257842375390665590976586171867084933564603626449219457790057636195449592931779191172123770422895265652714418287805196217550798437803523039213656923660933883379710039697432495476525883835922709394713196317319189410211729967349062921496842650355197285336072552028656321004958924410023345359717442168132007246206274292889862180786989973683606300817513726021341803098740796429700977098831786129009884842644875470153391748833815699720867548466556749740258059160993191202982852379980653965880389629153131488622445826029455974548625077615700865918725250107864793994877779374072928292251830810870994539280427307559455477936410216759978399040341297462589722936295496999974443584976407953071960330224014362774464508510655510999987521121666539022800328911135411279471522137082805046056716701982452145132522807392532253772124015835329298630967068734106849053149976392004781508668338488787409057870941165459360141287385561360984297995062272871357324890605106428904457300275098944186983412196712987807982265353179142405728998507717715824559026597184890572347768245688247264755620717562149607685536164780989460555601051751546632260205057709700192460042546620443566786514570841102593374087336321931856277813556826708475041950138609862768107202776667132542204290620393559204714075357340711330873624617681072427934427314478698830748088259099181417944936107576013087478038192904756968721265074063635926855669868181803086267010317648287830132292463272731451758049575705006786289481462300654112168164464325219220198075418352567811594346757219877969826952958263772538609827426235015594071747768141395449897563712808904360764656449963313829306494305350623839586303442910803662377903625668924853358278342070330502153593469189675181815015033718261257745644182295302302885024050639293828421895032953042185779421030216875335663713677303086062419124547399007968433094632704492031648746284131487198849223725191834032279485476919655172214877081782051849628536881569107431366640887238703888520267167314769201370980078542923028026947716079328562514375098658002103078208454362867355272769738276097130380940170371040986436836157835080461068320096123420284980549410668083988627079058863939737263454787968092207961954648411666060152345274943813399254536000039487585718618134086862795295589291124637833098484172538752504717134660540446026518774523099047143836549861914185575786433346201115987375701728457829389807484204633940627412439485703009195643231424079152625914405753276271258167833775334829011389326499866754407234702007441136534857020134016688875185496460523471664919042629134269394710594370062084523142949584738139450583010754148260721171903599341842845573198438945462699125794855107014632712459468419180391810330776920465270588043115918264437767845825048313823088851095254153507074534868882452879469600409405807636262034286919993444148447060001236949678290382258044165036708858772437889371396789598153196917688259570809706160166246712372977960054829298780846960868235533257786629958481751678370545911426727872865390835330983529267374782567636813047374312555554320405294434848175206332736846184182362170552253666507705538196162286891724682235949432353051688489797965435228138128382513012784087627749436871571062524309420525698125198123953061434440034526738995473315508450655715397949387378257693176096058036640157964035679503839576740858259846505529339903425435657331567727630190792073553507200230839930295733894941815133551565702092465129623360422083845549403785825402153729986403607085195621262904710235313260593972109443513956650444108564796673437513918658144666485956606420022230450053754974958248868486937889223051350234938768877525332748175779166924226113816847358956908951321681077028065203313728393968878260073358531459773044345138979704440248766227716646412631636494503844046146557572624458884914136481048733337244383217093422248374941410562095123879004152860703408334247225882037306854261805677908813624064018621076083318063786125044048810682017827415892266085180981703135902480836772580117965899310795573592927672344243537866872863639971305997766266303814750160913414480709500760273642226305228263508374908679207026619061633370333146660862742771473617962880760891254858505028613045690979271836461835634213769478688183874170833073000343213005606912139769282455970345531942263192145939653941347035137009952434565128508307682920628933425639756595374679632819865537967055839862966073491088128607209362843192251220970338165291953573009692953728603703279918706706966904377858286150118691489762063609102977507381503427670219547228734865804996306002364679358509588631075741552993689878809864451620880573630066628840754040074881714620670199218883164310368367392499953520520281421430922498853177809036957255714690995238279886093363145045779240455254013668204000669584989344621942626011549448932428316515341848547946219065097667201642409554240701048960226753286139541326152486441409055746843526674559988781789907660226774362170205964591324498018343631825917126365864471738579199915514469714507639266030354511490178843830817869950945171820288340475660973574938707789730846381273268193974882214416799676199693874076024902863978794316299054613626742126952060551202688092725037553180456673008367101637861060863917529112126133960932346556610232811363244435903556844068905527990881414824678884494702287054323934149411800783066801485365738031131086013103619771574033958781470760289577592030108256600546331240125310137177896970765760021530417631391696371956640722501525339576304573811408239875073081060637943982433136908189139864312251735169774644155350584224474150704533174487325507207043676648480026647487555326725489688591761872243557831817882829857879289004965801220561663932138802989014926927318800875073416859501313159663516664771757927316984965832593606071467689809169280804385713984087062233174386195719362800010996783815592206050043279282545594842808562823431158545228803453083228179970049120847177295791880828770880443669000071728424968309328485380416117745366563567297271812994955560071647272950395828548522340877682674901985212356569496253614680094918495243866943424991723926598315330296412682573417082144983097145288375460346702479489125708671522043987753705199587721265310837132759852249477051245787265525039031166039474131279491389381713913385837546111871846128242651015659394407698931662901874109524857972686093845956809535811391707479386101051122132641727731565098120319188175133517597591929625390822905370889773986859248718225276987514314140461405588061540479275924910798921654154291404060267790755303840078561034098352265851283820024705939637040563756011428940575393886498202235131285358958741247248913631281508157766507652326428711513947973454314153515182778479580623706569353261446163356069021084400056257348770161756486231815658507832401805216786941097697635533781266613057173174327780009985928544343777020696180329574672203895588958208483628007378335491802489747856171522605926239666700517145546016401846173690312865861085406599355341164218748804340698502357432708348794237556906287142573486005826688796159827740468733041949287196314053422234579212046439749741431154981832183930056448959824744014406747447715211568256957854681027273653881962190681604580029316144898209906988054136367744089254457740389469964630436533505338162523752215960397223278274448078812108573789334407790173853844216711128125546067793419345435886458998368845140489906985008678508071796828894387246790070954640874169906357381009027408134260431676407760758638174644826327855497578423280624541996515093635614811407376962302652852943071767043025390239524795666573450548898822140542414096197717178409922584977837727501661226713842707385703387007540865074646153418936518470558555015231875415749485612049379858343437845955365549629456758890079692806212902769907815569925256566393954336062267038547223719800718206315402357491907820324954078578086261479958273213947377158433075759190081905219819296392952319510378211822584210258081781849292581886286115309246479595432966111221866656591421313869579171363910418441725245672280049076895177693223192095056638352260399157461231542371437969951150896646651162711572159493549054304816455807312193314124033388317055006919291016424845331042375235313707614212934088556014673032010848347718303979986267276529608202672722954745978164822800029341582356801679309029072886316242575141879789824559002308278235304439807398424109135779775357620264048819115389296566715359668661193249838051802391375552021909397828572759535117683939768952107181660323085421574630757574180461119821330834796152352726724123357201781678559274546402511755747353764950293800032304545579181552753541947876354419635695087966259372171274827855020234056033704396085550034585226636625366261860950618498247625199133132977253424011633850661644022309752779571306151007941566590514619307558192619002178150472770203904977621143462504378340369432262008749738215572687100571943321313957629222144778104411212936788073468358516478385742929679200021524294297260181478048438071964047749660990645078142253618459746631019672736208818697341438432799067059968057449623196300032553124905040419943569632372245428591875534688439081079794866623611200197589816567778067412330312830677550891854895076758258011298979790632170560375589979533080096968218464054721701030000773246179178312583904810176440874357079166434525698330998499838646667612739346683444200654767252539466933498311167809739497572968208746594789677963438210871351601839339545106784595651318820066953320791027712644374335032403781576125851478465486484383504881795243550250967537247197829202475090386979150274393474383565663444908172052845735394063642849043200844537021676388914439317122784491964555580189060487670883272161647649460524291118076174527523128584186152135726316177696566923308697863797998546413170039610504585045268897606319397950152924151205620165194793768836596111421085714201528369839163669453590361467311661685305975545745384912601135708645553340829785068822041517577495591889994439604959387616858874225605267813686544005195197337914439130956105712840535762461783347517870940253719807117191223320946622330126285331622054359614858231991234311559456803089176138794355317549661423937666992095938251493354684747659749059424092186856440300911660211243773669833012067611069826090893762098995794199801799068266558343247570179141189121425939801159617769448569645221832125806699148724899933651887346739044727147517012367827405199973156243455458476328490224131694496063891246580243228240528967691641831647594367270827044331907193974281246555852993600879817439527713785149399896340462571935607018995144011358674733425611822497503167790374998015692142808446752252010051132582408645142420499843279160814949764780246408472801238953551460876352952287793857289085785698534729481103098516502053709949320908067404382059980202703845504717510691365383485420010799376796064536739481098053877207572122868258318438874262329359800797105329518551453688435199048967208195520994878548725591036028536430894610202700951150719253718832806420001195754650243284985864079323546295508098028105972024360803833444102525082405373475085792548825782813071972309916411982686933847314668733902860863705275440417616811978745847322673547857301949410478848438626930403977320215080700043046031677468571854676879702677382789333363872771875174117436291362582041613411593628133786522615538628280603822232244099823746438598832833036469093044880921160688018156907223002176484635787678319349297434775287656792355684044370081869284366164732787016849865488832708592437764255958714148576847943038655592340688065723692235604236966382129961703991919483349179890044134833132433193932367419771718650521961751690121470157266317125960822891117856987155462714631177067738646225098950646095305688913048803038468319788409451337563097333239359111552085471017369251633907476714901417784637791841374744979821120323402604380208194969321137772912493182072806822326353090141850973828002248340851646129845298139768968816500174589021035318584407109876723875284007578571541955445395520480540942707170221278377000030475574701498951896264956843841235639111675033050930032153936289355302962814000048713037590025226054548876977151563212418794810584382741980004368571679790448815784082217120802935158782849855548672069530314853913559076067886982832302597649193369283259784903832415877215337830481414185159848094014480721335101554746560638087952589508711856246499468825310058894338962981580870100926498071065477563997318555459504709051016368297734443660010926037014879011777279327095910627440846047950863061234136100045590788285426163381750594866918077479058683496559547486589884178211954031733541416679057989549493771990161580015166258550138915017821890427520928710005675478644231628669300346629703591725188950410849907353077627242506573174514761640247045482654963345512250233520142625778590142663719736589869310617441385907448494745337651191651612429945948578053313281801552110006966937895487516885664906005379056829992174675276321775297040650147897598065143269132521406944437310073255186231901918233331795859077274924991664888272265885622694229023100633238394043789591212505392496622069902374950247182122080281047638872016229553957889467094898919623336374665401889480279154166432982900918801144933437303498761359185195650364985159769822372022494543780338798412996383154144010549523774287506383206515764186032105374388139423727700193296843398112347635014559692229261751146801502388473164338386431673073071120549097836712395329445733798607280181290907641997371830197552014576194734187178974703355745401051029180279993276456457427775984336153889529499187041423781476885208314627687950038670398064053530019367991981366018862896392159041856020313315475751038409188294998291224936124636496822878439935072281800545927421828538485170155014198135325901185065388644775494585423756515495513630441715879465321908686357318602821357349809006648381639069732900815523231418266493543839576904009116053097358079663301401988702550780537940341078233224132651402304091717463324720327724313469906664341254619621015346785350132104690805375474076657208930552539048057645017683424508243346424695338503334352244921724398285965911751744561422751440118515396967295127687030881336238426277665889570224500855301758993799620026762470231045824420366612639377345644218146764299751430262257158271903259626171581301653347001339544447973007017635515951224629600173347136647797280858850689497400167468934493555083971907244842247601462327357535102227849386522720725122235371465396557200472486543527678910845293758530820083744153429665390843408649207634565081769052780072228342573055463379407360496150202766899352354138217159865001305448376904996293444050088850225803416444889486725007906029447446769022941703617722399480976672147787723543317817336042822439162938974143152474653778695760571643778137441465912138957897794908982094062148586513589411851956049139821861016781997657502870634995612750659562790862214839521611548381168645359535222863746298705803084822051850712351644613606162683259984570634877807711061195687152322361958579807454270535541413084391168397883526263817330695936404400012157446707806334843442802668243356899289594427676946170238501686756495751883984437679969614002832001655265145480195105830645194190428677578318383885783969793587075489162372681596013999064865205122098029809952198083842575598888795262268241726466809023468093410935567716717729727793859953699169334625243623235398545048522581565183713499290148312646167417357796965842676666324146980993819059316768417300213469057060141636634357699532021315782116351566611992904579193258118368873094541856997108770233982898303899248453412543129425481737154157897952236126339008538011110992712862179806045987398452111171905346642343762182204064833688353446292346025285190690942552585489099251372753398539887844974371087474043953418630688068824576239182008049523890331025133056393047112046650374138547935556723128836672966799229496118475162050551377649505301748412251232224402490610272497356776168991620887672871410053449147709834153728146184536452614340871183842714670684699611276011501633920709393618876523095526858599073785852536491338490979943630022744816096279448027853146024389059348610331003160777655333120214136924569622765522236276481100754611148920995232139771336787682431074131881040317571987013880992966393872866049252277083056344246655951923696490351738385500126777335751399480922266108362371705102656868767129886989502252544728832728097824488358736842479175007797597042493127592285157813710554797938666897524073132764010754731927258903637160979733197862194169441242063833027937257356671763277225470558248081811530095611798633043004617817073174738838868993031069656504665282763964930416160200414051229302263543602455136605335738076234576390363187802560028452695008903029552127980657495932845277620573421475629682479098581528185738542361651451228557071044673314546131973721071408466946003949535483693257975465108609315131183857265793032351299660644300571580574086894452885581679533353053870219088233875865566590301371153811615615766108118236327924283866068923538848852492157750662705531800736583650982180076802364615881868554997855306048612504458570253396703287171808824334034408575560814681297861470097492923778795621912020234090744297913999112794751309209404400101955606608465462597999584077565098860838620360950766210082944415082650486247316578252329077687668110312004360921866673314470640254440192262631253082865623039660883260679647544533738673422207423241656642477289983975843666156670374401267572851704148698315927113297690606148014214287040279510463959494574667154258149127509104604885972552065530681922022605462774863062656597853513876390698362093259359634286160655078936681883644879984525055816752510859233522821723665267826642742003140322865376856734997419866704027208482249781406329366241504653051065006545413868900898424588365080587670774395749682592879203236340550625488373655879116328123650699960836895947095234688547385035794985802717587992266666635826191753714312997274136255518846760652669357726460615153785274135158295131669621256465761383668602227291452839008529475137838072294066963389274708450205187020276810631650000549329626784428816687716391292536832688547865855314684484694199519050529853719614178478100350180191348571112773411172985442750326833130233440375333950992387408624772329130739307291587305437362386985832522480138236588467914439449514675907431502090037851983676664241887707535817387634692983459987953807988540625619106106852290481528205757610341476165718175153418892668809005933581155130444544847644513760275240278234091456894545091880406279683037727959981226715040237319923675678450729391197657531445390685974773520427706181959271164846089269570361542600502363675312832300190911876212998857179393646734099282548074840641997441108818481375981760469836994574613012670367594909656952200236151941270425788930743969913833366092550509186296205132007852779088236958198476858667266883856726584316785053370940762747304677530565442990896795091923299018722734283979644853534102191831839410103207579418782730135013462199591900634814379912209703322494477185682461475438726216427918165848699956643824337710605464431899641567837633104774595260749266413263130825762486101333643359231668257585727795264570441972023238493779322153869471392425411767221244157938631073056106480087578020902336748178405043591065589748959873591781313720675402860998045829802700039776953437631534089361547860985504756937966484531517728166088121567021272034619263283782644771033275580573869860731439731760475898329096473165133428633563228276354341784538865273818501808569537112988085171991626047381604010017937873494183583805496505194146238442415625872442326645683499232050882145088521996377204713557323863399623345740082290793671901748991457466990876868812372981271767107909801534171272681434568266668803639749264734478178732699192036815652135959843472304994505345275514049225220677467902846970377719130107365903874286054848531053707122099213031110966628072139931932631323145180956961700629353305286488050633470965768688721825889599910370895365889044446025006268325691360371604155570393371115135859483663118650319136609249574473689260946589654665020667437198188176380577883120257426671059604036865194936096851681876819673060952020837550837333869947860957864456399311187059459677864223423561171748946297127469052925853186868377630650176470318452785564324442611842236381428954821473672743602432146534872088704586031375436083192103128410579517190592061393552043995585748201034714493044326631516533663682651585611957559666474326152195588797196231260029460535661773609008894078446962188665401154337916106384504115905459012221030656795939499705755375132146986957756977951302654899883094112179013994789031952487510299600465551557605082924039751995366121560370620818036433212494859878039289650741431351644258980267264764826632593397813125299530132436356375786580306156637610625292093293444460193323036408768993776458463773223580184086843582829088456791273759215283861038618417823642773904741016790671069250229530821601401226308986850359686249584244535187091119584488167351109183449677425191215889496729348176826270701856358824753267351137486933014226104185585200292141120723323423031969736743267901038541571414533419033134255065001519514305049552626670348429744203832987317395947805438753258394811809535069266999056372289707576976091417680477742281480669312258023635358330740486583508480000984783951128186063368384345801413897068784775924842474642009224945480342364767513242501231802197755453467622894435361200571515255355166980293189912631416055577102732846217447689292872897678432680730847124494932255291047182529809017378373945031528232812237786533123440469096534686471490567548529346071344988743222096721394811913290233662220399135562036209544851531640246113683760432626493789710351953317348254334742223741846518517571239197923402308752366548577882205563968686186061808821011607334880959533548194359419022444907831862994992115560369871283487797873939059213186159224613114335291324853332395065878571973142984373307302085372969652887240747033340992474766360145340307722593592405319029345846092725909798685140704616303615766163322604311786331821647064997819427143826461653301368257141937444262470661245881900536822097777776636039743939097217639330196921505779430020735722710432871722649752567418885543204325960369579871368756762587236443106607303981033510241578812426103170945956882955835209771255472378005485060215595299109628527757149624739400110219000576061895756908203511161275079165900691246335262293313290200306464995296157354932902437240213957855855020018099087606413909712342909629520555551168217873873946279998720210108813323327424788345435149372507944835956109759446438215349614584065370487053390242391911839347313607682149510792291066446285334854637290132590790971957110132844726670062314410953456288091496812545215477779880764635504327765085993764636583959508689915879936925829157361620270814906757576088025443635505757779761386740790463762487152569271925560089825341289542595620819428021392464926597976764724336747488701535645612073585196347315354166688331218981533029031667934584538237920736061384936884634340622571956370615374153079634295151851366688326411303577064329006640088901736428086023283704417204088199035978706643171608066659756653586331778071364537548840272583246023004542837483704717620432469921501483470870009551030298430423772598438898026059843805576973776328658673199681908874677642841321179997918347407781248020484446819350477096537308318470205662129703500576424550753288423026421389964350413358859286166310358280051933938372398655258027238597481554410930346347365502372311908978953453766179491456798551894912722443342503072702737850929070550844374331979637333318654015576325920618148592030907382665459055366574455001828436373841498513068970240922045721204698017876737549153463765183028661480384215243265068594056598928806527670758147371277064365114886791780012274321498973772327669374661281022840060995279076155297496930259314574311029346732129600543736938486536884243500206560806489633858509007021536643910589472149098655408272075534630230577402134451966667815882834543475124173052922675636340307104380153220808766470693594029845096136163177805838594922979393332738465868961747338029263459947239171779138666541275353182657032105080706711653143127108922791950763402911460180037296338583039717148800994875182699174925292049272084871339172070940020351666310484020989279958159422646605811008392391838496231377986341661531002252199746539907893854484526805354214778873520371038090594903261667038726267431207798736895236320939890114952304106646454548611952957978934983692821176906522021376687109203196832628645125753184089728551852467918731856619409472817422638400183460976560671191722041924382763162922158901075386010166619459412520981908126326816803334787802585288848315330050755762754457433184105693286611454162415551634134326371284295411038225738101642761616761681495556864293030522254696669129272045229262208679892779247492266949365838151548858801081670369127491864414524286228675952350372102286773029515857732207352374426262229128795829457799634611119848774897950957264749854129177651260121137242554895725765827493663583870756916656180276727711814048482775479538174697508512983158147449390190650599672175639696418840033433987589168896508039599909605061766957381230977744488384822061955843860105926736983038716934539941432194443582932581664801459589455410467464209744369297461191455574570392508965250206386006393326096050227191748093677578359607848923391932211211843316056371567885706622844357505580988826958204606309633694457857891895211106260751002259670967766931753318092307011179863873345475484534256801994762901062530619006979814275272876292822594403151251141571989375153023303916955520133776804203153596244434237376095609246683510090296393614329876755650120809107021374061129461521520828269353950734374609688759558988272539265009568449179584039788298077055394264094655216255830681607627113648775195499821127235807144111262254784661140328419202240408026561061012512364410063359563863310978705431305474706974141625678807952940426579771617352917102857620536796047447493838132412786876857126868074530432051070394162612783521266188075158978831556969937929447360901668793210341085874248913400741435330434226557707699150752615474709297540289022002038669787700630947853822028219361212851171969232935734671011361042200576810745003295893539282186276771345007677016440746378837233988374080695506050154975451221090138616561169343503957000293084878459057256176127024414365177522284569437097759558423353242329646056611645673874413063386377335740047279951776030599435843616520077375935340457476890754290707868776386330637807199568753335186825825804119402828203147446112282143640445314664702736433703412740668035679075396145192586217699370449049506126153342790811580820286530375614111540964381166230712403056413799861837215706831322153340633497546935906387918755611753837139859586032397722196878124323588648597708371752214149461669857437795051380074246493924888158251398978316780819242658834444248635931597988895427780787649999256979316027006773723984981254231614958944697117430575193890779022873474604728288355575510537907130881410669706518772687253614266105061661261930533238279681462084406205793716352193816819150535477500982932313480686232859070400096055510367295912765667035758723756828938960716322751223964231311159343562468303264693488211044328239873843227215534508046889434662216227020240895878453769976688284560270155307861124889492710061240287503297437116039138039549566180357538043396638945128698127215223452047390103999876741413442462491531251871009772267996765787352885826841230630084578953103640935691896877010587312022141294344725102485281944268054065452875010288144289873823804540657906487472667060815014080302444745151404693070774624626833396070995266238355255976296901080298650334590712602768119853492684821916528503565856160148176350500328069504026995189261484227962718644682520765424963727298578124182390113566781402795228693679524807661062034450292123921634318230350081370338358101513246230368559217873510510092203715571224667517893896548090605875173339885598871093226028252535573103068945207282541994543825018005056469229457542305525699987092875390102304882301705439360939304998346262503654499713337094078133722815474383780108541478616318156037484688850517548136043774091766599904798060130874380102877806823864514030201300275633597532189807199194454011570815074608272001207390256917403871071519052677259324724759072725828876444277524261840101493383284481303692657853686588570395748079447013970621158989409110127363876494957349612517843669480840027410574492199984330658094461891006684774444796164824544781328474584419283821027700004259251796101975563947382273170037082866568571774901078300165208269902578543464273347609061823718272799527057259346725522285587087197673417008592353214711977298892499461857010281232543719619414294919887871442302640989780913678433636383892703010412241741392065601165685588317879705720483664986977902143058067130228730240321085166057997212450708650421548962349076273070655376740255959551002221579187813248105140527453247732094540002101198742124291928965919569333128862150757191311387141804445741071189483261748374776921264281802457096772367149096128153534863672651513008096945162607151039127330026205572170096835476836863359189237860582885483914568971749068967513392744779365256400995006741201083771554293133440146904862434665567830974110418842554597629277624649244749983072699939262796697116021663702061198873836759041235334906619522172022122435459955743822237248316098395322586080621633390237368115895804775394396341695171204642908254069165206396501626974398671540095538567806166170969280554779368328785204389731931992412903896597582831504659009081235609574230282733449556981444424449386293572717761747090248389858480350650036462206786452823741327048082727273688861178603932785208276793525617763803161930938515293500985312738094968078993752868568079430267361585759726388729668862067795174246481505949217460937386845686700122607107066745782413368116923471884423119687176488562048500057284881750301091981195503329133962021119096378947973155702948287808706397077353240119977165854669643315045893721556943102708608784469480025087631211394326338071827350018527062294346595208589865651171703421783915698540862921968909486974353995032711310097096744070846029394948709629327448200568817860278228857614122871916891506584870279883214458942634425222190140542116076379351281706083977481909459360908459014059971376821498647206777277558295179262496332737354026031401246770618419181163908009091151768334829679465787538347538711387158066537685350730520325196643170688521422884980566821579279829894987966982576080368211659560946678138003640222510194131965314626175386653646648383646048762268234720542733541856502599913691200592375426609611512730384173401189515996000348058835934194075835953951599369127498441165320563069104271227889251002595279622482902412956758859632828863887930965098121886054072071255852560902972631215924795535929022987596012986746685577540443221129953514649948020364636110473761446565596149616689110111117091882469362461839553942329267282820677748048438789694429958771510195587184280632576997764161459434573898151935044276562614329824233659311821264793125640955093499766013884370931870166760915886588851895494232731066062445952183312087704869489955527719192872681679167717159327997027403399815065225515656821515774386782955435416371006157154184640872968826579399295048233494773501078803602180013559746493785922226894421478765070816229045128805793448559964853294479344407388372655337221943425076664972484227028971605815263050774615836263048407636167544930118066547751065393192361002437833033947443143190547718684997894177669284508718518864105494403521283576065119384349316639092752043759357811690982925732423133585458171767818470516294934481250660554729606851944809551878259520165253489563562287892543847766640635091819661357931236728616134041445766099401317441368138838170321419183177058624650898132574563574115624440538135284457026013102165021842976932240585410458912099384958060027539805994856987127969649517127064268674197404552162043678423809599663072046910485536481404616298260613026631841334197349768652147524796757575237819832502050492762144518803059671878006300639936261842893918872500347735550148569114106786843215302234512943332061727265263309816723852981756521651766446688199516918624030976541264093150062712065276520155562980433735153456859915512809738159648418270379757305861049937225842520934231659375649578995630957626943053898226263770015615821406532675494000318013179817343741867847598185533643649957774808684483634037866049568651231157674426976431779002216811542263821824057909345851911448765293139340534233577533250743978395797980206699369214689368757480863841790006831807335194811428845600898783028362993899945773861004682019141320587824845060241006019428851012461898889572803762386485969701414064060287505866075343431953117903102630568200708148874915657616850757874345340344346187600317604095112407589329576115881283273919142664437972999004463060577337637181231892382880116030900980544506311130748174988641543484568910188195816901678163075104474476660883279023534273181507792591155949664928509501215780493770561165457584966856181549082749591073726889832920840062808095355398464756779158180227029258508789125040887427204824928681532868553615930420739773221528951988618183500542581600022969028511466226660485382775780852769355700263100810182256360953883595385041176682287170776106106662983028122773323982913507393354940938548717914481672908300349813873523071815781822796049370705606170415407318951317443513771295324189294471840380184530020690750158838437278126476879663201100659480602233206975139647427953798758319768727133782853751428305522531145556615308507544003832375110841442170479023521939020304399169729375142852408422676433038356511049525438210694441009349438018903816083963362083015982990890807377847074908691601328593936919518708873283938097536871099189657509615558407223038651968405702607708251818426278761357793211509950812031594125120526534064051645732218547286056945380872864202793416417294156731705339178902446964412836735698837308764607687956700235409157975229695855850767341815239777274010010575370425319364794764146658016473762530082579416729055081963184065106885315492878252187272448594470714462862851981672860395707168694175675643868524062760094237348018507044030438334444757609756972018801562872418554397108580120207437260344542347620895343659390583416955385569122095370905901208675034550946213700411669062137864394630422193837373535581936551763084042485193904643229756525671731776474176196718697723927748936408389793504445335586948049738832379123112497050066375158228370809837953156861779011039668044024108029027472455602091160447306581798653922182827469077443206080555888784898542840187097968185107150846005156981939398455745282254365912530670968584826710803225974254768023551300120385683397586532474665706060041912956907095497613101852406899278815786709441830262670310020840655139235301945104150336509715793663030321011311337678284277631354918546087684962291071696238098694459917827405065432144923557888480248177943325690563969576485430851856145204589643864605396319355193918401752321345550272247748240301667975684004922473454995110503517662837111618169595455406238894461065054913632957076497553361619667801335762869281762744395366028556215823015311209964390565538603081259790285884628646595042597343214779128186668313369087011024590074814736605404654771008161811296950141103834701474677783340838308019381494239948282255884896050828551189530955840491887776925571274573483875209659486003870149138725459905371215450283419153968364516255594353680583747229261854268759186329207978224272642500063291388835899019170996984640725345656854581076468910781529116779388508113785569665774366010618160769244702658809151175219792002811474486509396514204088868594547813821417708594242165539659198817040815251113810644651262356628542770752638783424040343344822252146170463169349842126362319434503231199326173231119567246524941419798800818909247003000891754647329253298293219483111275163742341884092569317315471585437987900342311439745337492675560959031114579363883828846030330071645014319592822261221808918078256252904106610373523041899995561883209895382542885131269893571680359219913389280077236998885789535440278579352342261414351715547383837578548396183621278816747393525079712613635551687737803168517209097456516931338644963970393660779839645111629776307874111590562926478978733196041648436717280504727564039975621013124417076761891702816469820043494645120778980208042850847986917233914145349198504279664600347545477525062834615739122851261967130710076945223254504494795533455053793877259537993993495387134260384635116438483462598498260352917966086676086925846482105288338490697842972012683433469194917720638463148767598268187362289807617121408880686890469060498809013240828395798178001307398699351345488774261716252526978604321916040314646881083128225267521025316007596724891307406097528099344453756051965127231027567102006166736391533744368619522682106560881784982137922206037798160685043337003030364970766460726629301189400765148666601639736802943770642368314552861612003323814355277302850518861623224288982870754305005709124731741327873201011275444184068847223505379688129039875766606957553914008817168388861635232575406646142264097841246379664558155482235804037243445850672118486383447308670614045493417760998349966877693861379042778045210523419732997875820110050576658967505281993264683530958432417199261225956056034308332100004837676114973221537077714396615881250410827587570459724661508135349925879740447138116533214045821736823467550111010924423833593455587237707486046630652890240717863192544006580804245392947182277188352497011753331855596012672540468452618702698112973872672582901679964640896390830621261344399778370283856342181386505703503404455541950716640406187606720907399837102056138633949659369872975602697814529559042875303036613680074360501354662974731080731904937460791249968999941154808993569271101027743742600402541334953190359700753569775368817303932187740513761627934663319860043213079543752362215785856816796262214082848183340482562304546754074607296408568474726988098214849212752516281008853246702670698401819683778089843736191481196438640101588682935582262380686493149360132406738947710538210429060054314399640270999653272589658955300738447968953892077781484716649563871593038378122543911772680631427049861742239055707821125222152655599822621482182624157240025793360471202372576387598803274820053426671116515037056524563072095705281793436207692389008430958887562035197090135011622876018856686775834722075343880798680297064454395396010465522953771006533809954206280589171911952686844135442262733949185919945093476633796003654778005652757672643670380985319435501353179251415320738227341384076616981401162873209682945424873083488342669446133375060057750846758180438650469908161481056625625728857749307374587312993410968883282009727439059014691970022858235736396484305381762916929195417434877281267073480970495824810278930372220886038930641422103714913937400604426137993767022113746460324364609420385539121946042846454931106798693006248586867103419073145005970634806596737402986973608537670947263262315656009852820113696254909286005813570823871693914922349001905095851716162567301058542472404623713087426801198059435054688351361545039547771811256038807491092965959919673879361616939478364792526930802848207924378574547319436905674414514005401751341894211180232760607383120008882142974590827453366182490793263222604541890324698089409576386244793634982608784602637132919471663534107809915159786612858593074318143904477501268779336850470646468622569566391251638058008353019866754524921554513120960924393019708348166862527487037742497701420343585850742089372884706008297448941196454276205643626624298329539336108501076474396243991062347909110252649550525816664948305716189322113182621776603849192534830980386017925631360923987929224092876072465902842871538855963156197725788074715247557942490776699818914276463455428373206096064401905972095229214058123314934057510587036678947831215083644050218728663827869281310759998131969772107848107010095279521518858643477645442266992840352832715098662957484636973059995682286344049506435322357580461145987681223552160538013034989489484398475498013367308680855807085906376297936153973452142518432221051063296581602590845222086550104306471281508680831613794823950032516101165275050453330131895492347840163736397857184268173583828818478469482340592685031498308019504502780648554154369939817228366340531284206455985423641633719527550221675845465284207143650624967838180773280269739225960753675448819910835772566632933401930355118772532619938935744017650543986292698095748759101475492526284521146844637338734836412175591483691496726612236203690527940489190710591167975741618315784864745334580003759916250418666557741629386506776064389974623661216533063878525241357615267100697139222435892380458961062898806140309683876386277460996237088352279411511508625624428402394738562618585856187804769062011820771285277639274357172926656913634085829406488980744141485711051476896958431133429589008126994083025731852869204995988233160300945864408182525392989861887147352068733074507879689127604930387853010987721760414416290541916882850854140731811598972268671931883352391345967302333186082512616300130027067136306272018713626756055108954730935557195666565874769749382722867953851028121441341993286282295255588309608807641175198478343087570601083419968255950383352462885768333521479781255547318166867074467824298080511221047277820811635649006220267545196515563468918959620783338524067843383778912613624178436768421714003544582704225465062890483382232148009775686642787033581869307306699800103872653911636167833856961287683611362265000352155743100692483364797310868222064199069581177302656588266518658708364530247959213764293929686121602617160097353945025953673938588804825570877383333334415555894626852631659762198123704939666936242370463524642659007708229979525961207758982758455901537138521796222792133964543004182177733210673683520789138922069900227499034318432103617518488960215771164487722283017538251211057111346381313774614925091995731998289141442890692196030940713397828675272396539834929007003433842380194945585709097810946493382338096582342005600035422809301784404483988706476989468983769348082360977849544641681127449528751317829793020136803564757425580531735164767017289152643263875383439889624846421261726692973988074552281789467593174179817399344870435187251552893207162382237517856410449023285010255416319256258897211928681689020934919091369005940041921019459809201958381335224790685142821190482513216945620708149489190365193691662022203064462204029807301988830750009378074359580945818983262469678915969051588546043771297437198245928303803539669694172160990701200340601741400042440071521729464231679635378789753621851810747728001418255044270085006955833309750290961090059433618113376533896605233371798329843781561836729007825251050999681046559850152779293738785271582029883988230396014409741742124767136505834778734394896336405077098119595836253120950196651504992028241276384734499147407202017831323861130104006752870602850132342647503951687907766760192652445398715181747386293648057158695822535451891233327643353589356537641851343748765963323963722778455634880126089808716708296626233157797627989883549822693463948839972575307498624037976968959775078972996315785037736390547658797665708795162555605669803397059504441947052806095683983839145078082678554019486873878015822543029176075597332239690230013881627096850151488593016654738510661163459175962145919525224553726313687831381461713242453704990207836466418488024152379493645005574178533538312238645647455316846258896146900409582953317688832362821194460254445348634619196204041084814758836034191914737751429522710245653161010290175723708928929409019481107075405641798602072282089303818987839255000076984923382370044670513828744515466861432851637786187207212028962852248750299841351919562120315560070540614823012733418068323498915027343984573014836522260422825686071485151668074213766267427743196414684815725036560417191422660416481138467895980854125142999307420620890108768448849544552992798365483858055114951454684498265016901536779693324573009863417878944008274650050558733507935450805101953672461954639361892515722995783651896316311004807482218931328599619396971697553124775520134304029783104964647920577498860334228701026883889059765958412280969888907523017401390785323657480140878364014457978885289533292480926863079858329865974794769302136209206770549538817641060323886478320927063155375043403454673917600663655808963613347569152923683882005245009101002564538314997248771044448059215070319849192166503912278497127162488714072753721367638120557909916714383139687034156906571476661386508766768898963702440470015154955500138398391174600356004095483469306602493245012909429491355141285803838290309242714917119963643678011226634542848284614450571707080573198145041002019448955942119884216156754164939230912582738319852187459540406383406075650034673985212973912252225511330093059617473632617597288070862396626992139836579745730377902930763933537248185369072710601212003385119095524194538303344691488296613810662769202655916051504223581641404537356291103978362411295029065081823396104627154980953997928866381746314015683414924407696556905190730224288608494518713252753627319328020175791952787143507239559025894468791086265464389926128350870208952264726967339383012298799296433568054019251923486660557977848093496746560741424219513208522459675843086477436013061850769579799639325164542506551384287233644261622919494797290807007023402945839039805935845258699657210084339743229107556286136428048843229793947178240364346669263023565816042126029232350094101839221080410988215509119880677168701016936854496020186916511065523499362200888222189756919196409240890168953067780027720561143862971884587027791863977903841915219112152017840591215263619732085182110231985532765909333089487752728359188529905329979589391438836328337328692917187365647600722402144278111888774142404150468081320086080745262565302299176404903617207157818597005025375424322810619394491043726058246642555480136490306806845328206384652052514983057146809260046950664301873018402017529995948245371245043871962455748427713680820731539785838774037437598901777441505250855380073148629592787266438382275530212506837137598600749047975309227365110389215742010924339276033204259287194262495679265124898810096279041255430646107738974572364855627686979795678821666653413209971549794008899021692879434961066163253544722727484079512365744722881325262229321598630150993102226852388274713618115212594257063668665179921905016741523232811504780625421794802736831907386005294078308106934383373693317090389979035010714929542263386774655829416842173410100086911575659796631092021546750717186456841015220634194339180983491489438140867980860093952889481105839665224679451144134647125613181647111883045362340386521397083246502876647184245238022679534351860053211176108180043600277655907331094428683804530025472694934360704639031663367686932056836580785335590158702170612715207461998424572008963084296274579107575250537534408686820530095027762191482638718842641411548115304636727144471484385253676616907451753378205331379851526352852434281473700512552258229192857806205112889535501143149118199136491583012503583350767170681337591371963565526543625755788071873172666453963053630607567497176842402131220162599629660140408900606929225764050744929171666140381777381510411571951723831845126078698625710664269671478184962056648403774153646074557005781940976165260217999588863075808369055783137576318078611644320609942741172984633670946150929923107432824712784299231821068996644919020145633996902968582302916632378793276900715241652254572290638878663358021888272925052486965347380001778371272730133865668802042844635640505729891720128601794954827182320981522440364749561514927105590468970177251663602116627854663171727966408944701068290634837637525060881961941978440058226125576217628927025566676890951558351417334113044044544294770174665016775063127788217896252238769684711914031815337754642335731510803566529152432522673418911728437605643598351800885964785318292773769352363633913597787288578154750089781800497029513451519616207167298176338416476421879188483602240229254039438767120008625334095355910635508165819998528799308295382546802414856647599249409740366336466121265763979213255439179545214670998574053112235113851948288939929451649493564762838365294565474667233979551427914611778586073600242337282892541920406824968995699627254114115359458852247439035943688675994874890104104403632802272281167521020527565477457067142778263879669243381038416071895849863007875310794904886366557244382364467177069999175152830921563170705398896885350902849041694122133957207814753258597861568292837275265898002713089945335021238666109749230852672902224400391601142404740460624965877755255458061641926874544199259287430212585346459871051813746267646938164881575558899177567985462369319738670499583920218095956875005780179653045316753432727878531392232015823942484518726147286706558520991901483258213605716017450490142321019769631360000274489011660632859553999828925728418551571067919939452712957000380306309512897525319108253625695518091518197770478814764182223463322812120275429007730727874557060212573583736748439308396241130345565621459007717849029693364969772324945291741537227288727164645846865937264083354414980974163266172340142145902809330427960455476118588862510894411580307906390731975385159630538999586941807120210683501330567624755425021378891931924714027466509060991533732733387597273522752029495051304644046216639756087876106821961262923712965693218689624631121155203147712029960506711267817015678040734291954567915774791747267437472217783710489727860075760385483161555365433414999670295474284186660779527957708360121582589314189786828657918827403452119912983441364493752069613423795247182378671218017646133569745359725036588875075602858170321919609342155974596740850557305870729546926434251945297366974159300511071486878611940789019279939776083968238210727702316830438135961238658807389549047648644940005225467445745754514417280745791128118804755582408634314537160586295859687288720810851262205819124226712608027426435554365809890099759760224909053322106628934947892589212869396676343704827051274360650511092328854669309694013978197729718723034936414139106823461657229183909211343905946112225452593300553965186975107165357085337468618804524734316639402451415067234254424772625068096798663409783033903042346420923482492234503030594302084676104510636352059772025654087468816639668198000625127528747216879359193331592796952419825617398700957750960815969206269544105272271519699322208141577376155074740645190637983148566114640892309019939791717480971217453470965405635604331263339108938096279841973428616974292187845627244975204597744159233702915453457676804331471851703022269256335799546168738299896430768163422595913275972414932418524828563559523031782168377425597946042575392241229151290451554628064276257807006566284639059400199160345225359252842119446833276870782107711466784625619185249051955974398950255885308612297771233104916262443429889870492723382673859491338221441593407231577570121093129949466134553672936566573595166326850326080915423305854526609112599183505037978344125443658242525131163899059336015790828526831449417222018970000610972373514515035453811746117774668127840851468743845058848172834979640215493980067680425132506468064165110920122306844333234063745774837336693181615343174751657911255475016254234659950475067898240183620370766110555461785738098002229995771643456976784651480714921166083774444479677384629450770298358762492787527851458282158234658250877250659877009960858412092233026594023192624707819450524241149739920525960634572003772696460464418132573573201948063914777439518425851481786670163865245833112153789485197783273309040349195761594853481237776647855704535962071806548855157940906047629768317353643109554625314359923495130552385038147376973439359569896643047020256161344540460351486728290759411275949048548881157994934794862573885871747544967240109990271935418216707633462259360873617666110019064794573979473315540103202907534022113841151842537990226023044164398572970256378648254742219473657605647787553720155257051591972075932616556699622518865524357868162784376799487533772242300687797663253052391638201879990657983032587339929139943769896072383495405047794946577737925227949590505899916013619743307990879356482615474589188337590987695210782019765075171873438169571684061354211934681637870262572644583811848558748824170197695690982693003740451576230892195042591575115944914110361749599069233199600156238065898741420587172216602048992590152429197971150278790033306876010294489241482314915718496839891358827272299290849516970974388576515568575123214384738135975847457700914381336930580757742953404292217575196835232980309267773690205163197972523480903543186883664338985053680661712669021022576235138472554439771518737264252129099949093303721605614199006537390001374971653874749764848499956377068652097071908525620173896494775206993302117271201392619592766122304142287729949224836806907800231825976673385091125701284504517454962173638870132894563427126965815204632131473119101791356895810559945838552808545098048366371928138104819082157891717516119716004199853003375935436136225340695897253251805457508050595741595867483724399719989684223366148827585414182735575244309108865477910704924065532780890587689369499263337616906703932970295316914068130897934473142036328818943320071157408152753482104991326953999754559519398910366715340574948097490234998915568157186764786656052531069914734301883546913770748725777972936259112189013966451050270255163014170293803536027353349836060251285428396975378552248263261146699525429693709951480869637341436092014727906633866193885227607781047243932812175621279077253629778675050782353301195154798183112715262170718250728540045254209110870457189925334388774432667276694838491791110253219663773650361439030724177619555972815609197830222806963012697291714720819576297160015760762680522276569387379478981850024705610408915496474306446317929138418942749848812119123586719254064195833554534063715514887345690203573874486957169347018963630469400369503279307054865794211883208470886337471565066906454383358740336212585801237173507038933664228700076900827755870135922673827605995978555751524501654491119413632946440853108906180268959898414263842575682501071529647364828879261365149394961664353637748177432205188141897772435976718573693787189970213819838863124426353368512757069871164702654428337489736775202588632214593063640253843480626818900896904934725653780507251189659265452822122686964590302131523823729671751823744491579424378199940745163076267173633739411136065563965745298217790454951116489529180043885925285139590382569025120644530716500817265270920472617727576650694300723896135823613506609881307503523547246103700022504728235924565717179898673724989877876772524825013065453543478570959298753830396776310296984650679046135100204954866008623210046158979522460722440156616027388263344541488946969957872051052674347932327819351064856522024661158480663166120113369938545877836560592081258656643057641840646642795949954577741492250228384646628996710727103081480825193761800888197588969638444913270586364348312924365280294749105740791232224446304564697058404384281480273342972431690963314412877539093638082964866018748286103450400330547720579270837372900593987545357604051317756668268847395731007850733412326252846815130000917531501298316340126577980376207034503046089205583742617892635883798882419614089967412879124032488837105459914869160177128212798010505336837013264032752329004758740119741752111964595661065414750243743380742426585872340987091815860511641529323268927780353550247081781220461672467014604379524159564739418015029633134881568488195790805511208052616574373303805289531271594146694554242087607595536045595860616621623022102010048355435818968675033084332775585332632403259425909485506736208568101133108945593913412404870182506918212873530528721628183668772337656421773966087599620115961116472446014512994885302577248619883178760602966094195089600356830113915028436947600762421856385389566632564333518584856680029758657002999755308108634695765926161584302249517142719207902118312302554924853080215070751426230304722993050338806904622206738763446936731494911529003781516479022595500716156503338123405926120174699249031120133772631795730236487400205669221391287914181449296200932771373740119485929329559557703540632706710567105538843776777331935422351221044658853037979574951360651551691429233381076436399082093712798159335016933437122310017966712583182272221326640528326619185899493905330755705181452404907851368591443689283911282226924356979694060417141545851599960594936655636496600081052103739759688232843358395860694922291569228487020891542447810542581194927995925443697578554823304719036241951535539382504892887722388944359460561994307972314076346587625984463822878694599806534831615619904446668080324649199644169440881926020899437654498095869358943888806175930663673169124555083268893042671991882543630897403360355268870129697492546114387157008696521749000651607794604755343488379364141975688652925932313630037420053057013570674080657712915839843818155374981220991351688492546330300580503635296287401491732607562056907838429105121220151929902526862448841152201956636422412841496986658908242925426948154271752687326829655982757845551917830816767313890163116429939317833665611647777287458038651763784428752252797439828318213156220509736569457755312043710090371254146638198861046672266495680582495421751909444301358388124502386192762823026480857181500110635775227407796253341995730504264349210151625134934719388535806601032075807812713951638202420071360536398701349758350534583094062206437803235044473581331314779953547447213447228196569328112210495411928676935741133963167365953738444766641271071869834367879944480842107470406987883936632529196645920000514366834649619949079667164502329666582491001011687977075233595895459836248474077029087208910691469564400110923127428611181914872092592846887670871605807222669163239459017872169460852320683250258665199895785425581505678883624047199054881446762269276773480877095774555398622078128526803264406286108028060584676621503500015569110433270565430049615326490840751761827994951338999872491082338158230590253714534275632420859458334669599585559158451369120351460570201959574261505310660876804531167562885846554582616395871380328824410256104907762518054088570062608770588938603033532105846463215608477270152251239055949138244244011503381308112766234228980959485078748165362625375104216433213570166846489446562066403977154652631357144317011898826629608387618148949796501692434849170942633133475627009802085996291011027974871533254241521708386785341131258116000071018425766340708920247235053089465655006250707039672349280378511654004725725511483821068232287898557485919376376806373667632339143709869255258261569367736742213267529195044745870089129016010090220078799864667567961875622424199305053640266546275129849028719953134846727259925230404716437077220294402222485882212516556812937420562495410499177079426315938209051404341865397613217457406546866221199735018772992347087965702474210866697205052260025305019428254652304021702817876843853236178531950650092221241971534898649571986235477243181909062799951904828934339310004905233505155829705801528951041990640157132824293547920299896908025850852615061261093142533089148304547572381188843150019498441629289686213945014360343649852617471432911998255089138030256051403773546077630566296896159985044948569250831231632134212006647402863147217564112054764595276061144623730118776810757477475675081758439055960365623894801807218671309776666153107788470221918997193635426539663974059782683417609946066816914756177434001453371562978286482779709544399296990636351525287963406531567998385134730017845857290116840773390367274835131962838750039627368355860754438333842882288108934054341360205822647290450113164106343525246082053393596619580530928906540661816063679462801879888690836303139389622389367405495672603100763588183786183630108593118690807956947681014994867244223529379559234328608871231554802237856330069981821885863057679913826979066409530679049009190809601938835792870049682475602989115149109750077520072648511209104026075806839344101298726748977944836961260485462709224488189734009888726110467567855948137047072165322950857084705251366603332753361043490311345502695776538089866547947133683132011058082421613978311134262479260886443905352423733932559569158666237669670982546696233950808127614511385150893024463113225094752223599278734416452641127402697417340786008329350535843583137440824864671143388176066068164810976977845450123294851979262821031310105502533255229581968782435925412661998209516811743862901794429465110165559912850624686398122162035654999197558928943126265121840416278480230818251986137793072232939828131034013394712461347571164357367399837774436184218289275647083662649350295306401173080839506172228447277931045128944021709117243702972319511878599178034676366298585385434506406252132646213183283491949986498072643237846156266299355373717451045683237117515785611821241923634639988933009521043899172525868749859700545928782365042858722035755439087866583098601366105432578445210329198202526948391996584495045373920359181157732050841242654901455898584658404313819631872588337894020502191938079042634427542944007438995524217112905073718784620886229761329801229585899382903749963203938715492394067702010960480819293681848453085525042813695968361896743218627886023789873310509213673057545043239690010739574154312686911945989732224197735490131754243675709227892575038966273543153072155708017166820881832321775271505055324167790259971012979142847349495970422354463640836737603192515414625361587905790120717568629693019250285430475869766500344700967144070846764299216831352629838546980284746839401949371276740619939439201526391062026043132456153552820415122499511792301840899942363591483394052479205259124362180358507802216454322022192884024522085013569323936020498477731903045460312993694360323237157073712285557678912656564703246591875992926529085638909683261437162677990213379031767713422781152260180931873254441311895603863263812447818932210797039780822517711401243165061569754311919403865769576376731617076151421811030792416316028181801241557232699589764130664474549698428677676249962888489889945854230712194264545767872451686841362413677900731801259666441423461248754445578364106566615161425661321841337825442891878682069821536878582323617439293328128959395858477403913848721839443343351583411711683424919180759626330865434469036204773972869034380548584964081594703998061947456911174861844760091155737337111947527790393230007248393103763651040269755069935349203133608669338220341911649466797669802619314611256432205668301666260299260872232405947836400797076113244546741017607819907932825513278306380800590402864272352762577600463932742356181113509417508941399383259811269476775675435832898068359796565390346283046167808850754995212172762951698177233422736442223909267753240078316321490515607811917642398159856390559697104262102022034878477997056468679138442041959239150135706091900411993286854681649452137535762985700170074108364498033629474652488190165147961317205291116497106295190108846251526055642889341874302252524867193744148308072864163228654954153462698079396884877201106995967405003499827183363696326976950927639622706749266692177999680558125400758429412520581336557713717581140721158218148799919580519911735284047113692178595270330564076111677434077943982040772803356728834312976577549239521256768834324053095853583618639053782366501043370319217398402217473126378335754643569573106409514729679844879201677470407268114674835115139225517489121157036471801924719376941939665657644359075955564815121567905676582491799267825358522474477886440630082967914788656547092311468755768879255560106070078834733952343290303317666284216131486159146827795037048171585965570465740738738631264181285387703050237789528608847554192315990852630013095319165534029059298873464769283949067640765972590833052413696654956207430922668952631723081806356648319945397046340596416899744795157287667588662973538508536123096774163973187505222924377214609532302047030209577853006210521841740613576155668141430189965048523374426422589058476953266854218436547812620459201942377016627836757187737633781312961974407640703584090418703901108920502104907846418254663003188540520475379455360359364003082008872270365370770852739340276025938511953126588493073406296090539431455661665176867930384832293928732730169108245660346292096341628100163988598644999665473275529876980921665761638907009687826830624746395149574458177186179041031943115664430047445363990792669769691708873544456607510913365712064960599139503017292198269836710447756274569962538719183771279682956543986689737192402154166672499425783603783541630893568821372013272840607526721170512134013753467419822444386675897969122846631969332940609235702403383124729064412053307121995641030855469829007465325990393097819341263788039496175623166425199982188414120783376164942564445929703964232102634061069341330171186581190455953465293613985155398230203082662289591780768345323463319584399054924975250597966651268578344789103197118592764653959372759293327658244257311028111516814117999549438445550639887766244457612782962794337658593605036214987202957345282028849082578850075618322586463081884359117147264981271803731391385897229854048400180850464969089397214508821934145298016744051876265729290445807824822272221904195274555025411254218831009289868585714608196527911741627699338006102369667811993212159376769243423748869590993294695829483573758477174935295769262793129053990411139767871405169090410144497618329884936215927061197966346965072205991391933810054818851531203740298404527663393696411769659618955642017914240814068782633163474651904353029740742191570390990726305362245742507512178484636318242072894560099582334344070904753448050592877474471330834329738857436569194871573163784509397202130579261088340641712640018354809934783496041425946945548459988007678802660342621990625494517534324961941875890904763770584268595607798323216137252039130088548092637123325963523842608006225684478190257502756775793359383392402774211691668500198030189108118541443071862146553030253087439535459853034900887535357644657710788937356740333061348775468203526051772484930550848130438997802039897888033252262695928610457694577813075978591522225965409021841342042547865748090735506067508189095816109630741936238953756504178958513301113094074388576088923076813238973444908365734039072508666390861233540129582427445932083932772483446654437843141092963370704403789375525966790171366966810768747801654672889241617619704828012355594618853629794421736244023814329872497948838099657341502622685704575393761864079355881730418953605627766933942155119849630482433160063837096157901071723273788117675184674296760469026018308739998459094399089799150681977108218176448290501234220413902344322937337156971693069380092414475961169914544518379390209357522472579196881991990347347939257368321755109664664569614252774346587808546410315698816033962654391859975913105822188035250689091591579855533954830678439627885713507269243301133191159308017758500997763790134875463119484969005899945825922191989449361816030061236291955269364588690338266373962598673248262352758130946724579512641541241233322410948520963149186060383935491314356475763234090189319683942708935374257676520540240912163564914462742489937081492103663261267105522027815319051812083857886990688286840767648940125791846445733539394241781667172296812331450931755166407099789396637579916222420721424960416079856186107554664519203223115317411244146232562304820568153589741389659732114589340099799253088588096000664623460113213394016017503598251226716335539592303360834275347723148604444243857626367515007927955021354023048536136864755000557034749923384118134817522230268348745607211177035807223150999592976435321956932370966188584217559369297152462863001075408217981435628929638121231404092511402998094040232349088885588056465202766145988197859776672069026837275424629959839123520790684555359065024528849648967946692373621562374420120789427483143933650491551261769558340231799300509713841420925560338030452653414758899944076260321303862704772061244361937077753500044872362234375139798038311415150754977204381955273710804421667876554550298937984095946454455605097891732115633751471476474684175763994857332593356960178346715122184448001904676755530127903923896874642473730069185239414314736028241059110926644961097920845032727815489116490601313385087961366430683790305095568159377446216229668922753239633377984489381847262830047231462728651102578226427378284483897609730251418071958804999803599173938071208561133127155027855847326018492176526078668509214873064290418900492484602118158750126244986939378590887002983088996131027816790834101624946570592151749244672619469476039283904792890925102953831106193542824483410067562582486285114684311899927238191587806902170965478924018217150403938255367501042424489006853776290696246757028569057936157052124253377014643743996059924293899441257019632411972070606757235852252924598890468135517622836138397525153569245225665422242793820327437617913154901550644741270534409196240009904683407364605686924274061243558805520125381488129628205637014299353054372608157462862453089123932529564296307231385933375955610377485451047764703834920644212537500389016380767270775092595073272887983072038170614358206515886553145788536553248650884569661716094411359163358944971004865734598261810840012221091155027751779098771680399926797576052678109640517530343137862687268303739300600412949770298620136746777220211743206236808904021295527310768205698666949000053259180853418093780905740867907529704078485893716873802055903990443726694840746551327799099360700227233664882395276257495699337901373326027528577529853988337746213011256685464383697261946976308987034810021125900056425370604910353348396973606318185927222760817548015237031211783222194936193176146275244882613871063292867375468734699329781346939988604048543887224340417065781214124958824479504838302497176024859049174780037158761391762117967021957278384184229233454589959438725030934478757695785191995665848394521662979485086494914046566795118007231038035001487537115560489087542674432986210921979747571798703218748261740798645291302895745045668769255769132996885731629595154079131645847784545354852348863051225340037210214236729513378498508690393087577020249231035815753356915717356599198124695265773601187906404041016018390815506626845759726319813096941213935045477017711537708666819548761319955943009663428964550769544116912457453334576364647304619565469005599747604630623941812658042681027902640985435917674654956623102470380650661279552983621813781904780072142863688035532245342756686700307624632600132088181493247963190219620275952971718151621014674951611662651826787525462239716398703041868537080834689427887155339462747226526988972711042056122791079258936105084875584264955006858414972660253568151590050337702451344160299892536030202507085716731997784899806465909356703782615090377287182772194770598774336369038305859449829024036736598234505644431891754478685232803155440968722583883522186159454837677610275922668380474760193706373715851924751194511844155839082724442657125730001080562857714145646411909349852435477973636574649674104079590683288978416081445350661975376885644074038154599386964010570921105326294738671662930666169327538771227301875519636085221459607045490614623806678591830517739288383875943665519483563599060628807911187009689380138230279339384124765275728856512997585194183554408052487702094085104172569999826575988121886451361077765851925561011051588445215263715209066335905457133505076527019580193294745712939449565796989274525513317690030673689991982479756389684147140001786190349063916834709181125257319601366258630897454871642872256551616872437989212449191755431314517268568581509936679368717159048974674216217937138507010003968486349709226103652578558763929353201867054603585053372142394868912759003658366223411330959586991159468796350036818251955688527806279958931510323604982009340410233633593887738672391229485484169071511159492895419342511193824923754139800788690098294337940996571087460130775791799647718113656781346245752864854463853177586513755070682826120868184199085583066600380975604976221767746490969008960907826927181949936908379025434027918647159901394149964125138409724820565704776192109482836527800960387024612133306913352273483198798358219288688580399943793472120206499309220306324956985692049247590624984560328802228058526934362141958292649784027051477068423095074148424582059149096352236000874491488988772861503736534764344809161174882942954058065968173693227165782178613700352333575899163679569065160904820647583092508689815736126658002284658515727714247486108049165760083762678229365906149089523632496989457998700006933072233961036934840930953935801315714874391866507901783698002927395967155081398779480671493786372938144987939964494852545652669147658775774595320124650251761431577561965713292479763463473104529146061349344302148360961937325062803802190817202217060516552987410667658474284107079344593754647453245838573327603846637996821865355676956776079786506198516600551369592647944062439593002258879207476287832933590738972297194095228379688284911564467398967039562882078925820767894544357004158403201157894299500260670104273673914992216886959021363620571051855406142646143469484898107652154094112654510725328465829699935343588043584045448718411085739080740480972084732173647637028304142055081405392504567740040904884108754561141236514374242198139334561887085153959099514469737316300856872341157022485538612720123436800040690744737228819347509638156187357628838783723104239096998550597034351804480051337872193582445695192090733060855707906000979169550600434826804707660655306773024549453430522841972883771508510000773589213692029009077138956373610313113327912545038175106945186877607904993905886289126875629504384607173047434815378135710255217605871411899655081152573171290916541327268870756366209167437405325667498604369121520238202608977760380636033948259873594261716176175795906450224057156755084629351646703197052233994914423801554373699638526891587795333564526053621125313213831936985607323769812353400044172572096993866398140375228427217368261019152759708102143510916214188251660071259450558224922785728965239941508784933865819014417763324106344823820701632742422947793432366795878784189713293412710778485038192851427588189167118520822309144550082436150629213857322360383632162526924732570254095586466597422186261612656290792583216077734638250569061968583486284030835653059599620037883004967003162800587526934728720294014503353181274350254680383095941635709986335919513851645234911060951099880890150868537791544709503453752687956175706389123811811536964952425642947753379466727049816670284870812030272086476343877765274099839382214085787210004521670406815156680165161284692675812658182475692950953459362107431666088218660688042159742354979232161769496362070169580390073513036257853957415631874928332908721784035752898773875911438491474382898056648997461893617726811168392474992151564762828076008950347727517504223869802048588470812907412600914355552430533207389886459764078224973748134993943224836297867336913448978342688349006428692583773546414557186955738130079833646240240760273519153868513770280484336699698960287508677611511319341844234687665760340121066581613112925145968865280686868432698410210324618132496630023815537268390775333530580728760941806778436987261992103290757321475574191388717068346116466865418932682800660003432384728295263188567587584512654013708946502441571229401342353026714706395062424375203952530888419531874941761811206646505785687140295511453270425480280927436536470084506343872393362582543891011015459139008751886655076931213934880050552967549294101644213315718569418488753727423256690896468483726413181168521530461425548674036239917640977774567790586719691938088568524106404072520973699642104586921046772180150235079107136222141632916960555511661959388684004873510810194155579080651246424636523793928940106144624933927145884919850186318998807505273766004321340227459893501800963086055312475703644077412796703219311054271839447153649738723377962957177293309474508721938382889219886919877300736937155679832048846155581088699487900208538184720311985327041800659928208560766211591968530185542700996335039248631253397164153530971567193733231029268501045322879955353253965360898463211820304429522373222178747098327934350131192404476240644554269150544304763079290442013112438752327774620357754559740904579039286559126869114426405179065507340423641215067978752603331758249079372770477644334247222529741975834897274679514557169478098505676404830748863929632585641743580948304808544015132086982923998686129484953559718316049676370819928419281902067541470680575172416088767290582457077378464211433076437422975724709964033003141565110190933023652097889854725433666702640637357382104808476352699882354433306119850063470391215975085045681151788585055714739819107475044498354008207962670771682564095257888531292948403097980686789643081337155381221435840305440071128115142461380296465375502526253439176380224458198877563984666425409719932864591854499809958343236083338939442387996004474769383473061942768403727317207123782929694165455317650632177153848447607269977731242799435158568611087455559473523631049403842084364362975210036185894080531684302223373425278513695233425989245179481363603865888613210857485802585552604722356303522233307861287261532634304722990961270968867393119441880737470658102216429200000387233415797654070413174977759756614324155871348937038664567375814490658853608487443526931875924005181129023090799722574709860593941880647533873797574543564267692864221222719874404424576649890950371661913222516079762541091369137359838071269479136689424912214508524782330047186950071468876863759828264572985103957474113093784763560186680525151222779366094727416541509339708922146762677192364436422167922332025875801461632687890063119132031268623536004044056403766368994402333869441993578534383297859803406737260732796073244501454070738960925044793748831341530266189608829004920547225885555808327054111491554560277093743858539132154762573180254036199725460220107088504197530423608131747302784358784758583322048401339913889690132592992655921834762256264285443280821238558299776539758846914430515078591065092343999768154299464339637063096516272246461322402227690258283301867806246063368683980635704542731545511326840232733607524235534235237443436085277751969785056063581492813874068667062673963757681266119570669865242700996680844617041400798325575663567947576538827072754791372579991561173069920756397366275274686928083941801804728509579850603356926504452010621483831408376716756373465897693359351766742190106548359812066032855783179837616134233290982292397474629219754123014382446314348355507397350763336036193101610748206186113817693432787734128022264101309430159976219857444275082994215606206552795132642628173569016294967613946845049693469651330063781893412153033308155210031820285829866333652964048065042410844940690837386402838682966808723962443095171039365489036881730731281715625982395546102647334305911058096095317439972366234641563540036500645471459399488893930340171496584866929342259105214998823608231009867762751009328536116082264145693393834562833201563546529029093726593945590767846624332608850982140103349816948630721829889105776595171889582058160144545434545442757227645638872814720858022704441439214665657035351768599684698528206904126348768519692891995760102121308566148207565781660963996997620308081868458549422273635903966611591377284134226009094112199303884467664819068652549056918401365235335172116308435421480794996269405766208237193140059769625069142789991095753666919528889755327037437879645377405542782785722307551510820847692076961296208565721032860759400426684829855009618415523481983521596034349313883056651676962210216420386551087401238086989406539246302403479558004691822589766189194170285345118061588830156579708775222034872728326587814651725078872954097712866271895474351238362811035839448717919277508799533998821049131162655474230977634196721029145962349781183476018749920065173680979649743507437395207159238639728455399748933873614384686491005584972898244833079861919443192311041527651417432029677765598730233153259850394152596727826890349767340837156513478831522190915289925452469193245907084067713143699873933901161628033305688386466020742029156271803147569469859368671097518909096304656080945737576749450440852032163330374336751780819085238899480545090608023014153771330441213467883973327361052614538330434470604384383722232311703041148654369763944816052922356123730986303928884455605815707833162476823466253055354460474850129175529461208663589193567104200919639074574427357932462046645922425021014130583965649012480061810258494352695687291574309826397816730341189945858798449314271403133336294396964178104223793715832801937810985031270610283172818350964738060561737233172542293794085319370110961907033852772609422279433231524252502921491525103446190494509320637198364110713519310397122758107356375818839439541132291943039098834060724134269109912897419322065469987548999864212828218013088032902228719297798753756833649232410860526448782068821370414848241008975749305040700743271213257290435845546909604771019311284592870276885822775120976538109891966212937877193824352224299488892666245460365426272453211342384172252419280895774207968672144983183764459733904735373895706484188803533431647440177794155544207550014845579870770123833967077333680877768776485080570940990602448464567848337712063840706060190528215860395733206476323612540281891670094475276444504837613846003947368833356532056187198906060350584578644892603386212507202108328567433342843835001617588010706981234888281602701288925633877737843147203208378401671301112734010940190564496678457906260087170895497818068667969793855559888197506439943547547450344955837969770739458983861000908894203890463593948572919592874512002486508159150611443009746635676770164267958994445256184329719388578319930373533315844462362941139687246519777642384578334532159393683687994224742265333755620414228231988373044364866190142464912358275927759344577112923249800749265904901930032709111602050584343597200505326100705137373039879285824314622427484582798536839815204150619779855276683746256596281906385469725537876742991581333352872456757389301716001249239454487270071048499669092734611371429332998410052457185108856478814940587168167095890822260234393160243882576098073857227829955577466888541499168232481069922670071157376404995115886996160234323833816404178497461598878956529553720902340457489445376315117117654203562858097669138092696285708122722589445569712455472347019264129949884139209374454445793884461204151186280644769516807764525670128878214053798216306248944805939330444546886061406993277040395301786477418560877437556416938709186078664598890532880672134076354395503041317714689440987703551413833253127551939854452390294849240175548058650858640657423484123942779462535688917024393764053069891678981539937199039690074551717802604660483746648126880816669442629404404776926510949123253772299876723125150944800154306377833187532403956640150271789439410978439572545069160553155891031229330488973534581597522080228138155156198736653016998151986433362324198828752046530025818028238919480619145232543599157669889495395005469669315867467902104901020027706010498299177992623312891256228870839412605479111894170606923606701161472816970255642250438947786450909077011056310677483390655947100206658149221284141191039265143815270474222740240267644552256922390308238253600797829185286231392668508658901912721077352595576585095378696831132639227013507383625221041874439068148881856277907627619611389632965619558046015191193516620537958790304111709693526458557796333716996792343869526722344743830028502281150621263926279165684093572444834453710200440950215899302149933641275872514919377994073867140013414920873604854236257563445265606189744446872232185621844334206820705976680297482184212754098081280698841692356149887324399355795061242205361370835432700719832407703968448959246477910085782358256258679757202436112879506146673783052272085271752108896359563144244746085363306891814652963924191379358243574982267275838742182784456929801046939569465838549100541466218153282522541748287754146814732249207436265659162729479574094902406891962378701612669525375707358992918654275754842039164595096696840887774547574166318171114817527575336196615220450133437338884983109496912988839242213536131053366679148653709947803170105633028929382867379702045723926627645869500461445830761591263330558130995993366762807844565421239932028468372494443706069671867080235602116968097665893855313751672850852680324236405251887042177322562120383818647980418319843471898876272045111374149948391541614113425207286934315078923523920012527533475525220221777034141181042279720775922041928352281951315920243711436701857880720054042958970911555649006828691345144927800637692374243867738137325861484928139760072233659790373317733662005870508188732621649987404228350294637438989253425624370782790910745304659174425753132771963135481949756167106709667428834710680338432673733759770467298467601227982581106767615389305100315483750353819591593456367903103060894015651786885701086424884475163628447325237675376230394878656019833344671996744127075485339936469694212681557392399983187592544586627342483285547735023585532256719609104064114414305534066644592517479397253144094384321827423782245174534244248463817652168317721442900295097099725190523887562122483699802036820532571931079487768719215483981371733625310128247473716802008521588604859338897480145020138539398066197629721073123637757330609297072976526232259486351657993504182957873580985961214706933316273748837922380517337786732099752295167724799240447669133421977098691588475195123547940852553531618922711123874341943572514365446363784476849526376426126756712701202474456559934740963355842459297499092406816911336737593048849852676429501029997271361995201903867073572949034047468556362225787294921946994926396001384785007302912134798705117212798388722360576609957985943448852194280167585709138553712298473370956078264003239892934359577089728906038496739823872628236494867617084811477300991105635108198484622251231631616046667968205491706308406177776087170129544896774246257389520691179405758486124924304034739209922351823389854241969504796346552543768145102509890881241107351368886291000517281297245414030449078151999300374367649866569116333508533375731555369507493744804623532285233876398113441255096828680715622394777620359327625792469039255505905205766003769343895530246285429066281533135399131142459745762058743625756473722741895347285564406979581672047906506057669038546201283398348285789502515969142848869659991607785473192315235852807155421299131166206186285243369263939540836930362416735766107753385768937654157872891064297628810230154211945396158900558600745328520158255703831383901907060073921109000914976786765389528542130053139159483227527742021220237637857463223045534628281009192895128627206104918678727716036654751878017644564693365054206154595530010398542892382261927502312151833698904674513307115478786532660696931851393296097627873839336928881942625971735095671351322298379028005123641469810629165170331710383507833517851309628217543763205242606773261702630604128483448468581785015637280739740997677448845947322205407466269272114397442153692854764658770736749057053015627215812000550979475422830949990968442376322218874445755912474868415696915472567793097672917113940671692251398648777325342826967856919026960699873732702534264153949334864456377766954617605558599489766084733461090642849279658446452663001658183045565525623492350387186782129258806555229927791420801431078743674386125802623802022617969397956661011556566543532584022192773489642224067732628034206463050161897110986573131176502949817463798230275111618376087934784548372949820974945567645302492985190641284732801626575706500089697471076586082175242715058276356364476153441099174711642464268048976340337246739904583888612022234559212644182048724622336914529712932677735252317201197481119002409798684121228643734015692436293076078137720133413819085854467323044575572993953070201435134092593603008712466448596424886641142254904331502902625550947147105833936765487499644010120594970760587125298239667718729138106378705473318118935201397139967308578285767934308340794591063289255072358924091851572111774644526863508782823522074704300808190558465519571993988940302592070898030828262045054311411732751273297545662569555155829571576472931194352916187728979738532733689464694898804078109604180334354774005189676322974302627810384822192411657718374960920019249702806964237603135793604943864973680924016460211107700213115259934031210798558461826490432497487963294359051706840296986638751227705483030863753150102378714827791969286052465588736752215135084256855284074929946766447864211220542117983885155219572590749201332938782544566505748210807225779761946030161880832556048381899467892624035549978740116040755208069311932623432426979205462167630031986388622900161176588766439694035046063868966549217443943925407124271301686011219509531015671610137938161849343416725304406897259013619735990015017408612819049301249632121671419009953123065842561167325274904622506822646869139178182819638659998697838167448567380709143055153139761637015426803769026149179295418379494841326650574728692478205703417125111207267628292171693002318296983013930756910373116530350962169225090450611639149878048070323031509973854960257411285244717320309642221513223155854652418693694537505810948759309387439908980165656581633930939727450638739214628832058041336182213528068255715278707246605948546662598458542928454139685661323654782339161586748760248659131845493966064484112053112134537924144000858119647226175141002373073824504683247435910315058943160342222795404776854174055486195444944578958232014516030965769994884265643787180085947281515224052754218356063366312543905794939229937605553686073766482452427813352132073527643394692610803740734273623363144078853907428431435541424573908566196199049008979378819810421358227490974170021985621045554565390708744222979635762390202329293349772664961820793733571058823249181573420656731862642058565242785258451520327466125068470772507180299106902927502334787700225040870927082725113893599483864617855584445943908959634421583648349890630900604577367505921645413919997028748259648411261163771645356692475536953637366268182186480157407451509127178006915345348423434899158086447068452727119364209422799763020512777041416362818622681581073696581912094456269572543176231968437956681830657392226694507209416065553396800532174198627916023493343423136409546913203936133938951935533758874915291609158693882361369330933132691071749730492508110825656717317315850399392000741818441606841674099020746432533500677487957116601429969377582929775968864634974504528847664908945181863812532139460020017245438683095860495751467346828804376594121809994119336031346698892585015358265484143553440243788359554549884716922658079290104508763956341376346784052823619313228719326797029626074931704498453433204183349389491050155165547985834341455917919242781019116796297373721864710465170246950613478307942011789582404029771796278683012538777049646137718126441110935630694321701767040839285704457035068761595684561109388882460005431879447623349464151283538945856737900909993431949615040207106496769163942891970351404565330726663401781024679578503353540655733674525369046574319958210520669345706809296982772282579452228475320013585309108142847793604780941918029911594585473372988238018891738642271555373376781906138461895993941281654793844907298546515217816986247162516317733512471051786043797753689573082348561602264474622519878088326485252430345117470536460597781359899240036571613394358172243395792612098238151203891684391548898075338310070731165561211874974361046352664776536791035779423456369963989770030305225455957217801710098500352912564867794001695692238384755691075967408631899666117640495078244965534932279758244511169707003341069829277791968962630055726926628266338453896082497009597781125945170317874081544678197422479368996856023501204911721226611903687979778333790070137347746239370640105275248069009399337198498626056076368781644719498725619057236776676368655890530832262292988560227338532687411196401489033034716308619231301789435459665402536797881252745475137848266337034033942273959125921772530966297781980349411826943241489582570429028116346136647211471056216247616873657573418335367851645154847048232475986790896968286676472344280655007998201950802265044900851010850469444234973473170223016970345268960616204123394123778154936541970972754553117565447624876841725400051197069122200851772194562119891619121439771275581561831747741421446184898895382443907911538911370283769276135385484164448576822912658919906919715650141350858048981801262670462249110270911718253800641264533949281130487228259753881004280393861800794390605194037776846667361161105226465928923657147658090608662532207421588948683291348380860380699080503379262059389894050474308224713324027557471040263598050255815093569009968161738221011131949845316868624262600230877264260689237771519456243216591280492866623773097815198649816965620318774977639724014590442600173205581909722175406110670496214754528956206285362993966924437831491727307684159427869682519331587807233330846513351750965657880138993445895478487775917182141707218476763531793773422265476039286565469436702047952467329176912195723398897476511518389453266706405168753895768871091893884719640832194109604198024198962964389598476956800866199881350878759339947712898707072888056556002958077333344263542390584751461772819575384810849068594782372497330707985618455881703847757430179320866433847998536997967562340338082024092471599264748840645116460461961944931304952750477893113550049792984245548127248683174317858383926973988345288113352623089806987095692478399548537964040906096894140752224054491921087064763750492530878936518878462258543334731032569142720071137303395455735150879946053076942382457703975900110736538282542836929407141083703899396102618809394424183872158063167550137474129339846705669391221218098556262214465078961123596938510958948584336453005216934955944976119726689017208148806396264034756295896794783860693270753410185894664072678886755952838411501490249031003257826250380480181638552079862850506247473964496088647508353123040824451508268273756063354174536368575667292408808902816038403943241909851459896592442787942890892893079802522228954115818053233579663371579562995270591565819258274224734785072247280862437231123222377088358042327997265697618345718475720961136188616430641935490082080789540357225978165271036643495424835178221483380401099280706857652883378065971421442437811914764538374009166923097915365726026052919610981828054144531355528209016814619624890536251173040981245210504798272230766482435142762344630567626926156611009588383906707194715609704407400886868628395537817529654625290352799458051388300281606752805362820363182845239719272244363432882148138649909747748156519849933408935170309238953538198030015712622681248544751381339518724822316065308127433026742362877631880186038123191912228498185235731307697089469228462572955208104774332675758783050887525055707346184331970189527647937677552172154644488744403073038624585715888453597113680162510637268588932827908526870701097855158255318641003974801348175961676078063194855312260493762320140855368519894552275367783275299759781017728028303729676879325271558072087583259472895359391674663363000269082361953042642915676449842007640594270472911924473237271289779602750973782170495749036323653696420016570722459011589725118728033215369635866666010878185795524984913873379792539201973781433254875810809852470286239803807924642607241133364672361589573438106942014639682118976403518323371601422822279750478110486428407046363344484768427141487486735619213783790295871008784673746914641308458055957329387315413750579929373240004982397959381434754860309698396486742146093734563157470225490776126890218518224811429256449958415436600814345864449169288483458190340351711100040375343976376215174578359310308025328461817836918941097623746755946433650325509050629917566132413207813873842051879461078789841567404307371656413445080396764759851271399385235036352490580253905727434213736257152830374761939369981753857443843036960193299666341236632914855925423690283888474290390061678663146109346395597294487206010019745451305388135665372298183932228635076407669669262858403746493783804957187056082069966240243945337951197315393009773762145874294082845333327379815642146756939767237039763156627894004243647160276458029090484893532937179073349505081062550477806039914386043148285102422396182196601401268597185663614999281905331230391010992778886798292523389992701712776718583944774734057822478806227628447710549186660451737027013124770040840515969240271446780918613160830200688964309367028422987713788611972779254688055012886761704447592941445753342150867043177912444682075716575815218901205004350383995819082909003857498874688317038435012712304339234796630694790633697831317709619633678621235088583154271188255209388809278082331033860953957963554906839117536980934560287247338620416610640182286571528065291119953861091341365262167979920923120507776339910960146834776055393400945047731104916232311202572684943166217532654889948559626866192335453802591086224020612164487002263336881311697029987627330799367248157006092014601855547594359733478565743967026737161096517930249312002024771421051099965809609668816365560930985453231632304034737383553918640549656343130250434038357899888242685083771934079303017414407311246290552437752432844540321080862524489438183955680624138760785415244240015778438143554705924607528022937999234137418551854343506268883823387540657046753978499564317025788321184426015152537442180747026468342935794547246312898252013725246763533662820096645518744406504341863031030378061287200659887999789911482612867859559678019942109898158718401594207819805365135235195563865697031713958329435886240604628397477884379414702458753155192816239825599761721623460436523910357266624830896714893037206475930088261477149495161110865613713055290300617372028923899043340328978139367261574217562159777058798065705189931649033359789193490523840436583635921663115032402603811459472512882847510712796636041303512412518401865863967892746741243948676964026575997721294933068350331602536134050859894655973317485872755982005835468366909539204171900600653874835120214886728076687352356931552050529377125706165080121291438046262651477843528877779740751188470354145589293094314962991024525480383231536686363311263180429883884815724254383098730318885601581303789232861893773443429467959577708543361664241437065411907973989422221379981673765477152330957542512195368836036441923118325470482448362897010378613702664371385904200997521370722090684048910786363699398715855868455705891701937849985572022228505028364837719289994711411042191855106767007441575145644840597048699053989215382182794749356237525431066305611514868103257082417250221682752153642288274293561101612876879023267903591907012756606119694045157258345655068676601061768347456150998560271856571324421565693345261342956818619395422359528402183193190582064133226693631957102155426205317587561120016287924972308179563934831374584219069261949633698437562085863255551239681587388309344903949751997154436618371407989959996203254372579634794550363228475392409850457483079846474646024753754522122779777302459552387675250140161176026363447079922990618798132966590007080662063352952056574466189446207103838361312534852726451237860162140633061266581190306888628751563115031794471416036271169802931177462248068183464448825434566682050997753306510084282072304174351911057901409395575907502790566536197167685764844184123250421115049638173139319909214759731855630022296067338058286194250255279016607520437506026828898444274216819231989098649478881954155485906008017511408836879589577614520081987056631030682871692017443051465942166824296112137197043861790192262191058068434792032521960038591944135510916199107035989586485853350544536518240258657042023812120938891787543137003425257169990319557168736129736058005411757447495252791051457418100957469047809987388211936325174815222110300530252848639660500457495776695230420773178957594635513418183677923884935381642794872018613491732272299967109578847888785813074904582359919942781840470851008272646377105903260817910822669518293032413124541617869020922007229137262062884166274271264543961566235329037931967107741727643560547928114890851695820843825537219831956688332925935169359352007522961208030796651232505120330457242880711730809369118542942382756252697834589659742898068652154905483773531132197515404723430876780412517427900385587647577532590736739831076660079601369565159600484430206698354920765688303803885689484403135622736089120348901998735118120712140778686325299589446913355134129878153054256036983743994147404321011285184111016799573527000865732129784143766943823959604109031564355046120948083315325228888131079384822104394220221934315290947511488141102608130437744799590071023330147635776122240105062282642811399948421910517534733053284338197172552313678362789652157869187089461705627750357784892517381559609636769494281428729174364815930464662101186130884662072181766058838095324777267050939988159571713875600270256539950960509548668775939508883212833889437928651248242813956431156762031885917436240004962592041746033981858009967798383283335888894305887239308749466160679611619564575498919725412341763247503557020364489115994133714038051665876458398348004603939378078333558467086975982675260545764174639464445051764400831558553743049275876274690193749131061785214625956230357253241323055102428934404360167538588164697397102171118538624076512024601036807640958988915356944225300335349957376007763559232828490388911487504326563535870650166195915262160616395901053091399367219886969759487817966851413100237719545116503610264723404564072993262335851585402983986675380519022516500525183983364301764644695365751288589504094632957453570820703099766014041050907181925956397761256977778525669039649029001003622228036649757567632209554309983862804610870686491920284807683564443553860503785244247164055864876443268178329578524965703339912072173244428190922996689876928530211755337195520326814516126727766939685151502109376389578256814749198267702133847394674815757290359203367231031318217851567064874844793496096619875276510694976396518194123726920591303796622879206628891249835537813746422627765272839890929536947708091040207123703128300736729241153391643142374006336983981117174534384231469223380020526331667955077315591810272371121438734693459119168636449042944837902257193175232067551740061174113942783133652468528352266784663742210494652667940658663801085499331847511270756922804430201990826159855280193100505945133229118064580628768956491890961008514686008717223616686441745078983673221749403296174957396942806486104246842569749353670368080781680881150932203882987588686139984833325579021428465438682216078240094142503044411678333415417600575916881916677753966838964083027754936505168024199414866539275075281190971522064096398385648518544416661343367273901507405741948826430758649377691011990720767011833787140821256473407826116123721238390930275176711580661349676428990785271103679150007645040860997660048970775563785881538679172583907843858839869231888637882509186961064120971339062341777192981110557433708431121286352955412092723212191879612681894152833262695970940394277155773300255016041840259524762315422920403976551150320230648582733394255335558352538593103826708770981280685209014638242989961565153223308309762279423087768778603714180407017624233425254142474236690622095434137475854254835663957399072901339326985267681781565092120321445692599340550482913052723143575150802126739782958768080578843978537758307543501693636041201634215120829335399403141646389831929922166553450543591064484831961777809514815969092942977051630823796834270059015487364412759704557081466904323156216202242188343731672943619813936037506359307570329065001523762848793790825585339713469194116667242078407994113275130098035849465549066109425885075259955896131456476682210098087770647305169925433777177781509688617273210277724264390615673765301079355624204631347840060928401884520137966919893791815381285435730492493706384798188463852724747952971954506776111895223831507167309898239092628824468871197362227360369479840798819619549566178239901570953629040939402200823262909624955208493341162784059702224913199262157370253669477775289397816032719043599322373481008802057926746299439354509652263971789087557372279544717410720733820640510726551363457809792941199477452228231398102998630397520496268676285536137552182502682092879576023712104709841214918435486557631822432758831117821098066476107132207806384040509881894763500701768327604411657221094578817952879779442943813961878595802409953170562963200587382094657430056800252616832658446011942994223356756545657091252495346927644671571508808635318578904634378668853922804898694937130726411205610362266191480073487945553923145785341983846583191805891412046994210197238611799270340490844832867896225006020480268086176929259665767560780950812814338303899982474978741283694837534709504873632980767343494620182604575373581595616327384938153421364032248346272532722493333924400264895923139453753814046046652044317196132685088124963972336814861702312544248705518571477290303281728832426638075754761831369756421301983615565088971260446836265102329752653414281174803453998297539174271372918335452755693504112064488379696091241123322069182680774778114806994946433624447674135681646272940780530509256375093977776411755525753903812069716022806771111360717969329060280169628195960084582758321997376313026034022027576523218377406490616551209297910693628948191091008955885746767069737334892891259316726200525800265057809889002541950485860507115494716844243548203775345853051588076305195010673207527304391021847372665187820753812554538341793323449679787659716381932811412434638774774501901154624978057909357814256200548946373026345375418237051132791765310580650834645680194870469700373186443650956237088166475640399830223443185066859973108435069158912032927409786296745120477167954988579572965071297370405731665022667286318544765372269038955639542799267801351109894140462577684539784228591561790906362263065476992183899429032323079211924824832238302139145386723008366405552351456307779435938164506446880630099348971370561380362230665414321701211328778020461197821781357706661624177952064015652847332550852498867824166544037708152611526581138923958320654803239095085371779390313106271206429172835814917149207698564957017912706903388638788746890123056412535333544548452234261228086859252992568304063917710228403380309737567723136642146747158474561879187551702476116143004155251817148286937979778310164142002496787812418339769171573150779707030383342010493261511473892175352408632748051842275063683321563688556568199613242459304754204608110709469357682746638439350767704232901211018167315313368211461184468226315673840597908492265257010028645496093116803597802151484544233303115517433994731941278383442164452466226312562251826385964410836497382949954995375855930397334556256321117691373985710548967427658519110778674369081835795688945611267361956900621557165384068889691918124615443509491450897727529851466275483941491771930618061348958812839137763201578576437906779334479074700402131384444689294707982672166334255923577828538274957999748187971900385027655530041019510609578643078440527395057497597699861692472896227404329500868526888866587599130083168062927587118010730827782396553089647825554149775303106306721292184488329663434770452367500603845549507836861588659168885688400777247382792435760431384641729778195679407072700236353510736166469180410694550878472232715121475707227901146626053563156114909501709110123370494678763052525202679612223139197128313650257003374045469521306238554408254026969379344325367641734683930501401290243494997954596362362805346491536892432956525378792713690607455601804796901403682731771603967869545316757711324850585610982343571003519454559567259979135774438380416325322097908768432800756481322121551380158696572973446495382790133353833548277790429875765076532626802493349347260456840129482246782027223817430894544487353297118065836879361586634071891190356834236416691431188193225925052300834401674569298854395518453313000329340134535082950670310274557151949049340723275937342961871034452030834736938697984231684797386364906025228038096088880960471295942537506371124422779490409255349298465521535848632573209904573674109777820249117077272524427057456779394727324946826589156671246051703308796326667584646176288106512331731711852978689152411300804941291519309613602696757172973220961031226445657857686385015126229189870658224294346698464291945690957821493585205819903720977319691721498702495615397174389758548568845777399789964966008566178001552307455610854105417181957335641580873305471165718902008361863473523827073510596187927432960921171491287914844600263876385771512422403906695846863594262695711644623970322936114756880431339151523768104787051569573440709140316186679211882825064477206969415598431987614717745325215753850097601571405378484520278233495125237638678109708877627629824143344969491851746433623997331585098267444840550319344702936553630042461482092831127280160544066443169115574859737134703075358126364509709999690838846594221073377031196404291236910507120275776778215426451436137871085325600590304559553424187375015178736968874172683493921706236672979597527516612096226588059293087957596138590067714712730645615269538655891263575691627603686026168267511808118115783163218628164863185070745714213640536096219503716581140522085127687105043802884473652556920467329222017530437297540533967498858797890045143228975583926649731965769277663776481043002658551153330634114472638891499127453237657585560228345942211193863046421137252236091119058394292920631822445599823003617728488832854560457088988296259344797456369155146483031100855157618396324331887316070621108062151477045899169975254022884226110765601597204724517471469232115809286058684085381406298697672998634252216653824764130860511640912205043121010663801386142150348799551003884589078026869783605755776563045923357961231740471533214791899305749021042475467982032301237194306644922087850804151879078984628416188863993078212095193275777845971204425473602315096877133543527647626669085848223762577880825249794517603981960431645575534473038295620137533948529626262774610804038156517179953578307327986196143129288911440328993607942687971208302164285033601556213506628338143436256429103520658924039275367616650919596441677684578192722078241475178427814351980021491146894437394337431943262138366889518516726743716803007470708248922875294987915662194149364319073859756227657044475336818854089962328837341887086952354473715727014867021962910410843198125559823760529205920105782844562032707415928975421975658185551411897935960015837786613113071599981360071961985600643039476615047103055517473970986186283082461233689937072010922350165590163387931117916621797153095475890678170058976602482925877148116156797015946041821127627108143695463549620874873399305966616970980897274354268321032315543699684985549888562296539058080480574374730170930071609317604048534336688839314526173593757713753040697041824137894951010163393685062438535914343126409781062248728269780589374577595251986091540916859241991186013330701690117768094758191640835200455293315541051041642492683968087544432031529266056427481701840814773846172941838437704870049822278721928306483443798282459600969633762398922528944239850033508927467956982240250639842360360625543741737320250900031050722629970929405605436429320284994296985386705534731906030083479555472952632664859614696778631555038758837829403005283098996098429664622408319497788419228645843526521992998241184857038709076788914121477189400096180669492421790659615344023054676023753976649027493901041654976112582081797510971797507874820390227407078442777837878722595224232878252544814968705769791943021447444636393809564020079932352234186294064324224436591672261947880425719517434979175500928148833601112249005043567530755932639162050862193545913606249562732863399021734880459972323805301712916040276142223201956626150558168613748770076217774750275850181299479564629754578334603792571842982564121305938971612154356513465399853016623878134950753131262130120523410442936098763272291773512842211630530195787946257679102690203723669572441815439497952052822200226787528415766355138989084951508346197555935881744859397384108935569503253640738061342823244313792839023507287124865016091826349808458468163650078433258996991578273743723716327512072434144251169076733032722416176534321059998369182635743936174460788289729317111201276704909969326470205684904665008986606002735310167682702477701641261155919930772344157269426394231296423274613915322883494251994479050943321220656513312554924438347772174134225401477462332585225357819488393989039818639217396058328242968570095791578896730374286868883927076327290578475170575924867085396668543357796643831596343007415218272706407145890982685567534600816545718858709497728995440729520539765409939510548084409363707595527663340507376007416624736597314353265876808082333549058091394895242559748308640908968985203023650037019901059693220800990257417693681521269097922729152425345180170454122536054072298889015891090339077689527834455901723625722021930436278672010069479973902665055146919367904795958359130148634252137439135095394794711416914841273284137563878891668890564303458554966458368507466456407245565354298904191544934663293381753283303670635925851672025059953213408533794292519811513891145401748985042225907540141924425356385550925600373567891430665896627613041477664462835656058631733724979045038801723586957933524049510970275637214876950051780151011891258562705860479785274281849774180318165327762228185181227902666295942728315350189708118048576325630334898806481628644278932225341996984725990332505096943937497152847359355003974513024585561825372778459981684474058049076214590120893893469763480610039607350172373235845986631325658619276071648498175310967910671672630098941839974669111410434188749196102740188768786667866429058799550650770602707292030161422796132101670817232056577607585641538093464874941945166733623709622853102318030889827180553859656468577237090520519753937784940594156084261166064225521059716456336117842146293470091354822228628456406803578427865503834539408940239020764603527500278981576866865183304027729685411791752815725304356604560160776434036740955673830419650306957003026625525269238296547360175544604622577332101521406834442437936053810581775491256417775629177723741263050227801382456487621552688092856972782248479458700060717814946412726243955824105482090170577066469399405968834372242634506704048313122519276743433474090767402280109345547868838484943172180500630326398095017175908606465560443796126109792687165292724724151963763267057297710077136546115378342588837096993015659913714033869666812415606063051087100845165027848827279455163892888274196043961400848472600707663046412005948840899014442870230617767263990813595262605169431990205197196505222691778694686592226910232625912615539697816433894481513103151672076105123523285032159081868004084726502855580998629367676327021004556956898401324302928545969817391513695500306035705401939464732205311604983775276660205984637577851558463149260563493437784323586144238278918271959315992242623553728653665328761341177348113557186297962530747805913883571194073519404205377483876620488752984668654690306905000413291313264476019519543482776782464228054795764871103350259832586741202947507632224993441702979482501511672259810942006012552703038171153283070737976731005992540545142152104207613946276470933027409778757376763922808094371673259739980852528357563586244111667969052279376638000594487015776260521574345162185717210346229890855539055381621243291398534176466862926419865001266332184450696671691582812671119161326729212115538537763536013727139635873383472541614850182475261893904564329581323727037509501780973417996500460620460120236727568752295854845367394417851416300809498343139512580453238441712558472541042447151836665857967998646758648498125505952487815491981563021180606043714036179919454548141821868573237770132628906176367252903249395857172227229969006503736109872156219182659224366470473776351173982668021986281050885217484120822973642402476624616526143274788745294928083455450930968839931985764563661978155553592019274485810836942919717948707745298467610120347940863349115768893424347239751846503573358488536639114655832865103828397682722738927760220488087599626959336722648079710345537330160983986988841443588657586030108547619381174869755183610499504122880873360400403535095004091459090520211923035403166827572960148310446448634320403425850524484270288088862236655804164571047697072914392433864752150235064006223186028381038464829692987615794424243001000290878084352615860759648819274312197776385370578257785257815985581878020806009561745473571649597990508021633063819280931373782224424243479854623448266179504208981949366454823315551733653429355259363718711886710666616299524542313031073058507961463258476287210003484671982240563727875455036956765150328142430399363165779441211327612135018213222712294188090439257880669729373054370040315681540168014821868283014038050086359747678039588678511238006653858500866905512449147203357950789749172318216088115930315005350212432235495046243017701741835987180001340552045644282362356771767265087843188793397092656390816990382597605112521489666816463493625268940929558008356352952011310735040320393045890422287420558514943733680448048221422970086003836749261048650031536828190505850858503861495730478974121625222263791721748663877060313325664039748281958049383562989346750194947257582706084928558400017778076986961146704230730225451119120692885365998789273852054349444129932201287602096945210530598507183080413424484473782768113275437604786203646730274004475159616253780246831550653755648919120183980899114990022693805503455526818714411495181364655495802318156527322689615359601955255166314720885077672110276533173938748051664400382684092616007744299730123029203697830068329541133059114925018916041673809748034793824092493597656384085916938733522981117259852660575163252829553286679572401150729672488536999065170240253066719863587407735553603201282292751221097539920237546124597323248526725837714678957113399694665850685772818353811132296753285423533186507162820779253971659147945836875437168874502580895036174848301218407588094814741158340439843702258082494493379874391022159890037528873183409013708444091596274084614391334051117144171118416606077365022717527245698223257975254893467675995438044040045063696754424073208200914376640303491132912673688303782811378366595116113458303829672771068378326398707784302932554584383614804925662229713208353461497703132561623423808919468804792635544258898864528980063605675719858180094728564727414829025872954193308450011481371057620281052454050748486433039825603550083211475836951216280215672099597226695397046800861743795983237391920724564757458002996524485430975857488577188098623566696582909300544552463764051858125507671553760835541213551562837459590141133684470668691965940875786978487576982976219902444749299418484996568871187371827370638702882366482890276361562818798517091964364118920059333029002292849852396358652838157621481714896305297441296530262353274495112734094751133643288145900869200673938725585705705229607713996353512395058494329217523547753519073455011487459018666115860645111339388839414954505037925490363471710136156094634690985158175731557841430202798127734730633728455075840251688196469494347732775080173331750841105256648420203667179943523029966056060818191333535261568444319084452196439107279259504809527732148675593201203848267413369947778839269505268450361801338463387923026963015958811334059164199488004540008656968257237751497409898078692226691867238915325872184227600152977032147547040090773043820857822358924072314168165283399884100078245323805191378104609189923887580747655272787746709449733185207181976125158309092212052166233309247799065149651183473393703038813946489970682159249980215954294457303350927245431756181480695049827061485480394466381547872938600832377066508605628441144935514754940587872504324820626653516985637747610049462691838923893561250893675562832584169198656942887017287822611989266698097592885024351362473765034496640162945997818786763476187062825333669759537044840768462029786727746527470795025929424954876805198367757262425097651572988021227873098283818509632570139669758469607901090569603202316044917025643901041914836851673612835929138140836216413965330049137954250408007663097402554564645782000645347163971503518376087633897483895189009155994633726521025551898796484720627780992846041599319455619174845482557901238631193081855003087679159775427482731221984022533157919680528518057965141926338407187767910453204499248484919239252685505865085545743620736004445541914188780016890678782725658114287832584988429787810048879660253640021119753445868729353094071622110715667899289006611979307496039721344317081791053202563481057545176404767672302658585003514383607752682098166120224100705673175600166005542558212280346718220615113878428617994266509917226909384404320719485375493778791711795405391412702079855677844976872111043388176648883548147267413938166666829713753501598380918869606147497100743957762003062680615991653421397329322277540947898435881027087560523374378461774757750436774311796047875934719226929773908063656754568532635883523835531652756825940871684604808985575298747379899216826916117658667893487479768724656145873538160325213436741908635365873860157216989662648100589788452337106162823423698104452839508546940391931704887086143968634520783136046799845685238210768378613900722827842702688184438444029445120972433176746676707548325198673733896865824495009550829744600485572545801982072776132323228811448318123442826993376662644406691558925711150268105167844806974465134292595621624485939963180594882532696899390814863895624221186291624045812643329255294448885786716854140608923047195423632485717699933509689882172467862572707005848993083460999048020496637119573203041426339827106869102576658552628239713268819339759951546318888242374133915352722314226621332391618142976247419313899431154298401264222922693605289813932613551686539220144508604197934776402367499783154179731978352956924802985978549865632548064010868492191473472140866674024627070869301139140430974175308367426223231366354652465174206348593667059711489812760127267650686307489466992892233220644337954056720923220351459050767727336044605563014928698546294072636210104544538514362227966204440825020226639934361896998129521306819103275490663868479077994844131392347840353199859221520293622427072899591599393970275297314031984332840042371593054318428616767023476482119386242602897006343620400115923978461296906702255970720710482460987585095677742746359574809476042790847716261833745793112700921831857351846285031204385521226921951931661447230185138656002177820317912782145789885530096170824616702702627748660581572456660281441194160466012047286424042115047271451666811751667317658988242929338472257397162435052899223297392575474700241084833029592427705294764558974690449358195568064397095722632083815663245098431350266153396079514035704803047174593998215234938755594830307949604443793685784343496877073083918961390185977687089754484243720189344916844111205128724998699093647676446650453869026654888197996751177777174058803469569600016915867723421610134349900996964270675774921785892549644706165874451969996572385946980564593359189682797319477556286315904183812901225216508476693275805444127498145308092482639782852978552007056484968299651159735718610912939288650041034039721848389141435241960336049310015074996400346969025559602405700682529367974887792826825070165631544279784167139777034159768049563062295066061666629984911444115767385046052736472909624634580242892728495302987107104618250683985012635985717388924069837915968363279311597599901870889580397651229062611221342245488902724358144901298756087455163119895857676234349238103188153208077359095646439550280974200476541064691549291138526168897309517177575723846839200457609565635902093496959860883663402776241438368218375947779708224259873009861805416880464619459331110262011324438124594661499203216900556069539795902838823954186391834419016249504246709044636987016185372864358871855477825015471193078401913984992964604503556878762335419376668338099492378640336262004869042914731446831669329364463366106628760749791059935312416796366125854717012407582615460565464234638448673447365989220905017350997008938863469562419258647535083661931957789246882759365669732496852436695011400621820723005908020283698136449539211119054162952126637299067703690129257461653461223379353073003346091727529257450322514439431381417651656164021042454142235140348192644593557968373624498678857899005999145618766112423107061041728541945685376175839727113028297018725578287581785213472808931970499553645421074972418157413388487532947044781097756321507405408818520692929699814824046401903728422369568770106960422433057869390935491562763510207674883990261267737595704517447970646628123798319334823787012206600683998492675739914652379706928559137805191742863607832410477267969617632360119771016339494767493306542348035528627570029963592771123259599591031562870325372306481326495760114102277858245070577149824981208335311203555542856407933498009943716348515636043717057701970580962698870744552593233529456049604128641118635635534131188494024368020373810025368656144858978253817356593590097580679963492693574387122528329065917923381061825385671122767882351315548342738931016078868700015469930015678980521770684597170495690175779764578333084777478280452910782026944819101619544279257536055155600055898038543100723711587032371227003373690611330649759700518768755948648173571728704475404115127180132228903702007614432584858946047171156182794849223019541673664606509296271580508081914017919582527336747680360512628644900645896806601497315730190908886069811197102232196156352681305431424343699182997042928459165481544352977958521523109633972248507435631776138060765323386147972648941756182710708206867432437538668919621706062516738480354662136441727449798627228112190808407562349998678949910002531075083333098848307421958331361585949655064344487714771591696846443508049170259983016166739839304931957366749982478316599243822096683987766826245343326065550524706199542767343179201420430857915645384202148841859743428321508816015817604881418319111977172666839472189159825155194896565324791007679668878223662007566685391332454088073957360096392493544087954037589074167934089880061698316033247263282187865854875507270279352930345368740411593550646408543473753900292198474291355654050562244071907988590565228704470159401036102238966423341435536950785805280553965635815931827297043621327224658395263778301309989216272684883430428650662041580772756032413771291501397996286650631700350250639640311673831541232531648749409396986874748526650056988982084839020624436453412007639479306799287816800148656001742022995457888822609564960885016173659890664009400996528583797441824563930758928164587297355926828636970730276979338752846672243674259497382480828267012583125399169192151225266260098996540992127714038704169529892603363324340842679089515219708487708158042445692963767081972501269557569719068093916858395384480576408459968916528339128628827471499364883805191431734044242967673081811442030141941575289055256588305594097859445572483711516807958117883744233673567765901414852007579124091719007085644695964844491688004335735166212516411623354600462561947681147256163287511295674356792002791490165248638285961505756779909966015960201547340748536395889345372912385750185102398486023991635030504688263114176790806979772372945798230017588996117262026186172316333098429533629531069947522336434114114691912334889942282759450054341451035875790805309474579669319141860107304547687579153871235048809763128818937334729380607932617495056538838226477259053583461534125452207268983236841577448821664047258315166748536878142687238715119806812258913439214348560822017521112555756962252329683609463811870070134356375553266612496277083022667913684816721264080610003458831904564688975607740548007317284116074447149850044657567341369374112867474098540991064275089203760038656325016253293776688491589710902960461866033617950179598092921704571692346050636368727916890933717233082240736401362629569519455831115808561923472459696418040979472468447954350081615511696113415915506904429150140370916069765035679064405131438390495289282522468501206962225862181135248926890626176411874673077447633609412803526829969441692468099088494354753690678886833455754630812019749654676773043505800633331780015537962577727800542134785052420154331371513615551104127698950076059034255013268940622574492355143035663796113616153311029742409309523681953296630540581331734213948392813611436547853661737643347487890085919946001849387662177743079520709781006996203791394909997241998775429526431083441803195239928088109939214551207829338490288105141435372955218670314691598810776807098648630803814656964176521567420679914033773750257521420664297320789416965413438556602674811429947292172925547565151802723205371128714972264814003332221575971781653946992219840417478350000537148776457286380213896518969367737855763281088977376974794091677538581392586410825155873603797940555769910687212680219113122835551141165098024610793403888135738976412596133821527617488515083069087013994784587837176777633526195066768813279273538037227689708985140110654033467881807339211528926621727479679875238229053299050492672820825602447605081822159643320162264640440214687550036659851102418691630959816796103885621711248562115416661037232972098086251171448142265097152874387969694524582562097424071323421352926980673134861512825031467514280129233199355499360109780279853561804794539423992218295841167411286789038033635557959813580189271955901992587754341746532922622200884280804217930652057360078176662511208716212462614398676766941321060957274524851277576769085037776813352864976230323909633360261434513192025376941228267115109463201460365787994276154019025712904840012512725338451756191047400892758721649829226260347353174511233144629405398974899269097169525508564431199129520859144944966052358005990479949897546294090077452323953628604854239471246051482388438333754197935089052214226434444365854291512107741635621163642089309383680561997683938491137262330574058404935919254436390597176957052600904263951679321458648757660150696591632044769058079978697601979088106108610680133081245649204286548332729458419602745531006941419857926581012822780652559593931239220232055645708888095183431368737006982852629912438915369713307059683556799416773657468122740391720364916992156520844310043894095811772191320836476632510376355996879185343118314103779021975877911514167578895709606671643372533489270989073440618289755995161960752196729210490524977030666998069407493893456886697727502486788417083522627650545911435101205783044923720834916289219330211475342246603673524268507166613088485303963301150235862340259176825428611832905164308820680817518937206231605465278755976839149656845095164210453144710598546561592207651333166306380120508039170136812684688377683565120780564087612902959176938271586436310910766706887516307834255538591853068558763947397857133903908351266999075216867601351368237569975613092734166357138138764199762599739459878841754536156941660692622630383648108241307218933938733230123264382419306526915254392771961193620444339612326114437210386043268420305686478777865834742885817746701045890196949884209646583553044487790757160656263713723371907065849055023990371846808942343788124900021123414969569137483092657075354693747889476233805364857185386397011444396073904598542332986778662296342974624616938470601159474286074761448091886034287653960991343110465737563365685426199156213770148324734999956422329538182638493230138312371049964634719825316965518369487858942942143602060215624902929994907218744234385998713271660974366750317028861472963499637195329169110008897135332637546857956886935022534114582105188497716889244859075895755355822423668243781984206755373430293882701667136671800508922528102751670276827408415880402605193842940540323514155619579720931580202279382970429186472138402258762142625460004373007389833964176553227260243557550653409632026219306260958123102213230063729435135775389941640782117914215760810179890985749277275410710762262842197644246006555819439250282463849825555839143451161295449597405699096000023997622962231008566842323808801174430055091413297364760505729609039389947576213489492558160616036193385216055753675236453785225126406326395464505711166566195891028136676202199968279232727953325603413338000597462263109345076189178895511623335592444828168299986982546774278852689585538872969383033072997570346358935017579448383328396474421663595695810345659348527972308425636173738867601539149876992305166414950605085224451106292790627125018977423213301180160503421462893487480546359223920642635567084165113217757002477174544502166779228546540392923379242153429003397024710411273076562214112073558639937116387321848207967130940606707588328077037857471134668483966479136053005913714416944578020648507218291761586726803266425044976032705667706344792327254699812338234707398654819082426221517658056408712629414602294415734395626382811471118410305281513977686383092594953698683879282341497967679597832817576272256928092676272924938251505254302356564175802423778301846241403731697160077695391770414157269442450918027027919713253119770952850964421174356211134492185597415003217331835393645053116824089525558723556776999600661634353671204430931788993614303223139763199545818992868451886760145028786164049639896322385597280999209638643614834454967976300000157121901667895853287313171491984009241920837279514656000120677385109103459270441969421268068119527139246428881049754182559402129791093759110169239006985377577776716386382108058797688208013504239748770854306872605532074178368236661438315300284662916873550339601082317043326035656019104226451001483857142464207547613467990720027222447013544257186249440572203914566680417044130736785643404082354433824890853205341583549572936364884685607416291029102475281125242588590848089247717427960078848961603839218887447926906193940731258017308171741024204945636520366814619595161251122785185694578655117473901140580305779896278216320549516798196879838824990143188610383089196387765492000263206383211133459619361699799913012441587269717119996082665643254179300214181394556339342843522328980929614970611749882185829401858021277697275798609774698514908042923431446068952859471818671795246462273780030674079290109319234095681965874422572423875187256172830418305695776001692996344075516034728457000275432360463586625202562328754421155063698413759857347942961164610760273663812796606881015469547704936161174801893725854425046835977591190061564546597075984420850649588615674693027182991089790577348080371443853540430128670691800656127873988708028556093243277870452696318063074900453950806242510474750195937468051111369593581047615504763979826186344428337355828999399211137646590117969537477427327801925525919353499072102554725298619631769007779607752310697584399265995326859002257533611482236898599333543719774343056863866491400107045908333344342740595744499834055219839571357782763327067572460520566313363344669292480000193362308503208155318494914803344738963547907283498041355140564668032796070211785803443728850298984484663233043325889555402920009631581763145803460572223595598714058850970047593975979410346125840488525478799939148411379687289915912043627711858152560856940439710111457884933131362340805353767271473056016474553546016706687977999780996625103437192838632744333637489267765603702026347583213952953656662850576034562376132360959665945382108232086292664939462667486071117776785412422468563217109664320258006527100263708552431871347232596668514820263741364027168581644133269406172213177840541918501108795278447042860892040380837061865566105885474305592746130382702943906503714564332977983978264688212134489677982557459746312470463796678282814000270845388824010629212660690601637313824989167838346573902442159411015047388720114362328046490959923721571101192006536472915436687884901737761081157737979792140709333915540519748720929043384067796938677049368426269631475238684813070202494805342487614674858752792874649144246841836172046227320120338343539975959436235479070302428576585603054830108470368916586155711112847442937189599588766441820184255996254224584618197407852699927959266529896045069270242617705753241658277370879183707062905976804710647092411304302778128115494918191401766458555487967584275430697588935992877097026042833534432520184638909476652912748771594443199427309498734943748501453570871712437274749555904168991175213913099186735312108738625172013820496513505117965279607396041830075472362653828749026979626834171327190463316808366834666464296167787404309847684265616998512443410448028435437469455733062187950256016567319837105107146760422699489954019894433339406584889316283135297578859370329849447885167162919203054749212643652261176154896017862714181442182635935898805016745389471168322166253326262328060379184800422694066310416920145974074523787759060589926858008941223137187596995178975462328062229499620024521378266168089380191085573060143847308034610511471235894692089530646446883490007622454293991890394223371724484029112400102873082796932519048113270322043961888162212567717014916569526805576338839752575510897100054223591814563343056908756509965074298838180704775377216495353513934196947704203087657957604160107805807511424538893881832037250948518101115426285458837763520595377860135767325244958296521901955273316601936449960180684158998266005323912339315064030144955946385608618618830245642637843421407322606661239584875734727272383586559115999065390154599320158045876153373883312303311748347698228762922021570692171537672585299164018684297959771013314481157258072927766159237437064552250981073082331326048187690518883816686474203435447413773329503076278396974644427015061074314652586054656643756031931415309807596564940089575929010237874967479703859713046172993647099118823375940283272972245473336651927634495217063053800659353544344146643052705716255801835991392147003286796530647908928178356466936872681146026197803914965246763231268240445816945709510281572270771574238179995620055228088530139445644238195595285860020719009505185198667641619593650515149328281031890258124670530667831197463981892501020151264886626957285326193593675718109667473135171589912660120044579281557793925905899480501069011237786339739184231552989483731483182320963119849445238081891748976890292676857576989284533263786978614832264338577831583707583265610514981603003992103590510605210784922630023950630756578662420012275919566888870483949859037632396030002464175034058617325478861417280674739378004100973024145250000014882562992735580068474833223279536024897667325240993882715414672241881027814802085486305799814552668657260919245367204447124509811955281850092665428379446893655824940768198579922304827339614204675846604959168520635770420881046080157507884966387935688305018482164433127306153518255074888608714300044040471428422492254110807215739579294071439987039560020117252705481342216781136773036676414186445256903010417209683238183123372962768100486957039703425986161620265710337780287383618348180669279377803347175199251427202479473087595944905797454532032532522149915750711995530111883715253435848065833014830516182562880428000567122388048220282330901276265002798531675402690250720047878821181722859199744560859463059548072137455310805232909321397540913497617530027279988963667980576919893307765570666309760299424018503925611893778142931969641190755586980916489217557127500043535506958781197265649402254101918634058516529326591923398126462262580475284861641242219242584985275362502018644409839916815323258012390274331700041573028348438464894726911647780933965299638176148967935947310594669351686084300725901480617764680142121587115995774535490914089343746394924273412384525861690592437276307653437970175828523385339842764248586224988039977550774653875239938386885749031898767683523169374935431129408270170161186643615589205708131264689479034301233157681651205834337219801942223430682360147354043059138859518121274417848879272902022028329429335087961962721599405991426984412626538883395657152063512399545888238453740702704303217731239927262911070705622089304056443887365758096486655594216592468126622292428109983412458707799244466501125918166802899600259480630944648808457152906650821397782061527556445213724381262475796114457204236540764163717602436916971191829227510990499083633787962747821538989377905710798983254101632629267144317623874420136034276405937267228100006194257187728066070565495626565836544024815542523193353598310759250913866465336883044586529442402441812414612788009581283243859025543221885096693724491025215544382292547941121084326644247298550371516280293624699467688721542657676230149156254471817594302807956040482463896114739124401995502817826288529265346661156706768699943171564389567621522771262507987474161723641144516584821539402545582036753473477615694452918469719398149786013049814623004819841849692813630293003896670362451300622454545100908494477175259742655468005810464402933928769181959059296682688367756139225360614240731527442011582625613820368835026431102226256520341932453864505799773146739672425496457535953162013855894142785161180185000676649232889953889716422838713525311421468833514479409164983845608309288013900651303210931150823486576750517691736565901182169011381264258691293081174943021119782322306445815430915154937982418092926949012258158026714908499671631903506916957859478433620936727890624842364405031732352943760905102128358969336240913087789920170781122228934423450487238314935015014524196345155091723523343279449425688306751055130181647729316638952903179902176488220331290793420827461512273627190858877614567598151231976152913443674026478676716062954968223282346343196832704389010184094670133928941990783505428221437727035533334092472812771671233379447486569063395980452077291190910355561580246911380847996657317496662056715604859774274231971496999845068431538720642565876031811690841338177066394759883378296118592758452607247821023535623547571452460333260616052451384227721572727764973983956533423746369212365275373088262137771321081740998401575314536925446385311879267960488479491035110582057830081075006054545749480547016132445124971653042180417532121226468453564399314837682388757809387585203268087532135256902891446146983263585347428603124736141627643890889859408740267795723712880690235534047903160408472493523116446257204188786527224747482540953027920580874581226310687787144875865347585434780508225097335093660674076267111372758216973047556674302521501171366863454460777096471656188930365611398370402050251219932449671562187638996605773396753213824313187059693261295070432385474728119004605219437055294591033253219195341984664247858069261679712712342256212405690166196962997664224230402271862120465435479765971981361884852755625773373314243435693915030443826644279740847770206679598965066863829104731006065047985894726627810338370774939118887404624183439590516724341668918738031833856110964567548319491196530547605820695205975373778727996955998081131299695490657045152399064637484903323513131720066863137918250686910716491307444177469574223252264949788175319348338641415386168598906455812625119356524572953506673772836464021654527466639443184597423371443105368325072248506378437824810186462057157632182506213684853225516652137168216832660210548945504987758887594172256117001744166940842139120140176256711405998692340695983233615097182755988338781353301239257857641158951186194128089139231031221435213289446590668441041662890908815949834828861626142133792475067611793890188673295764961030146895009458232349325885185330264128201326521067369359630834006041628878374231007193656513700992843126998600740668652144296295976952956244245812053965390764906602508239986249681339890573718757765322249206846429122081717384753647053118923483086430676176275058648639532539236647900672209151685136606153047152862620024515168665586940926288750051232655585487580992884172032265269240896376469536635398826033502318737455232455053448129663265000819971751203893810259340875123534825113583387638595576233214418218519465540293615365773587080649041248183265706876209734185871097189098390325383896441461900207990915367944729786806873979909668558113697652710530685276178070445338432976029111530253549411065673456579669656634222795812516814944991767164168140585998605742961210687150651349295402353341469888874585491675182690548811998978010681369048754644561878145116565643920961446593009388846045006724269230888476555285628169144935133097326356124374103217859721975832377145757732028454380618046557797722833345210032117670232292176433659865540358205779729058234245581176705168728829524548792364184489528765225128850478087625670458080012812440376874016949213358072927394481509799147577195618795892762530486163668527913081891064389170287759815653412536702342003694876521330272681953566186412152048491010207715752043874784500011522677918080646241120345499409979168069875125137107197970693913592698833464771520319621169285384426982222939969639077957056441915091064964253464800597930928543785986813833562701947667380656616886352256903139868377370387646122149829904068389156490793739464756959434688527310450529712888187734426171225368187385398983505721231729199022889282294130922051072239931284770496044522731801485948049043139932653901156778505247447856205646702541706062074010557400395713530762778141165422628979352347980113906148542266007295633774950259902432205023905943635811417186053882092921961673990618296975219371694176109289288039972731466982535525706419998078919408304037347632341904136829679367326681218032416802686763737039993992724921414316731508620611393906794057158691137083043632782818954900196423779472981883895064032958693482265641699717454397204434091630683553697158954490650969258500496662788048132707622093249697562226299555684382231358780973655925505327411610017525913900213862040819235904533681020091806208743047116871593896896462734416085957620106786923215786256547580592405723064246134846105666672059183991080166284764660449369256163229284259898913206218148978167217429243755876846857297784809009858387342654150482361053666264227098649674206958194373748312715887314743873002930614530717893249151569331672025651060561486138326158632220846313384323781655732135778614964915077265841209081898783534615622787891868744857739791485719653471983757659285696162716316325928231242137562744461159344902193899916578954954505043163603971124478956564720944639564570641643818898225437846673019267359500154406753586975635741437385657799133075370797350950150560536376725745401133652355103599223478363496804213959464322699264139284247218032211617840186707854070675693335567158741802085905598942651602968957735191157534530389709651933918800495583209532797785710484584994245497163269632131437791316753106404077435435745857870804729211896596063984009865335949773456353454316842616922061153154974736100772837872376399911821260738910023029484759159504204258788317933645929389284375034857814015051180780778427271219388855627372850125450780874767251121982022703405547945394935026683247602983586415540752882546367424444887906530385276174557838883680606933610639749258875932900372175196238367143631541242077201447900609345051547326412431704029441263412733541826441428632606393550226755527331554292774630621572564398218489862380633284988299485292778941658972402289638335800787604338558629437796418615364155683466708554414813755140596800080551944291260491951181979565585028796061899904130800241080140942509525500777183707849026742805169256190865165704160809631231429688543530200002209803320782772890383598702922437907639396254093780824091279224465091057114222435121039570521714064087711454184803470125393597815946969772968514232508459206081938358682694571412777885607520742180324515856697216254096255343047911260954235672197426194847430409234359211205688704632127511335396516813829093080954442474318534419962079490474147161569571036906988773574665954633234499417677037281984782753974898008411955754332055438267014277172962253193290594970535477451965665759640391208715661085175576412307028579662436658892411941759227248163264822360328087064032352561945527440388289843727677957309024384171481046778603296388121527344758149953540728150529699078902628315918668262881564559766055274345191567075364944194991572833805087479435636124889838076892864634417380297659765477430299611356275995041521405369099559568670737994737004663597801820392083042613301793062617303256386685895180747454780055244499001052071464457269583556394371568740171344032685024796460890116076899376900987790212792376311885493910115127109921773179104372793478735020971903338144350629281120006357430968199686180040291680814854872932935081981525248786598496678601621996047168864328670592568677653628534734982709445552933884788978589423614413183828373612487260984974603358974807588706299882282467458075824187153076268360200886831950110604752541813889675421870066476096520301422142299866008661810458580463193905332217595390529481915799626236542941992222371913107586849978856174918007038774554093509085697606819027223518493338489894743277003978744319036394812672315531905361174281732885966688286910205801895955118159330774570303621371551603465625653873545666999279710919711328596550923784785936176549513512446093396597621683378076720614032040497303466814233408521204471641670398884535365485467638673801779148380601104671229707000957313742563205861567311009446453823361856229918745049597905574212900113390807312589385291132075609060425914445702432260166033138610460270274127500601376244641378828499985885293286198737083699813942793745177603656220123399374853021588368312182654365964600376257813048130847970773310928329334278159533853589209161353906795381209572636346571154148823729718258817886350671274225256818961823600065572422444163665135420472318552146828124947107385741767379027251369668102257803310069251481020183093550133753037948844960989428676847329400661727414668387254128733864643936018339323701755834521905775836975854301550320665471443202370465680256659183449467388168014192133152130508152900135673739072748930563988898220981952076778361218686470697896149502029962755555176199394250642660373753189548627614458294952590651399819155408898465488081352603561309890409213931766809370381007593487529006352110717683259820772733546720675353067277071654235412023018762745239460686092895138878179406961210165551488203229782841549872083669461943799133315166034416073589453776416941500038167114749242735615772335285697910084720885397770937025132583793389332394255262614065308974229970087812957153277158870021681374488374936463490288091182127811943499369755723755466274450361891679862306753753298915591374417012326145031375828880818406760780902768557381113842940767745889993283210845981514950721490858473470101558728386846432081043627365042998314654645939612859304437405282010850077808272438336278932961846626003534212092250915038140569437617163108628408148609597260082676958329956597570383011185080672489987042649328852223497578221761425318011055592464002850080083147225611919408233975551572031473444939652057571959956210285353411093478549553851557201674541064429015955273957558077796885089147472613943242667739130421354573852762767934961442562674473956239416703867214161144627100486088044130127811196995895419977748254514048186988081575402255930441632109326305791378563660491641962182221933566190424990998801901402651477383283616235552166193898162233591529833194033127819711731061812286455216930449581596720306174414632559475553468120117809987056552666076366405779276754289073215979374451108471425482028035535775533308477229446744087831382226353403087218586166739374980691074680971109561590630400169540993079006578416736929913257446509218778512080080987321277315227737943438047023977401102552988811900327143901076083351455714255058259954417413100120004666427223636650488342134290368101272660964936637252920192080927088604318777977998739220783980320755658216874392095223569789636240257954918698831544325528643815490762624213197019648890920936463775640866101213024699379597563999439235051427458364384284940301252023460974319974718345407323078024262032284313972927900179752127430763910954023219145015575807447722936774882478637924157396112749222451831879329399973097882778508371424015960432572026685950654917963686060588799417080665227750200148995327731044149619308808407144987402102241004938030788996741361752405293690017554460785401583818755591421906323852638079218547962265180603315777548434613329758036048465174394887398476755289073540416761049343088631945919935902923735571430899104459511001921516059467190592015406347425392289000728231719238708095938385955320825729011503326920635017165440046804331001043800859106904319377316305405268589924511894988946082599770365369937468889929928702072353315255994118789533427531069023307314894506833251523946127742558051249385007558868686628376985481942649471370840737941006631403884576257948588435398275175755929770737255711006534169387013025497300308987242781881827056291048577384620109313171498026775273494232839869879751042043448939752175393853318605517273279718825676090550513960337555719054130733424972155639272261865693391178786039349967554486305705233157502077807248158749327556779431763530198092199861586617072189288791858771450088526066524893038329540666592103306590040241357910912864786135349027301871890249048227143114328146322658605230935441981732052623113553218288672421159107641404614786967233374248802389272951686410614152196994353845635352036794139846477483019304714674593046951570486347582678976544470629329748326330430726448390187894741440627105812128047960026042977850252237465462514442734315688704947326470954665443702673429086612053280248713898688280879834943910217369900923102443814958747981876850910111394479417175960149603767840628101589854176501936927819583750430759641423702283857824493686786642104007819348591275034719359831446964348010266918745087737607275415637644119337966616388232882786204173951267735684076906510310372932062619234209358204350107109030215025966571416492529589078617535173495578363790172530925786273239162751326738685179476436765415553078778044815813110967915885780082120862944827323976010332467520583221228051048017689180327398107337182734594322928480367456009095259544402450326127291919329013876437445796822540338533984183919785047368440011786980160248807288157790527826643742429927707778453924224570044995713617624721970754224147226229908622180635525255779951272965040072098797499678538185874205173473909717727911993217129675027821690243749553812922247434575853065026784014923029784885275797051052439328203235278096334489693605696169754435883760862020334646594058645529966472689571205722173973953605540610127936325683895235216001801199805053082265639560537596043576636041139862503836045103462962784160628919464622755353543393882319784807316359833063190874053016022505321331767224159811306903230422575477253771149543980718406472677752522453232259344164379809066224750443579843676428765283300295301892029469711319428327695356411605535364370509445098084261233904917939922381324296458888165478385452850126919747603339482209553118151368012214400252299353664395557732331192212338717347243948912980187169756026576152810400381786856134074557553169170991494187073734054009985000721602781266197945403350115726167789332147632128904047558285347487279239772339567304113563578802615085589764160004689723304707323483877938831378578306810357759131415151965361240242869421536724979611707410442794528672356773893742613424751867293655481112472502879079517916390898020841465103900223097463653462871848866929237603803025384302724835531571444785687786432327410523578579998551152357936880022995313243065517918746342018211198488551201204503964752503176863064808634972705113604665517184772697686277210585973902740666732575449982417307862352250284604257989064338521975875261644157987409010615861069433462768749175948570703994485479878224847454821298260571815650755137097898560109831655890317041820836807899117484764624851371357848585325739970247935322996783994607111462187960327404505520154174264725324510270717114958199305361106360456246863992132962373789739382699082694761942373231491742134824308405339169597139049515325047639738364454130147314927410522690281345196444679624452392941800884514800943163220184260599293532162023279899967147266205857277553188823940523839221904791362509027126551807098634477121181491536729422763683517299246269793508071582489790505577657933078516848276232336377155262438834361314954960980899948920910111668345570495120415939464063883545143715527894555951906848677675669770046470074085800658875337602422237509608495953395820242294171504086592851722899712131970668079619561378914221964935629556404043931335364854448085293888303998570730541237720811340878563136251215926693741826633746524262236140190958667427587207582392132762139033654767029093479958251931165979495720116971131172469715531320160118954542464312509078749393476541548464980338132718780724907707476067137693574847429968484392758781595421676228709036785679121626528003811057496943532715423036863476482566801240992730568337926221737444499748547346057725264645879780074680158204800943670094508937657718833626414581326555088539183141740852931246604039280089063817881179224143305534459422712465725125299825491436303658602508467218852980693961354458589243516737432684348405296221857080613849668141912807371568087540031505163104670563847359368254794397988780009807418957414945697382440895744866021361365977997980467841043070769539513180182963064129630703594720232742250663648485813404582696250194314540984078532516193537845235077475548208051780448133245208550955257150833553306608844107391235113738755224748686328214401428998232701723922793735400516897021119878192328152679814676271849697897105402326353039593764947227376785657673527429100981634672167432421077605029440225837638231507210364323398324364808480967451672986608859867791704186756121972014481294393354361498884990263710944114380395704101211246286784751012200967132639790390299100247159713012658947591476758937751637298079859917007623624851626000335688713700725606439163924691642285114886879206627208010939565905979068428167323634028608067933032413858991861692381692278610391927691039414095804358155943889039607030890700164176054626713391416850093238029424980484899662967556931252900959590864731473397849376302175773052170404532987749133235170190517257395696828978133224278921638056291877276976980751214877581477654912875033499446155745269039294855085082778759117427333002079220552015628393780402210737859354907577602881959578253919839038331256446409797485247546287220973663387871249453322397604213659129953244539834356893665635701913481364254002296629820346755422891293376311744278951905871081939917946206061975328533218036635745965588700945697742720928534844399544626368304029096488767828788249567932566476353595359129983439170018219142890283344305735609133089153448837868870934276974935313324899602148951473186255510355469945033822679971476276315377950560214311793795461038828841128854601594123202699075193633386227383838753073232040937517615960089440269028369727892034538339816580577379597115188809231522968757521962663980141117669661682621733115709086914218991561999678393525623699534815465510542024836830105137618741097342911534484606428553015915272224514924942365296361368661004063431670058883144947715650369001103099626395380548311533392822698484369057592741363891247519916158027878507868837609559163008762298714150851242561102460069535226160291004830657034397476261185350732062219311849087227793098639330603228239534522205832739891712237866313892460980212755462994586174729299736759117542224979727915778172986144893987102345819821022963764485225972986004683823638892923504841961301541835204360520752571030419120837445913555621430110009087505770477819921880117318920420907541069827588728059270030029435151620082295207201656054408581206220924585760869834504117023645081526424773118127344703419150881486337099587613780988556358558284925139298172766109519606860476981594725343007684507799395979526694014007715817799428081601372823304088537489880663351819331743464434064996688792603989905403031405218568127817124831236703255807715787212637751225515504785880815087666826468112272129617001962787688483720443083280341799469829565363771538527165538669926949604378861309616102418347985497477830639912626381666232535830489655209482446678416587575336444622991712268803152962827522788911512268465960513035853075454607086950577668046058339596796903078458869560387052846302211950056109171839076440327726789694846146173903077527742299681924553954897414714995905552151753644690987106226783321674261442717095837865242158552810339708868253684441042527207838112704056990673256508359181054819066017091949303664445487044593017262220830972460840030365882495582430605182018005321237474333548864332163401752356929046440186792707671620128023383728877224913514458099813805496072276808653452224907658527361263439059831117612485829218771466214971699557949800510011327684100327867437903758232736109265113064789113453699253784705670580736959524118503435226683283343893650820497215379041795150114447234468125682074304366626146504467630821079907916861917474631975470976516901226674135804562473445579313997517816003622520916831426065273351836892263674536715089570431159973064101776888022046475081953088545271884807406626797566647223085907629612508070715526945568123559941639147142366736398376674970002964674804347595562885831533103718521868195629015716580496231673943658724649204037754521173485372296068405738625994043102895837238815385567844499503664483970255273933774917177259034769757228642950012837950973992329385429847952986696709064029113015563608816696295934083406228592747434044917258940549901342685240420963204079667716819887060603637681970637432312307920434444868591740431875940346000227180093814022977516627082225874939058702679476246793305059232167970110695245562032452154288152891299937353839853763469488740149420027354315535278305223345685384587912440330229104250375476137478247650741509382777377941366226692301016834604753384537579827982323290242371489861262451571064920156743329964178615849644034290880428126568858636970420962759738775817381212168216673399662551016897608129216787203727698773147991480788905037697305715102781255201612561453291622621338020060764771630330284298440422267505414705630997859870184476121354645755949156963124035134114086628810448565452010851914481956554804002561880707811540401897059980203909545076566434043376295255237818540225561173396730053328886032776820922633715319230747086822491363986658591481491209608637661486925771584509152430618573202351432071687961423159046131786618560281720394756718850512189612916934592255590010009684489028845160592470107091774207262861154741467249090478477796808579195901783994896771463224826669437247828166709313966367800282611537841813786581221328553991467370863478001432858856907682633572026269581223831328907931573756044868449988066584899926189326318985031986636685710527085369596579598388377288607363195438430371599479805914928635942670476781113608158491335608138475208697102423757534913490491043638580463560067039582186937352120273210763111703339712978021667195596330821165561372436681395080772107392817175572484444007708899791612060131779564795470711884279430779479867401871061739824769556679192338897936613908455722707088386931307811352405984078021279205272315921785944299000858501336874341557467521204107267658638211314139735920094942666232624674115932190720333006757882489077186603721113094524760245393232687377978635375980545241042087137879600156793992372176973037957987934436143222355196177439498208489661460042198996600982128418496518838626949711835355830396486556517570190564882089491459179256094124175463428561656708417148436831993533728096394528933864179146743479067076638598478128445639940606466510687136864242668048364841470388722111932673917134613743354916920210450403244380908753467833133959356767377982327795532319607570132761030641783369517924997094568633327870154076472833802781791832227040020094470146101784626651677279778775567390315678458983004500026299995030003784437709987994338153544955743914852676804236839788693074931336060730284133674669372899766074863940517774840692206970120057936899790704144438766031148927531193013585941961133410715719869193722034483997393780650281228382424505257872013661912421797950208042503658611727360371953894995456413456445526313058203358397576304643246041525458172094698280235632436401714948621659766495238560651131401809663947912627910176945808303222922354124763406088905918414908421250058046331868578277781885446973621764851053532012786220142366827154888020399924677886477249749797116609741986516861826828333268928706801761795437688859075177394692716797515071377954816990652385529701080390338471795312585181928203921303267814806796498685194557750243923140847627931270574309708349524938842830076571779167942808525717831883152203750742294900846275088898239409798056091275050284399324080936960435278594636557748073788913154638092495776765014273785534417077471915699448994705736229618371618776918396586547629448104839570933429772465963945763916542480767665336674052750676707676598822029981224806960533289872599849346398092793928922278798173033420946889359686052145821629406381887494522891593843429850320046052542472817813726425880448041893773035935508548988139973526024220839981846153967118369807670554705035089883338543213889587536643387830496395991178335485507138275086230936766134754949904661410849603161136839918144518558785720282634645340793425015895123919449645966780510607219441525278531490300756689655513759064046765790596214538628262438493513154637256711748891697462371020404788866583315659670435015724528356024136255233206768900439650758748785783417286864250401095761088334196269845762380513812023708890459564355412103807722190115313751001644390036996789547633521792871191356908890503159842892308039938365929338313334745586470303825081968504267859363751312886323078110099202065911799940184532871852463041787546737229085395459112438219708213229541085924305355932388653606437908402175343206093218385599923792331950725039891449418838936998383458669823667313601805224077288050399547873932183762724104885448518679474777480873699006447828881134501391192130369378043681997684236949572235640200119147992382664197083779527486840322346048134986371366522245397930151277727223459675468988497047259845418293793225413477711934971232860405169391202522531285264887951599698496426036151482361068992606193084110274054929256502492018058289682795901444819208481399493886215672222596949485616647913318537909819191058069634964204968023491780821740693142714406112064533913544243625232342655270306197488616510546832682630631559712339656960488882813460453286987878595394212994463783268014099140565487635748547418697959812823846908614214568385723082956512862071388682342550733864683870287556240746293467621479037769266401333467536178680522928713770681374277651192791475381841374318936325618984259501686634249016454082350183305994773784138752263554052088536435855198553492709886669793708912437969415389839288167926843732526013109213668375682995235057630793758376454175184320973764934476834899288344382710722227474882022154110293544227921855246044324053478303299560799481452957114535587256557873129062755971604758490477787429478622322324929105746226755687542956865600846482073284212494898318870101904187276524372088641194885194094692885180301848515346879275294291881905429220857540161957205332896137187281150441019113464096020331118681877118319535776107979237187716790008767275171238020809791357042774149736092268311435605766213195710480007567419496955743947954969537900939999908404342250251403485375780983874271680706546149451766974700900200983059154652997920652750279195929857478303190408772543875249239352828083499193088798134206936389985946465261895678933241819952833708822455904353011546924687019176813787915612685269488576564697135673158560438703706904433109577869221755075319629714797947966747243608830702745073655101963099469951359872435884867638586997492944966593747325508867866257229925350121129601756869067732389560115066215211688693914880166904370088128325718407234507285051109309921597328772338419997894121503168070270427519721306120596669692142071793477117611181208287158212387167947981460863247277947919980743342260812958631652963248355681054915886796748573188595278605044270446593897073909680528402985062983086623980140450178330165878765041525548849237545782037021686271489964886569332244221034407701221588924787041513665003096385942305286189918115194049432352437652681524276141545082674637028402216243012123225223829070778487596601068488660573272981654457471581158584753702511606321392718008185161703402495555889774998672955041774972411048708597307255279645072052533317158194115074031096031205366481323107589035668135390713340555104941263505651275074387591640953676090311914755095367215585492311430923306935432830900118036332279480253266016807992211418600422765485097814542935279151341309825356857542475748687661268424599039888949107363026256806695252775419438207896863050464184772159290936312757708212338200933576996105400144421570229322839020324545121150831419094826837886900985719753310659778455711969838540258964091297582023238096743140655410717797621482066006037232877509234480971041150300724360378383157568737633581754653499936075861655934686338577541322212798397681225755626375031083819599395539928485958373580672240444716351801538241913682641656100111774145547532384379671783256791638476229640084298891930216276712761696625826058729773382229639678555839954639116301793251724326849760063556924785762503494325028829860160782421449384027805758967928305341458139936341179053489379617844783346705702206811280956205719115088641616725260646352992369962811145044521052910074417068939305733874981383727060978055887524656206021703017023311281832912230474741280196650831684211623996208885991908594199865882526210760346993652725578189164710274445843949456115969228227696608271572396159909006206606233677288289624516615445125162979382679817897544241412353828407450945988832827377423345929245762828961884998649646984549152825559497842719248084298754536572614323919834511168363062139657253932020228362238987710997216997121595074121116695782367676620195977498715778246515341048453572939420186152182357720676028304095878947580666749509895268768040906446147209219651543146251377565493474334154464878755364884779234699394437032172195618354484810039515934758459819968126343547482756240055378843582086678151551518528709055535019347622927151670325433463331534372764650683643940962356028727780047935995981704118715513582205683626822435050660392465358445198169585284744140282732340057651932921443281366703112718564191232204148780935109983925707631090039519010506441778644800101272840017508210314674282459571857623244730880603714677444084491690446479576677882779451244293406330914246738628996889036184203326589619078265129914987629441496747817918961415408022860604304653995213980262560435190928121528526221953559446707725502912714509126224222581165627072193043153104214229746395395383325398880689789302342978314785370830991230428668753207966279036606310804811308858050006037442168702968455149157056641132585163272328867865044871126223506292414244435989610068782876847549050216239061391101653431139261170890236679299910065798818531823269418703491214257301915213472108420794516922461649497596138122907130248939166596018194331701833434776351813246278201886376521925526315287009998308262881814795659814301421168422999252407425537235615500510251907484319753453599657791916243570613302807534005051951962957266898769515418337921291805616628337099378255709433531221753464609346553493393290994431314951665520860496545504839669665708476682073741097814070464112135421602256298477569817188244180570212058409963668886534001158133044154576556135914743615593331425754493946341447214291146943399856118050319145237961537705495100777012255726916525112334558313397126634399043471698794445258822842028849064190440895006302009187476526265778503583945987585948144985843689247911891309776065181036039502576751772182167363607717061605361346309379605268307710190118100709009993783959124949890981773222747054293272771762942059862768371091123701071303831441478271680542855768599206974652900323809284247989205280041294357551906716813528430374074699943266415620716947700846925612448276026677330324967811898464839070032615807983730214284611714209349500876230888716683135049780959654462785610906782487110903527713503077238248690302440768018365097213130475706899630496484904838278384318266418922240283142190716733545963841377769508635913555217305070038586663024806733874543841395900275569907921069694697146539648163231781476925615151162312547799314166840116523063005961422702543190828838890283590369235738825436885039115168096541042585548765165055311130106097336853531521801973162349763322336831598106397443192285618164787237517257996853606893970722363076502080286719931740771736679490759153196154217404234662054268774019623986330912127803870100532146079564540880312842144097212252911165568407562207826722395710905405334571024897350980607881079185630898329150127919406813732874417578242677882958440014266456092154004253482767613552967397765301910739712874039175589690080005246033800898199640533372000510322623072008789285874768729158610213428559027797202260296418507207887088369747285716747033403832210578883345592279720275912474052979440289565200333391944872775621203316564479856445248527378784890929988403185604791307178014899810161726397513225583542155537689540125567420710779897207991170207255398164233717656691590204720751513629605919817331634775846254691889070287773174052748243280630602379287756078527459169047232801158321315037048806373973621379462263226744378640917184013988874778730261022610982492869575378184868602409691834061026787462328383723425233211916937908594550213987668333184220522792275981129053728576639702186841842078752178593466300601611796835197405925122680413790413743634851234767683229727517096703258011624941347493099855280875512327451152011303145232359577295185596344279488592439675504106931639397536530494850014989874098420290868728104871219249162090726844084235343545851817938344756677208712933933987569796930274406862503041505194319607053296371035043515258815429914750754296221811347483972523641574093627720188239223476963381251449399055072376408625609081487621309349684116042610084315184081571282826540872820077044558056918553064328786718689389289088926432334886671941193841830443149337759745780030562326438580265365510829505117996832422944957163945532237372345942108757418725827536716575455873790488967882972990140159136935395319397010793751141382862370197592608182174928659554108082414098275281920380978543686042838687922510573507066687970460376119548465793632499550256876747202108556414719836637325731145366848659766811601186563340279480354647539170784882481811925687335141371080475464452670577133734147124748260190193870058301962934503124405858886441773507899953222045320213787679917663143350426598603720504975759021208659083082695879079038772127373335353067913830918296629345441975575788935102426553821342902496009823381759568979559884580390469322825825841124516402629377929428772426664585907212905715906835653813193015943335845707187378424731321930370817295641269094249832468464902001592014149450912432262928940526892382538208260901525092819283701282334619214253172974768508966340567740458190826666255041419011080098207682867353443027451217902598148957630765728680835160840713562436330831766989051377790195923784147660309984428230090190504099255850116382086164368996072489179587133724659722936644117751261279069090172315147177082379178633982441627004492782073717346465136120618496557269214374002234801217115293584767602413524497274926282618758853773429821235088622094228203215699638891751038181482929455480408596034717968166049398653986398045933197373324420535815522441937571315957462282050840503407377597481161621694906933086298211705326163206922631561789900569411832406612685582692793763340211622013370006843692713950629655427459389367040956205370308540860501916432390824417231547712620339926097243680059815928040649004632149108842430066994910965650320887924801153090172593555418833651826214424282400983581278398529430854716929632199910524418286370661990695511016501120307287719087389426926915328394645818736995442323875274166157172860624978756951950012628368276664876509224683212118217353692947263605376662613783567352887697974841033771073135470434719464889088083338475779874948464304878384830328690791841684192478758641788452813370512678201412574918994911035695858504890403699566670814802917299539760817216951688608758329368237442513573597656079267457815374070135577465180317951595789915617263384275500177689425021350671029379067822208019138058524573068220767483696640729574403208972778684749535815336512955382081795757564045925314356441848437880565257813353940147437815721090697569302667974636613049712884389853868179466745491921293354100592389044263202207404593395584313429193090286388187009699317956668290730672796696890550469085703840055702011144044367838430617933206814292076724336107236901452925778359163030151331345299539355983951359774601939943195697910631973382900860422458387696799370994066184796731577943259861739832191810851132861581678272825638582372393955431721649025375755278077145824504568320980659014920822553952834920455601739613262430209014743800117954693446307779329880417192322364144764797058605960277862062385569547983212689745357825076005726984398998755808303030282178249510789695199452104779855389306385449279050075205658540046042189345083930885477949954509487011944145000123398927052413231324261598185264245443059450828590476817258500209193754308131088254281793322903526057391313601886926053150584649470788503378677002478666593545811648878052386595159782844484366023266622323566661428102006633515634558767855381803998262248347916724567049271370337939534620020664470963560702926234022807975885312527726915287729652184662209407508223326350357040912488759087215756892649107354343855924073782904238110155866294491535364600834751269729709475508496751680748271699872808995911420397683637046279032963658757748301048540309097433231170681088132492293225068476420923688761416451633952264279925052018463499654736332836380292848060199436128054781587680540836504058572932143712838105720643062824217511804525894208982991600927046503933725122055231793861149950987631646507005539805601337570813309808860597721674274339615054942904211348605733669088651477983641025364296979632623488626943901113210147997182716298823453288482019757902343936349162284440431352134422026636876284860674701466175488932233260087084205304402182197186141119491176853813701920852881216339976904494711800143405560446675901267417602850578550777923195858983955702572511368855361873441886137642815690110942909775510649189329845995022543340195349762949592807584990204641043036180480552846598966725812354097950230690217736911930552669573053304521028057539915712524627345492275109852754360809645442668339094790392465179909725805133528928038019170605600464420293464483963715761795997640389993815150689116567605841021041094722137350923657545564064261753234189684700520270198721364533076338765137143414392818530581078640243307020963411594542155679792965273561643333637489734282045183799309556898907607324621307141557512257912083553442995178465789737198319942705762294957897530161486251213379783428093181120169802066197316798267692767544576435797047296215131494024229180462946106521581504568939595585958052050089324282843154751756472733862253391027363282356809227466390483224023706499708202015996017585433141993834581678073721239882164259592852708413549423727958892894779228087837587154196991751406258031589105443245918398850410011842593896358562667374871856430108421525228996103671661607317805818536742553016885361921938573861299885457472415078613144893257852414619661040636218513029462406176724253850994057613454932319042002343698899407483972271184083205642273441306217397303342335928684939813638896873008758197963387659669922367677770253790591698193584460637281319589018160715405279676371125147898256929514499637150164240770280896024814121924797715524532451965787792663305182458040734934572268564945561912886251718046396646443334791491971144199154500585852867724303630914866673721422846782122730602887042868766140264549764690281617045243381903337046458294722108963830594117930864244287256596097390299944379766609039708610353106119442394363314314518406074706345469527263080030021822688818519190250385209541885978545993805635769213962958662923961183455943245575301380227083874889306422420470925245161922696595412538142119162541220721061273040042744190713079295366819566670852734968201866314901833669205134419964852285839745309233425860392409344553398532008546517363105430006020902870240606549941532945146752046739678019268998692398515464335355618844398025856782136844182550520878293996680864708153498982243702819235381577828555975748340717680417066105042199166059997840947702475885799074730243795581422372837679876638753363618147274334790638116359037115393488851109245880312516953207294508225257501902408371940158573985110469075751672703349621102564663861156293748506440476834382655381260911502754999374998014512661214378915281528544902067112448522772378392879684712607668615726069786937887041435424718174053035352136825085638824847634339683765992141394311009374049930086623359840636844649371046527973336976145644735159603144009943467205923757891253421163007279706010600414777601871020139436837626963238759315606544321274448390246327863137217878374723913363727010133364190431293058400406371678031665048603854669764831137416071806590169323789678176622316353688069534310670773040060600536898446859652838797296963412960897111262368198294275597082803823889351077725801673594808002618779225465678206029968380556901877306242631622403514428555830002451328580400572513459355509516342088274002292211224372162534543047978887464803966214275578803567478384318588428026451112476620941735129351288947768587512994487040907063980722931254391908697250019694268569747707707618779019651064451578464020362809063253959117222188338843943755323399234068267433706360656810570886455017633870290535605177098938930129743997838287679041935941614295980018404081243339224334425948040143101026326537495410835767507843421726910371932780395805139695559227816460686236251975059547433755636219658883828920886359642999903724171414378512941513860847573063015794950782840403494736132679999710192964421348611981003643071526655898776773375675058772379069264784478929562966208639657255974922797386320993030065138638079202746809743620735441642768757110767875956677958182338523901804093803007036229683402905923118568157109230673497901232154451582835694519080731157281983803695228909189616896400220442117161873751344535005397978083085748274802094296446024809698031879824081531406849881576264626102601276692282107657190202090998446054578219887552977577928054376263642074582261059687321797000861238618734931158523271737595980367936441216220852531550958659116221109153869540353638850072159065870048344338507537564348495137271023132506358851123472587853343750103691522092619279944301463446455953684089093589427550396984671693572800076205370327223203761024062889768963876949385645440864585417791022151161291344629029942956199767453229520643331972494489083483037242575687074815577856398230269810006932022113592517048101261945906228121098271352407199385202931370704269075794782592755834779349676242333109833768334606586094395089104998129400892741681333292827373624843262537908807276793401969237636611718441633652316436483655205538053856758043207075342338345927679934196378698686159295779663718105749895886591268460972655299880287594739264194045638218596824004920544513916094183383218279900810974741486056688683555535963568596712785468033945136540002373250529975352920604825635666226649219478584378667868594773625809320468114029155475738356808646259506953571951055753743623909834119324340966100425393593511793027247797781041493228552240369198153672121084717079340515832918745974388443041840041247478609386889248686589368318465045914469875468792973611528397716966202785874956344389630309563152038327423682904995705287785949732442293586671788927250640228134212196369287611016329753285526817332011398764375080103412993393235357024503746730629384879066555220905339520901449027869341409022102904652595660747857997750579740275915354328988785328432287350597431083260323444004668983858228353931999927400912029214304353216112730945712248506546488841207760569583876051470160988914125167641882409098371486496908267581366552609275889761375655305201579098321726712010880759301816500320997737363366386981705418599125673424159337306958689361517250046149411845047128342863433482948953900659982491811068895433185916855963107345225858799083072403376504019808840327525407438050215766827588652226503509016580683357911972486322425715712323064153834190616890549840850268724932106784998532422663194071881144258659240272477279746237058238276432401086066738063548238007034848892393222426969091048104990962197507231930374537091615071223065441376889923973616514235570315123888687767500304036856404447692517557722505498709649034290116122691635620410207709074025150580570585075094018031905929075658258899580247564186031341819936955267541104224057178533532842900485532525581106817131029147282194894641528546013004472433128480821674705269898051900333820769137683481110235203300553349115028136850779307042173096480130429662272865054068655324634369599645705722386013637067268967240974094212715755203888098337005602479864873644875052503573323004506942573704605229676559740314098731027836318620390913516861308702303336452147900007944297675590712106521396542545939640872290934816663137328514947427501694930495316487029044642048789031976014171513525546862646759935757670040055439818051148674192929895997731246778637628434006394763050107538372461040643150528764498661660970862791917717036949230710720955134004066804444923066959080565676453444873366458312883482640983561827010411435780020503950673456049481924507227734077869052799761532604130541035994910392634221421969460032499812198348429711320517745672801514387771849339351235174901229896238410717774900065695210334507444168324517805990595763870490844975796998436027763248126226839092668600263310849223620650347057993429336831238542863633590239512928856166375409080311085468301393866162378299296419293592717301523401442989033666825873511779074381604656569870983369596376297165634785517090293410234290587173092004146818557854227197503240140063287014264106804310934322336523150448120634953286374043917728994185369310427283678570511305941761201193205057755390628786137179294077165669030942763699071550440087075072179588137800114076745911857264437936630731522027416030327275181043340793553987890424393659294940493071229077598929025778793898083570321048806599160934674415844445257762335392087901408554824062846590606836137736327068060659180153774056812615556774406395454261122138901109364990004162674231793020609217810743907109711169345716758918532768721501998209608045727890476639126926661149382985544115782417130859781852679934088990613071963764266881133725660542822981951734083394008039830064088879972239554137690654006763104369507283056583744372677429521157826530412848982789843318188803106413580861228428022374428757549794838021660157482459497968355104815065807650413553158533020697245658768048822749503142484464037689364761763800948449763634900591476347810411644453328974593248357002055463395060376521261873931647052649784971651396500942107562309776859954560162714165624682140939603140574237694974469156905588150719706788490125628579181688025897289799974298833183210970327920806136096052303273484319186009150250032634832867474399332628630584219405079618821066934699665042805408594630354474343122103521058504530042228420177714557243723819444309443023681839467593776543224532667257959364357559760515553745824500680267236913487569339016208036582027815733517432177309633888889322995272884742869334199477608204811172091003959259269682775720820746302345741732418237191115919739031014015843126394518694819768077502837859867015597602994419046293734183971628234018047759051757370654528591858148305327080457688720144123978748536990902182935948343758200622667473523197835664141613923272308495542457064065672544154997788425749211250649615763473048888048436346221717426137467663804087226210817209265907622175785702808778355300392529390653782082986362915628599644787618111798886865686158862234045040231469055336692722635604419543356291057367401312356198733095517917543832204183691039691310786696728807626618113150654319998722861349745565617734111013421914649447000540198954842941320881893013158350137307276704843319596739517394941172835544003305193367833968260469969384215681758260491680352390468042222145064215923357976698824161254573304470079005479053492071675817921193861105992599425124642803016077960672294507482403626932701862562430772770824467647665710714437858940196386288155434371512115962068992880974495609069118569355536440615041009915444115058884303417230111023389409614266620172859782436443732899721153052808364981514746288932768752427964971655894072367899592036362596655457313970778939994777785388532018602939212873804596050323616958807927427939016160603722419168171748830035039956776721144485743061730795774748328192086272091910433503179306477310873507413299206655975527505805776742120464464533562109967310515536366845212433956153832960767209569161202552181229151677670795364681551993275246651766759006001077522592890303524842156250768791258186307547368419198952626227690129616402649857422604990193011655201552220504971155614019821669517346186690741978202755044340334624478166018995734174371281098293807478209693705810448462883086665349658335846842866106531793621967050308613685993332507269856818551366047282642608893025932216242771998872454803223994072300416409829345833798180211962386137503588042527953582959156998130039238164325017714114082862125087364623023939683965946892543307223449372479268910790099671348614758252432163193403799025670883917143120273260725193333417839622847593470444209863170446298543835936453207545358583538393438816239179426277576861082586962055828913919878727462092593103918162396640112367131402398964534632355889708189324604142670439426281225039620113596788342277090352438694316412674432467811314571392278941952687382127745088525382738732639524543501921012417868196591250299759090514053366117174805052617296172847604325411902788919232974275445070060931380354388166578842846408431103687214531287600036593791598674962964826276185593529327881613673120746914995885779133305911545106403874638840535203639099658028656912899913528626668608440243121897484836927716327395003005354086258385476189980350451718921938062826820719576855526567815060272314597804712383186854395751711481541385200527076496498177057417952202779148202666009172329735744490991128380912163092157854831820899898721825416614357386081623106062432400228427255761409592864032250091857523354025209484470868144599615077038259300993556219910524473368753015062311612560721758420612737320533151095319964460829770096537324530485112627140325473545298457725952339582954570019374214167802286357546932610901358436540859938740155655597628296021908069343361983013667801884071662800432838458433562038700884755121775921862264509171082954563505733114673029600618571420965013956330155239045990518143967491295381872752494168161177606770948640166001566040696855906829258003724079828598343223217144242758299157991803674457427472947155700918279065009444798765017110165940272723868007884189148252431324331612695153786435276280689545605629054105687462378263792489784087740373960465008623838051739987631160953527798171450174992324413563695131532160019744455813741239705949079491676380746712752636802460984939034098283895707617114093481462393261997475879131885397140478840774409707874434373786895044613604794854628519932430230699051751338913877488135192529695736718327703104296314792222353404580579588110233563589262921433964184921854006273746248382340577189769049924088821003688420733770717568287084588753581573313345220556781981564311318390249014368879365233012267657615807387689897577387984289955676005103228142057180058511057501560794418019452111573556623008114176623597120572948671415659103604067469867408794593749693419946143065674352931858264957761337948217521608118737633792349918459381357808839365306934420302966315701802346222901726404678458594337692614619768670225274540397152546873341546090460569622864979435484915359543050548685069367954799771058978221047860455769490189931232316177208825124498312649980452367232672525736304248407867992124943801573371863455077359899000758965689860512542127966684169173243674279697752598363823302255293110755331734613227693160981496740844124917634682178610959025326076837698242546703237183595135749796804266002177656504422100160680606245986795907713664937447187224269238921239056670398877844100957575913145464076461170637253829984761510053868214643768424053541038591434735596407718932425686188207310945216941713737523330579527831687833934771007633710501310900069248128647840811410130366111533875376705954449563190962689035709506420294118407617121956038455199168484041506585802692426216628867434364783362030455257007308097241591429979290715863270641460737908156637435714038729860444587861990162831909869103107429066745417766817730039643359693451910305529784741457955978341065551646316799868408784986413480552713580457235911561796435152758820132832056567181622225596027275194928733209619806631434203676145581672084663948544127988867619505014524374233642868953408846691464694011958708282556534210094178099931017535567035995883964522164957138517710121628072387931415040181626880132677060686488913889020326183409472388103701287322715853400948856118709238689169327612674773203973726203701013288450096565750257159880106849056678153345172704195911720500400308342943777685728463354262719169650285655468006861006339254260708517872543178209826701196342205969078065172301551975177709294772590755015145915793077746614326985151510871599824052665277420503427875032407827035436939327577929562472434502989563115406459399427863283307030372375220893936694863916665114515076193454869699737917608613116549617788075843556053652666350404985085577728804969297376339713066397879659773368779652190214669193798722877743558672908815195787587956272466510961820784115043279672960789881491062691288559960488056462981551582260693779860299775666902579737891978906454505133884365994720672423495137907513040124509684830902012729180247809756009708012699102755491597047094035260597820755417691021972236573350494086160872866023374551796156152556597547240352029337422288610201748739576568655642230790779753001473317708885415425791807263475727875564719357213491053286993481564069044012749996412353704054019325942982259362274242834233605953289876551058789086010266566880878647205727790115877843760986325358966304580570293925627462808730264057636977202866233076906522269398247261183992898391923634507340428323405664850667239826041216361199445545373058164601587044606172117458095818867994453963504519488099445982546694155841496443694978178213384029033406255044282922555835815547207890004080198302785793429488468307154676837938395710633631014064388812942517792235189595216495145822954378251280319521446997850455346904018431111667210490396989325545803437266407385993384955987164239972320079876818494905553064852951674380838106700783325232030453663022236905911567446070605096647381534524028986170711627146968607848937313454406473470857432403467976989833741201956463994729247154854146288263490304105045073447742876815278510101526942715965290023091176681098151511260790807987747592222035878350897590760134775120741518212917205050664687556014514361373438702489519990395755997028047108746372560334693564930963929121070821092396664870317862465563979376475542916746764890553930221116038602984693345241410062662570480227982440771420409523331925994360649570282168987822215008745880686780900031304897715449846181505546131321476771842001457533510215252337002666991336809506864881470835048462157831539584692092974922398482833111723402239215653994176112447211220497009559657276525282820473825847256801610719252257586405512916071295819257949393888247907824904434128783258147803119840933779645060899848063138986749479895269735021881941983125771333291049257775692019596238171191322999774184515397943621221136573450384664480561528361032836169878467192616336813252047594127645023873841505014765415951574165346693260246779479366057032385874229993701013745211577247512461207782552665086955013790793682385347261978003813900249962221788737785628726429651083005686042576559176418711091183254380010103878667504696935709610776124584559557746380137690825166528409510520910640541795190745272858788886996608893715108813104365687919210543284327671969884035863253807911193064233683929193569977267117113573991079020792362742676738520122344870170433939505455330812260964424349855237189703135857969089585294548969730992898736455703609460917580265565706185575335481201878461295398227918993688735224048452690216357290403735615147711611783681210661192005717123428519565806884630068856141623022278290815840747350798866237609505337256484395724594286855317981242738561972706344774579091688649235198559085845113506481175387573849656484436214891452689733371930626390336514717368943279825609864137172842162675876623165555463882120967354360922400612898182070798821258850530165045069017949211433366524134435395004417685024615179539325445221692268521508942484622298029833053771388322687192485935711866191861642732873434156118287191723102416450211323214371526185076672239730729981974784051395244300472912512871454095849462092110199918800800230135726715501250005869589498017691924652197529778742182779118754053367722808816092683321330698230980267412339201633001990405312725498944138277301750711338493997640717822277997989443196500895183067684121454231810716677156562591357820322008887475799639790271495679386648080857688808672456242966528969779615652054219766645754587543395325510788245218362819533665731420158737763451745868871971076006199082561237275492890488238290058749153387883973688187633204811568874566464707328968135483031769919532400175821769513812840418308603824078255108239251760881742568618743947357575633749189621097161729052074195747308217562400751285934147410247483597617157187744181676146747591202166859267987908678727655085341471611169748007448610797544149494181003320819493913702773618298197437139713326485483779973881675772259476532498448852017691986667148190469989906344478604065400564230792537926569422448657834769854032418598187721236576040711942844609162086102807609421384913821511829193207015274972437350218505576598514197798891447879538091131571342691228253797173205677439939066645088819946454266334536373026891966291894827866651870141089809750074503084762931010446257125068285728423536500874141963991653868406296422335686556693679222134282552447527875608731588970320601463678233842860682773635487118000376679262252919609891210136722798674922869630619115284207645793401052532677322030735054909751501417063907829875103673347147661543156991546878233556596606931001098761468028832333534050140998087572983583970112797048816384165075467306235315501639255290357179566853921618750598771715392758710919858145802101638593385227160051290948119684125337679663427114816166242874070516449829751611173693220349301368486965695296277597415945954741345251301346462451956339097789037954672569565954894285432597031508089970478172452189395022094186808582810857468626777238053460495467321757137324988078180903071124505126399120731567923026062680921492744984141744145431961780024697541023379112544071617170980841147017752839294492370284724562742485916971848640221591583620247178925328332426092974523632972410124594428791455364525265839777339820597878446793414205854862212170854439705621454998640144250171728375697803388165163595527505540384062561306928247772773521715604238277275816436177909372874938409693266807804700939508165940833018295273349375577344320344065408538122607508317134673151101913975534525339876123234723294592135298314327461731927769550437191220452223958967898965863428240230737024442128209304981579285205396253085325961910036634353241219237278910024337729709961196296742834095520642727781616039090855971447105219179266983963716954603262943333818420439470351709569812776589643410110713457684086219157324655404512397799475813347921023818975204059031106229113191508222215668028878587898024022810347586125670516772659768699220984210744497429974825588672053548497086308375325523604670694826182977877079856359181657680766896984291286387593122205423831218945944990490187776787813595932964057291863568387048995197978123105755446608681946795295063374953671272976286652902716550577082872719488775777715512532874673133166925266279153637649645409182317574368448138686141798147808553716429000917009375027402800293942676544677372305535216252814455216514344951891354005130275322146461344633323106422348204789911232999541156223682156171003834698193153061937447799483977361767154356549649546077190539570559850332578809477149728111155224896334811004890355857046528011521196733680972741860161746762923698232957375306843220141088469766841294989775354421838538202946271418446502415093724856520101165800444076540704894132161632987977566792675679544908170465699302936205829177186268314922132590972902312738193597341183273903326784806018809040671714531697745248611821059986766218583996755114547095861221219439867083942538885480073071965599199497657935507113691593609042250549274805440624069354224707613515088681289743676138105662457293205962675313924289436325618103762299858893293510789999000557516593177959712255116527435070187161011551794478301004646788840861219560958080286104365428804996786631127638803271509105743805010000285487699077973509527234720737702377945613065426499147743471495533774905364672541569813300083154425123843842137580043479529003721492074124575775892976130380644627136670015384320386680005835317897371203006663670167371521285201776547246168557142045651751972321178324335340968897590385750792885854159181229256248051456904079334012795416007439183753158938998826021224234158343936177190010147844991538395963367976548758437188074516102472543190626608920005793064225207897102358062194635995464072531491585968214826488192212745343890357750236328956302117079433277068935811897270160165670828365851597039069803769461835178425151341884554618580360951048827707031390495466806586668053825899827382306032610477332949296119775946305397373662401004027349746911074260471718792302234570752792009890844809496581427610805064520670538804448304019398250635434288532287712413985062947985885307038010883542961909547998000510295456041881963263387661774019890806718630137980663739266644775134600899798006559169851705755473263032453784769427697433172894057181414413391583000290127962648752035598377899024956950072374621615813807766726566245010427736194059754159169163392946060893153721629762637508695904016261415157961633541870253885147017083187888601968720165759339049341311105699098927114099466174634586307776281594334204292645584736010729588178641910162545276955391350506833554867145464641342497551124941132749554441252453143562736872786828282666978213377379407288261157553087533541257721696646824553250888345568683632488685539911669920755970367891808268582402504636486053273612586891677136105605473644969881241176341471440316525098193217026835930268360757635405575485477689473433056668473036865098702523253383014283081133719946443245941458200204103364713572778270245156201501945287150779405626486150547311959021496658257348494890849015202914320823653539920246999027818570100222340366713663845683521121334597031885933578780448400754122219420040458394530993739203834578462786274054481666495197711114203535004181020555160701294840590811457134483875709680496686620324645954794717387821144027754517414273234508735454606015360532514461498279790020788739443202288906405438617879984141594302843064814191777863024725404173011106112804013940267612320226828912018239454350412047653684294093023607463437759595430620716778519941727207986685091626693772904238360648823613353629841707318314245266763476916556594057649384387776724591234277350652196650935144388495382040940377696373720365509664316120866406548656310774364734885508315296719151588757015490330045035337729603098109670208829034863360090064901668890225456011236265801200541178784296228700398571866958625129918889329891282226190579994573625397076491057835908582294698469235387416823742902061442177392289388238384475091039308381426435800120652912712273377279740259679294197147847098686388101755504600149109481680104757962688812628830368464886923260798773107614186596571262402067336979853649717029298401515209252642031653912469542485830004767538952564554581194674782470494711856999203134816616746270173330674835650213370431738732297926650001919269834727365689597501953300164569055783229664888384325457583022924934663718182666678124655951411209059547154296104210591482776949485411032678803029824936656345945972310459059896219157636969236883249235707617055901014798166166292432129640508329169209247622759981009366040708677554064733819728699821268694693185851465735510535814459988385379525418419455131329677547385739451602491598562774392567402274770923986607731700817239200008639570543595463601999311837428013500215915390619708417409107742480637558961666881089318397777109457706994885712000145516545419946600126760511003668385045953290224295451427923882670972596243472259012881609314275492715393554542093109168577009280194988876326286824848792323662287599071527693992933685377191167712633090771903802303723077655678230220778565371713430877951629120425159289265791462463265400901581818645031327749581589889671284256497088243556466118274653684707850708016694224803970725961943394690628380451199407950028259290848106699047373076898998891847170957744177404441165041569711396081646001380802330899617680981088384565375584041012600204328052767062448993462652310686096699307671919673492488049537600806066057302648075256238073794182907871231678372104374311967348870638250379417671238906060079588591136286898865957580624210315771846523535613396300234587548409082392653283590341153963523605164987561689820685430895577778191094197498589791314138627001327690264694000974346382858340183619530853179670773453681614061027843616301884101612893355381695728179169708454070366919886102247143603311781302208260738587400358742705719062222928547890222895934049921042647519729070697291826712858340998405696739485868591511218932271134559884203328608039626418750245939879719888433209887449354390882663727929192563433776409121526343058026193289830349997990280754252914254948600278821029579480513575916447748114421473979936506355237010814034165341261782418303812830604691725014305696044466842547910439555007862658153269882453066836912589306240761616566916219746350549665420652792798614629773401097288406873433944529946016895622408681163534165643081041610252761849229327096090304446857646431414220190328728488843892016470201619268470920309657655967960876570126361307801210544903990702317839722864727106799294452472126298634434487873126315260070121339463514325482360456005216276071884942211612963864784525918361471951514811566842073640941941083340448261521210736831047317054164462931335363794416840094941503958430999282264187143071523217864719654254136270340733898948520330007097345797739359624286060368455836890724931367817118884735945141462694081985427831166679197929070480617685887492123181756611550358080526705738555836354154285583866073196000371591827881308152062389067803906931920838677716677543671224973127599653460302256920164118484019409845714529347951276932743528313421602664618491104571453692276652090637933230313292348332927601946001731697104927127041820944788663127172665648355861137170599969619544269038818022367452031969340992552453346017315537158603329393450911966137096134952314411461898862230817521230597330217516477980143673669779904464291251569466008707759104572931857106712540923960077666939522418767799256103441239021458950505618283058497020706078420154806373212851732727529724815001662116837296552388010012457148410716445827998345944100984828415328626727589433549461500196876115367892762029974081912426776376227628387387298799299774907451257865261559319634580005411046354850535992505223142231159860657782881261287098270870186184364993140692313657104034792287492342410868139607304633340424512944548716526183149971976407743924221508248874921544281612968330295798910403266953671050063750476749847106262246527934980950710535685017013024388266553591542362015824133414350650247549532411438285857297660715088135703973894167054454535601998966063666319786910058106368525639276421850588199301314358165250199939326054757205319781555135618734200669485025185194292358554736747885108211396042601207700697392122258755094976976440836793020687082025906788052406675671398803382773132522190161620877507058781037513425288250793094562292807158298971156198266744922375770680926804957119580293637580253717267079219373451228745830382148951016202281745024486751885487384199237612739085030674237842826380815759657891924264098717274045973940926027440447784261539817840530041468362631601844525604424909238527837846347285546502366639505281219763255182215184336214247487908312606536255835803225317335955814222311728322406325693122078648216631641329756327970713760029576218437378183718341307982953047572632183794691496789228129437687162693079030598465898945724062228518105869738018247295457109089821871769750514785467546052594692869761724353043855883190888020077891780606486355148656482989246712092824962857657515782918942062656557930465126871750371905767479542415479227976241597980117327709134538211323392997111653729654316331400901229253547341414725770122315201311707122504621997745316356788768464659577361680734557772369302145194871491820337298950975012812295514304713867808573107588757477606540460497181746441021903419654569912313101214506034689400051526701207390362376659174624722777444025395530712369630706973005279584000996422783465267549297379633377230318150277729892538411462527097053961114784119033993887485375121545168531346616329653082456290845187097409714728164944714841814464857488053136399932901353355514233603875269565456457279815097084432655290415262393431309520647085595331288086137477077175791856838401030473304337189407809082302871464768023705011830268077403210666601712770753319195365202640302389002630777268220891196402099101476752144976111029718754020290491744941298591721479014235277211225465985814600697205437122231168773005687179940830081585363351860309962800311649864590319394795439823403147339512942270361857916637874105278068972142775764125264084229245037580632279190973785221582775080503003679094195681717366839715001842381694916592547688836877310991425230925439917475481554221832067888907321478358870791939878308788820558677593246698760602283734344592239306516005285674278422438865350275495543351534875033996859717751042714148993154953806162860775855027687329634844915643269852749792044260575296417516334738440486713858289008900152810635407441901741706541343570384204362642304289486842993656857665324790854063751738366086844242826451754837952845154748793750475502526511255415907663562583964254450417235037532745157650012991813473361202228480172602662506112753003339319081856087810541768727389281317106611002049260506406729571644116290546447574888724280538920095285194518709076461710880939562456225496217346396303823171318045950136471088025283006118832760913982650912317401523404387997194096117135630149740253617820231875320094974852670943258934502743423253721844588235781177800764715680462767348005817690977375366671633928205675654946935082425907566031501869075602672713665463965475734602822183416378782156932459098778404150854301844973502259213532609329592652757543233767246625876415213420932500880326375668260111700987810929961966053109748112105827997235238486960278114842913321668694476393533058965772336994674324878202548005179315597900823586039653649281639408651266602924950798332421217738324594627788393013157865568093488905197706293002229146281930775749521474678141135558845374315086860947680878104834320345179863294972605389407005622284929211241294093831013679646235513119460523210723592895648052413876766937188612335897481649614884875772245465354400700456955029695054751175769189844516393204348982133221889955117777580732016664169023701086084799686087586601224795843388239218070526165535480235826757864969866327007594108845676125478180171337572894105691685300367828713780861678438910123101743580863546822295956888488639290348828248186479720816718816370667135084267967074299056085040289239760677252442323848426382065830435368117928397735061207971093075041188145752904354219579868819885486126992945412842302852981967614685160616044283558894343013137617191461573471891805754212690511015602677202406119579101132797449215938088821322789064311242106392776673305905547715203079515317966732439192071033096318099468936119568373326775258605467104636124315528950865404618112421465120725643415896123485889496984439890410283247945196356803461459930863207156977310972430227120151536385589184253388470959897718270845274856668167742369481481372503211994742844222187970514980496216341264832226717428377255397346763920415334546610930432648982848098536627701607474776801824449251987038907861529017108698310737482267660091826952686401716029511511746470119544371520203443681627410340485186250036651476430281180914778965055745818887352739647028650993667928638631775811537705039973166523683379205178273638792397743063208051568871252121592031171716674591037384901859959683252722312442629720906085097698474903380776843988128831381696828310093218802057077700339933305807600885317251246596920594740868561822715139194533522001385046845593878441522235963805543666781139163665825908318455381629361940563955576947620037594173968216601124776604819020167858663627229226375209044390269460608083364752569698836922780647259087871953711047883979745420859642582011289323748129193279696792774316155504203880209260052753869277584539559538135268202166578890114248508271382092786721858460009385637248933481283056036489545938616153372367618263106598624320184406284836440298607355469592429899553369851389248896960177204953314727555164292464951203571613124058047813499246594287445601046212794832429949742379794094059382477597438995176272661845129121058128042840340260279492812011508021919743823728175153436950763763889664807762891354605370876429719094150254282706090258729811332378512243006329541870698236209150294027706920739169454090334826155373156337155232855199877280965119920690592796867816167629738639126024725244647438720052236596716056885166678625642015788790068742026756644327513503173044961569743694511883068795992226597382795957583977197153906219040032711938145268107527528729754740101832396518451399959842541814719344924290267861626276209791099370977101814691224810865857187666075034994834964638904039480535372245294342210673541716899226322856693320178317985853141006115323256155981500000863131786301768469295376791740199987179866351910945818913102361931991102694141758487337175011330663346542122342673770493650816076281002853147482005131790537380006566376922615651531100030519849547818776366602022057972873945338152707372027732314083221270278588855480958688900016540068621892214781755113665746784694755323190580551683533138099759076022410375436347896228177584172732943649887568156495677644036771355095056308747613520288046177726896605464072663009855568683335766305281480982035892833700164132557937794580011948967603467053015594260622626089103388188994423821677348032869110240258878566552130285760860716480585460304233478685294596939023340475302043550471725831370701412886200796799066738253130116139413003320295451905921940254020106565924109072808392699799539263467526018178669677529478780325955745745446468269376409246227155085888210378132246086848766347264055401234933322893726523488177698791941327436159286675200549284311835558252203290992414318834135567460903781491551306517605142650528990319717150290610503120711619243010278933895237686139253711541465094306987785302695352832190645653248456278113883029314010146741906924496110756996311127617536622715475443365636215551367975990405233846673503028522115735084844722640105125628467305028374813083221192694228700313723148721850070271166472416117352088562301640569898849131642661441622536383327061566185118685454793836838545846306928249963895796269094245712703788387412783998176369774766174715248808285952530824492069672891098016842492628203776433674698379212342152220725842755303947933150366216986445554053087779995013780827011327272058376746230039695529828184563920645401910038836532857507029708825403972276622084831844508334249878581415106119006486845910332822238291026402377498472391039746913093937727316601802795646800756428462093028503923786952914906466040378953274889069888236403344123620438397922659517382563351588808275175980783142336614409327975115106001296082848781746942048283422939426112803939248615559282044704421998846020605557748226729009296537607769534190962067683647936612432840347677220471955078037408289990795475514116919320704079582393119708806934952018042755876285799883127284893356489380473305319457727914400790560140541718856304915360618849460164541961705309562336750757106923040079237107741110726335316676211425361873045039604195393138620238137019190762502265345669452215892573612991322399384820608151862990296559520923348054735330869036728951264019286313067837414454243096867744510732173169111948074521237618869983887107807134135733703924657480354463608742223227197919201336395175302251201514108335872902055916021015175811432990227059395439635133935813509492865839458758987784306962312685814068610830679536054808171452149546697461449102744180148269847409747302880273670341712832753311613411531904962957296479914880522026438218084403278188722949627002383560694986562208174627048757528875683283345558356904655947767801773145531363791889722822674859408546972159244596244213935294411987284846624620420870098658767599651856009277539317154466008365444754141491708883175041625651248513935344147615022498446773052592558641395372958518304671352251202698858919690331114958509710156352615479256579011483274330055067435897081867491302901560948677239549727310044366501270514395355007125391546813764768779157499068232686072380246630484114076955990848493574593089690724738725620959915729561285007773619283634373624061452352114032588515162096563586885784712316875446664666695954633250804137882343069134697614252759144113529416523738992974933601720926064426926587285548880548862327203655281109824005845654202048008533488411600186984252929262957792200459613735856858181148935802033724474280972884777464150430956871657943139596240751904133467690816654428041598740346007131200847219703809401585504509817296508121827576876205942958077197498261446472786521741325615911922612501532989781207804435759243374818699212049381852779096694658541776867131140516279084174675556840328480093400886837561305790769468106445203547318723582090280250889951304499548120160442564035768904563450005912180087592014775602521521223611540018396179372721563651973686580946671061361157228584858408133933168139283709135653613663955606552089395188321280291747719405946941795320662808350510584908029538231688868761911981902946610982539140304070812574731896954856094044683355220356538981938975972370270924922142586888651295328642253849444502612042915916176357473209432967663385476489698770154632248566477117392320638540963846724169845049716716201414890231336830696420805624421691863824115733243668993617877667129134921846317486641156360148557686802839242109763875567071650648504065769413710227668864725493007808563855861830812802444942955266973749734491265911963780607188695374050623794847393121163357140462214746157348772424068518127422642418942547867194618931905482416472136978632202415198057119159773782591454162982320853541352579094640266362724178942933233503200175739070001048454710379385688134561624620346987047669336150900112826308000748970787217083211823607143251852319771965494241941292276584951862678599393146840122556189413172468361134735295396177437812480687900581524715843961401159018570244431121858964039343939662083184997114491778735796081157970564645509177640644362730459212061324086439750670883792136704695560751251688009296631957969810352936763239529654352294382918180857652118308698057860870963508601205471178016142267523209585373731011414846626898614755060337149752261006115862081993130736658373067085868377270017069876777845811897300683449230641262369730066566623350561466044254769753581048889642028053488690296080889238850996581196475122224827359033882551709405144913623817455743944703515563996942479116603997311904185163533843056535217108408843219160476974649262030135168970275205167749994428712933595987081190474922742864668748652182123978580157804763868561335351889117905948410133012474363010086343252832831058172859020580462937055335809594153360886282653354369383117571407575983096574393897865432542123040052538717507727153543370780465964934467388286847593304642082382867571740857578219416944002133278298406926460384634707168479413966509703071122354467002364887625095324587565602702691818401563071737859931901652213951037552087294666546693563363163156663020126896917750849673587662021129664195957744973780077529027260413438465027053632009259895515166381913359104182380017585604753341231403589115831953273805126046662159209552322880366564997942645583542677982189605388707577818587708433695575543176436374129422827474262546038151725008267793466296123717650658766933135270396165934791044239779540204064656174241614060235583246255728811512178821658573437373163992571472349501507175207865670121112477877405665697550556033937596506579087445543727904434355689444742717228286863492050047516229266682209753396905219678079040863454461182486180990725282573618654836050297822222921548457126273571736423202249472976446227085215452552578849408326614125004589783199952788905666460595692909719800935303424001694321828097454662244389500725595163324423565700935601639571302521901084355436276467844321270949223197651622593700111120814194892401236112228190144455813072158574057817421497091325662482735401569213716542161381260946505896818508129625898758074283802352738075250654151246453170127187097421735064947960227933660523696466051455670880543976806740471337115686470653750104128665591406709720559971843743696259862761090256545538241396250071234242113694698634462971050197228360981176390267128929181149851860203710316316506201738495040555077700304940400247727753184486515915231518901434172643779701630546833098816920249777571953187972788541652056839767716641830645305119453528235016819093243474193245664064580324481694676333048277663930380330295233679884724590660688248574254887620556383751182843641523186310256782968480111642942443802944071605340721140762877260890894077339886901289269557434751205276479691188235688709124083836992143601470556180349943794595363178358258166249956708245000475139556969862070962763903621647419094503902111486033853109833277828764207318554566246963564061737524685164626972521047672874689345755357891032934676179995664124157468678369949083413313724187359370687880167264571716923684774324182359267633293925340839934304992634690892421868436146495319926250055169711032198656434846244562983147384979849665832685293998202705793249405953374775141033297934044296338696203178992912122819637934045438449803480787133148304987594398163936978874217942822662013849755790106535477236459798130391999385146484391872559895051883577751271968679008818808034969354702426946578109620141272840808441332170787622436033862712745543013314487099362737455302063366438098007951374172083551826560602432815794078337018648968015179783719867806132297426653331782603228529985738036297049248654269251684482340254741217093949938686335077396086940206029136693926360245805413550326471262353641082770758723968431041809425244528666227759088309207603290319914872053950585314315408385032122996526660617035024300835057717585138954341528565190821644652078375127330834524621614298507753362389648569528875572282051577045846477875835457950735054282289609475707508566961469175248513457149791207869077669450514753503056303598247488667408868198681250666544091483972679393499422305527961731434535731195196944168908019994245788241125546910384277956163042623827434405081856044480399024308910973050682063547857614436674151290581621146323590683960789157239136258890762585004004595201309987413356695835307196570868108602512878341085700985416400794571140940929211890658590299408076592997107944823737684171340104260216600106601612704793570517051800839394158002601039297450066752746346079762517439174307785075801709053319518095934873596600317968683823001983248466450416365516946180164327516552482445447445854886758918260011394814705832485814108093512846513927859319545908857108940103269983889534607068012000322322352783454180659510427031844034464851542448077052147777019884203557026643374926256971184228011850521095004859217647962967811790126015401344991485183112955346249379910362808759172779310892691004600824478140825971873121161869725453625173068683268689915445202788152656159179234807924498114746084896297478769250233974869453525194763462985412909066981061760001845864959642555206387247739046306866034265012716485197858104226100219542221285965562938299580645760717061501888119179797139592431799114335935160476795988080728103868348833026033486782803258925436391932548028003732016904598033722729165326792092594680773886858410430774494877792987583353921412700158136961273078972537891285465804569994131901599342607243963002207494820094809271472596699252587340102759216758383353698482825914437472071460291193877276161580512633073861347143346212541876376924099839298408539162475755528471650982327743689480509132603261889177282869955646178539356090006956301890068623766744309495875103773433290353261768200330649082709383462493709474619028538292969458149869045076060372652522846936078318086286970741229738431140470788445647770265422455020499044434417581191186666168573825406650635562940150805748274923709092540022193399716553043380062836076467645915728621607467435635162001307315913886106138660279350512819595990284256753175968021768086975187551277333782425558721917350380551574849493131825929691667100638110572178312352870471848194540769313254950924991445864516358119860243637537360776092688767850730949885924023343036281644126541654266307339884502582219648870987576927233692968774521888128107606872214551910241156052469839531524288834583733464676765920086438037306108665825493388429889043024894223463098665790162943957480540430932208603020583691757382180065237252010702089695593615915399878699999724225126396959064045149571430034828931537506887945207514135085839404607905607324031770704861959058858134346433556214251696161219290869693300762747256160557799923438893282192941459089629025757039741636916490401537359715738258577953047189553265846383849075815823255612274880059945542028618890496385851408610967246708042343039046617193055251006201345970876142144737086389014190585246867244244155154951205486388163876997175094067418580707701950187538007658456758747364207058141997275322385736053312499481238070993932544613519694560725907349449642283550444082490080455182104119880237711315484140781533461833641269086722850209911110180711279578172715312916416428261537771609306331324466267026864307667512931997908770072786140310209488347165159334896387055417374067687910974744373253684493438001356914076326855494915715615097738142772828932992251728057070380958335147316753251095253185840314831650798871605272194174480377880791704293985855786322882647373213943489351355440460058607077526188603313154500683736955120325526768572241458279726714752253870249282730779790701333261166702067600212781115946542139000971984410066707622157787709864947605352720396473662402221308632061897182944095633544205665293686487060056991123497551683909030385703450093033847457481554144138798362762613018868975834338273711884143897729151227747610679472119586442769496055574763341305483065460034675650734642900452747849324173674016607524127449024026562527440024743213540897256357004429927977005391301457968176433392003563831283026380637877916118759939416257887886280513354212674958626535893562095959325651336188106922821731756547240788583551463310541065004606663021810887118845324901442439240526562591503055907146365383011145358535575057274261102392294710259666386903227128371398825781265748626361583754282944771228687201119598416125600283781538244190122052094093759589905742043450338015214813227652605425078490966450105861310069074033303954277263018813674875339278658831422624941985491230361503978963940989878116863873011633724624808675250038585484284138966513601504617573081675031926464878904594773690412161808537763800590545901787542577393925645752111525093073692242953417966773538101140636537338192403453484352214230803051669970628623661343725545908890941972611420377232637850839652773161405292799521013322950275248039717866729266140327952108326231861861534567398239883945340643323089346880673750688710231693862538117340671533218489719942924164474820422892989241654470622931734956483003128351813097183367724057707728848130984206934853417171996367371652700286812200873875190608251169728636392995060525816141154253462861686975560070132361561340710711151260852840512228335292998737517647413043257841679154087702960978909164782794958988962702642284267736067150095648333632280513471880897588332258968236908078591088960527256267173574954124611219457126385320729281240327904761174551072262821416094801860757501249846374766078262672132154597792609285269013565677607725824119024243784332756453751095901140971681623753100152643888325623253904544515552195923459451140327486943771689372718717011878728477491755344963712550567025217845762259412178335887326333500910554099952637434444020688858356014382517532843330867849574092118090906023065412870116318635267406690319616564488361456909058813221174157371549170675201065191287350978301861678494817019517507559590174225471753369060431423415118849737113099443962044897013124941396305237284314495198835477375801687505334359588820668258294120159740838704274329974352891810960595836437820488364208544632264930704181213403672964787213811937134049543988485636109695820184494583359375235610934798660174227222544259849314224126385946063007498505929671088410269520622755557927973966519115290497249540364961354092680784933221492681851995801505445937534812091231676952513249595969407272743600970568519751323432513160959271271857307689585615207990334258760679908246829068231364103257492162227330285097013013492475065355561248161681870355641637513504999106427067594652296058711917145907205322350973799309319445826336889073119540178024783352195923896138217421790337357362242628720334015315347745562585119864694175971741811084820010884862621027415089138257377056189448518820507981097684271851246830314135996389767872357967538602140198060614127220567613004289661965976310978419359217986640833157124680117837733724496077201236301802667314486537942964989159073316710700884667209368706036259003766850477813967039042205647076042457021345436645511549857092624497441680485480418440458009452652857593876486817814794996826991013469596608750095278785569863485106512013420189763579118897698890078429733496175949482355259965523020653735847612569802344800934438309435586066929495679032148110260371172515772241726110463242826388343572800016009202774796079812972646867041362932041587650590395232940128393457391482774338643928300178102184537065876704004122314350378433847456922574543943615498958431147215079328831191717528735346149484251668580830212627137096682302432541759471277365345395368853667912515173789616594402110213383829907845419358613366695672964173192437798867132450634360130074295176257216472896481872837082483422143635779964730780886239827308317562246601562596690780084605186559074556287480287384088772196597858394093550189511636092582778835494789770668559482784067805903517606789522645536417063007834953133974347971831296035083781027619419407571227123116586547876087277067869394661127339715721259956950171521744573126116047635458062817554361050308800318862264763085261940896111543731242016271673491654422231620585995947975284865114116279783779429342220338837025767101737322671474738198058740121991423764980643168659327205815544991962353640005685344861697454528428480378672658245000335819474490700676693339807541974022529676803668992637920142861365059689251795449491540871346374811319776368585878392297357356447878395877091154036265318399289246844675442480559503646233169890587233426836921002825568593920023995244522898240167929212017678050878807002812499691095479083519492243842998269871969029681884524446651721219129071471667619354308470199763693235638502419576595781449064599820579931821336861685856805949157649633860505204452198360445060893317318973777222467081868437305431592267192641466545343398845954785282029924892192838478413739673319015069944247327111332482688104178992690400809142177445844026668116137983874220835178966934451381049013197991824405341457265519938168671741083289539733208730651898836926745723768685793761104473905930006978957750382264702742460631397849055711198090839239036695211636256410115334624200122539301609933899206934923904947739731687962072511141757681825838870296083562678663616002402718680422923839506452182262279359780483497627988491280003098582086798487432353379754558097554501505271231811582840791745973925164861026633635885779496255759415198694995564614414237800522242373983376858104786319840054062250378062316309846117866779404205952530756066753112813677729403396582936960450775376141563795049325019601547022807176700703103750353313147858150096360307701347885278725129045944831273482468594271402930317493820010852171481963375111271974146491110569627287361491324620514249298252495175023596823377971593491491224256349072582125144306715718215596296437462171997712509356827489008892974047962838414687684432776954970904610430694935384189389528005385304179318977177433418189912938655480359404775956730218357836507094184725060240263352960406369382746190317692326807526201276276341741181821066648178710827361497379182159302542055244347849551965942660213872785512880575166241527242716386342367647220428331101805125983849677030792479434802652814003852355438087505225550222717728337587896778790053975999116610799160585748129523854503754580842101060922749899866413970180557417981087671857168082048754081271349353113642006501281527975698259447936802032096492259805214147249849626732952129570324603621182583447125834088575204357242906018076703479841082479434200624726643686634076325711541586009396560030220703842067092656802524343777046833490289311196490569672891785552469746093809936564363238287736970222816387225943870903589168502353884900168619589830471205576749524748789783404032811060769671215723981284279859938833304628905203107593227541801524803635159261512292268477750064357031197158089588342725506682387478907311620830213736067728494035395682778109057201953952909149530156781169203428787307240511387080777073007607281494199515842115705497432355826173904590060031235476344722678208293878949672382732189598577876686315657140734913584679133308915241276322105830109449142717636522226277213779502527996747060465789146047206804918359330205999834996693096821969845847490656633341043149512562459760800377658916537508069334687611742884646827960548872431063275504354797566456581740641254904555171799840343268595979836235004980315726592138952998489773250865936434807370256993939951803888896219655906855662761883561052141784297264375870037418435819491135484993931201722831728534263093985363684696181010717095603239027589822850434071258088091459519732862600553651238205162114785607306122532675104605884930503952409319713662670330970331026205564073689291189342011645141826348133292487969813310388174047908802280378945600619441218882681379891476861906602967979062552836887871910637641204818594628312878213514671839113797057276992366586571425661507296088895996870172270946632373526456829038244005695196399030391492556977628246558557050304649717537398002963696978676871955832772810182026046730310927247840823424243111262533147887713186767075520332399930854492585093070154158028910364327252172031163371328107972944231466763266839435322128994299210919369070926992685143891556724594729676085609371690042868216977060566661095538995523997849175223916698884238285576944549512113576668579074284983175023497096670677678124586123061777972634014581026274048295422897384861339329688119080106661525075203786936014539417772031218165946258170696257519634072194544639867263710556863483527135697371905779684389507752429480188317816497833047316017713812240882228984639947266096966653075692214997372644770529270147223743744863351338994928367526111859777956314339450761009655371809603257955072272491848768041681065329774827440174160603629003594376556872810687377444610094422950833121089826472862641190403983574426886481812663380009175971227925691695599619542968230100628102523497608766442655474939140507776092794447919302748674652973989859594299918257432518314044570387551600597885882909644385234675297495384552513956240146183018111212823187502678957898549012733553097397071154600644657038144093553627385445368618652369698702639276459517392904820283747413092219552807293018524092139398554762634651737607797379024051839893732985482091897452126037893038487161939671006955595477846791520126689670885888164957424285750669429007212201065937447961978790046394326131842462798565837919057886174317949574053288872007750802600370076780831751921994834225365246642396446312332633201210322184951932361931341874955252793870954066921723667743568471662400317236573866022576253312713454199022142457293943395533310145315281562872843423032458605047564960095005995695627219263059936222870376847626030556562128010751285008835864671201684305815249324264832767987814893587562635356377486205399493405272279120129365465900023787384416938155084231939701877489422075708378935000790005957446930869492081323836199051638499131217287540754057038743108205576988803640956397280379142215468712820678496046911831428971146446655555900660649131391658590556697461733364367939316110630435351694752466322405335373214659001570835233109026733489154709158468690865781199606605360087836748877247228873119950789052518378162015950837911076262245111319892099477340902116930096439376438652079910950722685230623494487440613898052368059034543564354578183136137376233115025730740454270630450896265316029219002639411191291548778442535362866026860399848238231676947240267079519536594513421927032706780587613615475376815667919703323082590654139512171544388154082708765323591140931275137746383078690823170710854343186471257338202930691052627029987107524160507149768390020040432008163045600624239285668379478004033380042857899108152890233629519407830139627717826606500455255292862190622531004167129918352359797401011946877595176622507252173911650938062637808191539514264650931356658462380026028794698905070604032707197905648677646017343954343333098717940514666366882436614735485462766919179469237566647040925866565191133276667139649515482714301769101077874149484271597358163353096594710269455103031593873791950822804101713906290485565114924609394813532738576359941691787695561604104994668991089520243067478573479366421131373370699152544901437477126293788012276568561112701491425115040910800381103520770157071853424724960433112418179976862462630625365833015231945045884558548911257230831892150169622446869249884145460702408798920541501491680124084271727255081169452449120876895309622779554184683634444201817437619493823912662358781861314147731407684591061384509143493649354641047219164574880993919264645468354213959119977127806698768053105760469287791246079948351224023001544129374521910974370246741893583002935497577387027508269559446611936606783774698146409983663816239991832646970425967964450687246071351805145427493445791096406285794158135795777436151174597640879292325861826236867078910839744356881126223161852705768647222667461845517480634905533689549184790297693657222077813748874957146133152705601168549639299428825847191429732984298307921813609846775382642689996329675608681305765181956496690965397741225052476706272818973005064652321424273657896516495026865834223857779356516906936054548971990988594310338402150978591637142166756464865601001127895519395068926533408538571957151462857604182988423435534025503270661511328866857260328951250134295432054117569528851446179590123883560305904986842178798308685257067780717426099997389754639534449452463761205721177238473128000688319825673332502190814942079672480226472619134199780408051017423350927448457104906700026006758761688981251183649762823804931847682786459880329458651414442948885069616240291051577710456971849836954269531055512533840399004920120123573032836116659116645309146073306505685510623357926563348375000497180574162148060993804176795527103173921525516463748061008431777231271367331791229637376670002188235887162755033554731060287893911150680760814652931367979571619845106183341010182297303903148760264605310430876337560658665877069074002787433069366621123140420131540675441371562281899036055550768757604185283271706806620937213508105385389758898197190176879920705024097140984150247205517137059494376767888008835348929011528788437425218995409150946500494530623497473723800570481116856202096277439934695004551060285385857494874769094689336861835074212384891521677483036973540591076106923951808529287263573840722118248090777666809680769243006769566790818806264987739161169189977003207505757488226132127524024946748168795253277560132960456824256638569877313359313442859172862485292881540372261706185500540921792124155233792441939337423899155543684475480324377517757497286768652535905477681219755829701279765779100708243762020705208241771047044016031107609926838290052777256230380995582227229123565769727924023670649722990645816038193822236021352889787541845430250046080763278239722173889342587339610661567753315315556550536090034361880060996347423218637269099807249409728684741162834293835751366890015603265732368192491410334894243351742781902176186576921116577970704707405209061770941832613142810322996423319876004876436569089247787563236333158242066851799433103561245931218977070115648708469302134655597450623934438985247614674099630168460326570907806107766959537307458761401481558446587597696684383022503776694554639384806364213819826838621186936868097001786527368514783451381733976471835635160723462110355128508625785907256878698541658781190305106122470044066787481983856304133488514601540777193386948610491311588604772286835691138490469758829228852025749201990018469839972263174373036310793319478297346979250460283610001404911733167045800582440048658019692087998573181930808795097619823939271387674418668974820630996165704295351243543222230389264239953524697280972748122682112600055927892655660666047573823639892553179223192366847788836733970309823344632083394815151261189572842189231058404066121521096948807710533939428461182965070201431043729419253995142255465763053815547001051941215561983401966720133760583826429275247652847706143533231497297276394057027756828253231726033503701166775772334972962705427491262033600877243238857072419342972509996211156007603729533547040229812852863418428247988555351201995907822522647667654802526574942043745259733793841249405656556508210190164219837378487844715749909476322627416187805740440079678689060540547505013972374613771376192477641694005746613592661348020313945918727310993094012458900607264587257622214798403642197231157347149311573599934661828538077031994411739243825856821787923211161583926871693029655915238727556523918933063006071424567550583811780733522126315327887317560956432564970650619152328577689943807822484438481556076734297963662795523327337310724842133180228004611827694943058449948843694231174471509500984603918456394447931058445513201298675607206304255785478145981675252873209404961483613763644818953743261717829538025808079849788714647710949779797722008176157538957506888814613038785458550181430251659534934056518145416500030190775151439758397375701006189906046441734424632905013019345638914265665387164558154752027504567287424347694802390294900742675740249449749223795543561615088305311570895053169448365866373484285420975871644767250355150349284774285415005051797560314167852279968373494774563422579432055021956452587921874302286770210420782321050079007069783687424066613347100557317558519014275014255310121733298418380133684739755848901387202120106835429531522607705574271034591002265044891190206787768287599888860359417003643561046896283650758495940719467331045382697832219698648315853673143624468303103294479343704666894407726260996029673839955695373836263406461742575222577015230917605860826306294935143804173492942542920646484422473562563529990020662112067973839661826357824702302967426416472305836457380095357642972990248026573694444187297370241981803419495429524673640117947034813509149208428461406232042030531723293868692690226631866079392147531097879725040411092647935387988450296165452119132851530868924792904898481518547685761624184494068362443676122378819206678110361738120627029655192910394870710643216120418334248125597045498050239688770520084382857704145051148145236045821969439633036020504550223438710572435888494258805945794953464181493815600344973433293209736135901053838640257227565299041425687342916602108187541473695432248362718098727463365966288958604934921544664750843136048510367961102610082382325668172042655110897149559191868200140630862553549511395666358972856673508134343862895219010168830827301166888481014904714584075301003145646509525866878878400409026273684378271248805710840607466941085840483181169179329391239276397462816664580157974684631917257794520666220648046258841427736179156809414826057230034382785459519968872038304070945048347552163980963263868820434908913445031799220553353296527123852656343102730788162687831849279036469006131503550420747923635581952372281952834063802082706888817532853619357102040885988994887052522928403470958956507901936747871279173137784712946586310635733405695121376540817679546643116068623305728133677724720479829997190367582489092089944656678063534380226115291928317960945101950668840732917869017998835622049847270522517281104924331950320055147722531212897466767487976088130969126705300523676592895072520615749256950217613817565858622643117740073727821852683971655090824566523465364922733355544880890180374758248951475087456555140996088218839401670390462530999724698656462367366125819814710870278036975810726005375983006133367859676625460046627532311831924854175944488869856879798308274258976654914204258095869230082126537104755177764107797933694933651224251007104277039694698974082195149619561143308175433798434996554335179669566308483755925220713296718975814964263934808185533421120725514086319929097268903289884186821837603537293100368458995925233520718904917587369647731224473521172912126625165309096216622055361085773498075066406478313429237194445450817580626939868569901724510313388404581660652992319892254169164305499306150657003822216182954916323359849906997492286089464320719496210809475794218087876812752666745782406388310546489589721163189565627349553714344927347619257801820951140973817370806934241601539265296752174431370287143283063025802226475559324996586590636600280220786610989441162720027265055736735763751016329139748510940037023497783360624985836069097996811187188799177786468192178532759040474228847055230185680525563000174623270616619636172684458763724637164407041318459988944186765870636962892394641114551540992629111990549267370694692881259616713917849436471923308504413924820437479800450106692505278447018496387150835605499973405580434304954822518451462023951322876951458591203116804381452223359788114636411121908318650734628365254116729680573590479010975281533297174360124810128245003760026923513864973985868109967665312440270077982597566383000093739733570331670872858633111521545481623736984008172683399335184869952666256171525739529579860169911811767884121196748950091175267338997575622385770748724785716567236827087476273227894114360786188980413895057542430740552413940036345374201799503942110683596888574400488361920039554332380899627382096137351401230994612116380705367441090420442095891142916195754434153063786309906566472504177313214103290097971521817117606194907895439489418079867147669454023499871853192779434925337403781122043783002511506315492496268716930736187628783838639348021638948252561232947504362965633331619822627003116983652399465263214810512847103459085339259924373662150802951165991091024225276976295948165814977633251409874752160358152301494079899598446933920706903383304049158865757774955694208902617954320490260055862715801492034284540791024324473442164868539970068580151827973829994543966758463534681905471371840324741048915805335161650205413653343057126341766551920590379062712818272770667156522878529870286922037495495312843265358767731273203921725401333403826109870033693511879500290543204485735226607624095297116513881558004812605564741245950649202132334669218420697221773851392484063946478671413399718389277369677912716578308876302740277349418128206047053973033286287593720055141048750997778356460631357002360003822675372279481887812876580440700954242558613564932738995253294801807186257887780799160684179238426262436721806655558586625215080816509350961884840102738870425659822971664571350798413188005390378527498663223735868934103130770724449176365869927009830695731853189365015398106840062658720461784071068258835174703582997077355722434049561777532733994285647221119868492155858099858962545325245225245198964892902580508162814714288769809925113363567937592319336228136109630502465231115845833982740282965239870205995770758759942002526883589779507442978189091223766260696282429468494633128663545976028888417672071304500759649254689716434312227229874096700108377244268112793395932954663705816005694646487845799236277109595064706215833007327667615503516775065022207265014583981751101725587005098667011508169513746055515841886861513078274032211618842806234297627389028255591708466280266517535654509964295574563448167201807212405683329158344480476018851729864886914170613422495058586095659094542444105802291890022205119134147460455831753050933646451146440583816135301216458470080953081972386273019840942150176966122056783439285147331674153272668685076033561455221873059179748805140715201040502464516417175269498957288623143614759355056901231923721968902194713028498861498586152653593394047672351161323994773871319885910171572700926740806343527002293075707002573604592001074504662473671235408302571905661533495577653524262301913209349452563894564495549238696640362517342134140939992142152922055593723795058328293261545850833736727257740251262501001996926503420728093005451772983150634908014257505657970127883993328675897860488561021944742118193166344946065810046920034310977821260342211274289279134029963523839913949837479987720945274337669138858105427821376206215649192701336700704525538238565377376330027511189067788984062224883492727120801582174421135528392381615217335542777805315929931555045360980358303534507683980937255542202929146244965041460869237362575196716744402508781600518729706077472908246624970938805606020850128023845047310149235001431904435020759191706114366376865972992371025170177284964393554453050060933980975272092394646810678022792894565100683173422164595194981828154483768791051726473059671940516032534077880300216709008352443517027433556924376657028907565471369264981117198031278909098484168728505061841342992074778695527151454176949185851944549500764408162359814938184238443247149531362966645690315893506329858158317156890573673800450372360415757487956127862447585196182614093228462108880762145772793036266792478292620800438417437395742127717471630889622607389934217532286607256761842947619701909542462612089210158236014617573225101084063991633543047788205002425093552768866927020786677299714593971306269621345260783971928724477943582348665004968709348012414922532326655423866268221227642912493520001191462311697607825743516345532088322436196313568266689949486405800646577501969485939705681550010624849377626852097648486867612203571100489957966896403407639251923283688763400316106256193370465297973684615527664120701520443435813751036389696212096560660278511208768407324099221453857788863299700880944827991436518043943964706805590040841970755779211109295256962590736177589788651815406844692473350349110858003114840149523814295993631631177026708127566624175189273044757035019537094044140937450948266913281289655866747905550111045768111407108766799315307960916199936705125123226022965898030280779936350193046430846181563068156632436409287316320656186544595153717933923561741630145085841332216940449082747868006138846536975072008770863512592986571993457795795327639825211281535153178979148220931734424394476914404405833116819015016099329906502587819241698064281463457955258729639277544665940640319233141521860060997300510475749507184589685194993937189621622813646801915692731255950671451633074324463395406341412606588416633712109057197093965260754887679776094448890801053316502623229328458553699222639692849551623648691111497578971653483122070661666454722656650394103665236097401725874525751761362500429247477632685809695110384984137760207683682549892430324451485852104278462153190331938563925716067237176467672586123337706812529139636128733716843468418936271757884975427142101436182594602014704228403891879393624624290161141170066243087947674570838802262502503145389404861992463058375049229240659546101288630688871883059538234071632839241603620752755736953947753033454001421080853119337644319014852884770893097504895340564103151863666656116689677791937991825899894553777072294114992929557790255733552743701355352046615093198788073582111059073993236028611247680661363395792401455488503083535456065652224706329165331169322927497859275183633137694272168038769392886939241371919906459881732494503249025658187258489910315052928111982072775491770540178522982728688676542940260501495678428262935669038697972697545648771808091670660671147353770042778731308958056337542357845834623520081723919355189525760943638903349970596634915848385632490215636165298498510407624052052703865708113901828625090440106592432437992286759630258961774912620286547076160819547659530439988893947379264874289002524101278507069841502002256029559008864038882623742029027509100807673202671610874213694039996693996769484373482613888922799417753389060166342029908596684646428566643237813285657159896212810754716336084537369273176881141527031888375035789302513402558946472764173278971387492839428899920869714387517716526802789605610254042730290616484146166397925285968878993479965571579094773515671039498473808254114107008154004189359024408319670007112556692617102824782589729787670392168514360816073750761320700448559489962056656771717452152154203916826508733954131707795007848568954121208481360641080321219470136523538673911890336724182123707753789228155168617377181712963358868664886871151121091591992844471264619638114716029223304107932796230393973761262613880733784883218093112166251281144585421424157529311117507193185260849680150517666032242827371868696127908931535465153246052458740453762585761317859079655513988269204007880353981911483021595643220528525408885047715065592820941273421906237590514708429781424899448257406433155749819631583270724974381181457359478042998198286740184346680261904945163137372856217386780933476306707393757304132961614736558838913106243889576303094964772322184119063679201644864910917683873414108777700091751591084263165189558299876220898226750775600143589641941219880614564906835357721321107742483007677205056171954373783869236831214778191209184204783505835497183359582807229850294194705765221506927493556064016856641490364989009498196197570507469276485990387837638454976282764693086141672083223239725447809492426454901609501075613953691837849192184243676944610345952601512403984784608337054536463746564882923071939930713272164532403939918456887011629124364604969921718983080998629152664812671397119478057207222559473482736140891692019452950257999341259989810345491730088327958625811700505632977295329192639552242309825573380380499798606483084415766692411926954476575252071332666255299488874349711414045051292866604699961511009132025553683688016222506010503855502598639177070490469256474498039722047091287382819366876839422664781349828509970765486076230219034432229584211391014020056017239520941901106045409750534321434202621831485369763009075093202535913559957209923230464805928819167602193125371084903107030597283116920089143411665181389191585771384976443563356350578377913537214333406496022909513995324667787150303728743811422601673032274305023513544881143481351191988469142084723347541428678361736457548460606422535013546211599510006613869703676089600440951449401553611420807197782530114502928448050269912185961814085614231229963617339111303399404668641431457037767832080789171168966683849117289393073012854943240145809633924781751154305874379308740192976068216799714494954426374500187647652530981435106032550916788591813985500999589492729059259707253708396084654503553303279510461339808206592209906921716549682608683395025217566293070788674501418173822578464614261610802067042979280586979719436973478282643207131533806591074898848988995252977178290199375466322355794205933064471201461798314709846399809463551890709367072246426158964364950160703304487004263269261187334513127461069432661557912076854266292525887332874949340726438257088262669304106640955604901721359523059693945097674806126135659966666173278044638504357874787855142497685521308891254473909204928103324842026215407700178818079030444613698728869242924739870782358846518056643086527821103858834453695860298835444941768725866649011609632923166027690718871073444985142642608202733829363546585292903029921616254491022524676514725290845175402158472493801475492129983529898696147580105110548341991057288633139544884227573148210715520000568754907913963167659424554221046524343906059774692233797184717055399711518124183363438303360790044502919234913222426387371866380076712756477828011132654543800496343551329808643474345748316333259096180566236355118811363270223895861271319723862702516967002915237209275035938259587616807807380077544023700114819299767963401558365817767568601678277061133544220095115691932494479829257874584709067094891825518486467582471333849288453095679180784039714506826028454369071970812687530744970236755421541651136317503867821879725137250367662602429454866579979529996513032403952230386187438329222946598207850652508385034527516686806693476441159033575608981816681860061945585372852320855678553835844715782190589216519305181257910603639754287072252477877891298876713322295607840486797405900969031466152931314283833262823581689509935793876327688918752076227826411922971560295821028691147486119423072358992185942905762057478154132846168740241179679798054051469190874439086453682521129504039955641938193012596561307860369994099284472926932234011807884495789394673813330625896393405577292162849884437622666086493504470061552384885720114090978276140256677148155411444454780818747022662832234918234914644221623054700563762669005608255052206621812778515563862154326861849256043930977021734746061248519535558107444291837682694792386184451869030192217203928288574055778324236653819357574865714711261136474742842484983871951155844878444278333633300010771187955075199361207814928201787142808895983613512374646493402007456239745007979441940527042976076791342981456263501584027022381311065177641788421637844133514019150549916061201969266475180647572355475996883011725462238676614966204874826059277386979056535939970591275036932333420412195462572750606113950809339340476042815679526398659936145466166999501232291785987019081897492413501891391436845965945416084821012345930908602861893173336108363164858780275225172836839644034831185941762060663689236853366954013180584518422509746396217658331330534710062439859991817983440475094957934103067010052873859484335375566469246518107147078218287254462133378158931903142873180023011180775882668836019450311325405528444763210447368050068411286676395391170426327676555211180131488251145180106597744661485774166750371604610783090483434463836616589346744417397315700332292443747689830271427798140815084034169653434281356529060515610038724746752419724914728851951876177603990631918154935969142573829302380599174260150198046072807425888009057806421470678568365785656338239729246142010296146152617614519364755031241409747735429238059394538101539399022057050895544770098919326745136868381407085803846169827799344172318155802017764359811009556289049227727075265157824222835493163861960684643523972006781486288845168780229529676435149573829213356987312242330210331419777921629002024418020921562516960647504934763113144043856990805350585452140508425576345518472750357804059496574125015175714585873045446698119372434946188573028497356006911782835641731623605076163791721258082496312759538189412034897575233689748497197636350437620548135430682861191415259461455334525570157035441735277310737083871112316497852841971475018468109174742473758788227583387233545270090545227461330710911409615151054200398718518731847880489126923207619130209809973078715604792225958398667392062340184779690099386022186465940345377822601440065830490643893965389712215079446408345218383213779107041014775796634782388744903793302282823992375452236041880340947595909383710272661372000195110454109616038270816408444479517122082044121588031831942382957743135867534651686334730122674390415827816096757655171199165916263759273367987785924112544601259922486666798121804189127793751363243857991967757749657809098739748903448698503870821152072944093535461055814421911472637335210298245402464829202997041096233963265921596553375924609184005719436798858434670409813860875948603002141611918447853024220020814115662616033225645371372274427616972053633976238238706789316789391317333425337814007845796795004107119002580391396821294845024502016089153442950827265810833625023181398117181302566483503683526703813715290868565446515227647612539239801622847981028730229917429632392114035834104917568016831142748103812234226602955434916247476765977115678686657076425488306499793759579468123814507054959964893286570014994207341245719371853408617364756667621993990345132747976409547030740063235301602731902150960353190188523012981552802175030848172139353077087351218166187396891806244744726040608419957022232713089912007478836357317216269841017368239715268326289037615958457306023405848549468261901914344716761828509774439440921409121819495047098538360677664369891759817970112833851092541921263426137177798500301150696281357062876395879396564240289061419718685688914113219445573181807401656398379406159438145243019335211733487906961635957605328218940800767526724825452117281821365190075143963366939229422445936953290374858382350639604141593736580514932504553867428205080287305813872265636578081615795101819345154688210554032563590138375665525573656963280836454519734406382880385938036774889070217404891559632079613896204958471806058870452653783733695016299004410759614369919066219530612683535480079808893045051707280136028278839993240132152702177519965826344721498278581118708179340778165530041261077192516363364757349042841565113930715361768359757936904324950863919985422590444032600589895268775911044058331652012118723242569991965958292084900801763209343637445460948985158389401143942012528918399957580504378509056916276563165853728156621178325389510944729343852546752660292368951779504524644627877461678848851975645841001356413207968542162237923653828845775665447716783392393968938014977362591814546254768895510837923257874360286754369824777421002244047514905638707707735070623394577867154760356556948042851234711073087489045140508905373427881128296729938226295111977598389171515566691675963475302832043474347890799357278875412776304177475284349186950862261319870314077329119601643715507158027775848318934760190233298468624098975671023825244645110520194632946940176757237611026835411827201713721112909598874389350856202327175305267615690337856821967609188970161629576984270107689449523859761900020852461106605928326922658772709634487041884234296507171246462069850222474436447591713659154942539683077234213066956559687732882509763241442792152651494992658849239427122449719255277067603370642097068813927556166331074682218463222697712149034469557369195488313207699692733017288256352563173015447115351956544466353663501839947597002376729789088261735647838361134476779152633056437848808476274866191496865657474101129071301068348802024520997913822931215745800762927194602304384009814283235564123838720289427359741344005504555289129134434968251481754367363813613234162937958992936132728415686328855181168413372190644994468439305103680307999389157518975125720040093062432225290085459003820318567924344318042096622135604511356767600215106305774493410104239542814055920198568857117863224846654875449520569549023742876060829263510920294667949882497765922593752314871299930549680126871037268757417463371529833883349640422952587476327904512391984346856812196295300519401808311474363168900148621168333880468358993791867266931313023773443971338991031814504336851782801065670470932326594973358913349119981862737663478397007334122493477044476776518053477539009114007769455487099866941611269894543135173947352053557530470618923481630244137582358973465160052919307784070280576878239390083934484907613733121506212986847193776418954902803589656257539403323949478387894760372352814227150254435588858297948476474061842321331028483750220313406090816395095053996835115493243333724618021715659675092176449804107117545442677020521443023563890528350271399088251900566363333641024436454177204565279405661647037258180672555788406696825201991903047628502417213522594607273064849502199183760132606429069397452871572233903769372787546840660021723324474564968982112090763226199318304917013015775598331223095837530950322451807534633472183839570907831402041443508755323968920364622423948343066902438928300152033552291615240571053468203503620203799657983060558254183222403782987003796038546804457940577642786473403062080128118509265320026536106131530948968555382375508043407308918716632833474431356060208765834584124153761748200080212677758529826342167639911218212902785027122702252380390338179579689239481915563740500446492049289236790620130081269432348773725352365960880651929588362910989955846724423528625070861684883713184625785774414811840241799153273295177379637012145555482778396123521444313794090282835127451784405813909355078570665872251542739814518191557785592349835258129116197120349373878953391524569087951536695296867970923400009231081737741738852551953302750795031403007556141408391720439815358044071040315001870982036954058282873987173684099455729493264205960757980941572697028825495366329669599525450713248762848781393768386247896240047965120200425636077882219740422419839207490870683378113838479473586453121896216573328764994929122114295317253878039866012630755858246403157412567893705539171846180240294863399230113760648620641927138718731043821615965327578902844724561461127880204793715636135319502907830745845379895316277217685781582286828985119530895736208475022052363548200277912141541496092287719404827791062000377308362991046515603698989685614995740946244370076098203038999020310060713845331591523743572981051479574391788966737853399772515112653309315687068825676864177084434525397216706969286404921904995056534057263234715699741084970919049315075133948152194825193178267786073465573584122177332494948787187934771403409173287470719038204365873703495101086843953679252493971821282473030315588505726150640020473330524038024917633864261752024694201982639255688043041992225193918162625804944924993752991744490507211797608674008838413059977899895216240288066155011638841717801260544688792670484234828300630552604137741719522218590438207165202102909539904876213405624541730531019748524971636995174324704567604440614002068120041263178386835107374214787108584087219221583865880854805246975125951851461980247864493528256986200217495934585885832672114386691384487422488538853230737586091781287197805429558527293681894387788465395189946048459927868762715431597898759061252721819871179198708612446266002343965613911515748350051240998035372921089723505117167731653546746001336284784481565979746795145887112564777558046769305833277762949657320609268989952635652348178418964139016679882199691282876166010968468742924254069778978019520572081192919591403838426573154399188733156918179704647377641304749850377515464815184709537390596582623201457548920132870980685186996068609498693548365096995261771597962091436865324362921257435523475631872594161096828029131906361598051491504408488759217377779462173510100595099075466942625615062383242236420310814597732083511639951973079340708060565869474185693080744886603101674999259023229166827931095216338324892947060962032222637973965449144570589979569556732302977871120185196972552961751017563536001532170054547722373017421078370739545387206885381955509762831511275714313954954314395581916187079051826161947795078929845104689761961679616231011595824118524350039795808684971957337547163134294927428050272476857569829524698712088555354905906697533143979365626133073578423161618396060466753765055566426293340313057810392315855899019070590524289481754540647089787986007137192557032697973557165217538185561728659717945483632628725530301179373140738295026455953357345518886834868422635577288787804624600034256569994705499695462830327923152852493058107416405051351273715432011646521199696291066025577616714487402371988134553915474649525042519871957691035376632033770019528817139941670653484791213884333724256827599479133414657555241180159587655857076407224434971649096601577887135944002915803205498844618945770866811659854856209434643621377500403127451047529209993343874155291332969605207971809778349443703623541785534480763409349054762873102210348585250666076973334990944659098511024690344533058768073714876038461476711260299738018479559080092905076081078704407564522454646550805234201920445336515647777580750640137108345342403235260469070791674211944545874962209931434563744782068945346467316663441947187787598556854181338594176340424162385703689803244239877004234030708043431992119586337930716137266028082158373192362774711245099888441510736281477167082289802059583577733838485342658532670761983507327308563446015254169903013943406685453343068804231630684775961796905600370378311674775431277006729567968984465325490147561841094119227778077848167373406638980673859519239230821646658409217967340158488285069443864722665360910132407929254351209733368980964683287710585965593136870797774548186947128956208093935789315029810194693015025495493356308674754942197218861525492050171382816027551388731976637088173804529671978876095402623295671238481562494345540677470534353950857375091635482423672089498123789546190338241071286716995908053276774014943483064883248360314420002859902723575659897998182059935991397162015281952939937873344568030909300392339571982116805974231476674213676045028982953346264280375120093489677364865663009862126501926386464950068272120553051325833301244049136767578583808562465472835954757771827598808613556830174575331805601730845448041635615196623887314503672392846901719143445982248627768178467304875568251207772444988879663862778388886602523282351070250027865787790524499166340941711286079299351803498125990794644912366317220350242389490245952678320786890436717686581096073566685859668517602956385155653747235258151586117418427821815055640917959247980577062029633619247391593759212518684546053686890922074474337499730740605507004550738804054756231125018936908072711983598481153358388443725861229451715167690146495985471082565673415444446559726167825038426773687127950624248320930522114838876137854124402943240614384376458700900194070664699836825311780316657678515514687283088369060393558175452487990389982795741740572721991619043392102502296486737563991396228886596060181639644539540082440904826263401972609661029618718524682107383113553136389841212384674876086880836127427731499866038558788397137959961494429143166886733980309751974490615960307463022463324657602076350514917465369747708459331187751378578327346241597607174318241594401425667927065869135102798868685690998002559456318827221898760229247872488692800114496252725898837196030678350491423786147140074632706032741219195321804557555511125137720400224699059779251596695147436140976586705887192077797663468628705496155619979869378062948920612888373016130160089086699864993294146389428500672513527500472638950789491521256965994691253030219266927617947859844836326393479131653719516381719590456967693854670077607866541873428549606565310287645121146723924512154514010750469485245460967244209844676710686973863328920869637242512568421444379664735939166344695560012536198040400409605857352708297534276181880125829022087366215148104003157751843171953051712599907201498012899117587927305701837978371415912514035779953984351796390824261299862538048441665527449481009833321489103907209102534170822983248716281365918367369208774166366810361875368445647003398232198111118568428260501066659748504522228117931328480540257677891450161750588180581069488560700564820969037004379354780404804215393719081284861808075583342298458627387987313269033028151124751734592864039000952019643978703880389476567801967024579246146017020039852148111768012014196825865943770198959227066998350627695724681820966564127130800786698294889784512122348135031358185006535828697222520221848690913337379069565535427311441308929624143904690145089295479731284151996620979163566970535019537792382958847881012615468128251516532907159004164220396597338652201355192769865319282726217596465269852285953152979965388174839748623898417433664536150391614288465673929045810147839541421838989108474183026600184589236157852102627392333582487317347654279106362883037001007411681229461753898363963160624445287027504226745405460606748347141295585875847310272347076546740644872785776972512204241412411353718402646318157033674463335204129871344951412232422205598185405882344423180733462401633479047834178190347230251707142972012086963935178456533059987634967878419881763005032285484785683495208967836080933799739434697814496993432996504785073063984040564060654195540852995217627949886230012122921542587487174846601059583801521579100917526759704560669917003488956283302894352386814102643796493631759628569943275013686106720016579848463801702453479377507523579260166000618088727674351976662361784094867339242837208709398951105647835317962207700550310398770332181974091098151544360128101117201200734391242768773573991471301852760984061746960689714844314579557330036065437633854940792167886053525951280712545305475541530356292088729596062295497216198389392743477258590672865608137366309985878696687987265445665056698899281924288852699066484468834039294451529617923917312556530975614694732932041957544316231040523608496273429268622992370626063500697772374564950930179591702689633315236287012141681175091750287778057521569545442082988137945745416255791615646326761921145457379443408955586250996719739708195111968011282334176560660564396085672533691505354324673777309325120286402710513820041587630345803522443400548073580995065707978331264947944391883368051139021101487973704312534143270171175624210350164214905192184549927724346396468677333318461719451601635439061014137332819268873519951103047498663914067469915378401148630346944122997481578675176795193516547201281276102747517668716510360524223262404664421518650546508482366127985892445259934250051120781160722345003666738553509826044017001542632784670191055023984305089319393968200686964151214676995818920736333757005171591388991391581909786178478365124495826715265895968475027775768624495630577738200697468170952332563514921554279330540805320016726722973788365270135465130870551278602148966264504984354149566274968296548455079968773013487376776588720009114274437469362883540130660491344062114962364565453978472108776202919439201250731405801919776763577969797437840526848545401881128007269220637504064963408548381520387095927426635251840841047130386196170111767253613585806487765431680551569544702334970065370907869407638293571882661712519463494749937926585552496505217380889595640466917320900904830718021955483985307302692303724103486387118591655364467151967463251586736347966162747576128636810990366226222798170575254546810081499367353581304083043067792442766127980949375224638557414247113414835149026669456562595917258454572162887387668742210846895099735526980796137489831876872148334729980687855372901217544477808240188596187867083788312953135161167238607980470810847770320742272993362372907583639149271019198241535576979839494423502699259775938621180347254547116398072990410220965888779362424087554004536575226231446062297350460041811254119109724428883595837710267942963304733030099133408884628021954937482610144681982020868211025564492347498691365898251594691388582908357601164373450780286683693266408145605974566464457885927039922974850025790051246099145116954941066460148961564237043307111305124903670429798339302876782033620667911071098794813633686708146677784257189065912842395180306041144883478989272413106478805555066197873818497143888491250286501705562939046785903045045135161033683512696040604607364317668458638337529144935025468288758145173542063223400843291306898497595480020534138200634532494713402531003368772604089876027177337571829783702629929550063106558960154950868889290621597332172547316686112589976255384101225612384766191913386012987170671963890330938598411891729872586818747649718570367017232213969825412791533745388859942586492094800048494076686995251982850861694417054440683867317987148646915059231063581110952977296370945941100007601585022288879332687466509055423164439223454737595895160582499992538777767956139300327323319293068837034887868786756405577320591935045213257682850583926398226617251579561931295486416035758951150552417356412893658506730919263558435591547724994476169851464661475585842519789456519628675924314651661909060406124893454390423306781566137498608844738679593283521922933728270258683810324150127456186784470994877648078691655658660585454996636576959619229337779912197669015583820635000637303489053336338517875826132648474726973190624059469278821852596010144861288823745783348650576281938480679630055283108116676257359161391281134438766054180919518745836838849073347706855441027029675695956530113000328792321846651386019410590887359221328973140713577256895211021825662353787087871835004354060708002654324328213637684052798234437142606528012755645349017016486713824511991621924070407917734895941538136293025424318349963071585856237809319743208490650873355353309338837222864969295756670190349752736462706941322589250463535311289938802734555499273389825561073426329527342647786393027361758377356847134033429296454754251031427748715291593268068806873088482349868645334185673092397973565454826107229362325660532481833795571078528433700514676251590468812386402125332158396052997200291122808727226218677839091090339716289219920026319213308033895467392961002694616867112893396535431012962449240793275054705062143969527747959741353556545228270968615543113028139491316544876415892976516683475501205308022188303579567066205743863569832465716643108451576609995127488097462159329067720631836959158832027387616281010521054777138453874696363689693131236684056947396989588400860717877598997199835160477700553685286987322796269953737305039663813103313975175117028415799042803289977485125108202780906285876179997542666367957883913536655743988267567964913194842972667318805202974026365312346033905468913683854617631282753393220942056668587657588863554009924077281079158791896728193848387866158672379049629539903661757986712670373892194459680714979061475458619634105928522223615050606552597895753995329587844601220109724818610272448391474393431835562139573399054713508433665733909905940739848029996185504977535502818793851197115749565875670021275764387140845731232196369997929620935851920953135865106354193200891142793670522556147803465585548593923101303587586502796484850848188429744731830099273042651595886824630862036305073716535129343311513428628983758958492532136197360116354311350999913509475167334613544220436826329945245431032345475768553681987482311953391003289374814397847672626377620439346144875057324761587011757788355538426335276762241311657387590277017241092110143017845435409987274620132427693360447497654059738100364471372453776515977371947545176880715766533964984779367265072528486886139180789749014807421700430645415948367256083287928943908103038956357217794185249571634632763692089798231696655510419008507829456639390242631728041214230354419514207860784271248206337581103805093535585047925249923241701515885236499695672722180236730935018398783424582365853881544259940128402769038532254899119259282667271878723140806050675608113240896015266395080779287934226706247271930943768464840757447211668699420945364818741048505659979598782983077469982471401855571824705914895853004822212089523558914597381496407047993985618952804430179298927181559453258581360114665409966306009453564711479482124161371053802447406317301152365647359814053224715879398095918223404201921739501755879115086784172787190828056076044262483191795522905382926160583803180366695056278253351109401474385272401651151291154862398502927070497198220937057745182808120469349478989457366845606400787525886081860846211413434451543803326311226421170251580820866210117614333371361814645017266069708890990032143753172963177011868182316455594429487039317663479338946951628196458800892105779297652665321879856596957369794675244627901079883166452172240725783942417823008877811311358435021254612767932239610205270174362216991560948221098184714753763773588754170488318570682406515955926043450798791291306186272271870382379312161055499627559647327536117045089748499179605034913325319337781171165309786791245148027589806096381341423585185583354415599893638300396324683053732697386875632406108768956235206689348884155378112241230133476808068162794265703846202895975786158276970520575397567098041092312867009495624237948388117688972705283326005203141070186579376697299915568070661157684084665875035555729524088105916676204546324594083773981891311193738934961645225894970346127605742613600741031994518922548078322326025961194019645697798988135841602639913314385148595106535810337954056089399067603545067285995525978213042506710281116949258442232648103557059933388050988584303832454649382285387718550163383002763797179464729697257291589134886025361203713899917701399650264474535471170464677556204818115442629361424503317352794550621505876855970025933376622900679230445271238307430009533287264071811787812925912114495409016357043263084620521563117571723695996393518113664266630134856612262212306715071760011095977881308705418207792728918351157367375914984078661015144393469885267389101422036476947244707373506348980283317746642946911238617301824575539388997669342163349602016000159523223220318007604733182510580041893631936426374123341831564673538755274185791676750146618763122872623288135186775652513885390601870753647094556384036226423188519789641811713186723845671220356515234881224436159342874030413486773532181181990271504492917487492947899956597905364100636125593638779955883465278602271289862940998474797377181040572553283658100654693272092645470563282115482344819457194927405910365729895527478916830799723324685124498211077782291157448982157631421986341191690922591720552427458393095113839787945509689211914978859148306260259292781624035353528789126274347692708557913146993495772833369328279424601976171244217345704118070360693538331108216936571246193901298806951616957737375095807534775364995625316871371598809701011690884060624188905125126837514499199223554027154858908492928798410901990268072453135411823618328411227764674972157810901823346765222853044644783075219253263740178891516278239545238717432453401331435798459601830687612761124050005885847190288691224384706224976940885890894412562192384555961001563740818159914310313890516906661575046387548713271352196942810968709464119770985772746039227871877270307400559949899569807915501011600332723894276782801224788620424246906729744499768893953171988287663417831019772536805935950902751115313307002930377594026844094042527869498578005102945838829097288910322582865509787773583552896307806105650032418609019343128873481154185815078547754776719137333405254667326208288924122452200818237942570847323380542740238726780558949745277841769588417184871772869435456749621862740238979052773735682558067519988420781092167243700440304021168678129320940749356689705667410954323756012757722763260430634147769712720469822099384579282075835627003165207185180709872176179382804171909406346038271716962705875208867716606318544799516313587892282084292946255969613391598007577523086534430652098647446262773944031833219166017966696366979310621562267431077237165123880772171904579161525120053562153315888673969227151746027506466332491472275569224833502642894727861922154912596175760103494351616914728143583665856968924102267224423342034904428407234203238111448778030236708003168173675921695392651453620473844649833514118985015594483683867291296341265729846153536393191214409209277033967859147125456209628432938465971358539538580978683796081052472974076278395353310917155986901503780101119494737088899943585354925041810825971511460850410168063853423559113957144237310086218942961619885519657663045238460625044755074879396944459771018840563261411606533597673411176507458105689278593324880205732522074422600596857987429936655340276365277301616129987267493414385734633663617129746486547968181837476204684416296765830681517747688964079826882571513929061747483822540413001696768677804508763892221876491901387034908892111737767497549393766028582639977233753272680072480306845232735312185976102619212755320891628386437149646760425188398069891989953286644576382429094339468945723955632726378446466662321232039302428316484732310285579849137433569185581103326023876775542945484691878154310181416704712036181826320226613978888060130361665300851461071659241253314447768965760442386520252877456375744881990551997997444727132952961241984165669892977495890953833563958305956046605269627542098862705395812411289472954955530557164932575420085702718574298439263522964865732581146559648483193461239889712914144011787011993310532416757638814973143969757595395311422964625706923530805929485573970935740339803352858661285694213043460328356547770265872303858354939578909817248773484046610352944938492918358200445946293178467568364915292084305794852803056279125768990473567877421007576846005835053712621157594470074608003120596718005216151553366136725577721389147941023910912543549482976254124480683318796435811202958557354924315301241399203086481916214777844207065460174032830492750242493693017697642217829814517811182209882878018776347180983092823651810708792408730356936816152718198708722583589944298174190266769277345694413397445036447997046861705232519352090243060734085960388265854237368372484528823514682630141995493850383808848259186724579794030027561914724699987083480606222841755340173892726659526469320852630623519148642232806648800767680027561127418896704235888165090567086045976165645166575511705254555255306405795799844422211696169104672721601431457338998614195535639729490593218844806300746566278341117991918272811995101650468788638203291480598721554159739883679940990591322804422181494396039174908950552186058083234299351086481153761137718890421826748773766631752097311907460692313323726969343942222412224984932038851220103828885885525981344970391938907545592235313026345545706563757376761242758972725558074079665161753609647052979733691382355812547649622641771632208559985186528042634284363250573175580349444667517540254304148489982377729632739300010939514406905409344542167035067082074441544580447886983304075752894112575518448294819729986496130386828114259238141424451883768274273499658076137484697097035599860688374432674603069429340467641157515581935444489156228834807001220577578434352386301671664544697683445701647971282077715859255172459339300246528675552425149647913562922414938544906926089473869831522298899044488427224415696882214377901348945440492696551969838250341743878291756479638793668312988090150366015348565825559854297517981845678365897739363401827356835988464757130703908711730053235636938554313571530233229580703013621324758743660841137651717513152108192531898121324028862993455501016088637360505178542009138293801361263273496416700756502572811092096631130976115017064950907079533630318180943181546777120706720544080094557244968021173975168995589045698972781687614343367130472012646057350903090510693849800937639876629402360364103225051727889277936029464070608864256886103017520247386682061040153329610274840794933986058643031423633303712572216176781754397023935589931188284896198936689306530953551047480315166514461134741871819830138074989589448982575496259543169432371159267523330784851788278689582598901592828230006846682803786517012893494411226835207127385869571059321094724752586939733221141435534160382364269906947327083758723463525610842110159064969702944961310616865895674265923276377126283375719365896132088330578424785105617685375568500206409749575747720992249574045230710359166628371038250386225355392560505002132695936257913299247436338171524718617229275859275503779248648612046813445909381118655188990291388337276490068187558298516249664103584569041211783329729729462850238326216283882301869364121739086758554325619245107966028438426261829293544450441761231292901047215307886042253390868113406282962370712045908582654600087993519085676611639033656228536998121181743182810187669868531889595762571536497198555693811098877078604766878874177992555435323842339153868244681163347048336536944413096221561558183639502798454251066650059342285158563182845841939258920898005251410234639963409750018506417401145353402799695586430482912030362691208465975464196492154305755320335532868969535516213732429221970228158894020316012653305550685350059114766740595725372016542532633363217012880544311047503245561800399566123264101863036985945788003541324654169823380220623714982619319872557621523654262748422581306423520521527538361844086703859423155452358304415428786711483387262176833444646559193780763868541538641338837166591028588778351035054767270746794680616977103225093262439624778553577775298666833623822712055366399810759197142993513591285355393472490187829772627433099552429828322063862608017168612841295105274786922570926242542923184277472786226443838466857637643174523443752571284507433675653555908754911010192261553225701908571264949081315599803551343506075458650998231396030319846908912865055673168477215010078518930262759253965575699763019770266082156496477593876297391577107527711170257187733415253890748634007197176527575206620927046866033899587387030196140129136350258657882078712821425886801115742456520402529980614383412412133846279600599615564389613871710671854001341500240990890951240896574976948853022876303653917947437436943602635184046640567657800039465174767903458156320859644306014821757076088601987307294418178716737549630717336620691323417406672582479057005444935038915787108913406903217843135026555315418648882124487302397076677579979778202399995079351222026229430017466031538965959699987342765205586057814242886228700682792776593706393352131100388600300158269374818045804993429778223804478625393333205822005617530753600799179576758884211522994989058336357695348665395391013563950322996336498094575574472152314295375624322103596999404176715707760061462720912155444407658940017437054180405375069470921334019413879368484073553477481718093395255531982290260687052718842440449756419863763572011663551331387175328472648215130791614409962858445064297480766731924384578743093519589882331180535167238157736943645073229024809106961873698190760260300434307856237684079579582612074385915475644784125863709772165954548421589978672004530334946057986931220451453140579041736302456517045263435718556752589890010380078170583595119803401296926639470741340673494583274136889932620117740911022348975991632798378732390230335130028047996599898827778199302025173206832604428234990781202011346227857583983174686175040146320426392451161563731878899886793739566435690770149352815918664820512941247379420034833381789614916575801741371255529263720071918339797189385530894798610508553653572987953244841322280209145552916038082640975497207511760406721409091553764650882506590880686668891621788054165542523667578748617366198364190537931605081829427889193498722028202218572025024650811280446727366402203091572099848622760418170260480324907020332043511803242095281643860792797467335666701013150455123630198275190000272965115178146179418214223937258455677643549606700132673075955775722915821379847171245494216522100217297205476685929356654959871713193064133495806089916667588739872176286767229751198580663565904768131924322441275420360140792036576836986901976250885379951882777851168700752991827949510632352379815291748840460755970821174394200055646954027057557035572391103651277893570882677244640063767564723875414113063482461627683232078364036550187468843270394057337620752967961525669008183298142748373993851284143509284872835861057963010890566808142688529292709468527892100830957693717592668978608881129386842310791306035314540359422605203763492984591628555037555187805102586777744337817108038764819811577992207600158714829616687580303135801992413413095056389697013328469231814564354327720107985725256536076519447581298503472858062478519556542939095645216285480717032019423668658033309886498685923946071502916762961983971794761860886254024735752831994819518606097465152584908060690125676082305576847744093539183173636116074252272465721021230872873216480004978078576939648232169842860404150189971305095232227183153444189562324825156307428608918214913108514364328489427796192398636630408146114336128799226905303186664851179409077174839317136822471015911756738468754126713339544564178940695119424728942385703896194629064179421971600803865977594171100053418954726097863672708403642614356645531023725520847733828399784182019279208856371491390163171997734393175320979836837954241931804762242090798064955108340032078863584886768868413145714821035257260331134994267193084823581179105120762094861946056769546682927969458432427798872034930589313307569196566910207236914648253566868131935511409206563226303515957354506891143391355993972994037584017785091245059722459901730137462628489689965450532616124006129226547936886832156922146209005902635064446783730850953341187748687649452144329766613086522828668447273683238178695478127167304105198848408552785226454583171696678730525973094494388090713529917716111791067046123639579242531813019300419892119193670380421054172824514548459530030788217814577243250802902641700668749546286593275418676247391938979705013965691898455432594677533016095495772681765763610199488688510870777727463557876983666813992089122283229482924648987197722977959671709802886946271826167109703697673128128936957757677443162860597398760874405109555835474275085555572582870832440947577491751510222235090264289723344544626903456793982529277731276065546278946040512053420710034882367027004821801634556617778283643453045025556955202151128665504465527764691279237278213016850118324043990068388652795523794531313920750135258832292021631942835200419748917237118105209031300742082038650609326669201859134933236830782853240903841779178500459802907913749421139406443550766021575567386355813286848864007442228528391422287308763415860638682617737330105410575722190403213759006522084525364795087049317506989244348924426108498251746874185984997888455424915457488836620529715899362353056188988815689819105272583938160542587852006786010372793222867216512355121099180628834374472995956742164460647666334833092252651174194609077208243317681222314335557435101347682787373120478045193279351446287053903915211695666012089181120367123706524686377023060197143388149421127253190920439130293692447201875997828114552562858809232756326392692824101369820327992502494672128412456924462900616592980962335217082376200659529497950961424521923049924745973094917440322583250177729930985645932832993240771485667738676081029817458495089209192901521732042316189217335690541654628382326887950590783541237753443060815511803888995173051349038240796606743406677472465635144118567824301798042211805851451920414199575909758065019854825277466509165138626008213357941046096007359644220022870455676029986044105998999623601523489727899351928274782824158900126752774492383261487628363365874949542393016384644673198395708091834994738060462884129020193016558143703139542954861942737211978863727866118116391759672210930006456108857856203178915755489682751691188460613550622531547252850195816399290460033653430864856960463022155825380798338617277095101387977290565072105158163529550906253378150799003971294487345785842475751361153744309840646409860286308631669797082601424457039810693991254837130626895989001424085189702483484439385010823685797747674542122440488749021629661158616578793476126301698398780189982285977801442822341803196435686364577534903724426944261653753903100873420262587922084696095595286466976989015583444969439444061907101745843077420238953016141068771215110900698793731295312573567080202789532028301663399820017589071129994837643557970417716854702097724293913465124491944896244727900383212690005113629292969019383408498680086109658672999644476960851455383168833592997135699435306704344878722087144161138956438544615186525864335865796828502524469741939596997517268839335472892879531550838830425235598881202637366072156517182157787129391422551106240219053604249856571691073167223208777301538522469229723998074777274204344828250719543884713474050553768384815896845586013716361496157034205380932217228106365889407684282937469774598485226763202919752166499846747746754992311701510915940877268304041864968685215355193563342676380965706675787005606828575334183054005668466684563864891520912482264926546550166426987588362136417085540529315496548895675725736800530886182155106082485597713782784082943622837492935714082385706359654570964445002132336768493962208601253014987971792738469858042055126209476239909621990740074285564750411081677096678804712519577010664605117809814247617929279322851388551149930968290745412458237784652638297494680198939717360624434796673871092504976466279765554277916823913438936432470104846635852158424666198299032486453908067174176482568354127368117370103161248358170402954119994335722440118070091567672630706240681089232322468100703580722549120962879398106678883757761155502957681903701510082751814932503085936591255972139500448328081644260961076431397151450161747532676720313892022770934870631375058596709608818489657832911867549491531259394477113544193737487773998053282341289580883232012401299511357544938368879865162390871573728288410801247837236313938214889994646324387081384131154104793671743470856853594520301116777405858831744490077072362022279777863331141809413684809851985210831531006919152391030520417201731215191712828624961893655356249535242515384164948480904603986617750371842390575155941257945110730500603123075863349228266456211816377871709089481417277740837364727856666871210731179457443528417145689617354927799782932153758540360368725894108716531552242868875848914580224065120722134381575531361446657995123890042500146530919802014904156555533607332252628153984305416687099147218501751417717148434988160817790143665960687841503996868025715471341284120420208818918029782399889917820515910765200470163693188462061748851553646973674113495154449682958262681800559615547729798983998399039560171327921989244308939970950396699662446245719644907666765096564248288217817687305235196242436337885513691518794726877399490000370340740078490706911791256690212319923839180793141267392268327080816007435257164969889471809430805625200338152005034150734500727434905752674719490978904292452813497866721743486414205529674116307581427307047552828270587218524077222719820930315157917505439024172456194171102616642916346784626658089220183184951066398097800909137269288458086063406438811955997216008258642333257664658669077386966015618903696067812564457981657592720751089540157762033438177775464059196422836257657823518420252810240551435106143891104921360577572580383825408981627859401585405471306974998264925726364102451414822387589292293748114086917113573087250028197363569051336471490406693055786952697592485426547421770590552738773294299974367725348132167106332936980537949861936589571069728817126332241581921244590368004467293753739485721867165595142936747986083533607159288284881427075753011248024151913816292110105678849202167540017243640007881705046747727918909226477478241542295516236836093329989911253772119818819883383284455863360047498696935250952400239520295444278401722003609751508832191044715273806100141480095663268837012955553368675876764136873221822298672575422913122561826114095403846491360157904389400218208641612536622235876990635949517792485345644518913160437530673249501261285854448901677713257746829313594361083768576684627021118124636460427951568425290532283318328406574458995719522013996359086528851119519959807565743451340814078944026378648951255407847888640113938689584123128853116831663456494229654296032876704053795526989094807632341541688004768381065613797127431628072782361018950655255974169658716400826849155649103525168134125162459596796735476611944674526373636474494144842154960920722937696359099650169475102710515117730923017079225400632181461986791458734400998498372489346539188198732367042792462719268785957435874734666263312020846872030821051036728314026001116882939080242741495823019334034935218776372073046222359963784537494497628882355850374685595594097477714658328350542997199731339675652264290766410844940864577234519343210492394704316013141746703556858195471776462856822202218739817081619455920111575856865750921361562171026983197873007375541048151254680808750995035785630266915601780337946369240524122116388422078355535636087777460304165331587912217865544327012318089345362290942217986576268224057549859817727451642718276755554956983004442337947251480417136958912310092420571300583443578679216739205807957658015633913308757533460381533930614325391070778420933550974130274451104819634358178504271463731190203550014083489217926055978952494005401851927886378235162002240038780862658710732260068719127150642226400333701937173493799117829290165380791246007229683397630397599464029859008489785753079280239431092505157057297904448430166948051526032917861848970329437264630158050398260853134940495286960822038638345364365340130998592537438443512341580610272426753974871308841255321749233215501089998809982328851458399637314198917439016094930432464976707243738260881832140289907042790055682613282867379684118300123618963221316071422819763613967249707786562357350459021450250204636192453689117269567764423272840462635850582604777940192534281242989923448736661180520046757550260942514230760086532817065620758225542594274413462479453593529812497245316281071735727652017907686473995199934567505300144996003158151269062442454455216373972540754505450337852070246223842130220861219362758158491787248981420021850462839789131039959757601476066389789896145730800743545199365625983145720807234662741476876547437345115344159046940515507523720347107727661531914653634731430081640670020188094346268908083311950226536062553913900795468176866287616904971817653657539687445013193763740624739990896924937961792319309127139162287430236030402514069554082770524280272873082815352179520097550015925416575396816656350293184179214952149727436239571740572432546946333859286191730548208272620927419502129674324356365945520611572573280384015107264064505146680558616982569455644495246824484331480653913915261937406845687648776028407037379201881380101995328164296697852434215396091625501548319447058450557014069366756017359329344616671366500763920339696429927828057812697718066093394561896812626967474388399556835766704566196041330771628480930623880336024291818172098786231864390648235301245195680092659813714283956011433592274181096473803652504746920353965207093913807493085845192964618361105108850329761204862816087155240699146266180794107311046402429625099240549493376483953029037130492629403717301082294089593827531456871752852545496563114661321843008148925109603832079502584681277409378183205750655983384634634585295521513388982801725392894150896233216319019979219368200169450185843145894438602273115877118311538806388125844166875200374118569186934821265662113804910345461780763992429068698253526982171691961489210672052100323326011343765431755947233692734894996164099345614231551068655815353918761129073069814641341841759355498544255770887514792584610772260164958828751742640175294460472676433367061754833043032987141360387383387069613144362896993772408113048463974617808943591860084625935149471849890829634916336348048498181866006653181084041317165911898211827713362322917569275990433573536850031025198673227849750607146486766643038423843355806172867485967257585606593175387734268280272670469858517412234175210397509952259606469054117110293958073583841207016472670915634398331820687704406895564773153254628486379033700463866496239758061977244691933948791546085360768701401336947544048307618276457464168372099967254010391652289881217772180887021915611111276672463687362849017957394715213749584081184834627815776363437953354802338759594712188723684656245390557827165407009007149174847600603508623540494604847422643043909785731315698372935735599081153147657710562401647436278268539918472080034280243568253125622744755198659387595634964884756545877607160650585187169966459473067073894414961012659183836903979890100015385394742757898216292861528029392174594239834874732797259086272421572619444420206344171303748626000299085689153537932840136278538416446281401656535646815927197853948967170132794709027494926489524714363320839508825354307030384950082117177430414011563291458323762487008914792236284169002374308108397875777736946758514771458202045246580403767532221005846033120578958240797022561964722001357466023105060599017340537385035368286554360037046670378112790578516478988473410334112872460490648596746655161228612906421414498862542473027628351657294639213963219490406885814504457055347206053131004389531844991698828889013616003871463597393090382448374053143792976996601402800805665068079265847019300505885728935018412417474294791065011463189789773330333183415918657879063443727170755202513150074381296886403218932204739877902846949882744854176358086808354970486968637405737008030322928517004086984152527872647289791871946683180927913411025814730439863116791594137284181651232128058466378287376317425227033916072555030985033941099725695533570568292835395340403320129977293330232950259508401276588756753482862510148086608894214393499198071640669194047245413682417233547080744002830162845317256390345936408918983748647545965577391361120271036389166217730049538527667539356121497604893243448194289239161327539608291322777245377092607084790878100189447719161223257884293928375380925179486186581189817163099734098656142786485274633847841909981282551340405962789642377885919583748310928598678929715881356706540454613837557876333344044064341549983774866496205003802979092147436638653263551647369562420827246097544669417852479602139463097010825516892137936859390448817230687887923896436653594042394835361481266030474818721693945604343268750001016223369320109418879890571366004323498698392300213836176801049799267491557782664789808506280894374658461816030371530810848879885301886140268311922969565262258151906392911487441008319100384835704471008493735713200012656979441454416046954207251786972177069029711358871213198343200589897308909082560430180106675056309022232618365933376132828191587457234115820068068859752944074546647806600321707830382850039985120232841673479744786381754501680701973648267227343235989813197211030429332157447769574270501736041850955946049832229481143073901120548071900786452132378859251946887076129607201560307481602316908284462254691730614157646466915743101387753052654593233680502759392141544496889641711377125494056307816645262102591514400121915312268685626990357235770225236609018988172242147153024876734430374856818423433473943948522433145747724231499039817987999977849273061344976960812245746428106830166307014524479471868205094486966637552511159430467728840012587033456228454611697479133346863140131935301521255556952014996341027999182111769901288195713378130551640142305136192894066176666128434801247112666698338353554725264444282609653037287762056585012999939422495049723939010811293652752200483635088500394398433677997074095488819623446529637760440335458460548802186696612171628377346161981995462681751498678219497077035040528313538612682425132431844449699757812740977830453216584801978917860114312147635368739016451949718329612651037252956176749323974507654372047368324380953457674897811361083634907396386044132780625808725544720466026517337433794006721661250198197846147320360342360580859202952625737291013627618208907465195446636800560762300619226365064290487517376201988737248766056828086852925874835819671642027546552003889266002328030390725487615587960013833287187017397953222771235656267208829574381594659610489044053904337861143883100318638714229243978446831846289936588299718333290229587852633902172720448201112997484937666900585811548503724681580162022474924179266891042690103824878661550123959541876761718121082819840773452292599425458611684819635994156953861278464966310301827777849179685528345471048222402895683685195411636786688067313652506556176201423848999684624559935665673979631306762594437885614742903377475167723157583108466073630059740146864451675198250401651057057372998102675634678596851568003255429679088788700034593008183311114021199856933198912697874535964858920349380460386257073999277064439446156884561764819150459969150400406743666430123298045990203889512794143419148954936431080070218487632694728997711018942610452971682293032565854696802953284639004083253676777851787499150113996555886399859620690958324272342468669122627242204066890031384674149575628259038067760434712409834660665811722385465566652806817563393255449924401950969759517980349552624890835300774833013327868512631778847273881285231050424552195130090212690833436050578388270618653708825314792220303363844037697196147084505329650530816839060312323664570166369224562768058918975971274333172703235128002619126117646302568872730591582206739191788130952997231938369090705461576882277414973909080313249760200223293527771544939579623884029403974266493825636880620426461348164313655977405963423458676834792226793151054687056017717449281333846576433783071392197320659080553527915366580270289439015521983929848396924629174772905122386639856396095502158225508058184913188596683385969029948215318991851731890718979949872915500530853861166115195780856669088920413392783140788858761117817806873892699296827748002216585838077662211058558248032083001312242365084748236861553511824438331950772219728392579036713809165897149797091523924289992329906651773377987799723462600294861260598628399482314391583652422357428099347824622775597780850204296343796584364401628012083850545812304047385102174923305644413741222995298233478657762690069295286573776661911640185750654630227906715992475494782294193310804468961727104211026455523303542468786000844233006275689770160807508978169127196657006243669678724716643203917419279257870516114543176663046511024418438368521010611327241970901316813135772979040021277615745512719909962247089962277519981646066953658684059030325130220979543796441668946154076088416960111677554739217337908156089243836199429518619531191969827814688247010063502452281221200948709163159251337549959608150908371537389884845383246508598837054788721217101746452828869486757868591945114376675902153484298268726033665657066522920112067610448984332182154705762810928503381221634504022324996721965240531943128016703549235357294483601343318980358170737016950266460177552101412360591290844151262738637579435691738002463070408875279399500481124620984755817556796222415885176755400330178398784284572881502314234380879019221942100040827272353129379085176981050167692865845288128603675289733893081332261489985274302924245415706595957305041282878494513198154743849152608017107035753651998770118366350935746868585595573264864397394716783508475899844180879231062130249693668185299615318741646434876649875418210418545875239390199669917605378736925289391223352913966743470608882866841968451782200108520861380064579910683725026263259403975863597801058916098737244302844092810280514688647675229747322377107723604513268993356219913195100330181742102530521827683970191164782775652491725666476131377403024126628679497571509685711574401666201059394099154721604796073572455948840779770739168593800250020238843380591486087156205444340856505387244821433133437495877658020791409715214130749238325523574255187870665998811602995917932031508540792981401358621880465216319038209278958235355459365129610389326682498911940965109403399560907528673813911261484176798906182199050539021536750643714999048308508821277160683043333583714745477277797915567952702464447418203262747019215094053620953669698777976001419938956767796191533017444687187482411560280509589751094324839647594627826473224884906453765346787507487533044159586615619946311338020995805681869928631660553477836931998633220332629176531704828516233434050485206337800776706666902813522529848277596743226800062567037140781648966875848483058497474274381408736835885033119996144525960552583036453992483219623996388822858845351312806373592008389402895223385896699306686797559425716571399148881602893604112281866341972756931700287977550174335569415677011941264408766812697619513350495934623282260069557156342035955988579371562575659791663752534282958144379238845568392719511098757590474842598021640443769588502604952677163590958023225430862401314336778620523565387952190904017668350574800115182339983701084039412372709826525506246538217944990403747660906025767784754618015462180660226521884134241862327280905214003545019402701240844008677869098658661475316270957271153546105773552246253316586319256387405927530193113606392681717068943971013585386302594365655602034059285928439563877622779766032988579487991238095244254892727787101862118358854405906563422077660040688974033145737410328120586960044504940173340423597795773580188382490590000124587259262608034758863179572810453270286158511399620020989085463828391871527132482775377834731335482528724162627349924688335389055225898255584018248761486299123382006347855411043462015661297847156889200927601139799040838529334383986286458198694943320081772538952387756714560650942027525305907851267343313479790264229452331365333697452869264322720758550127346065015736915545450569450217973622827406774228105295234385100752247903982310436831833714133088956414401237856468534854934950695312566104674418789503818443066378430459896241404053683107955363598027663213784935840820043620681507207137301020008745716300587116431939454219598993725717011779253453796835862280654737841044591124686894072224904568871710249030711136480761682849845183008620548684089544188804213030429817712254721026801015956827169639022739913110704729284456983813268083026011023258718663182774912438225993939415075013442740561792422752117788705008204510517148341312958175959888162906012051160932938130316513384013033647121846203041901655999926858596222913369656427040211274813991609621989447018474697530162379473426250619109937625954927432560617489886673630524315222523867209802989972999666857686573527217857708652270836200937356700773266338507739737121183290302935802794179214401424643312502100126542220078047833452497588311111452224971103049854897773582917258963361106792902566899821458878643128576518506892629865464215500792421348328385295288903428745025579814283848522537542438841933914055218463495447720356868454524827785985338964877098312064258838564661594788193911356130730656641002863525481336784760323817050333946051991463523680294761142682048911337106221411253434516818613307355651306254238920959371802259897024190302393405239342854197707024285847166938925116334408666419074780517174105433547569314771005703685652677813704288074849655249904083943394956653378440912988369626106028554671381728903491180807471303354404694348819593849475677970410218211009485929214317871424561446652547587582847637415454746929825974281460687599396996158758236495818955186998326606897012356098963032144783772118951587542053277857068904885588541176077999307856528277895362970908609217983084339999578983256556655655670458857269072986621777519098288412635324130636718284962228156870755772894363719616985508057912464245337437722457005872426072103327544175079591278733282146809434634277086164721956299896781885771807511063651264330413167978279767220470640451645395276699554103602085051547550794405940095882603374231338493802088010635860114586464271154126718665847757070321648024069680746538435374369813422662357336612663584722291617307783563077375747218389534403508730456803823208056996535143666277497075419901396598651339078981572921625176988508027912394418152445995422765746878093715993436494043008459344226974694909019963734420488652219369865191748691253239431218748961279617332193354402780987314718840214515148716038063036834051083698156991205757579688722728244498267387978227648767103401927951359957548463315151155300809978642553217170627252084334775402770727899722455918397988002294699397897555292126096804123399497974955169341206898184158747605675666220588231239163392478043498450424924430845547455614099663756630181598943631873101238291456668225684379175724460858913018297290564452237489124900295730133198569682157227329054234450286420648029059800688453745135351318855766245415200093372500499289243385152026978228937403626041686088263084037399665322397577581828104040445330195421939726335573306999488614586980820981477529013868702736171129780739135687617330387167524263121381103223954306008854076349888690771937229899172235325990777663205934652213683133045481345551728967599891977844284100712659356305537881314728460364523632910006062158627464067554049068398368527605532159551822416156033914049216968198693993715998138091862466983177427471789722725630981081114393123552635283662103388267786731149933638451895462596638269958440218626867501186199078437466939719507494872410482715446691313459445039643431680164090823527062117925640569670397825100839204119266310715802937018264420348910301604136241551769274821685483467664087009117485456757450622888607181286195050062761414974731524778960805213413052777894467820474591457865622651928774774295681765570790446501177396108981043158934473591357374782884469587326955943884676016864704189142426081456001970263937616594798627912534115991625271157931162828608428410916430050436379538797711047307484268884099349658901097488466776838906561252548170518240323594277704013245124583665663276421486106473881006795566093257330572692271387936019774046305822770288803763739646007470929930404946914955756742639993110119557177801854732440032524013837702999047389397677393165844182594724523639103967992569550331001704942652479781619911007355016616169353140531797684227532851048749917834787215904774221531658411700657645996657358789332501481797840741888035735881425320962153045047416191064437287843773142421847074357371200095550869374665523568892138864899749303818346254234000327204000218483767006698873380959119043733070408728190310359506427915949227733196472171894463249953797806672427068365413296598815701873003196978056533166970455913351010213523897913982973621965736576855598117594877967732979440856333162655945422110211178622997311408374768225830743790807950710761561510903314350986899929059093099801540897755446655912919307428367774609701030567516236370977756118693269036003676748906691597752224393659174526891873628033845813296895009933243846537619948408371738309401286364793320482902642257356778867335605931832069459713523165925981162439010051784261077112339060962545524863141333710365957210020637481910687420492270816047256551204202585042909783631757045475322480018769887758658296589282655861589645480543820309844495698792943649580376159957678070518200216910137465829858119768445966612419166181355449785230698636684265299690343285169747214152605943552155906562898315318443287641454269992738499540058289910657747474197344241172635282220037216504639472395791712505276408553234388118045931283358960352124563354150119828491902265614818413290430625301566931933194946742763638373560190633668661626770468755729253453061319927246354929137882688801456343684392518008662740161074997337479359704003858338518985971432057154651524107693877798834200900780930233172709150688212018342971073402096045786522959507270654012503983408940133878102434006946911931397656442663261898353669188241357969319145127640898047652335118692335397259396993099257299866838154785136078384417609553200318576884203591356784098476449526017457925144867312106283388707283295893647241975107027055784446380668406544544322116834855392134948415456719940112110680077535115902724127736998752470443415668434543733415167839467346086520208929535782030719467828226312669630825954096987650973994001423317178219936144457285466877119855262850794623928658711826658159706843177033398198287650511086810405178769050775210272755580672553711325180124500161150038602665576951129215317749754819283013375012400327610013456462219634664132378790569577962358651680772180128599912938392471713812118820973461987900131739746431335583122309555156817944015883104793959232813097460426736058728509125834366524039691111211873783677652666511555011428808469717438977483198938720480072904426085411448117419214265859265833884768337104985742862671775654822409579035194410358211898750728899608193814520472733048902255404548738801833135083819470966133346078047735822384436380601601671220535872104759648445170180009220533249408384235346148950281752808654358872885474161837661230081909327809303436942480218064507587770284189959620373421343179334330901783607166259917610238065206840792947676553507268204655048659449808340295466341310325093126128989956554020994611493969221879913173845299867368243733041623877431022167688670304405408261322995909103428066307011973798151936090800268602177625245115164654447167973976151837791336685373174566978217114659062517235693329488698146839452464091360391410041638497762871613396995394745051697870004635233482136657247374665091520392671156183624662240457219412692342703885045274706138157110181523320314696810203930371677948775018400337880350275593631163540009567097936507847557447369391267571188579754993118669348802878996406464090318723726203922334551496476788925528479261777658299585929898266511132374295938788985907482488655894933669865624011610048401374373226865029594202276568094617923406465631035809383261243365204351841488980481208072015732947882015294552598018641109895650376038203654573446828238571225789224893403872921716696136836700403353585424948516546723741760533265338994677998865935848731841530451305507975122460617784544828724711599428122531794199202429146957497749335740334897929564887142895429984568673829911229739413715013628781845003514766637548505503753497348674421092838808320577138367026716200749798669543389519740871442810088842016941493634068203701004936601181318048979245710239234837029462882721540493905687940260987447391885746982128526667654496532025326843663382992880755947578680402720822539577251290177656957840723828462405092426831389796843420152432704771396978712180438672811643639066536561721704495992006399355724447763502902664522131923364250818212114618178660640850411732064108108782399058489697019010152555912554148095942899535812131334339395324341313770516051034953188531413956393620948838197166705215825964547260296676724927572108262589322776640067603650959935523150061846386725454879141494440709622097563431429575690477590066966122338599208573238347632193308228843362992161536018807131128888169513798454885776408008642501806184957322465452453741536483302506440450498364041565909345925467317793254680682223212570616684374237562240273554281236699582294708891114232076831925575555627275235959395523354733106763277921484206493634195899811858077509489749178338479262108533529463363226092183864297168410104468523923534573790219974963873992121221080343129488456429835460476020289761731807680285408718656707401003662996122759316276589795005844515655844961779627346225689213379620442229385706204197538282831844029392997534811648037872688859168037499038447908378672783895949937734552646444087816483444251929471348669383676806027248348230590017685907669054838598981975031925284157899840082954915275731455461258811720764613428280327131985883248413567564617561338356493425613513454128608397323162778395030412011625530055760757014554801896845718273810447927826912879532293072310544928077314444766010555058665976433324704703745118098953549394969445311136525935077443522162196583187390702021790346442771571878883111558664699252215367980514749285222571272431631112635401342454478992239610379713388587299230845213439991778947193714819765129413485638558510093927322217529044510639295622427342063356913892002147936652686254237678046459591816558267797569682343088907460353749950477933592021054937236632162686034461047320693776014810316223074177080590257735750698409513420495160816680645551880051376660955190403172941191545349557660830794488114821279419677992291784252253530640323505584759787448728895990223947284544084272702898605690600579529824936683066837398585063641099554469414948643504134319309555901980999739340858811534361980376754826246305056223144279902429418479550279857353604729785593885237179523570803874489623929443133220046788226432259163130403095783070527014436529083342940767677212628487306173555638620960647461325458940486847546193267443807642228641529615043412096250540300595564721475795421638106662571344651051634513619789072419934204693648947465333367611820634605441427099563412889260845513159612794964824572950194074520646936426599505970656041406480248406691278610125818171706427123227942779982790742740334722485387062514649354164155680829027971722257486497824912171392985090275354310852785198372280848908572164689215592489510786792060141438084168241133676331527667906307556744506264133697803008318655234764618002819142993156352334585378901214581736469543499806062041583954373886296758067176412059925332826606260913225727445451397734566388159735326781473041243784733328794365530482999773414560923897691298167159143852182571173151003850500689599736228992898103564153690669140487202789008767465389850070179022482084449191576606165324341455514515906553741118878294518531575712409757090723388561361446785881587772683084559042410104536688895177785703886869093432017113645722514101291209637641379081399648747980716262300513750313628898707005609278465558936110670983774175636485902089443996323475921170238227878056181373562558935092397510340475977643713013800654262916810838805260849950863771025427578784661432873031130302010924151928454448715023062621109569210229491180101710231561476253096182579449953232643531103832570606214372632524414479483200582868456130887090282183486032320243552398623759099816640042829599603227907396098538665159514652404842507523787476407285567289302194360217692483224264346895549585321237936620671918911782927747841609666733876031110879913135335985188020187447641676193453200525032683173119987348232301842573854309794501847574004945128540232695177070524647177957391095556102536705649299264771116173684092339552862128456919381163607411528160231294259266122224650320836459140178612003072038226248472584177345771541855285737807145698146394266642898653204602574187546011692971812655717227125306808351179354986036189177469622860062776681493557068009558813552258461648414808983839804332555859688823336704474922170426606282606633155960816503829497895230883044906122701681938343404658374893150745750723586550234665454860608369566344510524130731974737972383121108770332341347790868312344091039610134809681286711463875293991454001139796571831370207667195554849528157791806083992245817543758512854802655841806846575984202314355816752747762806357997236156413349581144079666321710197187911078574642949297142822614774650069416050892830302957631272063769528570129675625290152075064123007683771664407920286754106708451199814008376221661660704504299894696858750814698283732837239375173315734900345298010050319839262068444973242849337623732841160139050427480258337744420197008294575418244793432571016771695853343874633714710120215114113519968079378218336028521212724606224813319606825455009018459787492812854545580927000860227112209290010097974002636767322833920875631190003555851382039960687629631349926397324456273872311124963442747448729486732236300851556208404459725924188332023696374373236965690643565948498537842670732656936653955074066059638709424248313520128000190172551422985659066712955132205273287692595656409390609299072880064485945993915428936375032650171001262670878705196616911883698902449681209280820119189225633515728761691727476448221030838454038762815560958082392267003956753528173380981488087188026754929625584896680085956200422180608755192871515766004575381584773202228707971225814240389896160246574283751935949377255791885354768090386923516900743504571681919796572395531813997168626847940291291465567252079922260220401002179034440075775699193255253339632287777753171466845270130032326958985535138738333442529082539347367860450412669215785356848533717468845167329028624696162337707512736607963508400652643842597903603620257767990370264339422984065408504987486483393547487787000000546998875934445473455747774778561262677697759524845133397109672186052403992653733189217420240075677196613115757325801946604899456955718419284578663577430944621924314149438583850260401158095179074399863045007412088433967767852748045685680205740595480406201238104172596058249547843462703739079503869777281485213011066529063071767716574669566825065287986228741397058009671564606150338555210582303114187330274412448079305717984133933887434365837879123816856927890316339298335400844038431048950540979784070017286999608569433566374242456915341646857062285745508363865433768508994626498910592859807518175065265363627505033293320854451060220823098521793688388849584950075982433148937058584373845228682455307777435423052441937398611215070674587236409583623473291975320951731947369598548039413115592110080726173449152275620774656870173372209840162995608937199116231422806123499552475025364788035544518561352143801588879611248752127261370445815291977755673287668422643017190085140764096376843909699412983364684492712510853075195993655548418487437382697821368396158646646481027754845520960397433711760333328606931328622684333519056043118294494185411559312111708410347157284607124570706016573386723793192145758311083188987447359799307320316219592135662790426497581083354850014177843063443055714385985608731402811854574833050489319697320842537037862089239089894436934301656075212210981424110263403150364236166958808403720162040373304878708433479186329430967760026713039934892373226706445668792340126952876928820063102291656296038768452883392134756698308628235078722567019612096237496563444766470613281554887172780407587431516795177117324537751384914925689061202182920231960903057584939878930359118127613033933032104957748129372747200086232419760305922322167727833363964260503397982859408640951949752030071331457498005556729790970156896115635456302606550663665343580922649791502649959212480621962505770307477548497089754452993094351930367914064175364825670633416790602041225117328766299970583381062474604895611285424270257933330628988477218779385445929919922949764461258660311545759977930193280024243216873022547921909467835940569761940897766035691333262328347912525258717535047386241203721751498758124745649052389813222023380467384677909559849843040211605878401861127084471853521407151278720248392856798882973200115871056448605759412653610236055945438726904246755285529830987009964268668535851115260752145061176594795032251253200960973602368909178040174142810272484343441226448303272776049947453101743146159989062342004213056872101017575510453024326566011251511270827409658805442106667360069691322399051884037406226382892737526054805693882093754682035893109838542899959585427167360381239144529131118922959604971987265219953271170997986671946858935713748275217034704122922042599732932608759155939469850134136614381566271704068557445120261619676675697567755607380271375639380033424488280831471953456901602305142843074489050935843205499098909591523104776663664827244460255329751300772156107105279867924544202998233145983118571614641507784712414351543339723065369679384424131624513079885047916470094556037385725744915198511770495253450078117211673159416211415112239337197718695534565980123885780516898037345792748572923683897462222018471364229009965317585238381710578061223324396717609706380684944097174411504698970115342571214529730398949660091503844778546332291464814468620936312474399843820072687148510525787008862698613585683681770692731547902266321474161445533203153227630714854697234542830930647528395978520205921426113702111416263544041042404686891744169119545354589902817107349223234789185945901596651097471346332759114095233034389185506783734974380243486421946035264787171863570626099690744365005850337289877693529508194301709504251559475799065389226625172481157212928699057724723032091149943686004644715336008520052163518631909454078853328588895260816269911019223674774008490789522943178275873340804505400678448695805389635059160381951477381349929416940810089634922340186600532246499423053756973724265570491776651721253483788552766942632781523054579247466191662707038049727293558060517357108747298884499966109284954519232334623163956242195731615718088098029881671873412277771985624528419358268759166160118482262582772316724344261865564499940453622936963560670990301899127077308450055453890414011575727438066331676783712133307890414088409423798422823571781681351468712277564863816829186047198012688993616953950722595482376275274985400399221987702501940396756540507443423973190671805195990120463073414245856554810287312599571396686817816569508990771141685192120426040403292008335668906240452203195458756720827519185261630629602871330108960022240550597552892750089631974588409553198317887543029103218023953889249275091155158204409599950874111531620494977295018878545765756770119537873643746253897159388816004069038762797610883615681145039168018531460318919763406950300446130462223718908775438001846435227398397948300786277406403081383288989609873396179188168585981917551015934859963354984231515894582736462025431214574396287683421813075693642387419987909391082701396095342612486316881302741041355509930082351124035230239276046678338615057428827857794359778419615929406609420436357265995724205863188875840649938577587076348609012555956373496419398273515814105003753390935127718312238414695376978465624897917927121663208075828367474189757336923481877896667272209434021331897724483888644538932167547617813312855765790431438869426679103709259854700881991790692449365299695544755131315475854324722646387381202992394373886025930664207423865074174228011541394504155138712469508842629801141039411349722071850755583523056516749653783096961535243688722033801172212557726042858101606529009599620853729938790374069617931944600606617231052354115867364244083980471447022333164020515544077820397871705551985281695808879079381222690240843903176583459842788686896888494451505876585852468657305863588014092501343583402298501258321230337669977552757347336744859009708437500260488956808673089356183617030589738525380213401004113419471418098837606052711010565178497891085983965099681643782000250218869831925290763401149622924898757681630821350629830621187023136338066753578289955714935429076994776392497515600960219218957711966540628503788359934826133720779099209654212094075633909032006895770774740945835247243921777946307455290834984363600250329966450592924647795515673918071680015062774244797043647568238168705933141776946743062013975953591080048095766288373832187083800225000040813623181113667381741854881326751012612953093260828400889035765083142763583450773323774379734311170153712100373326673244512219979333608830063278164644675704724717559420737332921711897328195325430540194784870401991987546930619161382003361656510980836361480345478843897301688601619978607009618373263690231292129264328838837132740633317753084608616898924023521583529886065155313309366302848439506291769532844670142415803909249615685460034488728867346452771173737899973608569566955500974293096234640410356668855329222833148559352293334113369403937171865708862781703750433999728014665180333388589984983127259023651533271136952111995842499732788896500842524549305558854649421676627035812747972997571618874972166790129666780861377454966133199979333692845343588476618994038600721813236184527528150256975268579997807992986578211235498185169298319683071011853126006636830759673338487081491867868940118156125942350844389678744304143692295145322910441515254991525064278361778139876604962600908031807304348230880455768603845266691286267085521903672928937475257742285471143235265214234833016378591643115189933037343481684082153653126972849089532794167284625813534588808685657995650392816275279316299285859090909901213101604300069657473633293843578415371149390175486125865208963645736475802256029620052666793055473067850541150303842421406399309606883007126246789754264462614919585987720896401173644836475224128652652219565308402719105021910833988784623187650700939937726971673046431160036773845696217284777369608553704362905601414423071547445296053108333740480950705159788788771126468496947961536987994889816722965857336390820797213011015096988766879277339434941047159864656618083883980266715929741623033511024888200513868597485750553974840925441865868560756402584179182516308948132772012390938307884083709707562142761416566416625601149168359444049897093676111731896335190303750275247473361112945676646970803467669829791743077968613541657137108971641688097830189834207404124681630799966035431356305079904240703010682325482504711776262274952037348033276312668102598528499667134495108664569408115705650576972177364694257770799175205779840073567898795033849204649868776632282930217555904246555661450483155443406554233749558922631548561858560941877211154154964366217136596348498970616008549575631782904357451518362829927704874146263310015271662603505756722727544633995157147115610003276282055377467212851377198081357030798657373497147357653273407248571664074209420221307914803773608092725354150413380468118756936499199811941002689412730034309844075068837299799409682309282861297762507351973945712465928453175882490987071215592250099447943793627161198731017571817675387666516229855846021269313288504572273795949817989442325013516449245544684121262604625518249031981067160859328629156762086572725209446919477064712024078908325975191575967875186360629271004083615345223032871294985046101545633827105752256393350309736364954281224608215627413006585694059625451225984564496877951067520082183682447563127486263104094222590719252493211833105070136952015140116302494953499269659366034702040568633763377674053522739493434652662130736137244021750986284676041857569140527377295908875459831427746016957227471284131591417179015517671916474795965774680768825848395278810081099155039012881116365202923704380532565955966842391334858912745886541708713003797573736928013462247086330946825629765769657690607300757229386697765150820823933796779784180785374713805450041186874266932224892545405487069969216812372627243893083612736166472787124441376681828905890521382672563625189124381524279434751935553187005035901113432218043793940442034758584486604746523253620424589750536573122475953609668622440612958644842228999293688439861352107808087679455172498370075157230223119794267475334415758804853230152803462507071751817540490324731594063778458881396316441059887069821206008729489152480269678107160497068534135329964993796866660527624679459945316887987194105647429428587382700112888416731775223660707128961882585264608764596225629107514348697920507451839391643924091603253614786351871031901384966258942296629624317679261239676233722713879174767519022579342893535489619901757819427817933593161744595360665638332847918392927659955066495641924641441093907302519384576926654307356251850184875331866110170943318627558698235413075997723787451461876379861991523921319469302737645796131131902538970790061114326787943118411465433173122941399914171444069211255769235155386410860736931599720005933289721089672594870918820784498976268490001636997503708595166526264717906435880491631963574761396746980084683339351849619422971681256835435096326011848789480232032492998090724425651232754775131804537735483747148393467844960670663959742050559401405116978505143354351297571864505637850605670594828257352703204372921169282393677893880038489311179880361269267975794325820437048309783433076724567126394849681198367222750283468625309169479256013739355858190501186263793894102085801231150741100856381949971113216269700627741316417464326504654111974238383994615519978581513509145089890491602188152983532939107247663596488857093183995115015246426189985287506422006388028981905723747804925005396767479408894855251022203967810710565254719717629379964488192929081394527868110446577482435519439270750408387096604813314892331516777642423979397525725333381939527717017164936429467820599828859551076468306636450267307973300922124472278208289671031033436209170447793647906845854796002505789440932648047289887511639497799029421754840107880555939207095629443316909000537632663845173865973553908681399848999068860340073833326860832636730188972413482306523753846177202535377407930801061076110586075844156469892409324733017532341832575663499892399052517016767139851876803691791999632561102921719396739474049764749194970869989666433612162354356649131158805002583692888493278034648565214378341232978854151569124473069754197927080182190606224687794896482595684623819177663672704358438514383120475500099073849819232104517612816108082534660658707228886863057945546339979626612693371105637207047878301532343313721688689585307394131820925496857472082526374324951498085042624871011207681259226553229833431433870440641859980968616888256284601569219695540703766744240807212415449110535233627154321006911075188830206090038301832340876173910340465572492450679569677202013015271255154843532031976103471121682463134153185657194557259656281095976916781662492760201745173016210171899080518790938074486615586976854865872634049176316855646895186224524704448452494462442547739254307863306235368554149243177070148615302747175121962209233799786020804874696407210659122918909947864384659594379040059755313885964857275722720566416938427047335498442642226264638782352890201340490629761599022549027778123680771890806673284015186359100679251184185241529290862764073570691275197566315664305284947017637218114598604716331761684059509022549514939834826213632332612770140600746959879293826382062969078708081619864963059370145876479459371195955151917159825983722953228733923206659457347582468256328381216542416160115829329207476150007135358018337732406522077220741014001415853637643528123923532260692994178353616834742429945501119004317612062990951152662205911116341700214553410575344823491043504578875830473592064008848261791512318970295049266757215779515377620747907317871305028416770948343717593250658517838540960937042936927319009580929192523972706385220709376283832256831539608354504523509117804427489392569964055919890683912294044082979339704157743879243810221539233954058355041136217686560128829922435760952981212209263729851756570813992122093694690694715052328077459229864228802826691663732038393091735460239003176018105496752302588882031353514553890163755138161669782250564807700621959942869416952786829887478753140212139998473883119786393577874591772486860312671628268083600027669552432991228440207446373531463385311809602295643152796469593931153310461126252911880488436452716624901692931313843640555528055220215938629825067679738446746997160462117301788465036921382010072482321852304396886407266624343463175549936680725326876465707431296054649657420147888587246423430684918049908687891262743226830983449564193022689464187915082860849298593546532013424279174874714925827478475925183917605261506165976617674102070800222106231073571455306554016445689334764347519281791798470631383914982038685414204365746374385926388279117330639041778218904168557232721953604043659584725034467565938077563496127307805179119531944892597650712879431631194138505992994323917823527258765690107451538624193759842327481821986397431559810766094479394385509857150183427508632159811107088894614481063158821943948622105813974976640633464542387856406138832786046277033452607057425996733921274136364848877618643820395683167724710909811550720988487009280479082886280724014562943571340699146780953798412303895325877144722435482447280212115649022645292269273333505508019364513909123534641768229486581271163414884464871389404383837963115598489640878724792941967896017048828204682167661834998248072593851853562748543710045361375358075475937360984404829982513746149857434320496948153908318865262555301372780855322652968254330610329116915712261880921349298791035451283992973173936168724209013741053794421961379256273372512851988002560065639065266863278940456902283648518061542594724961253689548843469558035037758290683977922534665895505296126402786481442640429141437663771124986133839163750355519479692496764183860762888540604234449177947266985151630853471023288898337446012779578241258449183459392834716926530762282560489169993590442687461014301090026056871037561995809163191668707351331265555170951651809993839524437888179706960083078503068038846262126599257807712607758808800343978346133099725900596031834762781505339333500886524280041528529854443080395333745013207173989349516763527663268951219615973031083195747610274987427625787481248856771095790059275024912592107834128753027900551374524760746339353860959092224433102444982052983235321721183797190916628906109390500402623348585681650527343821854679856425946898029924257891484989803170295732026503142823893677165131142822540680034288951042652723736343632704397471385992955719142741004177216651478786480623578609519875716526435067359976853181702653627189721606481295654325578084160919119958610659837983990682892181563376630041449637951877218149775446065674151225906116884169364580731984861745016435349170400376736770328233981724278764186375600319900152172612795942237779115115387253474801989295807666279509070564251967696745213108908654791447318221842106945548177757044294686535160512320364282028853971684293178285051004175990737274574029698422171108411971017079511192264384307281702497527365115503090566986020287161561791014790215862855974599392879420817893450887298117557924732967694268358519930416499672902231861563778892964944911573486281447772312720269262118614983893781747062635469417322242281601531975714688553348540672121139133362191963858555944566943448749283773046074791878827113928349315163552102115461678292901198848162559582976161519305447285051033337415114766270687811981092458660030776611723726575499690892278010868732435878896409523666447518076079508787487845663027117509282913510667204086555391687380652799477987270440368568031019057952513247281077426827873708753885265274289672489125295960568398308871152650106846755133186400745915485529818991417256847293103329715517124461922193758006829174965569498041661180060661646418302143481984951543341022857860040755737222223826835168724154187261227935339159494984474513253119393888676383729951404823014084601714324123409826669960282194266877460203500444085612347384489914867053783110630337420632375384018160441495066857006860291812455572861669455723104286127411579676855367781282069189672565176417533988355892620004724989783101758684806416106877031905385741668962109957899311981363554846235561644895910790621575065522409406116580837812249285239344419707220239726421485844850893833816948753200110278605597490416883598082127220994889843787903642123264009123722136937501324324939748046175717573185561493369696475715145010410182211462819304323199487791240635243329783887021469755885703587553372304357942154147625948156778134289450079569409217527505391004979196022651496789365350417858164887476636288923164506215792124477053877485929683659340015264347884565719199332455934474761076692380139369118787171697038163803255573454807384731009628047665380576419628186164690314989589073451686255412070395565076818033800321425322130969146277135177502063249993279869228596784262989222327312739923151297440072869082404565837010629559459827454376872837458732620549605225854538691970472427955258701056665499276169791230380289242527363430837855338799122823178719144500953739114244894206624650520462133264029230077291309061331496001964854858526888504090524545823858966860742077681633954095970906151333518921728303742664261210795353920844976570758800700009559643497772958343429603999987126600212409786889627742993416133397607640362804238074079509091130486128310858023098994019776603252074629322665285442315231001977222658146421952712113684986105160804965079031983230679008630140641956319437313687140170325078532782512229846848047680535051533099864144662568804210072918746744256304054622179872808787988020705248126287075325218586571336844417383971416909759950295615211273951621400280905167545359911354060098356566940306072463573745761348680494253754167081066376013421075866907782551957701185049149003255238663736728204218121293525794245225930456367062961015889676369559976923517527754074063922755256893357989991637660062876813242807020019728631639383924433321763185274706788353076620560605539272186088879269801941553804432711303298399480093321999193500953970120540039922117809068015163195389729693029426651105154647184540835766013532320692289475260075795387140018858011500687134563140672772635818204108662034486505928356907221571891696817838753508998068188407745418158483287497494526177425323272656716880224358488667383090009095414176427461744140188159983326065692281224853605340612136782189503820883343696456682051211456982174261869108491611143500965949566925024531728704596022798192658835585777657850862906410871932315167405088483293371575513622993033943427222548430156049886855791326901606872143815448408977297208602502628701747276974283685649028705897972966701240278445898679710664095590357943526213458731841714638552958004262630991469108253447820609322621516227356451330937306062659179975281426567504161762843877771060003598604476148241021467006519037090973838924180978947798461757188017987790284840595432602930190803132976336394556332258558770351367923434782799263460182262438370102967548913435809360623380902755114498389478002427010165183332957961091843734524486807631302188286788843341271074049726514005617854916224579379741839098791108130123850566489421629280175527794355887808000386601631852093081783082274078138572116470482132066006921750489241752776322641184837413419129597916244498637897439894016470738203095489630576708782990809401246189862394193080258971036787409195732090329992909314232739957535697486049779146232868572559810702106869581617992390082726158482849283957362159297333847526015440800373743988763791120663127552602092181720397891422937879315489160642267221512029110069862081935008363686334565576071736599725219738489354261513607795970706514904731982703838692779734358733380432587338628275322504303466841489618448932121985294953211274128520690952131318086924570579281027302615871732515191519471733322350739193894503969786652754905855576129264689991099049843426164548229398062136925784305825712134946988100956747091236149854217578024724627853880746576420884272849742808541946620112434603058955936156263633871923949560350557759331102115780258988105423394810420976173620332215330746048986906569049968263991201122582419527512826930139512055387016777719827080791185197916197707609703114942545924758511271024341987507926156400969050821382267456354989971785342193038446118944406929121494425613793617275975990032600676914795063425471654159792500736762870796854315265259790347625207073168634843918593836663606040637241663490554890170418743591571307184427914253679593195656331372454807172215308405775780446422338287344842208586263304966647279305733273065924363013158109900042232647729042237048674390922852921826213632000100184063717479760803609387198049949150747306862108255562842227778036758190735480274224716924723592375923146544819585527602375980384666369570929250941793871867286191114353127649697923373002877570185544188682535850699517644792776807683681428714172373583022830558557116393991920068864708077184062678483975885046049219895478016442622654673710993630273145011669046843793757263898085131003495724944050302455168768584797126682003810537665528479347783666581357206216433346853797800852904302040576808988727016807068496860145118610901835855313273010050047682399552936429749124650294987550593110868145788324134909376809665624527918269467237278464004372598804121988816235541287990043633095102879634331407334004753000179701254601483650493008494901200969865165240028819632296926630584158784085479024428264032337281544885248335283818743466204081089610341604115401265677552729048583277509799530992879174990120449267690732709694378652036193733452896920831021696598061392499563015838939492372724701023034043089877400363483390828284790160818481379696288247127175166094071649916920880206373833905913548025528539005356957388598543379747435356287278076085312006658441737541521686044599886117586432989965034184430301870334938203136191107893466791446327152738154649707736426281792653268174678306140819431470398738656598431555876530410721889565429664806683085327935403287780657764375056472374828496301651859633457313973324239035162619758179556237486947156334795625940342228337756781257397894335701955353516514412719356618008778697611776883752571349922591714286585806510590053832670154712530284054597915097796690398941857432529010869862669825107051887615026997013411359730637519674585325333164843552568926501955625879631454890139292498632887047290888182571584825305574161858235070984409521145667240641148166986651468335205449792177903276406716728685044542163729176578894602990230713681129075662646521999092814920799208073123018037074055332323586355027216501965915192178027297733868162114608467643853557706862055067820067581748214223248930264205671075574886776207155035022391981069901930543195609986691010982272336347593629362358408006478081653760219002250273545496391300697001500237821639060862443497336117104845837293971155415757708611258782531834257192254000913823602246117468954324260760567528301577982693529622041918724142504644324165979865876726133344349858210248508133192996951625299515816548527096428413701289945691444149620440080166604896405675878990807328001760411492960587181016654104545249035986388748207405535531646497966307655039226273134567715464846005265543748330599658980119972336927881919023331298719350238334571255753125254096026787808518907193268630083327534061136741801995207009404626588978389350217579202860076336610945542127347806464174263816816308333443310425147734456225552561446393602004786392720968655004787850257868984713151164485311059677868694258988746808049424961736574615595504399449463812764742947916676921754995889229694934221327873055870909179598820981519144063820379559186086253875772611017007654239212442831923145710552328869601176314392736999773243862074206430733275397945451735790301428987555319913502142299198285622751982850651111612873822186165312252887939522330514880541494564632221878945439889393903813077000879598257921431080237456460174681157923587482052347344746861025258522656957256657780622130006021445817704289917694841843962469671156004762235933947608806329214480355382287100845333807763241202085227436196571541719352952573571910517740631820964055791384608688243391114640860779129018379805598486766848355461333271338635321369647101942374603372998234661897992329434719314169299434307435592314964541023205758507347688097938428559311384841974468063284882907597042819630573035759222495127602968783967338257153232921513749618773864044555081154859575731029010818449099301832644054964342671234687623007357646662071114901051836452117875394383098324326769305179760518794367605989301957852424527974527956814189601198906433217830588350879677232372958920263733197734509417496872142675234075823863877680294610564716646499151525487666105031123227509950601572926422941478551368388726151131433440638984622372544914212404862218360120303461504614615878792083518221174306811017123332628467771235711258294608738192781645847819414795548101554979852834274592681000956200212144806439141022904447954780580366456707812116407969185231945651250982396494276260714812575671812083316160209901135835207370731352897793418103199536030683926905610220975853859992525483414949777859271296041104684860150036340641624020634842984258540802194711321568318389669736986278262180139283764316304819855134505690960312583373597267111605659357565603168137552035504707303422520638889996013302955199855948385264662195521866934852765143490687798230110919340391909137616591449065120916077897576992444491901189792595824234538356538089854344147093297542430147002391258826497362659739117123635861688232622565884469970176858470147203478221493929563244831680444642237218667433966810281485462643319766980391131072863542324275486834145150864533076769006913066264857553968918425253193610254335938846786247908667468440084853716109397528037782902709409776067397812655103903260332241041253686060368644950178273037783527497319204995991733816446508608048491611143685693021421338027128265096069931490764106505182863315013554158576871872813116652205495867162599330743182305200709352203731892897596912032813899700032753140838302049970079404346174577134102877183086493902567048056609183301182039585279379828490422067776767653134539071583707352087697284955776487168394994040431010851788500870340272957018308396853775051914650333884356607259124010661840359401404608813695234903537774362917446078774254377002454452663662474586460521521932639847650619948819269257866850752237267037820921408868401329362894011897090473173359085839824463349290665516823206847745085122791653011916404126600902042702503351745796539824994799281975488578920208057182198276970716844784544403680671294954906109715985855018680832060135111428644063503018103495665038542806291950124129083446264494050456936516660955625647759268485737475806060004583547601174164475903988600397461771614590514092069698890596238437986869489478901054433288592038261039004895755469406519439106413635422557915617894533706049905433722474532449348781024377392557504531001760560948489030682617047194652379940122222508073220913247844152502849880980593720656550409857317340683013158971806996356035872133943911595606296207304016875051802825904781612068876466760337382804153294607723464874635122163732130270989503489990930410051501629658999550047014413632739095726193974809981426105640132449792693761414886575398937194268162134360997817429716521648035723304401596066218092645191830723120786494525597809327789032966503697349874176032645169043711469323144778766626862764507653586681999025414612033462105457705325525873610717044999424650844481189709435942872816858183209717062984115401278802978406374367171376207873833193995413068702323632219636085915786281366686858296797698931363645863165959683348454566631716429837708511500037723860959032331903395622820331922124674525244710939030807333622831407309360390294079927419931607926639015854720274262995073064166333411751295271889504218114408893546754603721212530028833772298281544622894544281016684959989553625263667917390680273625474096540385765629672473875260383346390216756595355051153587255251451731438053477697502507033112808173763211932547433407603638106520686321748197538617158370585453466785673411351482377767775345876966751328947100291738086607216929468553114582705135983868816264438060018141926263542047190310455893895343070197791301338020742937112115546401304606205365865553318282664657807656172258474619563574176583106862559480128677529018243617397120974445092733092391575207758575816362376714743808213779174746605001470055331028783884759301238634059186376034046965686720970151291902603551485629769337885099340804531433262416620341401382042815279493864507548488764632729412866717171780717524322485562807776431868383059667541917999686807961247358786418986068303864195229631438024890007333970479858206253288928111315490262101177103076604220879348716432281016376294068614277070840123666967227030120044226516584262830383378612358147456068674904194565775722043459353498070316522105841552123207781142547882187818493372939439678964733489337870529236918819988047722344214986742621289259026212809424267470408493247962172399967595231182537546518217005939903969456585466378323447951852564948841197616875988714706148803695941809514812985840825514379252655285628426622873729882585626811639361022177278230929449619105493557624580935613688619763663828493091128294519162457024826451644279218564873600168684837952572568289665713366731855051373290841855366701777152394957424060508383782519366468219311098552026392389473535548104878407176785651062986490521878131938552104545926339863178734302624679160738049510570138878323709263378116430936872571488699360662289617087021791008907509443315890984698226353558348261495327711937451420175952537347122253291499161666331375025561824789531158568855263929960464755050409058157440869591918826316002623320393467199783705590617652599206715071179816543197652547613614235397411297290394679109262788187483902488261365795250334889363482480435954163034689226040140006645122362473100581374516809069978073171300207367592322580318929860613453792589069640797564987487459686346878477433456889960216061584021250064411445428871878526964384944103165345782890234344192586334650478202008074508156845156599152248269290053329292395349673411015842973457806472102219217088085216380185558932981042594876159907626853181422322424197679372125951713646105051644930672870514641759124454290891340013365144936847542316765970744717833386505452254589705433510969977516389599979474317665143270856830419130249869521280853966349318982064979088843049265006856486034695917576608842775967987107657172666879745747213606278508119045064175427678313223714335713134067245999563618846298422056487734146228460252147264333554094872804474971901412864812137837038173122458787309559988554893462323068166369225050331298188189287750200064496254021329745570883542111980186516657101309535010729600306094438598821982125057818970331409108170757541334619457256720134565900049463323351042555086745235589414472855053221254766255160857904670856100665609913528309161423402799406986300001785338284041691931821644172012406352726379903001310784663200995146876248210678663948275001850253397775771713551848473927439413693200638980061735485537528392511966342802061539111061104785008991246135541958882132155164714119791128809176746693639156395664257783600522042984011572516818004574953187032025153571366891329946871689861939987938405360090773098300599664281770575885509857969592857530945745014426048184836274287606123009842516522983696864456542552045355715666373929916842448730410077240639438399813152410161902501770333452086102974334088301772794752981273748562424185143969404193937043495612264667873656080997865036728708540733987242048963667146742418027404225081394675700555144375470573258614073627008134178488795679884706191625634529910639909930196735254985031458278179073790247758457903493642562146295532398621704586758605340135685670842492509945672134389089347433816142236840195630238941509293239398111978479747922933480055100793580763740738406443167456467120572184839069111845939343199433406220734077957692354706179838957063099043541776193859565565229416341961084037153206523590263447193651228791503948312839234276752442538174403216047797011438745976380975364049841867831727573478816113238925577293890389194254397433469853409989440824581362326057853455235751700783382843229429478916690404909302291285254849104518255656171225909709563563978062994941852014474652243418129559535950082769260615912963815625460248734690543598718926641772106440733061305650195962774865077175995727264615481235640291765715200342245960701927442076223516019643095373971798416643584575614280155611270449483734994926482655745860364852224569897893276071045882106666846047061723042223442426839725309779823636716155801497785790584506969207748421893603592463480133482467623749115359868197452148610278765253604112184493820371909859931775880435085876773243072858253945300143720954761682628222302974303123617955463958437340460588826065622978609619869535947348263386957731640002114099032165253375613849097947806685670258424180327754765230515185667196256916667913856892132275701214143599565358621235116802320531742609352228019441840824855398706706740576049669148264024846455130987077321746214600732865998340066581632524767387893240006051506601266332044065221195078414784171430504985697096649640918447094800527913726026923382870119865651684786542770006245313614395441442211398380117059797985190131484543762464681123176527368953162013125992041093852148199881489097899564336994778137260148126779565049993350891597806401019123637334412965975313264882860350258544344447417498949970108655242012415568637226841001885226118369548937457605720293595549384149802916814904497884456650037995367204647504628718938419123559783594367011936052451005814307355565929225354547569809868819882446275852733107004398819875534699909777237605333849894483424236874863093757386850828622303671921304623566547797703053142197794264628256422488872715066438593952992433570206980465395810225066890315741466069914376019503341946573170130070862864728784929149254636249094160217221973305125650765540555253246190213217751926138209803100857843225387630708700054220400358365924992270742485859800079497764978216017749668288018957971921788273186406223397988823920162119401768071765051477478268809128267612741917357519856671858949227012383728065032289048795286901921519072690468418600864820678089302628685680396639902161085715144695874663069453865385266814197521565162312157400712455712249715121278485197990785439597784158250655496494291470894517869535495736963816927729839478718473719898657175408571297670169659177501094675912384431523996141062378756400203711212817736820904360179142696644265852485857164645039393064290315672961957881714826371457164510240433005866855805188209935269938937938030764557772921811254629039314977555715988807400014907345626384180417669616164559324114655621446022308788340534822814890333329649080719437853885157624281359028899028368274838344034544326613125109375073188021815199588325648007755038893025982318801798389239921623896891222634466399284997272258015981926495464762919062730171521079157281405499413546400527316244613324902164062058763995078829088498028907779769081368401513300020295814894050039538707849529229421204870650850511568175188646937275840409177630364690209764757090673646100185183820986086052435271607411487261712448597325237937554052332284738257416063066469268119233545907315994961523040680336623076563601802724762438329114336855847593409529244549537454001214047479670490124558599287079405236263571764156937076570173569875645101798764078865620885546252736995480630354256957251745540501901227270108502825830365457749196385096126754176991582404084416192943509739105018592349345087401340376439936873936565280580383725303148275386614525141130728652760929814869783234631939084960700856891462072043385592600381170267915554647563245096253649188638948069485998621100698990957610731157771003092499955113475554866364758926899529266327530919539329346931654450527529854781588141286913492758682604946122434467620369097818503372421451090405967439781151402968533269871475459599473349527514616327944811208472416881392058760422269923600700278837336319823599646574876076410656845501270959612296146874309563678138293630249993751535806900302905550775654307462868311777081821264105288565196582793423589229044782019030660470681390468371963750412420783923917578318741433351909800594989825052958180149183809086331737615469839160023040432869536346393626759395581701293334307875817746110955237154749979155633661238945504797022748629107537952389109575274974152592516761340408323552669449692984975796969646047022431652813353242862274801462879801140369675786092731920714331797845925143511732468083028390431368503814122451922949969429055095005221221208452852082757451911506867456007980367252502317364568012967163629937165618540346251334177276860288880094190054287008519828792475244256534439138821762173472187819467928911826973343633030641786503754863585853415525886331585296822659567249085937216923507505773565443667379709804666542384360185441972047405321192587652623078973890454045625831288202346071032111998661451495366190781761805909907979620531045380086143729041606905065937815822674388891482271714624155630551098257847342739732933864962957776983607422882975502624039666132197293704338352958931866085389034962588930240209336833021262756625539588263152349291690636404563632817334062680793156152817026119821453437470491525947960155401044593795823608089753743001901221895191252514156894445683734040187832241224726500242468563289320284496143639589483349504645769780234434099982036021996723198088220670235179130780600039510728615354139508046501601243650779331447150959136497312120041403643083065533856961281607692256241819670534849938630231601208437148807384443002870076981089821482135123766058931651250130742342047535326834852751473009028283765838885688539157829895883722717694733949178513248072052066108457421470985270288152683822433809183179794461611913564811920776053239016100835598979859235763026908124999794746047870427195852529579538749380051944305286107285487002864070215699846005041304288865201728593852837189657740573067012379367572141558732381974165173539778766118420258686915368939634860263462532241810019500904298522634985491696641851099858311612398498604242017297592986905624926481812993691773175486225365855123938895567768631177147770993446349763959110282561888848280046147790157306582695486950113562335439787852949465018968313266579501792939107907039316188810451940624554526240302838730460483678333479910289478907535968817437807485642324599848956395342957979938254412460815065572922512494169121274605474961156582070064575750636220726637985784749008620031206188591990487581090485349419425047618582637065634994993119407054055030277520575875790374933845301507086634985644042257862322356192560093952583740491977056940983001839765408005008455022353368073771757244595330072862838621905064741178499599309447641210873505657389790018612739013105522387186314441539063503969388058869265811096879979165597234666085473595844589295946644382344701150902464459837730975862481917830145340354529240838725747420271922513899765896497630957397711317236340951328726011021941056904047688319280545561084736748552145014390506421692064604086178325171136927501678606727567773941994035391068845583843434701126754379569042782863662570183485928668463884129307461850939195693420089201438105762145304252567016583562687897902114550755993182757021525734128127634671791002299133703268393787524669208189487866304332897446940590722422447480782948813601160112009880197066014541982692587652464718737503289033513056080899108537747297139099331069117443501177070223078777147648474286509086614199363924961179660525198925792774631157964782195162372077005159518786969438096692179096401408078835988443558266118305609383550147718745160222409184564625068373084859674733541476387967186261402448989354392311071946957805992657381087450073437540016295994717034112097164884416945213002055881220001214088450850931711342463668213379517613218513222915077700661646320893528894594725338333947820038517281182802905288290934414098868253343348551543672326913545074281442017824993379483174174809219665816294657041446478936752706677338029731638597309838621671705967386674992680588592318631899459540004660420104050788502673527198673789581240484049399151414122472460078148790091785458915733637367517407233461848794318007002323597187434965064523673214071951020791834941238259107882601598162496344673598431703524536314082119298232398305479699103741243878843369579173489274366034873122799365456592597948804443205154246751139129045822190529843849717295611083982285089099240027126032976502245154351855715844468888527214047240786202995687548746824114697986911703137730440915221989319964126406842138408259253040882104173585511139811223508458653961959538784616036058670252483709725132159346417994020162534195623645093650764957116652316399924213103012484739123763655015229354063944505550476304177685099942646076033818686416338896546645530215683930623271780863610406580897461839659869131624702593262587163564049010893723759557807548317192849718026111980463941184218068996912681179430044505631938104142115754147096484296895232876214505725845148991042064969465327791026642147710092446377945887566202797781188483918513934958280378081821152283053065909708845864880467200725417416231420050651278758594172249455775156217761494001027839471641768643460561600781603757894116452536488085460737218366507341406910693642344635413756151480436175857567058760610438021288808112257597650545308242127211166431703153861395757952472253698278399978527304408064556220337089675940298132467292099352603060582676994604260881020606979609940168260554565369340136196005727696837941953603165331751821872717172710306377435864545123553134102496837072649742876874273217574744632238611244868611871478178959251686262584518909675567492475359853408576062440753422778637124443682805900596804319318521349757839019660199332344248094990387845081007564189486957318098234679126720406803595969826422634406368071684871037391505339797386894750242332703603486426043046439602446554190512580210817868733732009684048374482207466921153836092387765263133753387445124811930772294068030515710809722345311784490516907317023886351315520850473767526930411862282209017440272536817823439753582592726952044374647332639519943479716025267476815590063802662008339352438151176350247759773730984410198772823724981884582189771593481420098591085979165506119885508444914501128495554882951928271038074753900952974941298643196566650878885555053953333565184827510133396897277897678006139246953447389770779114954025727340749877206763447159871325167814050794249826436608140273015066677450392425463107683319084692509673333159469574760338703834440081206459307660140585877467943945185161121357871000030926332848398549761006557196901243468902209700566918290902721984709030916007029101806229727576900963917935988151140815477973950815148176578556432180380011347855908401654928361813170562672187487266974506886813951064374369780173724762403061305166065945775026364567286435275907552679509737521574936319073909298562717599131997679887334953822585654133010878304459614689733132459746576008809381137388951045680196734013340811542131749573204832121649765456602285418302710841082278223262518046841786119224293710956074355913718634450137366964419371941029517889075612579624272971941504489122747815392288648193059184915557371178499941360249719579729531223134889004408695924155282549505591436802543171920637316527624396035339037694309165126737610338279944177776961678389938537886543838000835588499280687177920071844076329117566315242225470326985582171025578064136660913468967550473003156550304749564911968071033786511787069740918473393660277275655468048176962675850649688969170873515349378611161052863435375675874946765275371065784836087734590647098562805207572317794948052024278014111840728204342821346738069042960106513274254315284753238098005012090625543881386077207561831857530516492807263807022109713538572638332801298735309342765050031919390351825639965300249404789491559704597406389459088575428395140735495446345332901484034342370574256429724113941893728783542345190228512879140933544130736297647912335961661786215359482950411386325558210017265679042577629614865736484104077047592613454501416651654115392464641572547627043404934370667911766918348292282849427503772091542092753925744745428553022160823136949344954905126340895895165431980716547260721270807131914481836919330515638200606044298095622895426672128715932618870686810394624469120529666855782631798920638462931180862589672632022379679881106497198094831107747756791962791698766177122633831236173412959388751828746037707189533458746271995091004002457689690556518696801640203613500756266996256774216648979649287214266596243804209130667130383649522651724277502197572103972437338084525207923810055870472338006364828325430833263469687560626874790000166461525156162337508538101676888990952674660365164410977443369581579185152928112966685182851178708966333975312307165291135743447670192076056038735710009892711975598065162323184568082269420390666054789977771126984268719978626458660557128849587118599693849390575736568290078373285384779683221484510924815010906356804455468256638285065971756799150344893523785047357555959624409962041134107462208631244346442151948929012825821094209172833006595088595948879621356323380953885167116694941577889621011208048933647815361940986190125294202123551629529643888744422643258272315359711981998098953443810796238311916502289024669296384408922226734542517747096469188661219069302501213457338850830567090906521766963555384961062639332227700756086863503567940759061202757782256552523260779956128315530666836458219406610361315348868101547154538475251074510973234115196335192068182786659337841344850296408815459127299319611309133990203845613248354671405098140790450816349324220534487689723830587344827658825198661030937109351133604508718625430209174718168567852053336765659184932641053801735337593562982767557624563205386219301638355346579879304333590313707086142657651602448284441292903648299306749575713225449060676285469793646648898606915938840418740966984502835984673925784130676820245300587633957429920721058732250313817602867398259842120045516119299207892204487639821519776211186717718036022842571612291180976092999627576524629026113391381093291856807808286888347529217219587620304248383297997036938339595540517230142330061909007604319852146232876600121198397839456531186741009347825595052468894568233957496174582202266967861293352590635154175463329465957229928754817520199574873563623029657862121402121096512378012440580111120213092268982656315236303125117245144458478194150933909364451675873514922270972338056794535836444284493702593310762091465037458365833111899727544151511595663860622457261601815097262801451413250585776175996892329976160845998986469940788799867179062665226461864677561196422421260252571583893643216673876735852350862923345835841145257919359477443535502038831127989928783752659679297252970297328291475493544880173368054920420540417415217361300367424792564139244460652050841900480031134456782977739802427036881313829480053016865108970981955029822759116006348761216048579113481274492904800189835910154738014811583529188374834086145350929806678432647208067218416161220232603304854594976204857106587316222670458373940316486070476295855614579869478022840191851293461725167764263896798391314798012970108887561496285339229066327799641374835497976742302013625460036072522645273288403065779375855262501366167223580980236767268868432438196855787485654037563674736063035153772157226660827454250621294223520622462745544721201464682539046590062437838620315997659359271874186304688549569543760657121461618511513877309626102419637238584708632829044753104366535186436669160838483190822957317006039429994315769978280532813839599047025791985381871046390917443036107072496693162060004073667307004778378952034628001009807910866379942616602131761775097931324036741319873969976646945414922100108586915148331790372358535758866895906927765602810349083072343682125022380757404957571429840540416503630994410489343928368190836919587281863580348820377892810363051700941692535418188190674273743292345050244763808712872399630748152719022422403071806767378569796306138848023472309246127342527909826678665443652928124212179544058442822716635262495782684337418238456382990961624005574611635297224610752367587416715978145234368299927414374222602409343124195131439127191269409146684442225261525961704090631477387902822215642376311275534526406978026987198047612488492816335967427042445880977393249918080296908144343794746822220542671057920970103677018239016228329676408918804203352683484344131312253308975781993086726303712413014435850822491513173672093967232806262813410281172113428370807972877031136735756113467692832589776481307379279398602351556135280769545931765566451422765304482812000052639378891853502358910435103833750091268298131699163930238645684392782610197307280129318415249983696174915459052890043128598097862110282180628336527151415959762198394807419105799191438100026438290807571099416180040803520077042982188180528909763538006312990301333845475536563264574635374487327418115799940026061061323714030872000011794561354018661968984898724484629711094954953353548821708558861744368680923281501595648819019983849500152688632931687272061342320885557609009372881216100810727252772900582670431078825429238970690554171338970702773839735237096874502062018983838235368731696641643253290994610620439218921784622012102789861415462328797796646306948357690539990523695860731999736381105808339355326638315278258636186165125622601126484083340072484125503338786739484236797851323081081053508445826760488680586672799069254463942227063878063483857350231705852682818704819063452184301938609887864454314153452335287362055466461740673015185573421975046839780728757462173888345472019597921256789095861515343377889854541689799026039038789395080742775709070198232686675116850297147521407378750274207835096752827653138808450183782449916938439074827763702982332532495148917847026015056924381016597300418004478678944699371601741111441422983934050137039862938500119886769063452555858572982311021474589612113571998832584478741722782019553385785333762555216531011602909625478493519485859104998755609039430696560030913165507306035661931218285951422459554140626156349334740694969276566399529735494287170348525326939019857305623835346513719006772902048411213103070514268707682379326541754460664580120883585892976667007599630276151583071423019732704812374560966722070501104497112020557412716355530307201945467967301743529851958160636216867285450885390591226355800813079145199904787334711424346483697922994509826191456207675481225905643480597174389345266276391782998015802533702938182953594537610880688289507698213390136691823413240479449075161772712104752375228330241165234445428047922197789538675534571764287544365314397357330318704335678175203303144311742667104127383964950541426996023042284600084060739917312658630441112432398031719388164361055464458380755527464098479452540936167399108167728338093563082605288741967314948005906466092921574365054213222717529514342409363789579252567090403021496152028520551213609922887217559344358950665798037524019396594101871012885382445997299071689295432788609539113143228997658666354584230689676416075157229746149351095862119360976113382190766083788713634345018723944471573803564477832314848087701048783955230679261706140318411094308559424218435372720396332431140699562114726160106404853553878079113536947601535742641083367466375888024717039365754448442029796351351850990499606322201815601237483672261167907282100165143788294312180046183447833547532904536095422002593790216462691017399709438039923236560213250880784809977206116993393695147559364014313987938955842375396278622594059684844834363867275431732447195608539246933921547654842329235268144760564612484007228225998443124513463080900371318296588981636842164671437137119670122552379790517530467391959793330158294470193884872262760286582812127583271673751915524499834454864117450368699461583324838248217352745614599622387551359651265919282413282405553735566629108180331181166861237618897638291921960716620233865986696630338123233665395667345895621826934080104388459058485263751873355585082796420083533778872557478322836851368484804077533433127302173510246706337172747106487089749970008685498709042183107205444109759601743565043454299042435348717173386572719542002350526103834027668988945615386719547745949010981431156574544343049582809208706055820852561566558925270395112202807506431622607941629612140079131810201616609714147710572707876978635900466623949771119007131446169389300092014664131850829828356403818497268937926606565559834833805671679531695368451910535973307995535364802185109557386009308729258158686747991740856173779817889364971361190710898225936703537982303144773209122890977815060648823422096467409887383458684839931499901183538894584614980587936035134622628495093796826801641685633966783958155163466091812131057332891163903552747000742803772996840623159640168846455942193546158144832066771463540502620397385666076916322572611414188461557172639732131692293222966843342498997445155204136764025375974539180108550070213837906215175435948450943348406091085196213570634867868089343154823648322099689206931301837303942032135846486947095810741300208544188201592116882935434539188885804218114897745352369739268511753144848776152627684463589827086411007502309126683995309238732814466450309289156739928421667969278413968722663405765386301469155770011809087486338308455708272368142884401018790795645062197718821816242587193077279712147020840629264825868804726753637487667640843571182860885638894474949858108656478839989186614810438820049948273507829159927359325686153478424233955347690795447655337919244383244433550520558780287812002983686985015822941148091565467819564090434839735528560578646689424902265120275984438114896796818006959274708574464481276634284306334137180824001638851765354793081987707791853662382845488886743193785672608359625453433499947731853585608256903215059538514776057390680523876091231516355989805092168659574757251428747811449505938786609687700543714196346306334207974496096373296148533906812428740019326523173138366336011835692951839796060965869977053828030964913030593286861197769796651831284785135023071331731695074051015799524386460161793374626310004142740205054487682278142423674847815586665169099254514552000674202204085539034864248827528721986292854663328158758575607733947650247094403895090224123160797241254008271757287532222291452325000508127300142932998161948236776447113688629980523640922069053040607320769429927296183919405165200432378707104876875875471499379926791997882190793456846749566749374182076812563536882505276156836173118251333689049118411539624576567987652816851852108072428531323595198102591476087006325988030735221133291997882742906214752711825407196698151542617227938978707318226230651765358144797241254744460839740878500244114689568873076404759601355071143505659960221279252567853997474802979631871685912068702578506795462648215852761776730415010331860978963741354746220803307695850537638619222431091231187344912797486790706741853217292683740932830852263161168297608373541787081685063382634229665113468884510635989985754494807952500100333355860068459407677014639680414464107013360573385948586198263120427992540965067552279635201850128192385450715234663929326413558855234521349346013162067093062729076965297770108957462083032666331482739109155096879224794488579825828205732182565781915281324956753167709842654271824776115101866820959011230517674651421781908084447630816020836190880911983449528843763280831143502583695598820265657024198284108220889272240841974347401399758359031863456671608982911710831526950555434741331628586294540502912333037066481855007203338669733637981076974253894441076168732394648792268895586631943169267798755848558738286873269542479456397174703451253222001845684473225232601538871198802461419062333997496890617074331138960016343441107280187530114440168832777424975958379403947778835156646751270857162601877005659413497709415542888830093551303828187366838775463127482223300313052326766466842719507033147985622120800970446972655023779769613650473753949939483077456926542101845676267067421304216772166963844224715636893461676271091001529163264283413553817663949654695619550459202224292322827878113582315672925473610207328842050854570557767244590444881757264648649601031703849184093819220268354628477974496865298045360479228670162052747561529435521100809500845198578464407517193301374140773094258474998684892995436845155152919276052250284025709974378512062491192280459262607033249792953796657262152407159882784465534633158266662619267791081020332009328662273578378155901365219188080601385279176240781582755186536271191465827480233087759826386046161452214001683229574338774240833559549452950898685409724541759107027293264888234283358469348350435198206898399913825110154613334473253392693622531637836944884610929899846685212578365793275893909628593940212447612164988805504958698111803387129064256719117008292713203169570276509662814546560272430625960996734994418328864461390304296179253480160958273178109401345441830740423272383052783274087458840586826076123359704548125286593673907227632353558638947702718508957556762104744968158807627362814190702341827980190427538732299790582032542790952414526397343245682846652013221898014884010700769807318472471447494992460092351517812667987292836590941720054801749082800084099419356506044333555395448980731721400590880320993524598212321530107831756352891940298632288940023908327312183055751877094578344481274542371828581185984044041057221209992055464904385510191083069424775142993363572822377679065984098046515763113771680980853448189329463405128625625810915186631367804065535788977994417544290461707655909196172335281280643862318627953659399575427438515307653304013607366929364552434339399148571348200135033445709826232111606977345560274760883038723030506581437632830873682731594175393720007130056364215391353166291503713543967816276277491319976775308361243891797032539325467938313776989141617158352943919351790115081694627273305615047561269990774658062025023041358552310680223074248426915212816585595537419387271594835599322049044774666557581945790488725144808731807706923944747431931041360459050645306301748111415456506945324836010266296212454776142085740056096527464376899498407160524325136502787789111355381942298005542959321782839053208755089767321237087450283125914869083504485009320612886490251323491799920310590279225116837276899908422449783016935559122749308281256543444823498768853735307561703021964332875710073380594955178928661901323773931330609035710744981834871332505453099604132317719984672669190812980937351762851333178068879897572255526632795333025635438201770832728833850530036767215985502551060668024722609538044201689578811868610156207882202101947964047768081080871117250922563604879510487175338949381617111128110308773978496842790615049431357786972010393576800976144210295327415877434864494596076042834878047526993719294673638942818423014581904732174201354259939245230714654447940783743237014492268094581525589283434413942053083284435295363045563152480228735480131728224232476083122024147709617570149036867710527183136713308096385951092063204850957260583590517483978125121137920448243160016781071173468536308045746359318430969969838819623104240615872967595357439492864833087791207017287257505802578724952706361527727447137439128979232184953045628632110269863276023029578212893795395049897585629625566289974058061432287636859621799465469097822768829669520782057103959068727462190434209494297099111134118952669296794375996225870971881464172698031028800475987908445923091944592866406583261221782168877747071669226548434970131469880870056620487765927746124410871694613679499002490813886528907382874148318806437434757916286299722202006918494470560259499298938073197614778189551566941591995966424975437497953838348731351391645287242510253518506399199157307550589313162287513233617803806971766833091825756685708202789485916394351542513315028022030590299105605930186372051184458833788299027256535312686160514571532105895014145272803788712205949446199097713050484015954344015964940749905297260060717811551809863589369375754574190516526266181583666773193090618852782629136269084068504369781811828906167953410999527611569318116939359522513576108302761423263527964555075971048536566172201826800259439049344503331405730435304514377960841493449302697818499212401425249433230039959897941640671533886119761968172252856465032562283274218005271884623183763035185936960494186907815977121571939416319577709680185645549354452013667802662811395393410408069899866987635324158096952570378731193612498675032675735983625898431898895988390562869211859333625440993741617240195427765581316708804370432011452289931754774753144682372227313159147309257471043338386411409707982629083852788522856390871939204903011399465957312746051590798957833210745316742709948541140718733397452211887534268600599298650850487879469109077943472007778443028306611042388744884610082653828029840216068331709259357985680258801613993095106812279707275558499981296711316542630413647107250452753580575306607112013058254821725700765192924374440059325678110617355663621585610299923491165987951678608805316281287555520320865016181699023728957281297742126473661808116722329255473750702566798676570074847872701528657855284701698482685959555048409044607300196664849700652658856600870767936344692200026695553681040878101867703610078613154039874998682587881358315082948131959387604986629130215130314164771747542775796743576342418378006941571553380637431655712882371405928715207803946430925297529882523924262583321664649503516412800801588166885236812221523862586759160887893507659008955161592741571209911567199567969602207066440375195493335123161484280464353675617931132493063496148410707331355436815364246604222203384875890027518425468308114186083409685662549559146222881023528276897753722544687128469662020529826964252823282534536025340175789276169242974248825214575142603277339605028517998433340968734691446976189935640588756119847510910998852534673055059627011631914146723052515139618855164055091225182708987435134459942764475409536548319762621286607610779830602382806656664184611506121681255503552251270195452256303642327732658001516247599255652238254688125940536361157339558675134710949526883703211494119292798400986266255942261351727610166803760065246775201816858401172220626742269662416200903734098180835143370881521935507151274942633955869137292685897181485433144313802004903683299928103154380150374817726177149752231086458483314959463489377745730035751009753005657851925147632594092732312615263975372396875889218559507950826913350464608635046455949010597958752690599106607466738124949930696952771624859919274260080088449789769783966465416377847642313692327726968053379652345765962949942763968110317027578424483983877349030554675828821048735033179781892810745928029746191486936784113197622213640367202215568355826210580439315062000939650809803343201710765403059051405473448320833643319407779355377740417646996447497202055014503618480806527982006389055498780347367665765071153373893804069673575285421944287739847660457290591842997700250289865527431944493455457310521265829822248903145317010652078893447262457924392288329177671004406195544670238791811192507381638124639738649243646601301941614986364517549802159696237267029107202830828627521248858940796800775136297076267330759834622457924291329222165166346732070616172330633141241788279771760126848386096937135488902477648681770988353071178521266502027683348357304902022150257264305939232437125899153043778629706100983890686389716376347286759784185490928923782527528546313608941877604475194996578853070927950657680787679252781929908534286082318376647592595816391115753102047615172505301277604038014391726694905016100562857078405384267784912273555160354710757366807521898155274152664412345933036586709870416868802463441109631320190281992706807424414279699487580890618168242937128996909922190393898182772627499195528181230233825359769963300713702436696183256231971672391178855920033669389901294227996698961737919055403167327902653506241295606717552715958774585852700230463569417141213699699937904803817864568976563385902753774811334272286780803313487813899384852066151170197618926580970479299192790449075074008225743235184901891825055543622635377318724704640510656285845719897301804898928002231605312868836988847664092394534403723994455686197506548896374658129096538698653509855306964206079272865482544136582150480241853365936646089150948529430279250798576699582323068499207794960304019886188423598182228764541082312073890679896499222087201347233371268568927133531550872974356181961269438938239830757970329241652100250915543088897803102193463232348190839408200870249781735550586952922006385115367975561177079673235438067412514418494488932849835925859652449934282220248670112239324866784521294937525746839474713360307510427760823419481210899364533950384802792754587621681943345621696059539811101256256192751186935458279444725862967722152810122309126072315383384751958026272160827578784295323078705273766359912158752804316485683008133451348963098788083350853560853082739964704136440820413602717194053741947893004172777063361761041581224196526912218316408294182778238186346219678714876819046872036146234033463552594624901491743806127735581241756272756256785270101281739122526783743131869437085983916431971144268732166954768143435994782809094643563890670135290517693802652839654093401787303819952009118903694044890907374061028173309072704516551272959565845861395892350552025495617431141679056591144540040618217049194516932904873828161489192907001585306677795925318931454990532685661753096785433460991136492692917991951878061329048070744298300076740674987503021235223295263987843315706928804135781181414035949799319537994174695618132313828355351273763389279424236991870955678299670646211602834338706273536116137728510939570469505316699144920030262030701115733460221611811140962110232612794507975295250672404896420599499981853111922352067098764890474448320358479379777089881705580551585659003575710913010838303952048489536753897939591091456852124426746346606832559883018855007288449457734297537482901467306072968621959950015077980431874128687419726672324680382292664678731205133980449871604074834930661166953440637702586485725190429781616742138846290477226455101790621990101064723991166245178996306841376747614290773613910599890516479131402990129874001851155667329009059598168486423024281388551820450924941349425645161764438024831981644782441753695904089262540896713293137672417971184497881886641208500538501296658073585911445560234972394110401145615524276081418037006925282208168327641105143640153574972994893742231607297932846688596890779529479049622774184931407468245530910024807546119711207497840562123258456736068054598680926652675729422881406450993468358928198550973009991035626310461940730356061009786589359486291483333890852349035226016116267311446144885824854369935475255354685970970012005981056167495030237194603079884905713479666526183524310329605348660554276444504687869498531934453062179768591989190527250913975087304947225328826392861338131243081633610044989140357151600108759995996203276239973756006689326216632041271564414718553992163745132571787569920045331793734215392554957301422189144445148817659003488084946814467645187706960097211812601131936079883761087506199583298067505343866438560342279149210478085670871212686110499475512364196862159005355189208960454911801837087351213302113927947949498157160689254439283935066231954258302225993904646108419126977283911625329700899993604983544205589250763685161205226873792836010453863705169396833464702268162108047704317588916650909690797846215121153405850167527433048957831728319550911254913959967434804307493724232093563415951628524296500143631375493553263200642733819454036035016471292095100620300291035916923877115341640257130903323748011829648153048860911525395199582274201115288178637182461545910141535073223798908102585207913123261833783663973086725348955880826566395904698494586645327943651353041329623353826462598103372361852919348742087087405531674261212633731882937687221636803492356352005450381560894384404796918033652023351402976755746861433333050208387838111541268925151166116930274296000426113671057593007530339863211950308033923935794087416870532450153670572923374346617729991193485193153195573999537691263697163367331179764771187970106981594852818917269069689185229060502882341966125844911596623504305364360140344435869935105208842215655791117254130937404161069889431686316515578886847425711435293078457378268381913669237471873765036114019931274788955613142720362250679969666727376373195224645165671555403406941284959423784512097673759017436858546715560385708069006797916099574890855980086291652161786679405219875252687974230877054749630423028293035258427612765298373725206252502198535700584024882472881571439333319693786895013767534951472748248357170591103305164106549341448296256259053053650440190380040202119684943642618549571897538200290157298536474141922268166590819374268930277118424017749134844691016489250387237200483465001201970901451290948959111337775558325485971778735550736760415422782088532065005677332973421264736659144908426144499208939625766086675034809435890690348945624497298523623631671179811318218118983491109144324354709971575748761833386808392758242188258317972873376426584738419959429063460865025641920729018922939376884454225160114951712985769514509191963635889005402162681622563351387321791540055706200344549047466943494357183394855708615827904260730245673126120480774370352283823459959560169822740070222158536792396109460875597226270351571618216645216224885958641204904458419056864801654356011243206126652245916123841780807997824843552246179405853478344642156931094236963465846509937007349026356989916371199938940366672127024866305173877943713902426423067540464969108152829509788010760020123834434144501356761975935634590123911593375276828652878589244329251305094989943506488296096665835247177063141529760216668828967756246178265376697131371999006207021132131686344793232850535267949560065946849113093180985273308269830327604880888179661619217295908933911350111207115745768701357561706784912286958407024018892419839846947947860186294518004580798730670629794017057189300439386598222495120441908470074696024781553050534193985289199261201900910415634141099894704243969202866161029973321609245078347796930747826978070544462747588271314769239671441937496052936427546980077418005218458000279654650300024060631688305185076640080718047432203703900405826446593775380817147553802600796494462382105663523215733007367142525984817682367350210890862904036149138364274503328574834156406432066891944967482789403633474104111297404488698772176551031480762487063506781546650445641661223866587296779391288085009272305309637101886532162105697180469696605342353799445360633686950691477088621314741058272595343658851396459192769106881967867859266898054464225705203824870126220348504870506630110619566228812194698648369471955375533963602112120030669781670677096472357811461251891701323982107997284379513643686561171373758443007614371228676780003570086020576201376889630494146996947408397911735861565815163854216362790680102258661871360391970173114338593129274967143614467978019951391482206318260221186890760108969565291299868757462140499840714047540567790568868864781724528326661825981822520147316264032891928511282389812055422159799371904862143756372884552099468334373378417669478051400007976422511720201857316905897392150123813358811836227753481027371036493208492059417838731839457812208684728227756599800821735175967119939959266440743943861132541162237267684977016981507948315745510965331072870062552234413876852298368265419587063430817574543916402757124975942593995882390956706984473099930595517436159115400931591949224956471791893225398295963264919322186577298676773041578017952093141384696530034320727054200059566684677091373807093343502310221607655845430848729513104722871099633863509699483084956053298714565656409231823813321878808500847147047359852126560582850894450924764761709110612383756326890158168998080615548013958602451075000122381573684665671529114428749117425062941321263036560495449045570927786158816156683020990562584769113680276522606064904091346752999703318556047658275131229240219169651878590771907382930062359867982667448203827053406296010260971810868508976136796240800245055381772342917013518804263892617146128907201025907604211660929222870199660751885072021924872189371622919331927171235318092499592290119229509641961153790059188004500904145025570946717175258093654585693622458566354661915220059393761868621821466023898004184052834814751160552905379158133422305437433388318996041967908111939219889134715180183211177478047446980925769539074038753589605909910794299352756654123766293200336240128861865721764111486147109287035610998679226197139349205798702666611852375300919592361535465246070468674920212476467523759951715618152185443763998456063528890836613922986307050368529712585169863314423859806212756923449885291725963007725086541884992983868379245117377952260668774309225912502914379185652876912411057136553285527926533283507316097358794594812563481993514691870088852143186336574078744095627139034818071779412954081483227747027124560137132498014901691611629673637634210793482177779347438259047995831971588026201399378812000615910763065020083826800440433662630424658388948479810470860881663184489018980871154950053346646548284349184090447566792981361115047526424239296863181361698013258881943999321084257991617306994290303997152604316694798586770535243587816826442965340469094515945388845992097562551603881591693165664681943189522356537860034258865483878222425301616483121234856316260457457447991941258992523149941034002820375572358511833856817751019530782698048454411403701324118758998780641832379273741382729280004318421707017136863406461103274574739679993143536351359397713594714621090721912105589030822447050879681927143994133227566857296683111888544834758677832323475375547417534008105035236357154004800027605538217410307455890299872947217077195116596776267164910350567073799823398093758486080852578538058871618001376326084015142001665919759155985516115643224963697161023201543924577841093084014248766670477224112053207559779054495588257595781570587654433334172966369311838808669164183658962800382306517317202725665788730673054771459010496301291648388183271635142289983041248064386057087327779763679498444805610668812900550132788604749946599217896786532246378692074300927466411956513286552741068926453528797043229060898089934618581229054297506300875435485175622185185639005198450194966677078665946001877167658962247844279685579292417854580890625056363348568706330468405713252515405830082050636415015172256636638735224363627597468179974627429171196018621618742274633369510185147972029351959131102624661296633665833604311567980750020410739835694164363878901466431189916290702718352478832299447480828808214201220932873845745802182725709244565687381598965693481971506561110585234071766200546313387163435817557854851517126935579018752981444487781838651019614753795131317385485524185614155503648343346755462773543134164163752710135205773528362100629052700717857050160117590934207942397804357881611001133903532835423279876848098676979214295639854257037487088513490365351026516262389826734690486253770910271718868748039903821611306415340972002420444786248248796934628168906425742430142792747111966751437093655065437546469559285367178436151633082167458908684897383401192921827003497937496826566263599693923629042005970134647782481821674175714662245210614369279022305436474852277825311897754825557770028295999065523608655632879217507470521602476425728844660024559015865293041988104985168044986610303471278837275724179002077459593830360111274500354964463237540297931263914159620928156334907571556246376552556375223356345900278361558893867980401187621107746505862837307161502393261924593304121790221695922742687552435942926178024442489812694044327691375581366468662428194694418135732202409077307818795952481690803832370948334304616456962770550864426706116430610315621421516570815424351207196517354745561875548213724714986955490345708589505351143239402158246237317991855231874968068370712146921797522952776549685590428248768082050438345443676138031522377750502389340889888817638054719391891736839054911703524171390742819895349601930720974805443474733641489854699326691048300519853441485932835013941744576147232119303567351679527965180880921244727753732022520532547963995360259679964642299846064327546130047232042831913657589809062988465108806397877213628158694690644663770905999116655672057754520531265521594525285609305083420098497578593372647175773722255457749305673732267599454742309245428053196538884826311100660197048014368335860797727042714324410191859624793742819910810764674115664585266909697467237197008221147889949822505049506596209632462316260258834077128389919608311980139825292731681480834671760222472791312791497554958247041100062807251584824762517983736835888676510131318946968548907795147247416453245902072988651869655092777692429219966135310404808773943956375638717730068905898046202028342766150443431192858188425735355070803792286778152000034700173975579147263093207872707083228162678149261037627765003703793964199047712412252534306851707569112361054658692144845786263759060980798865292682846498009041351265641786001887292701503817428318713758659265427473005472472085738266463992053374940399635544502872162401018418432545261450497943296200208720178257542776900005666812833168772744193770051629511638604875831823754913164140398124686470094382187644312138923793929634901597004225036964489920575583434819889649397739805627997672829981670706143985663914511334523976116720578018898953445069095385051760763943796660018573260891171283705591251920083221104955323865283106634848110827805666259606195918654247016251201701318174967724181584290624011607674750922316594088427350097712968503586054320749519575811611855538912706786036392828563695721943477338946612763299148896113940952452273396516644439956176446380035992423073764859018277233807014791056571263382727070261810374598895761984002987016868016374659259588089576570620811808015788245235470512319493403010897860778603558016256474963668952266644297034750973757293655215957205018380011300642483695274978980488669946312648370712620175835288983470645632987962527812423814972340269923862245553799485227566164182094297284938152661553100382476458941010631066791559388078731554225148099356347040083852563338713734005789665118282648417522204303350688567673456703495553783291284572140874341844662966193453239340102186602517225820244369698286892594482292569580501473842032234552749162420536991531864251835132393123249926171102090679208777081297331878703254358945819299157922805909629313615804547525082634659987958292821403960671715491841579732776669604006761432161372979962879694295586470962389699846152883945119399866680529478562520047926648025531104334482182225375355413143198789842444080937262640971866322596396451409108638268364912283333873204238924585565961231467157323664576166407856925815730177064163262773408491365608012574138431829515250315688191614312101638047668216237140317556271005829767655973993498456511642712547906884468423062617054728444476329963710651294135427650142263767469742212676631934514820117451729366819512348454810184828070389799766164332625967071557641203485357545067392252078078608458853099304390756822309941363722218810657474734407718365747078729497306288848468685885509892782698668673193115049382377532058098194315835426983040375068899137050166988926840535519245647408292679246585580218926399943633169156591990968485444353997200992769810704737366421869025712126960845786029245892714263440554861734395635224522665796674408491362816523583507583693164682895404167836972552473857523876498759152433056242907916161697923747260277756820967581833760682148768889887355900659817808858652732469911268246578940497843423605889910792877680494259713368582031968619868504750040513473006793223432926837954984642333505247263460082690068256150580587416497636645560901697038354464898578971378176342974766943836393242204257238379652358937833265993732944425338544431136852105145832185085344227497507375521585479886496527046750978569634379985928566957606237908255374065993918733488900683707746155489726616930391741958038525420236316279949081363400652774248626138944550673590388362049435427415319751126340575592208112892245179435878060940908912240877214600264516575734886351840493636414562851412076587021198616414722225541119232174474798899174912396282969229904038628541701808467475656375497288352641939168352265091911716387965696975529401617570874128981880416544974424432650797686219165253206781232677694837429664274422877198570625317789009163812625149268598835683397805868852899607572612324059082101032768468528289163892886962291219615830219522140590952205228972377626878139597405380951219895952727502300495102059121377517497365540730407591887400539984780761585134218807192758602383601471109843561136961831373268637572744207189509549635640736905992260249409020151463495614064290221465656120894680521708255829751858096181033709257858600807838724053485637997824320509476609337576351781081771721920388391768477538656929309953682828387716996256693672496583637164397842074160549709960664332221742829985099655056667494594601913868672654443173397918383359490266481059102340343599790310442218904226364686067510808226902546675198447458959068566636994156846733845847585095636870779635931230765940437498221894244750281518093959819874655731869032409794891587446913819980388681581918671230448377568580829491220952824741513947607156627309898236541080144691954182331228197046695559611558555558315806826102545264309773230627583922003237786026453847280259878024119832286203580916875388115444827489547270015957334586400959176457689844417700579912331788126521625196597494202791280207150219806882664821063030190168241191958249015513411969179182395145052466745793017346324703628358480999085464329343470861029546207578499327479680655603815266584241552414020100328059312423538009786819459704872308783688630961702065151971064359994920999366507669845874098782049806400927467458343141042231608218534406234598159087081778504888861880769353476191896021433883786317404629749227411627982391949176987362361620547976356944624376008316995664118957255324040255933632552568401402312231464177616622326107465822771940305047531829005256782861198004677863617969440097740171353350450635087932262008743082216996466586769129528166291852371612532422635252769247084179519780977668153327334285229232165810202648568179844654769401370024774368463834953838136747214167428043136468815243707106704500704876499277719360884026245748325443296305533491774675512357508435857365050276037637499339477411802348296551573732414321115277551759957194569248002812142576522240949051239537058982754192861620644976900800516728105520434855226955027595354140108032576077947552173829991639441883871609437994545693681521187688944537789582106064276906041299935917059133742640188431275188329348106633293922679093949994775888072444790297925359054631740103814939707976348412661573835667093452579242745789607624721422283235091970540000446250776484927851389883571883509820130553425903791935363152235488858663247667642880777793088879772304343640361006875164277412202261396683280778931927828318080173077350607481524842491867242661649204922918225971382402245955232481491157686077707454695192967937878911557468450119742629166667933784946411560382743455589007005502225605159027581616487653295831957181357694357203992998082214737783062018460892617210744728286221985909857169389336098290224282424396896211744287452783331326237688664358206856526625386067699667080975244914294272654597550660926770315649639644011468325168860699878499841076525272781285215897959089565978155839973755150511717851905584311158007298049867433393454099116902870684346774183377429817630212208162276921974481075829736332185436139245593265234717907058104746873548245529777698568920795629452204538286627419204574553597537833995304548225920435181972671492648476022048439736948336922302639020031594711705740573963738051270044199045112315063745881026613485787620090228654099282412837723676723358777586449486985207248605120598606668137236359779005805426640784046475170485341481827591362494352635349029460881976590600165871375961754051979690088557206937236134813942472081174090438626568364038965745127058749124499542408632942795516866065128663688957056950222040105703079685542237024703234386442595318728474297221471725239969992359558082406786817244036583223196727103007237001884751283268533846058342785102726474056248236406334766775708283006833629551793581381740550546932832426160342165393337478422362961931248201738364442549652131331618826130066374597499137378576328741407978447934588795894649894552741972874910295636324730479566930857896480790763136880434588757811617173347323149958044338822531688624293072993485513793273497371851002577967983216782910104931542166293613921409938852532032510832762973260840413857062941311330133320972122366756072138326769687593371214362849324725406139914373900179096556169505245236643999228915756482986923581537372325651736293269723423670084361617967387854123383366056254733185318152947002592276428174807186861248328293644512048628862147681847514006874763269534591446136942642700326831223619261447910638058964077224302061508264259374530337172417643773503124291480197523909571974474894471533079974013034950682792098108358639863429973463930468960924472573851739936872068214980426553124365071730918612225232056271600402655700278727743817419243515520551967117280928505141207034590950069842139567996936326451597238335162410921815315970864284736481795259910509554718804277692194704591761767503716438190866972339519435414088680762293025423945883227965676774363040678792944127606681212535222023118548620650443953945083317510365836703280339483588121845313265177950256518289980760433114486012050652750154004568370462191540667988042420995760499319254854789084965350534854003843031756688261055554959518487857341765539294820411375375159728162226663343481694023684802312493356608609241988399182166175892530105714016606813126943060349673628302915682375578192779443289569198024594974519464312327361949574766488341324625439972015075982843472339319579448206808906058911339853122710801865677278159411985404897754605489197638728560966380495400861114708444264789236588316378356639248789769507202662703057940230514022240971920328906189822192809785726345164856300076620242128204348556309085217888747711778346216046160551430763787059226469008671587597444943783484827161148742869914832164784674630436152256539382979746707811837307823031182423408386521576534752035424137527912423982517562482544830046653594008312345405289677874105136150123640259004565531331024775186861590995306202215036676918568220383470112931858156087273329526603526550112324992659325690032515293175316695961466223811457424745620728303432553487027576987711087291135495934721958383356328265835481184496397759223788788804436984685153674751365048962562931127022799542884989969637590462367888264316742631006301794525460633268122579201781830496635334516031677367017446842652671673716525822963934774843320595236302662722068770243720307763273495199815682918279050247370481735218687366782485765060666895071589449562322741856560196805754365145452163499602174412917105422092917801861524562245072350571441467130403039358952207346351997864884901364146099470713194173872785580764101916730853561516619724546545275684887448977385072760144287081149383249718853354015861254856428609434560101650090159934047887627096303981102422520396766573992654399203769671109491733084464558074340343497825755427710037347739353400225278438031973240162990816043513211577735454283481232149109630712546594269100558783295870888946902463632663058336725986912272431303745805233776692442176024614735441097236695980802113245363183222943755627311682187443627167156865902401795932928320330785340814376567491408588603697367284457943458135898650159679058827253879537231369650073356384647560701395234970038110832810510928525699698852291991158461945653507960480232666630688608633987220835991889931237878949945252639718438218462630388067081032211489318936460897996233579186582620489042372626132345670542865386782381949268122896104523387398788104893150276916978748292787975482880262227977741735202538719874817121221558965948797112626324662819003402883206554756811317376080249891788724425138822908637605497012348636020485109623527889360183170833943556228447900858658657524304530236652774583144513974633411742799858675419182932860713974754182903093182881600776813410655737116532291770559810560144558291080392585379541843151181004584899028261018961873538902625164894334743454254110519098088258443797501606145818983775077927239640207714633594589264369621462094820925742815904560269205693498774464955668029575650636345026671123036640537136379214682539054306930004842414899829485505379797418892092187473971609364605633779444175212427177322686778295148754557301102539201550916482184548301513687443998745610103236932617348258361211296245735172779677446247706082603269447083356409808713064989110619718771690313121640396700014314465699765568719400381359077481983458488069548263943482156782359633050694889740723925238276760642988760867781995721984737227978604150425088471417894366256914080658348269071944074274998415108912281119130519212485197796047005120556731887766065592258181431784995010340698242269933830363072589928093363413290815077357675544275427292178784567663104536818201326275824307239427308857844666711853148570372638761450443486104693045758226315809711704079841175655441013242991082109637249841971499680026611222241162765478465291521256157524919064171812278532638416660637896345481391373250743333493295520879255060081663010472911117321741343447078172085076916064985364168194690932941155625806367483114900503455216957040337679281048149186780494952285536822431527384190765330747255647984194653869199876076229865675353755011269112941873597410982403051019627737910785848528830286786577396572602180527700736317467032734191438908872576930341727435167587122056230504077497000598540138301228241583094504827045811370576208343616635680352530359167909636463573744989209307959466470643437870511971113547665104719624871997652218021203243636055282677508656722550249612762915672649340360300886137793038392984671641648957948831806547836258522437118460743589659453285084402500706315231943932257057084383848086084763866608312904492194270155155720204743876552281252106725802887237835351679073750482042164696884838527397033244848661420067030969866931273273940870191495790733560788444375931681092710447337619051716799419427243489999918580079771701921471451672832542169370623829202378483101831218036839238530027209392938004636784521955374443733591819529351033923418836346718201227574951760590258685793758146968432805273398714513942008314647473866341701331961631022603526426027699713015379981089316644115238448534474895229162269065724906969825357406008098937455425457779015498346865358370136057108254084475623891831380079542046920662527089821931700916909072748596982575461757549914951837236642453526375771612466181597524071670039401276405265419620765357956819846412171271721349678005069572424227042346135573761205113050002860062331965897634402007941809250556601359461067965476388267169384091763798674806888167230165122403532687034129683858803043163679714169776469088496492518632661926859118082295548214756293529657416124503192951249448707427514816733602303200004455057166591847456066415735434310065966815538147081428842625525144526594238756618850993835982472354600266789754829134903449296487985300382562524565612240345807351919324104925688553019851993658746025129207560471552780424997364385362512383750513996206672398272504994273565164331092157819470821173546598444636385018384421738531896817325070749894128644664562783301885886684672289155335737178683466554080597950912355083939177062776567529041466481399111145590850537467101860325313884231577613882220739615535244028504588072953643820746413349194533910717502654107241439177155855643770287009009605519056955123834386008654289643049952418724542213702923378933585012475075463632205518398039158001875654974846034054682953754321052746346702506498875747846384625981262402930366602172908233466822021686330046292843101200154888638995651030545815126488517170404202635494645768523754019874458766460443926706736302674268383523828154786696001870328610980320371430929685260212338884189324131439017886514897294851005382610339907249222569726715502213119715015796057605882242853275081349534380252955652401248962164393880615763376480270364402031031899381350329227131578222805288449007547205613319288882880301427933998932680360033866353417224139092555725885139746739379162821610216445062959036952474530282235547693105491481970189023930952071324815364872343043934243563109943301984010050255075853004124402642440423885222296159988085637743105250556179305057915105822009885597150405451247956076052606523962562640332078397670632697176675193918322008762850300528137033630404734693486328737012064404002470611575756363346462342085388574250868312451592166225390665035813997403096361261559455104227855904553097303951549093608151471238383079236912339875315827411283310119003024514099970465346509924383316454555350747039260460542089167905889637220289568993846966037811665260491047921597410383933574686135660148449680085492376770738940563370648526664083505303509750030000232348075268493629732742905590507404654862114124199309711434392382508663868377388444664988915339067742210344250085829119555567413695966424713385708871773642066810565646068344045689134189768304282037867259532979021093287888423029447860515034861565465097083711435797652254301200845145265719130140632394775115878994927703499634481812746223391394498579984382021651307476512325515816105856538911127524165339180171751701403365109650876159776364266832768113852094667783220760015990973164094914267857104342911428367265713325111620335596895771225479495800158251719864324450778683435899952156656089596324170546123860295697868079363394406928720376886394929430093467194237112999426715828062697160220315956501993550456143461980362404899019297916838617612699848483862825219834625627527439077416913115243508183815484999134998849118908671335723414821513518709753433329334117864125477183428843611192361118601572534777303771790420145052442500265304533746747274247241307543686827352169577782366362285722212574261406469716907023631855265253313948844694441132213592102575917442576444162610089185819590932896831241250228165687230474970558548269994285045342605886436467743207740385575616021926481784189348684966755846588426831056443052330222059182322152064555441692356070265021628312423464389928978048600969082699053279818843835162931189526210965761526917261483318518079648547878377329541028454635344624104968256047365511103211895261707578934075839542344502189862405580135523875392369629974295680022459156685866735116577937186653136884598757172652058475012367316313714039208273519864111222750401779687189258415722478537026569434975944609321990644909193761157561302152111919485022347414906313907930352869681136780555168187461228166402877961343639825035282054824236296951282564871514808762270954716466222090180028479351832719291469522113247516803455353655516803305535415205342268509850239079036255961460125341186620023175689111404158688062280100065457672718651307305533966871734025274557382377184299173532291004018364304403105539935807300996129198738790173676961039006875822473662052973295051266221645515160507868398803968551187435672901354339735081260092916888939360994352719263469977561373424313959939568202542844037193024591245658870410995186249481278788320000640519675128652587144832353429917159173489812944332976619902302015829663106848405115634609610429609663957887706302738189464090292668777748730774187018836037942339601237177137111089620207694470166037648120368885118373052507931871273607429834890659100246165987442406773985385123045805649367146087741830695765359376060070140563539965112977327928143047192408525284083055149052762390902387607305809083414362841005473369032911371185910961720062140515362032283392722411563161566312149140570990781673140886562112309133793593152561354112016603854068537694209929282007279649086871907709333610759194144357805433648744948304015733064821442793312043041402545493349813951084093101581187178133190305351591215151871660170828589990442877499124799183769709956819940701848737544179754789456774995863112301218656691586033447688219662075519620082899559891646650879573688004972612383079308233800299882392112854092096532624688573867371667377250403117533636571281982530565990980506311202687190513926870358844994522021549940557342357801066085620771804795540756364826167454620040272635625473404309409600892469591212915887300034688459434748067129844564800901495585933349098371714450540566941246161613444251643650041227385387113342843152411110904767157363458840394511553181219999287909451721595473113489943827370301380015649485196344498868180656430972022772819365759901891195670286825652242981807938563226873658675315649182570707505150141291597820883345380244364270016511477591482805286338088397274022913414196169881437128915062105654412511982119083442119508926880645326353618948879380716965982927814705873414181255589115550047842154593816326090114093190107698494750964786910513821952533492122918434408593194256574468782605040203040030922234016547348203587939611198597395568059622589850874055574232428253467135677408319415331770395881123007211984334542176026009760420037872880045971380596690167954585763966112755038535284531651406765401303840761709625648550598589161914676175732457246920104104106585120047428768416175965754771526509497675245561255554505123582180694036306406574744027339582364542759795435237727125059712768384844596059418280894745815012199726183752885126723238518586324996347343810351080008318852064973304981747077677541238533413099593588428841587593014099043291112822844025317941849587372262283674842863128018910431550093261006611312919720433495099962380418809158536822694517600012229126775894664808759837500961458896540757101670549373552231940451238570771599610006465208624342713307017068059637184234252402982121231290494585966668460801976997277527239243888305200770784598409217012081775907247619840886714677859996931216314094403314469159787103910258486027281107172157926631753042114849434133601930993430725684182544195890753185944194586878129069539996835573984135840557553389714762654569039099879767814965322495807986525788540481177870850587530852670643472615598613799178461775585519995388906648593869312275431468463721434450274384854704537107157042984458938979577492521210552912979966016917087303538703305373947158045050988922488589615657477032720322125260124583437930610652936623040011924303165772146370864535730493394754057391869142231819279159027325661155547750979049058310377893857721212528210640918283725207367093091812809352036703101089367871142895165893038612280750869455126022447776524101512954314975349524785545679917572659263719419746849723222484065541461996243624631930090296883283940251295227197643189632825832679100856562469897630248236853381536263941588075777852325518521850618298443170949011001215405451868446267030515744329445962627652781083233306790025354991317664762735857591116443733540215524720790808459654257852461811964709576204891001076068977961606606780887827384645952229465823856796791467952836532220887277276500236474623946677743236002587481274582860779878367159969330963275120864464931041198909259283935691517015642821830071447114063087538464214549077973992837457541847282682922121584625875291926143281157409288386443443742806386059927532849573400968132883950660844781489897150671978759863953521616374976696116842268700537352962066504377941617001954514357264848917499396528605555064501263805791084966502179096324487105933598588889209499441399911184260524047840824001504172082594439649630405042243233442341223189836625907165741132211902491733987369897908719190669258792918436837503776870813499008459637462309580356259531065155123109334992194654707069174726151117624969784041643149634714915681388166240560909823490164550486583482132210677693478079746668739810515089723757146094738177518467385161922909604867099272150513574201471346541680802557037843824213153608131704973294543101812416306709152305309474315302409130507879977368667097204670298946534781438192571666402154608067457973338584478130565566238613989641858486650556767859380595264255522168926969252517695647230007600239645161809663235926092583895177938403990526765175046776855866893072337676228872658228941535011769697959615624181358009071892244217723287200387517106036514648298330330537224956457447981622923035899629167731409047518400658041704030819834394381654891068288206327462119824833333898566989529290283506745773869455592449308447108296011158850439402580695039895469399507596706033103880720646856096321009032981369433711906635316827971131126381557398474363341054424592149284481660789722422256922393677698710577504311870518304084133003933643728108299653373441184354405480561881531519079117790059472071373225655689017631713690530039449867117867765760616135419482026995648769679190253527415105180531804790483322995247073871058366916252351497379588381290782244171818481419201402111512366257572973301524423958128638699398656659672257084747162982259672706700530278389166151345353868004947749187295661141402382896495192767314552141041907587280580965454273881844851016467216484128608181188485554281256531960416884664117760046961927984695385084891010095957760848958110087780931833420011471107536645178249540123127645253167685989110136138709825550577904482832318461480123867994146497941998319865643012421224200975925843299654436840013292175343954831853021121004716189080692564921648315239461646650153757818763628572114196376063459038080448514444826889630148554736356717763611266552043045803286150878319507988100647065610690592092569655108470085543421756824262446773998395864395309621857601668502351345733969619291660067712130459392789808851074647837067643944600943229024046728376468774706720898422415579793182085269902422050852871413657941189781978550458738975725287460036522703236252764484177650608117983950895275753870667305846428105172244237983592543648898675919011084890853125856525684909345913787341096700755907871721694150571595207443420654773078572014949096550591123071560836535517441138230098228814810601217595482842407428260463697064340557627118067418788488630588195405009462335493159835079495123344121357282592678031545232905166014398114290282465449402952371057522041040871985263998564256263787905489320938473810927731274576167351483930693276505665621651027188503924062119973238449174489819845167183697449802157801453791884141920366926886584125176010877742186145774040901699490718053971086702189654901377106473451411310618515349059531454745136755735414168347216633211254224150718469598954501335069163130466253648545040289332965583031119722704469271276844518793698664796237089708379132510457884232670487707342600247012893997363673819729183411986221437669289669335327964514050603966401346740676371786828739304827643225209023130291941475594239348717695689630324201712678267199325039815166783694080096602039614260087626316177157656067860554208847731562147464750836930868547332606977336108807016114555416283113834068363559795477759492995351169142968351541590653117485145304963802382112731951390088568242577007613090437491097080110269332870728084389742814857162349833286375567551322651538494022856069789504313744760121653559818336894674275742254013978959492129253549975424435039311366077338531949592050653580408662369888683574177311812020448711449120608009141404178855500406260051423898099858806062599859387816762660412366422214571667887039386174158590424638645107953043210707575261045400432762419587157761784274443076739024819018946071905814755350581023666862820988105086145331798152103609256255584994722709730380619323590911471597996454645367233169586162155770129131605709672450758806329488970003360173200314963396703128323994069915220005975958169940848892879028787095714877910489968720701332669102049083337862445412743638600382168845743535734856954237600613355919813698764921129635454580294503884508230060190475916984499974928535678788877405578993497844299903794184281619229166488125189281594786441656558611577459304032358260654266312826906915064661439982278204011136702360519053093062067390302738812069166120867775364462572920419129700792654507460775312888318832530961783961997609554412871373070913192929747492398885794526906639315373718376605862638685104074392254614692998767574888757004835986547213354835194206820305663075724184818740575309713719080166744237135048959052868976316936510041844184192931064121762434964280724622079507779270777594085018478364103681081430371730004789322876869158874023275295481224378778599443466153210307620319324483273002866154343612500607898006493306770755172384974521838998556325464419831727763854458940203625892888670074191981262963370456445902209677886713078072885117795625545723617531791834495886622347011391964648993419625703241909554553542963116635117192266420477169151300882533242342318533063823930799972802683015644817446280667707864924150250140697608715106095802657601863685876759522554848679593091602771905617183110210007872286023071786879167190715362093299053433685096922507454957335985722691127755901374100852537626903226490476245982390370919608797549185230688739685635887349584882763761356843640278213496532022162025390015646622386513212042662637065140790202987558326954360410046655721339283144932369541132376620692238307736489640581441332979551943996506043269083373664886436600286491109559072032773821785489301616791913589934426128202254439754822577753902878081239006588180437550974477602713092900795610176087108213686265668564033403327115261997999546067173585891021559489871189188892414310278512244159080400513508811605005310024212019277797686686766392780362082192136537890553149892660492287324192573905963204652710807352812164719313451077065820126146202387118614701500297074020714669628944080966815463011972005892139093486574986557942005145573823194506046418349843916344149336874974083843470409843492905516335636517364373976372182533421553977413672765462638260850745558046710307654857561724562075113548871979562115712816459467797240519847340294435121810186101346010377134517919667029853915051226235427124100136665962748256585723817758172617743576696198559931832068173283954483120554592538025706153304808341658339480391021438997926469047391929437430101677948822478509958248181032809407218526229428099485630965041460314445048781473327478920724966271710204105098592639718944019328825551301234179887443761681365121823531255731233958949203005402012671985157412756120153017742912720774273943596504093954199364540141234099602139420224484085184848332198425908425390987985210295900294077244141016654654873469273559754615434107642381639206540366015300938502511115562648931999753448906547614815812522512560562588699082706447409727111737291630760622385173708214865980055492241775543703894118300654208876792251773889701873225593493196204540543301757747213965759405417290481304027124161138680548085002881786941092037720337981316067910743433191577004656678794592800171659235707152641398092653464827906166236907653569706215111504303826785439983502023131136739069820670316606844735307394804808796524515353348488435278303023391475151629279408037998334631466660614065490459459388607826547457293236087102258383583624487640096370345302095864167304797051070188428820290819678374594653041512418777137701935713425943558538736601595684488506681552421045309821548673273278969240130933424602335799590773120893993636269652304911654032303530793294594086491996438685562855411122793033310798701713696178568635767919729550548977940033113813861729521200719928367767161215201262303280594280558175717047213413998182678404810293633317344294956929032560881174570576923381881684558345754760544855033866992256666030241323616268507495127539653560103617787890324550679135737480709431597114195070892253942084861077989788021436933817394013370290140994335034242567762844973564330040291235858712203253099170338139092829310339353860183015681977760764022303760880097990360924997905914029315543602947279716856747777830882078017271694280076658142315674819228533091885293974666665895931085184530281968926162017395445867653210467626741438607180247831235573376803301715405315480428403404787960321484549250295467567481227349440803475588942431143373043706142461402411212099516179053157687873140625716611035089695725872012262962168395708409517656735052348085445616872847540895773310523185885654052910055885404620251269117840066322887937493838675444691188408571993372538488439965923348202662900366989484899540801334474906236481577190747861942527303074214959086431066465256193239421965914242366635016634998693594126866369222222482772546935425201038754907666045805665689734995035217622046591290619802658268334087952438949828517494903400160469340358336815859877638730219958048215425661590656217935870904080579960586844626147142705841719046797852251287234880365995204013646852231145451120536203378558560864899352464364322937127605674391279831434055205610400105501430054153375748970737378005852698018777152333267201700606414238099042717483477648837453786916578767518456949502903960865453131651556790875630779599973702818445522648241660007297944177040643459902226069181252431042829345014119895441630254001612814730573658835876954192922959581593519117229979623919759041659480700106947633324468387044596302914495586886590179788765783695347363920204290997335279441933902190580909382307288175717305104497952384575165471529028785909894923508265700475946855857768311966830820848982626679126738957131346325334052903529548867563349108049893125309954684570081210915216469414861490153995077243378100574189900606693325835047381046809369414453301423947377518213179806893051551962893261530509746958127417208402409719458999527749668382372563444148219058044997143550829532488225716122583015672082761540668287130050327141843913535004779722515537359244728732574153753034991764158809964303915977315363170014666626388293853296681159260307074378349493172572938180715062357327537218262699363827186676101717472859495469571984543837804288399873151347405781758477788929828485913453395015232269804934144342422970791501955236630855032892744166646745265231744759082831248357714395442890453243198733285098707110075679310504066200452348876962098360272571530489223643411849427732055843261582846021572700419118345460000821815892759556031386747432076375702119198906335226109059381935386962787213405894643099310931672292594209303201545120120763563505739424400930996671175227949248011618198871456715695135664054208776797620624692641499503081730220478263264516467787690279893935775180730662032566381310024639265703856177620523278956802976747668513444475176447245258312970910015419521622604037955642485535376402196633191303376813994426710033175743066999659383239210167996108136633285159070243224754758290857648393765178360991123343959468337960098971368228065945297746445434491643173749089986134365682572488751513214961238202166634996724654336285229483325007883063795521355200859851420246309871193611776095011817233800545962407163665886877579801876043281920402050253852643518492029157968922663004568581766187961393023545599084674216906566065194005675222985195908703895665391305994099122387586849251535109322009586765511539614926945349453553111487418703067073073762823238740258107067911870389654994048383178902997420247467498503991819954460608574878335866524706462320848454898971455020321161465955189844357428877919531709989618645143272900186033120652878863339256503373888835809085824505643946671712631127365222765179414834143168394494582644825056228069501372167870578802531885005058960874295673127425382893414113514109836327988541505149679002485724238672673691805875561532039795567263543170253025356630663739776208741968670619931753671598812221121442088237038107076777137595628290593806216583216869007668154133453036117384683393955177937753994627960160229296331274113950352838281635891327772556109315981976442552798787255896457661970963237823053375945420082077055629090442377252837573508110404005631183219485475786109505631350714719614587105169761852958639357577092454115019934309488848458957387958631624974178527859314927506517174185974951125191171329025534462400496594781211334835400306189304792243001524693835214136727845826651384912903320503135720125618140067375400439688289943969454204245655089655523052486747853094181946744093819014628042007498122032218374100529786239402123482749095802769942777980523749211359552468218896391058644776634658206540551964125977106681895478628696309809514172738463509286202100179292347089449182457456884662285001382686177468576630059727671080981917841346689830781965726813325022350128152664463746536716331509770497790390182291755774507379557600646472213912092042930350652273596118082236730584599004846823045812492169295795979120402568657598537278951193786709755763040094704613335373137328107644115322695237231053757431339894280068109412834869385111700642631717926249166481519887437530404753051229303412313771533780044996881132502543423829769257101712805310629329135477605614556555577295296310833587113574218521962546305790097450301791395338537202838383239650271982402202288468517193912359389657353434443819679868819189721380028084324365903979898299755255265615100220791561306614562154462171214057159004161290443862220708341310270604207500352937586907696060053295778993676737283529788896975737390416300581051474296568095446584870871370744803629574941622608524867574871007900646598476066221465086785553748183212367324172473733298481214527618141705964259555975594769606995921153687692024947208930205658770613534441244809663175348980256935441467110686655310403885738942699158158756763313819416869526837528039867984146524504664791372878904688702621258671326016012736382858092395684523604537881677282127733939035939845511624058786015972762485320481669053324795501766156439829695844228515407200353558480170272536000627350797256263034424695307780414001232930881060756106980124627158675108922397577874608007459606339672733531832911898374431570166493031496626727492617519531516038755245868918974885987343628694095202947640437152086227207635050661194474888264201812460300487716695846233988373413061761016097487866828296113823302972951563389247450920736035213224165209447877614171224406424236154642370720878734662426323829152503431813961101164014950426382981291208348880708089816021991124210208388691344131897766910831422819711684317256002914744233582369270822822644123014307636995757732132314945634125771762839177530672821931502316060047242723249592310916587962900404207136846789367874402799512877786009609955358940585296362406924977510586643331711946647675963855256389094304883056353737671657885787237601777198907356625457125705404419567156378977260698799610647882537840930386036287875044215423710096163166247653628541610808905168724065508031902300404178039433963229447852492299007335945716638803662630733219184304787227655637476782910140422893076965892206271437800349156193138943497066422408719380464987442487817578987089679165234331700323562877737697570675813554169252800596666070081549917903368245503652392650369066160000498643055710148907586223370986977189535260420969380543469086094557271822297420105620963121241799843325335008077333508134064868506409850106089208220531299184703356433714851772031698051632899323256377879370186698277615276970018995170835743224711358909573655967629680939597079255653225536712805691294393971010405758577840530214745169574365682523632042765452142348976729974398214114706541366845751840611459388346872777691633836836482824003481963433350230335004638534646752639162286310530873782876594228149688554426404746919686773623099563534611657208542471668216484874154810646362432849359529367145192505673593803047424649123510906071803201235684114580249511155126219637970124753905625513255606917386568238143501894114240732993434396575698338204640633103760461921959189344908134274635396523912634990037907277013460206160002266957891054964852458998567366879499242752029982106991858679685816544566928485857172858417210920087856234697659379383925707020199264753908928890137334521995646215057532608904384637947067313914954978288329377780027857680029528076635576111422758805707501548434089786726452229782340791712414193817637629286876308080994446543993936036998748243462636059463968557568661033724193311144153202108536961132201475644730695644237467072453670739121831081951166786220408108517947802007350937077634473360338759461757263015269429793163630225527142314831867481709735851362947092861207478838619693487966647583899624772001029951321460271585460244489664212210180090463277114079833088067963720499412920458627430037520466724580948003250525473360160269752123024870810842817123495800188728323300223659734819946633315140842854413055443475672404862021954674607130497185318394058150301538579500902955734401053592569678627422565190243586243207434264023130374730291319348764868021913575043664178900644196285166565689923396929465520661860556584531336682729308119220367901199421986722716643869060098586203460543508415633513879866033811548690325036554303719380470738377022073323076537334377387335607152767485780644573771138908209752529114993016246720470178986020737116783129020004422745659476690201704696902950036498771344805546569686939566829846617150786100559290054268664334320480686388512422067561569563376938732476869258365584075323020890927426460829604977401614653003264296633953818013496226789761706314613323762571055930784148667957907442235352063968886793702842017442695943899317134859186389234817289171837864733630673096142090624050147867220187527554436361687646847722328995516324614837555036265716229692896689941980307211147260604289939671384436074731591612219786278657497609357000629230206258304095645200350827374822652511499875964448063710380701476398894561606146579235058836629220554347980093240565082104453666852804149117363460139076861455444801558567129105441854552871254881663347032357614235424255158948841413246336692601505004531547310081793842055806846496679452636922997149757414731466086038113458777531614502581572469206526043997756538638120825115011915699600740178334023961536579187030622534621623677666513569180516618806185209794381939551344511871679838890491678456442524552098708732706857021700801012690868335988645219184634464539049847955330848243058938352614476828425651580728355669264395253387653158262894027909424281644970524954180434443049006834103449671525569685550727726396371947489206805129670738915922925190625023792390330929405022019802451877382785757728141177087398479161242352064213926895550030818349444917337044646648361575408141183983208664587485584169866892140065726422524263371881531147350462527731475478172419080052883345742258553535491720487554976161881639677682753443929971622248959238756324358467968655906708485847211082811143570220789931647453837578804972906278470827739701293344175970721128127138026231110134007498068507977995452707625076676871362024925948324637401083308804610646582907595260287909238299512660960923443023537155330975369143962895898711282192258834313464608318396184427412051348374597798745050240324695245618248711586129536910288332266058550658223684726660683196143341222287656201303248152467799790473637822125551141920149315914011962412900594986871352880757101649329503964901491057853680560731538508988899125808625042521448412359067303414686236103733875770827521242945402403388481955149178622091898818788392381480553670614711672744989591577560809064620351553918770306381683405886753234285525147285582741701451041464867893332311953805781313414629298965262433924995148248838859394721119807356633432469280062287326624457116575868462665997365196591686303434463009490919235072764719181717424844239821739371755498134065027664099431235839587143574188936723243279353667550663798496372996340737093681409655466835270863037647563267754199633755924056647656687116148227431983833263250792991185356723511845246918929924122039723848232726360503310495784215149999531283729032383267322884904558291845377210095004749980897123679564363564450539586101213751565047978642944290710941455437545283324237066600731812312828395050102732442217382179654466048813419731016530925772808623211259444466512796427306062575657305288443269861622690932554499260183022704281026665059891570254874092353210248723732789019750565585188991162406180784117402033958140081460975697619314068446208368954803705057872965964919158787126738447006572378628484942023143435313726751926397407470772585287010883097690743342787882958690586559181159796336266106935486361744527956794025357337601455183208664980332746473812496988688119834414706744024799880270116097404307187970123147710549147816621857710725994163354194292226178718350424423524897048860411504214280306999396380483860367510111602121833037793564129513713573590325846137938106089024554095781860563987619015391166705445231359729957658311708526671516771639791628714980011090897141686215952639352041557400026538139818416785894832424370904512904942160135886437056027262897483397014565922728868530825357552498466718136524793660447895972995912071772157800180128146189197029144120886366049562124914312893425853809207412931549041463859048006279315038804538605878026831842359367666322499009108022269382676217301873969077756574807327726105134263123098110046572517469381725583111692120885082463855349702666537895616322567911454955890903017291530202579379517109365744351542280040226809321576395990670341190098926724347954611770270324231615470843394077354449825296589785695485742399322978546705344392747410454133606896185771937998998890174734791727023454008272737127621773240395214143826984596013652897818500310033147075626121080881289491937233419639203862303084435925900399127716579019038054975970509461242715536116454505299654069850204144659198125388186287971490985350214913584284311836955033647352942005678788489698798507164626052538205482973148451641230102013272258827202153745791855671116203651774391168979762885321245443987789052834587442212357927404373251260178150205303999493994666637047731547186061271709867303604704417012726122314812130719816423875768758450416219288823886740436119936638865495697945988973505154940532222421793262650316246130750773660043698872006695545964481196760629082250433844329842698637261610884915088808858850949141169082408392033053290829239865397569612862716048237219071895598482361972871195859292077492542771629766817566371219781746217647243027820267130982284872971018571588816786644138260701157713952618255677855861982551624654657006467994156250961532410705570434880313365416634365004196400413426506250857219808853972416504639790142021076365831716462144629064511459048532250474927751352976871025225580211806484658259376401982309427038004996609882034348566209119639207813985067290731084507743202660009747262902537071117179820742714926117922574382686669915514453952397224763490560267858499847290796572907057114037838312785431251367137408485149933749565036311848218842992263229983599960566232790379541347046043723698508474054764962358534455985677299638431420649231249345584762692020156530890250772469068830541115623193746818278520853515723639746791023602107590770299190318893254378628612583729052339407024366960420879008767860420568989011085973630058702497050682960777944294910461413551696902039024082711710071624866823751543151013170541349119841434083476187763613791379361552772295744192870430399604226886189978746023107721971708785112127944130612305725385797176689860715816809874258542596991164933922340331060480458807373393395480939291841132775613550168620737377642724727458998241126007533615453614460514058389426073333756522445006677236071285663622380824877199732491605446311323302532388134278671307298854954061446161337593077796083397652173707242714182944872306415415134195710830818303831887091855551524146739270092361954659303458731061732460307724538278650105122543453299505937099453029219091804604626838884599286882096816507895254546495071997866337256090768055235109540046825056085094884698670513390425639678465338824259111117061677713833689668754144984288023585427339131668554352942518548857268933870723565963720466388586599326405159222946148417148410967972075288306285420513711378456036277834753357916796173004294303538308645019822087706264222580793539263346124432692407435091414030433856564405098872872128728840309702599936374017664035264423452439271348652492711982649189302975979097532936656828439355820700648606620972597792666950323765332411630480073784111114445245533901571269578051720292878370235717719679646508004500413278237001591925010746999201533266504069243164941939898282676795970634714300442230960898263261217334018327800463378158511995655858876442818435043595108438852468531378181110818048695197227403830245108012185034279999377407772728086572184142278729677153133074123905724264064216136322816205038219385394336378760478745807621422258481233466645263535297389698827945984355531433993402452549557519474808215831708176625278483380406973882363075864289614530304041552885401618691144154765871289300055800230413095620654176803253332472934591700065330045566846969098246525977593850182048531232336071546436409299103654411738056373092637256602077111961068021382196728162018089116629941766843279647423121196326442252201791544776814976460357306094700519572096095869811980124580981771718115953171404840553935925105372573522948062426846997075888696209665993695697735918100860645199351369601232438864742416680025976775194408868413679939573832762965866230339672402485409925738978071657214655468963163448929719459094100476799982923077302999582326845566827616990418886424194766643720535579953465695607711410727928550104418627748877915863267681887808751461838893498587937187515028676675012848942318794103002257756603086355878333422494483219722570020138080467540721641741916973805578987554542260095498691076751097565231958452854951254533137971593423921816280739283239872688106910836116058842379403055431581584742466304382776568069535427387097440123727633999758565702619368019531336558244664140725012912612482469515935717631802950906978737290105822514728518274887205199823488320746676010649849880364994797377095273780291924841902589398596010430179098419851164850270930706516283878624829378214117581291605783709045964502797630680395586515812153563772951192766869600978967791217302753950882540331838444590741843758720139771113896501952440783977805029915048941286862487937264685657732163936930063802942828927915145689795181529915471057800878374052249626074763227854451963839354066281409576288838020924418536377382784395693086931493772915482639028747087305699723288475731558572237570719170945642038157756693053544391287508221993801052450298591753099892615459425179728586054882918019560495768942684066173161861550458718958005987236080235623552133520343060068903488915901526697628154577619366190896785860659384245436513360202688638916276860644549394073401541133396245820782406408581884432025781410335894730992666728241928328884242536445035709726894492275040450941726887089918272350431273052078827623241187844724118260133323228842122940596229736218745347670341001706560066604378875917822186915357104648961582258044940105430900887200460418458805115992891073498947036209771520832027700262818048051741841999061387810488064887243085369212744373380224206588985065698067945563925673262244111952407301843655821818625626465806566379623800903384541206005800139980863235752544411933780400399267456394210272086958815230668802426742881329508203222477717217785275982692870694386122074019154786524302959810384121154900489550598297485974912475762194090426439903276402359160883608471520451100851787603946664290788305914424753818777713661123702281519501953580904434779038141147327614804976041785219250262410891807947133118746986676917520732020538852609029752781348624778708553444865640346729022944447281667465187631339880914247152634248414000048804943911830111299501563921689139067594717839529236420862361780645908590954446600938027145943381704069740444245283864801286362919365281022243150447590046820881776551711124298582210731326101965301770787289169093195233892714761304523529362806904961165926199348688180552342463318799829172783394715995351269521792238078695303648940589031314955863359699041150066094949831021596818366796391067807362611087452485454783460977012347325181427363661049862908692456197634548939088003314769468211542703382827390495078948787476737625534583104754559635158510292926741634570498702234666915253043275373769653321807220932512722519888000431771823962199372537655503399257620634632723726133908265912686833824345289852251537724198880378677531710597796810665726588078987415741841471227953876706055801177584618417206930140398633850515787401807926847455466429012290440739217896555301559495018629521691048435972273704347121367877180907337403039206770893530512040325752700045989612027406592149482049677516908304086070787905529945169844243619792287691751593450114793249928839097313839638288026301792157953420820108819910522320509603833354505401415427637138838522610114572626700438679066343473600840063381097704451442409938296140926597837271683182950256099202357290010903319161204801495845179886247904676072893939404828710482066580716937979235668525922786226051103221685915246578973360063733518277368664505973907804777257300065998434152433204548516284377775402028457023239646857918798376338486654615576095669248484021440541627330981234175507435304434416429979345287534393620549380140290723502458297701136265235833891006616689984600960712639035893529272001582721574312065191597977374814665314015852052708864012461226224625152705075252092226421971538803796570394869762481092586596239653673730287862994838428990476727971877433911336834191671177567689627602607164843911607739090261778882303794959907088106476276753539759225252547836475967085792134991697459918210006078774742493697683929661580345110583155127074087021453313619281954261003354047948206175846149144903123437005426137511247843785784656078405455351992118581112555428149552355941601404745366596869911078431620395331286053098306503674850737600011073486217027069695024761709297607613648476984066685133413704571022710774482739565272643596179170684103429856495885089893411687256384043525423915716086632482593374670883675076507020873414549944539909332127130089064201493609522129993285559239704106725418502623683532314592732150208408334593571010145301308910008818947148081292693719998159843188184680376283315576442271665517215719079953468178920745427552014965012139208898515829833451578094052507629669897294456789910698272634805436531001225005240124461415755130292741378627966346247046720054505089322435061296323030622051847523885698470892744953223596150329209185266065451422514892298143381882742108722165726695675538240306467582640444707618139759581612486638343303573945773390934021097162892151464887823407472956291190731051118315761535218564780036671749188561626932385625313887962238348863649910996541877382398407803132404563460628731584952108853135076222875028381678761318066803706815790233366791073776254145311595711277560695192094329438264596608738690884732919831248301460011795531820254845968638790622921244201880229117836672746072288730734454277811557131388038718879991319179572304119050383094159772043614231955761263291008956911487970665368233806282982128185598738916288345573000906246332683080151465298906235658627228036726679632783929388731971153838937769064548603057847264218028492769503493509026684879771153201402076348413817343233959783375248424674365421477367813565495902226568005501856161853555367569483449051372522760941101351732950743410745969395079988300080374352894981127609704243056855608210784852092804291459491718819060062047266076340025729180541286165037101023494179521707807582435121154437713297130153879228377783519620170212378193718652208956160647346992797830836330618207123068927659891064542060433132712788549873875291180243977945042320080778541505642932480485509670110527383250128411097708755930136705900739271613797972949317549228986254066407436600166230704610322302353691760892423722438401623019736959313458986351903667490008280548074778534018429717308732376019514312262483936030442197351244364097053667346466566611713702674268317227728642452715904723587393178765697322305301709335718289620161342908492566152180670434650304367530821891272344745739944376937669272200868839076560932705061600975053808776045674346952108078016226164554061140614965530584371079589321112947501097888109505182017859332996354888136787173090214403979206021744187284467359238345263313111390667956747312017695279049305984195992099117796525505105119490278487890856381225527489966749563111199762690727424847817308805228918285982347468102198903389175986769300314537460808982812853264102786855371524165674861076773783110347138623313486747333124552565121364660265711983764617830087665576137546153143762438616931098642768250970619571377743454903718795882065191945146128438727872904788596040899890656935987486008835923496291822286584276212376289467183907799935901564986920437561050411806444293307846180659302341499099425526544801738433187758186969174369082400477384237652031190677061204138065435002199155284622326374696813486427452533005015175444182047470187959854825330263285524874201699778396850912386170113840901863179144774059397035947256273457800169123941250452545220231811183233484528106029927622886582632592508463096363771277121844360840664934732856774593608146428979960808599445266728967343926941188425912133674832735151428279873343374199956613588582544717987349462371459703232560132926587159730253787951814512003419232079209935776701648177616619431583730418911306886266008495622396283036401185920803901295230200507955037367828146613746759997254387433903481412914330487583182795307068510822955334688560315196487141563366205180730273682021382587399173926891097257191723882612850608906175111045828934393072902103695752638814673709968174417076651023597870044921834969394448769920475882888642139554030217044411723659407074734688146057492135157202192679159583543637341781011008987027631205807741755387514597232644673548502090801232043281523832982653825425969445017257205134224323691999408601055574155666216023994985463187375718776760558967361223611081551611119589726963647576923060632834513379378239690556459357694883922601246950348149197996240569806324052642122499761834686461289451917711288877859742498910451622339638934389310105337099153135177883640007558880867262499805782073524300149360541096977404322786121140388114979687147618534327737531975550840909537542352856198280094516739978210236473034623601226115001541385193518148571285510180956822044358535512325696142868216266327977808396340742046437842909302044681017070314603860234165554584706946069782212880216867502111788931132850214456353041660378583780290678776816286351900630251619614375594569637005200734059106343910395815048878080673781363294337771580852090966324081077680787677232532859978380188929115616028333503916817600714202779093064008103730760872787887032960973273699201689364748406422584861970969925169037553860344561045586310606628957247104235057005319178706847588512635578712159973802731561051057102525482608000346694557275633880245882644073911114540182445227456896167088844835725539859575790770906923746778436924553888300513998912622456433348405728147431602041759562059750906064115859786475220162043371880409532907865398903390009447929808962542610215827113393946983627276394688295110688968304310536095998514600711003969925110172731151211383270159593092555391139692622668488968458607718386722461280642984659949913199227779030078055795680525583131880833794366648956193842821736715783656127840311650885609063842243427385734083196056100303956434972314770666032837625790887086680056287858998694853189908906439055790602729244287416622087881113432411750775769862369869480943828047353836747857607255471776081893031228045637018845694883301622569099457719098107232137162235767719609549000760337940931764745341754577476866757954439428066677159121166059982794986536167835948278897077334983822342031672698001106058660682150956188190720951038891561703034496278051163043324475267104852284706933317039999484147368612677071228213471219529653547905540208113344846769291078490958899504714449868644932444369178416544553139075931370063460006511169499355394202731521848718096173623542820128812487713038180578699592460436615410219136127923166157252226131503231845293203265202998588904005134203115560492425121219649247799728318853253286527620531008595194096167153297076562716829664806536925055304309576268496242042136906662072868836599345979546776682123627697572229826885825168399733575318766544797253870160633551443372964844398733302028145369805561835799118435445239206017829518418641570467253319801256081544884189381402929165878653499137010640507964434842013371899103466828685673639414589913674861198188355347661012301691162138195982625968826208922423571462088983937528414812813030140462888464123526357104426289264895868385879835889267400224695457533125492363974575779769501592612390959991778400849101455121027249975219687544862679462191582176148790097046819360922607103161896925020478898395015523219536617768249606544842461213184432889509926292569231060171981630251786684640393743930861400922155582709018253586442381870226529705414774463947809476470537966762624846359880311019258472339545367030571795942530246071541663289495239923644048291085368322643092171809227110733061551694068695351692602864298411121474675801698699206385138602060235144666101955063946708309209555326653794263459255248505498284893773775344631841836928233629790149371537036058379154412402287581755156023403082074906622602102653226019917084033575643973221621290622987486134743088197858291946794898645360264551769251576848448049955868652575780978352703211804598119533002134863644761632315419479833778023262278871166232698356508118406401806336611805504900955922508354192172464414677523675063715532894053714978126183460323438194343885779877060537847412147707283326423486222328817271726479750321250418275885313954196583600051849222436753404544516578496620653753818476815991806743465017916005840907899774331126083349279145526404314985575113663720431326792922001339708623027301707886174259067132120580683736259209912680534855667127014723258617967041792305681811940294801529749040324248611874706967268602071662692752756243415553147923571842326747664578854346978258826726580200597082125118245211221424916975509409882546492815322782689822184188930482848669890672204121225457987348350467412340371958140257433527479958245076157785533479113316007965591087892392283210000131458396003574931131210156536951153188248318644511723396530211617460190778683108870801357184736886706770857477672769459834271924417358457927461903469537127889192442908151365853714281173015943785956873672653774333595870269992206284969981346018439546355299351327202859920235864298965770263011170569150617773187818098828013797224038508789496364521937223527947734965130477117138084435771082701548328691151932660266441889292332141273606183521626256125191646926085523195416152230072070553373544134790377022924773304586973441985832027556093898278055207258046731689066648151017169915042377686075039045407760766483845160334880160466831787958205109799560872555161286598732152268125381965754254127932616995878014881291806908087488625598235605949409846916686898110810844411984371840870000181246980920047117743927440561603384395088183595965874017066412620716767208758302618234863863042694235234270235104042450142304125140397650104998286578262098088677326722907146520926566169021916776572284246030458484276702199164844255807860604349636565106161195069885020947072396910701067725857993967189825583815811869211993618245656566758687106224754336936377296635985459505068519729341830948676655008122833894578841959784445659320970502433583692126442216023537308958609307654857107099230009343120466288491317414373162860456829528978882985633166787381444246918624478551052449795355719565046204644353471350199836316717339586595171061997575566708654652420434338645361698913819599905050796135046557020727613094429418666723048283881173129260383112167437855787704564325744288849210802522422816160330408341826627813074710605995185757958204655192259196212489761471620928667704306178908089295949592033719754297562417854640127497977501817180236043492082565885576822724530045091940972681259424961343798996260751884159787274735475246292431816774021469261166573054896493629602842278305623702131590921731668855662998381020036546255073137675443000201469168155142149415840005796899772402798688111510003271643604204772304927599741936496143680925784675888244091913553325486718660734259352228288348413860549367366507771939722532294423871828817624060714827429986158510849352013447724291622077723663820379413197722635305358923911629998038541907124589744296438284942776737237769746330437459746243063808682399585093977170381525464056318668258596252120778512104097669202184074883296654399129597830756074172312776481359423533638730738775075046840426772612202928557157012554556503908270185857118471709323035597479418656261797879916198535800096470717844953295755068044250298354050345585291440641466125383946994151074952942147756560776490939402817042619411862001763831737106785542170965853382710881666128018242256137990284026204216991416524633557462842662522037100901318193773299301710879256376733655299673733839587282377031029941543534934785202619400423283018816890769397666161351416195582126873155708298589811832657122299892703563181131469062215952904164251304429569668056793435626679621227387000507463283945751698261547375791643223983449981343151053800255221619080800323103141252335846995301237206412810118329872430956224825314830749700599331995194032053422942944021341500435950636615722412047952882383637473477469374135605154695618938235990759780006121701701213968022773891442614607747851237775896992173097078956773697463990451513002029928362111541687050628275345402716118590666263322844761478059179421026431752618572108470227701400082818475501147579566878926741109078275575152604747856472626008213550881010371490261497317047376570762818892523736851942040363649630693054652355006205439581643223661249059294894631406145554522470472997576468825715939098860157597924037366879473053021920676581931108996197106405196055189318655402919404586299557782909145311982748168965150118205307692770401034543229097097008741436859048957581207564039412821816037126627888824369331773233597173072662227248374135809879991021555337327403704753148968686540043032243255731638028001823710875560903753361713822087770058058546321377296476279330328284926450490306280149827692732594828645303085510573664213496208625509547452364861722909993131444957068523641073997850467534238467801064400336638829302133403901909592952509921195398754066861565999410463199642833112324465080702421204947957212142257067779940379479019816876559196562855031161362687718891035758339240252343504572091669034336830140491746670775714574181153378101632288316865767463488440753727334014490350872979760726883306493936910941394997250514663325118164927432744788930229841699626269256519027120936089521983914148163802451935562808106646099427088951937687159305741307857755080348922653982155582161409719218489069793499525029616734301295943384883383364446909904686045001554816345798355699572582831939609546928589947996510409509380398531781787602859900995027025858322908957080407156694546018493745543436360628836177316850077544305543291850378783751617306209406443612025194460263846082430653956784073896343756663991645581455630780318357476974114017728649926919539234482958639551379503681341025417817635230026961055077910880233954528708981237328706856409318976443512749865085811869230759315850330846904862211791872659093614870912563848422534108772696251947055127578985045294752155431025143237631745157909380515701912547358800334683947374544918184028534013721780077686259990873790521457044133802197687442657764622324023776672376985875059848220928669337540520432344059260616258138097353529027872616666425863002213642087538645821532676928399185722008332928363751162300341295568871433924114230552582564967160636132251731634072598387549992397277259644722657359591663339940700829488433237885801013636971713436977280934010968996581168850040415346391479110731326658842416355398482164633159707553094812467642988269498970219501524919667312709216140357295843147145274165000463631659855116158710446718404706891809004967023761445708726992810086995265278948706989639090969657222582452023381151411641286394694957380763551271455629375238349381147257527232373967749542016064014823938883334573366604368833486950261560786114099121111713274936599069177466396845987943376248787921209046121424112405846724009109293722502076155657635444849890278119251813073953297196799824722784086459631267553246242564577164557793490950715944663768820237357369402741019381241092563174701925288145799630346037668542641950607668283699003694814135584868670417964915132726454014061417381761951711852549479781002201281743783581478864173442279298608165826863314314687860424409916687681734979545776443612601814891345860177712690689474589940550582642365566458035645826755702935812695711354145149279555550423345407941873836423263887189674977544513655066012478025062000269468651036039077952006835093249452645658756268845299468618458152759754174064319639104665605210597201186268000944131832763960962256609590984609063983512632777689082463330645549596223176868711703386618894770145535840579249904180211810976813885331143842521250800235288625649028042975273476761926798276586226964954774516122621481537965641648102662550207482234846125554268402958096970114603766124613832928458371726646900589188644844761481692544879264390955268362726546710647525302366078752692760389704387341227026298875672804492956206615209895962295894563445312454550987691610802875315882587972297985583455863283761792148785062575191918259679433688930287990993005718175509649835094567071179644993975250336584849015527587593344336248642386525561387722493416984372082744469689482868558201080336417442027479173068206471241043669241867741683219794745155658190043687545858316849243810153424805656546775315152221550339926685263812210913359126912388622255659298289118888955916187919618485104988141472548993642921539015257667094476979583151031657723346691903233326130673510970679348586023959751507449756862845500480603773050006774961277001572475174307525099223048896760749996325139195762946192266370620164345249327580771967888580552772970812464809899174188395672745466998268868325380476204513630335875384871729912198053353119509505362103223173810556520105636126039036354453115570343369529051467960940829579427464540949345218136614090515533609374607131662480357179873965997802208565618190314866628487773565617627752287024658812468888853357273947109379195430483345413820948475063091144346211549934365922218197922014456173829891406549327254296756715981553012312703994608674663140640128705195946688754715499140247186428549897822664464795800289097161278926695851275648308570575576597005859904245119192641327077990826823614269156788512651380812825507483400676694048240728554503402743953651682733907561629085435308995266130080192188247507829903300179789320267048262311488714442237768882741669156066289284243357786624386203411191563909392550339541651535209498075403313819494842869786369238278063802258568806776535210062279934884740035964932691104126732845950033760248812207702277288408649642943668766109866040622040979406786532829172651426413716698823796639666959249315260825408069530657005423673098374589360005610726976167856562972702769222957447630657165745779275307053235284234764709521516530082829844841357846808990661158651373064738846015563837595705663285157755037078435990974859290981332450014408054522034953086541713087725988073468973688065416630013137199491711790854269250301773432503367207360514710961525913383656800038867180327266328905662537125869283426202327522955098157296954770579776718739155959128174452986011429573945797080008848357347588957509262817451551333782929384145137080091344510984314898670980002176053112386036784745596299795349424285523647653982608397372541701686511731083601370069024050719939788515758763008360456927720944119100644617515955060439850733313296236379798851690080924936823833716654074759963743868450378380408021756476756381313503002978569514416549495540272000067080789078150359511048579793130526457326888145614637541915822660319011786659046221571836019331439670065278512876493392089830841740858464443437781494474652625238015977094185822554189394484548034961172983290183791987199746878281686400666632156751695237173267662813917213593047596857822869086897937903828671304004182039925367406483239919248148457105643406884548357239476537415708535542710957014710103482084946507193299493311865827764198182382534202120714530744384690733818593585245693254699099209715137474874629960726512272114165001450116195224382552165818808702716808386399652450299153162345703030882268048324820594428540712847721416166273220642504902318930688417931027705901410369010431448081608551480912387148596530387998809713045925159872738926929407570710915163666846679687502320864054116512620600192179184894152694057404668294825171313279035626189420832244910263696431110690120579290300965312886050501001322283938914928530080636500849034875232168266200619739877933167096765091103214277905307259410237188483284773937973967584017406784300172449669783282282433534884544777853146514506776293553874370084317108098999539273695729697337643835881875731111112322537280495143394052607832436492083232744429587004072294736280374892982493606609796670266658120030236882573174884479156310472813429892408189357598768067534813934987584243567034034645401598922591266038880215911298577890852594046588809718489214456008475111418933329968282544573902485243014925005507392908367470833900043064263403683193834849588606483214369360524285729114372573707686210130101518781077267922775805179191196411274845017676867112631901492060135914089329830294152212033875823134338476536464301742631745434711690321500754723281121425982146596732444242757154296043663736685916052925087583853667843849363352242792198567915805739894644982476651824764953668690524179074343006166223201356131047440390133106755988806298818361294975322444251389340785470268022577045299524241123728508050025904509460067689134481310662793079124923341763911644738442693010503475791805009267511444016611451415952498286537442712132581123377994862975271469879858071619946900299095406517010163146359955927101901452536929254266571889042229418712795479845849153856437837156288092930332828168377719554382927541067039958983682092554130193701730684202292551977368284176405055361795757738271181675844779363877012443086994630144410400233603193262562168738442956304478155058678790818272531598171598095101747861444812196875156883236213400627461126924019521172893488327052956476416466563180011832327466601038020583363209864491703426097626189962362806368928420387259971156912394347944973764572973611396172132908433478958082485672479643864751481153945399493898684723190778222980305982851051399539884737152197820044622108858330954052060250205228798463544692056385081822630619482393878749500756013320880678309430323336481293836761896063684971246687630132720612109976515416803117269417225539177194229306077457056791698002659513872576519834467504931479514651508868860973516281381097473718870204287182061837349324833866578518934329639600642337056824274174009139381246095981484506665996289436854363858635882200684815408975870381916546477690783442584376542509032221427367181825316482966057195816588891339254602661420495576184065594509426863038746259378026076704429856167186059411922449546916415509728602885972551288433076862556403883195694263722403041822713957474113416684641757463790860062649491986768755071215473640580685871848035943004995660420870606744897612387489247156909748109822837746238382275716976054278383475461354665576721654929291877287766079192308481873009550591352654666299844363710373401893567110644680361069796969786714950707044159076019741235192552927935848660485608957486149428352453372450289310428110007039863256713318526780261896056678259862766309083101050715124962068330814463707231297692692588354514503500793233828118543693737262281563111189970061746998803327352855979378087951258012777861007248481272360573196267001910997134100943409214076603220381132478041326089480194403488588440836270098490573644404997223208165352664823324385231620849021259773776794691374674516705642940967609377060633450897977010132545433604350550349338531212518189402981735056518484910818120527345029594047822237474726976564140154076634054968154758665217346135457573640733199169429161225891516213594596192562184133604180354261498822630165813139476895597205657665419097275402112945519603334757279134575343162516742434704156801384818082126198581652673163161471813236289239297247412389896503794178684460220938074430000462800189971980813018873793798117108767099648633955512033075413065681713884379213907304100766601517212797185568540196728263358971057221443492666815193756465759789093946789468503521617703245031959643690512223166649841665928528563876110223901698542164128067447584162597794417835824260624174123316840449958883685107797691583464654616157109589388383093291584667742548212911515977749904126062509237845529623931764774796232550215776076622715957466273668209335197949842328125063462580472359195516802795130432967353267575462469348505037354365942229006331260631393393514699119380167391232114865451256716711848905591194491877968797930237610501773537891797539705493871533787655957821653599867308341605208269342580982571664278139211928187714335986973706905479761227668076809108681968150079588389267473329486629285953859195987204169354075048542707451968430862684639020274081947153873776236873209940397337911665123213445942542325463953909394630175633700072731241234197795237811964833150346928578123754832858895223008952378576991692696939570200246007103084684054078652326810207183321143584210267495217973015244811969980837511635135194848380475268229138052026560003915780844090202957140493449588366488421920374898086564995420610823291694741128790403823542717726988233069425816993156088936529003547005706433913931590569577557871476642629655262843927669201416040976379668301679922419265627102859814910236952840437522527813841333407324147161604066067294074415986879356408893333904424871055364546039337795706493463359577866900429405315475028578257702916665220554396238703650288708488322242958420631249732344804368644698014057213121012472340198519724278481709771445970127658744431853721241225084090991339337449553585252816471979065159371776293169667115680400193029023213590974912355393456025383190644282939627049649134774840268507192263805720913262213548278011979376069726471624403858758523489072875180438201881750824914773295175389898300778189289267435275748976161660490374787354629714312870101439922870650144075960969903291724392972881207988387422268145793722804944649102189161295127254473598330552581019535842207621796652041418184368166024451833369128363594672808182595060051660386803362272432515962121534379612467156956564049835430119319862900240345841851838439225798936872465276409101490311623164669675194214802521105593749834720069462312738434347225386071382867142442240225658461802217726130548449339600404778365500564018170875557784135927820181222067000380660910356736040817486197608492830119493363194163742181788129154753858376927571776411836472593430902630754651808518240905985404745482291198792257212814045724905028569194824666509779041599669884713714301271667317920656851792065555736421232042230347849291516959943810597343071483428303792157175500670264318443470036421375148789833444637939315202871568001489261575666597350587976659670087485425167958263258243934660987203630047642170028701381078543885219917839463205882215537442532548737470892280995741072423963408015488903104905672136777450228095148913959982598528764922670881748125904433804450740638787447240302012294250927991741099626964065565635942425828461453060402551581906207932601510643174824222408480693920311549194763484581690330235195645804154994864122630340935340716017150633726055534089516242810380899469069596184930985299501227437449642327751187385629319902414584335341368713610615033033985035039279328735118176981148158780494113708503681143044369373990613851474878975336558561049082299825689310704269238042354365043071145965428770260315059787147142917169202944529852696888092052578816525723407217966312492571055471448672084806856354569717596598203064938033889757646422862862630874166192978755739684812390198564405261011356604090178124266724419197713153292246361231660294031784405601830163314936355442432277247736526883696593755503693927804263845608925566510134512205523490855075524066435756875173849002986012107963599311684576980975371079297879461624860981631454400189910609527258012249159440860860649379181322470985939268142994154793759065137997312608796329278228464385826829829543945779728678747585815726955675607794497100584083146722230645732752602753704950126751005234528625939270197726586526674999150101468548464277728900393826780975793055207248331398354100367440835741012858645105645720631933628739319094458249591555293174225752886848976739751390491442440246203409198116919728746323150237164997230957234747762325911700680987059285202362652450232280047807105158132556001651240043051091097382834332168030501196629809003965845914223822602933033735898661259601930113552269240188133165322860147733828619489002087958587477515535862501757614016705128166656818122426656119811124674598529259571106512064927256007482583380241122036228587358028179799073078618676680789281118619039902362089560527933526980934479029413968921357816930448552370431830286232263459819253977090944277829940280976717380789628216036931190384423112787374636490254240793531425322196346989523433928816631555474988634454837719837559447869559560177187759090880055632436906694909022682939284206088286093586000318603298124612429675358684277662118468996409076188893912917771313887715308976278334355639359387511016041134409872290132611441729497789796896581550626048823161772404776075518114324659458423284348580976006917620684031831789646307767314470892908467746240942896933833733902210720589246882672017576083234168320781862846702896712189362835027743808999410780344011360160391581386512205597877189496037481567291636728983511512123465872415845916263840092992449819325370795776625380560419342599713903739258326852104897992475575247703508430304793415195775325429215222723723267982944143850611283446649243075848602978087846522872801219129348938537722791596855795400293956935230592632115923438041769286999425024783310627075945198121135449558985963165647278224344946677621826946548938975012741969253230045551560649276120366986707177629842090599382428025133126254779716710063875263158946176577256310292902669275806472942551272749265766471925483149153207170006791937941676951649438908464717333890116637155412050416084545719264834888785608424839951665773227479213592119700228890220076597682361569263570876072021417580059188884215782680657684970604918616792587029128476751340406954049741303316204269388651668130715030775577729508591472795888568594989083999900520311999134159990760516727963047443265457583837995379855375771933019893206974497329823983755521123577466635879163895125261700365502448697369211897300469755261538836263173810798557601549271345511727897482104364192060738576493230342916200071414616819694735799988844165033012110264556322266376882127386253526824194646484846625219522831997925746250740978213637929340316845148076176400123184301969763775705824370924660987627833473794630225923628403481924095614901081154162857467481678746514239563905290987577841865558109367448848469016630387882828777999747901032540832798690997038324604759227544096854395691547526343778662202222960886147062778284691159579061245809116745389441690367953338702506471319273878485328388360052218418124926645520989426138052865218992736528468986639542300831713970507715736869140762806671489728578879549962312693976155347040912604292861151974047272139628256851422009044901093029409167190893259060206159503165894334095607128050764296409366667976458023039664045275360529403620806446984985462208792634729248089518759906947398789032992771047038272471648517224224608872549644875295977652586751914045817921127544905032180453213190790793431039101582804910890838649859682233706260752979353548978663455446141513267832044984890265778346060797061684264136041971495676729394796439173144293052133525577990645534740470289841278194537280749135704415976626616741722004400213677443438113641223274705885200554518711226439337940461647941229677113932146858716337791916514420410253686795770824423160040719192442266488351036073466738577257958580065996016761135204698014401408608689075823941768090997382493530466935134831609197507646682455288652916824293870672174892053663116026136976038943608853622553228124054261653915005728772743220414397818929828282500970719770811175846446331328979836679381214479000151051021085534765989765760458912410668715708958832057272464398353187148960289781432655889675095040792134211370832670920660115452027946973384889807590927952957600580947761681301420595582744529629859794505639770523254065818897674999391452106779958911813888363559938954077405328013102866254584210666098540487384106644710072993893586221463465983827616252428042397701184191937795156822845677229688487624124200600782503370054861728295206372105898418479020925510172026999042434993532106535481678523078250104721312064892237608900787780826035459105716407343784620558314322475419106854756315537143763533200802176952266829035855200124218342853257365220527577320598331882029848111058786330810133992773701107080706670191055576093031278859055931975194736282558609577813479235507887163997446808077029902678448281434430268730042279656679170757692837956207754708137911121176190473023461347084892909047961188556250695772620607972173041267853740588987460654232331727034231040506610930513269454714657613719575502302839587469299874321383252655579673203517410094371342349951984202080293268811920639017875106369100343772379237299610864956536853655536548972389097307643186307245331672783173109191982170957437226507344841427571928618394214000508161601263254477403353905048589319359742984483533170644362421457684962494131436723353516319165664394669925287385688146407531467881360371245235088031796886490128313198721001162258763763123357923822915596402839215520202918734722495827612606746873691145633732511841262058434496598652439133129296554593345428198501172713885770209579872130950931436201827129155536835275771718261426370715601044924586612932232259920982139763267911455986623149354666748571623310399667530716726802273968516296291301249987371239139874840395012246767239661675385094603583402269351622729781810676486792101667565935547350657833389601422500614546980733093478142045757958958069471842873825607855292100571134975707943011449639200035564941565660940453603964576629251314005106448822360431848602243709627960049445732382351023325902510998468435399363896552042660976525352231563567476639536218700168016890405643796647654556967992024251879436938989270130046063118209588448620567109339963316922622198655185782231186944089269473608240347322141638185690702455960120656085022198819900534310048711233576268044938246696127279450356206512366849876204875717857992690866843042504148746758364179561404946503215956383915079028955195308445738558920837962528721315909527759593531701739492251252841307289457561034113808517269273124137339853416585819247001393750162915038265187459871968999628682840187001083253661227392825291509625984085155967464651599704817558486570647470786052034391627741648793856751738964855781822044284937718006176085052597899127707539953740776424030372912157182616302493294244698434949040277685869070068725775828467892095760672165777336181069706507437932091199340222584133303436759936085992755300496801288612026301064184361600963433117305422887995933183049842503084651646559979283686465691904789889676529821932048675446829667161596201687437579852715212581851846121128577992168153360997805820753554507058811927451866179654388648164922477963628685648052424220432058262635289174747130090824948206263674698824113726027008584117721270904115208260095941199427849655652134456184033434248073598287658586448139054955119545326559974050869598737952854863127577394492444355183949139993613692969268528685150838404063832719399917839471844873400764674287379839317218165271765322313421038420192849901399128047651899939576402177670353492344523232159443560014202426223278942607144078638648230673465940460331278300513394168696986264242552459735057306599770199741220884419568244531122741357204944691521761531881943107155823207236764657718575850876905230912448451053854343829561983811197816912922018588973074906800925505607372612043474768394346091092302418386616805609127720169169670955758273626800157055379592116435557826942625903224437837246621986398095856398260097551717617642040094972096018097250908478605199893629298481483105867730855292626785050823184819027209383845019242652459914940399103029492779203266250723085567959088165195645868541750304134111564132297775247963586686902866078613116440649266061209049050128518508275358684252833500091587363265338930232730367166767224763776227184756690550328916302079193788271775939689959047913691889864787389953589395374622084052940706859165476553649050062211931423274386899056590688956869046763521893598544629514740219837272728201458715201022828911760252178214637640615003823709322982992781294063291696827973541484026331342986050467454051135884374123625318114172518382277445508526311946083472593209010919847939691698020382156870269163025526643838279313181221133352562201585077564611045565577359193209213068824521795628916214063875606112054851422357659852211800876988391164151070567587771875192404065006396490405912429000553103682075186271638979556810258276094858826781112625147923033720633522545402047992729567163724089436541806447763274345077449986830874584041062265673210383454784107993961395370855947679031088262562445028013713446609219016129922832392077133447652060105223799719852695675483781711664262424752311951115860998579420309359563250659668613461920669593594262447535045069091204184456350399270960594687568176730583208078145472600975677277797832155117146662976561409990498983032371796325992006248965521096958931408080823924569325726261445588846927112774717791254271736037931885337412632275480632189742394419019755750515442222034352538001297506708223024216933888802341938889395554966949854144521172363606308749485134819359288338938458429555770614320029396398653626275482166092543738606827365255873134388215394146866817741456705573774651788948158211891701941818561136346201003867176864969521481862539060400863218729909047605662826905883793801580751504403879007316720803996321627514966546104014792004040478420038235976163530863793018766636759857320551484634747560708998811491036875154989768158441583172696596302940471880188170465406426548232118780989600519322209647305068473968272373540988819215510862744326457277805505064205516389370349295180575920470005618472223831436406869573849539748532192548319968299250297749082442486692223670879815692653364290848548569342680596880708628329083228050617120808475122663205246150072868284289949147452877548570877600313754983504633711763019958072434252994761738607467282020171043017681616817737281651542984888460649962713878567783309873705577586920229741052251524217792536567185988658432348176980365616763066718231962383309380240278325412829845666756449514537551016721882426235745279003617058051845641251016082907795651414651169751512463439519600274048624111179823710214586638546979003490758969375342251324012839555391063929504719894727519438315849950088706540481262337569936340713833629596753765348339649869456980173777033194337312282448919970387395047304013444018247496875358506006613692120003627940195347192264238868172685891020394289680016062738633812343971114144582344818799908421075021191973083678294680515354188195921659398690691178232250801474276095536259766577896342047881385716559012960961505867146723406707910274927399834993738552756880017680778349795601283701168566325920838283223405830508938097263188137703942467504915170369464073830295048004605759269764597933077607654906475533167842812250481142507183080907365089020959967267115579362446130319054416880083803047181321694955038189072408006308379191271956436600686665314241267302744610093331087013620316400362741507995361124424691294928647973016962472817999973400906370551596735689198250146112985422094585128511992898600035947400898612210819131032464274852455546279911627807320207564836138317111972563815791182912310552051064206750020531839362464898034158647950277348922663380601669833089647980960102620162099896703172300255430666088070122547382146690975157802320767319004286933254198942711721429011111626611291884971034677961335815648327578995212490734802434064994194237192444080658310334050801348011083036544789705752166684640462544411822806715388767571553511814099198595810403111766138271247100585036383588195977633044922443965910173762215578069635028170482226823370811786335187744074772287878028686597731214990750275871821955006049919822071806641003348943263908272017295187159751768097350769651194023573614883257870519635450053110247355044079177844062869077131987781210312477304798932136048228109680606071741181782995787589271784648574486023188463225048543123681086914056986878356050787040806772359607957457883175240455997804690776255654905442897335599476385906596231179064574304373902753790091537853737317022784056908378812085309738338755056275750920483181958769339114401983238294090382129726944586796502585567467233786297623868798384754433767655161105975072384524827249024444177496566299041395735936435853754980455100335274067918350569481039133701521874574260684150713230009520034850226384511212113586952408556022391549536351162230085789053624569004207722178675422827364447220601405528866588485629576033440103815599861247281961550022981647600334970167657611682539508835525792634203486127111838929071566190396466848729075564120816018804904699126720058994193809756522965110536605746550458397815442490898657700719760977915878096158789978518522069645550325669985256415467455502148315939826176094860589481173272993740044523564213354459834368877182228361042584876798582230727546612830208670924237158053067859684003420589967719154011621749872264042056460920937575762807237463604733761333217490036589392770705970992359892353743745011569717461188627375450048007409264087561618295958078037681369139655426528358825271450046538221767040904799329046924979455000281846898354737008921999341789695665225003336997499799362347727099349209913657823237112733070037805695937564446310515632769571972613273245240454878364608072611070809691494846136820290509537355088987554857580167684522922403951505676179600447100300534362937124945852438385187268656514648239149028844458860045354407746807053948031533236021283192314786427432029702227529042550106159462106457129277558010987495349313176263790124594804396734215504890117059626333648098719377448519937687965322968959692049501277273359484611456291429757337811487069445931298779391309267594912252521801219478534608709736242836546895947369305591337148769573726198883497876894168191384023429811250608071105175424537103965868246693265769006694722400601172748654381709441015355969792805702440504972188408721057148912549308735882875283637579474091379196712170607584463939714397321097436190855714832015224021306315322819502364143285081526152582710575402428573431822356733456084486686436024027993415898817855020873443920540744181280291090027241266731022443313296443043123222475812010656733008041840441289073773042251373554035154182360471315013311491924710538351488409576591144392451053639245210253377557147807031153225325624825434082559714221130451039230969224403100195348358544175711788253848947655583562585363524855437406845632986116536796131227409522533109852409354003193040895675448043744573898073259535606572066722460973500318193539950473247791192938769577029441504526152886279198003230615286656706957586261186057860896026400889698180342162471292649026863721394945203879363810029042810361064359919391708460729529566213819356252032866769191526983091878993302223312271794620784899173866186935651807973322800328606338425114281968700865088906775099371484474009219680418268084685072596782966672751421067698288804765330317300128181628826183692601427685093980586495717025886788815330503825236459493300275439184972859731781638517718170572825431143240271899193257786139370534811616206789137825070794809483389821304127105591494812314554525298617296644020136189306858815592257386028996258992389426938151139142409180887263863159804700599316984026198939726396768977903659678545879527471414741639699849664078970187176400123058245903792557037510931706689544139424351148768360271414100384060967555869073307507955793521000610947782587714935671505407105742874676063801260485031848973887891490624908823709452673763255459610572034474274380429064983662508463340998214282806941873747951485960412777899542263150646150487865780669866106836717500589053105633506282001822650959689756791041983763313886792700619598199369144131344515012779471675462955700895487826993281392381991613268742035718110496692036767460189469647284832840667316026822089787053744425979457933754997792942618633673792154247202989348617079020180981729907994537957091752142188705423671303291723708509485099720365941366131238577742117494590410137513317404875420416331425295559583132184930050095384554984837377673728294743288527799573611042688267489044855350588839288925405539964683116530093108867340706146748770013430453873334602883354562849087935447904592502923504414431849662155069441695854529225791973508299294845168292890847633151683216802174481559805985087031685625427023609606739890610311287655878760723073023045519696843222722910662395076319711841392496365146821687709568277148919088538080214463869706654014397606462658020385909547702667285248527576844083256820681350756232591144731535608247113516801337246972315450220264419833390020519450148565325662811297362847844050667583706358400849849735413882670223436745525195392186726358139866958721199284199299244534142120584526056148482376137769118610233585482474588186425569691332315149880848274678246866142203177627990967243579604183429721703229060556865710600503745575237699142066330246579039362361082414780261852253800901217785237959475164722724502351747539627442073218307521633056223197192378732454278161559190027293908736307220492875884797886204902910142651011607361704014288848898653774587085202573367269602719720729730135602215256944329864075890695067385261284108355653552110611351874464711164426888749391649020717542064833413192352789775509930173400078132013865451421932538601760149554450777099262020306358230864697832553720520559531408893891323365102460914382988955124978190872968189432369838218125719281757417467926097992535246145916358958857056487727249953244905593436212565455507789247810244286722517198824406708079844127905403809992599267270631749273988412821134289913998663598199588503200264183020576456972538151890629277434258467524409260536560581481531633264869613194231824572091953995664495460647274933501838290187995085898735287998082790199257771810981056813951725078226312796080002333265824640587821302796978018062966404518922534073068412815916126192804472151708854759575744529233650650024368221316389765375806198369605171385097418597716209413683406067376720974699035163589926288039371602699034890333637430268840822590178428198898995944282117255614114493424789849539616144342412559796686599465478613233970353419767385456018258689819498331355267866716635276625464693496936525831146856539285245693013204051611923035340818591218340680689558075938759601877407609473317287636125383103810303713314209549548822523512233449098634507451927285213688849608902450511929094868293340994354619956852285673664053295984872279314773783890318323068322041325599872516707508250605961942657029121343400599746617570068820383667775403293992560125911210624332715497494939242445636202722829037768805780037775638549455931330504581941664207260137059778167835698416280224341251489705769990919577037327752558694120023566227903654645867594135502055971830156693721527288271879005091395031029656485911566736290297866171408805683191483203071544929743916717769954462270819027059796089585885969185709587528937832516069367948336534628562937166850912531938071613416852767561164349736455829948714433537472979017059383543811153180270964182801438922405425683732526360119664457738768937247355431983187263217330730046635731833934425355571262352261855914884454435554778087164645124643063483532325166922527947493351391437139219653010532075248440793397498652621644098097080631498758227554898925848947047807176188765279871800794785291198771926952948002088075938037728931847670693299163856306762094708309502942990844584805657508927243255558356851705208879414960951356858275895601559753256690156857835889096793880870105000312446003484985439274124655068136436662462548777204501033058171099661874575993543952951488230117902632682405695749783271928513863942821453975404456009123567064957962103330767676267963912902106246284749020073685044080745435329554151756473443146523500720501181190434751432324642605111345379951427487083782000755273114199860782127313777661245654137531066922781032444226021766969698316052353186048386791939220147759809946903267882025322156248083574993759259429575013071758057139849566436391092284571332773046727557581337572038355257257382242558537488738072029239480622183997511444247334949316169975367308805311648070053917103684644690156160073740273872807372567507219608249534823411049047763915475136079912707182120372072657553546689561052979435936210791188545866096002470006221265701028319096089124193232736493514263780097201616020810019537855578791967266842782990480147875469449789061379858497947424612116945734651375480060946645949072073727082430081358414274425930314616986842708075581344020910057970753010960612421965221406326570914081121001304227430029946680735783702921527418497604782466354341480407052579233746832378331323758775319479802250500933200422938233385411300980285224803521448835371526173384795350747585747800249089508527296104294017147354897994409083131252465403418141542692617041488644600256291891492303027582337330119128452502519314493419194592893247382621272310613633443056908013408732539193900154143958937161233480579246804937015164106986297289899069055763657148093883481954063727438153418937445508067739209782372489195739669206895678055588974006407295921768911317711710660731674700601570449552151696268168013225590523912939835150518749881660378239509190512359449567249533886421750187152954664247116891972636888136948895020755769676802957677245676611469863506514427783980036269867729015701781218743852656661871110140270550672513176400912846296071749878871527219631111923101272606906806627567479629603123184966105149467674249000533683376788993606919888441758076759747079623880805468590242374423977433431043872249478023550490596527020192744709187839583844073170944970981786030925877525032714219674396702471383862908663140939577206982425158668214757209727477568302840169999880730173842893356486827004534193028254469743611595207716073097677113778331759801804418309804014309298078407363419492718529368273722730492937417185200723806612394818567690830605311771457771240008932138021060862027766466926900982793995030110844064606701940380484226115618755163944564765731289257140482000804032291127379141064199300791092322401545520442712216786969691158447321066318482572211465922762874762608857433050252807785651368432075228363224503682255363615121225341455153321280265050479656491462464849471490555819336105574457995179464963819539595233376876853605202520838259847391660850454262951937194777417556706976880880176317601455996760432222620102449420505718727672236238142025385008315441110658333378574552341515475420734597385830193478599300678863466395461273335629702197958258049140592405369519397270577715847053579897915480260319356515960262915568029321751183716456438687036897211386604649809613014563743950449056238224520808617847576240671629798908334296672749993697075113067093948327724326851258898196056551295110871116091513630236407314934807847620354310073101541180743224469301613886887053711336397571717493472910562751636153965739768309837128376292229951679813043641819789279299160635334590939880249593622195102878083919716509997568520145088149618928345059950944347841320379702701907289567689830030169093677305023598330015141228276402531684889844144786761798171890381598573249004077246695276304855126223194835136916100601359640210141199430525652012864244650922164575105850593815497894455728115453448314415009752386171750494718835466508638511328793157089105851364442990928883453312447673420003543388629944703928709241122183599016256341144011205453914094553466814002504173287163092623334557548847146980356455146481847994294121274079966041321344290228313600338313753773133150732037253486294420473160705697929565064178874888168876528635903597387557618072813239337686361726655528881950997359375461062200539151742384776449957335695832931920400182093784934899794320602412786838502244494643884304863807345252801927333774537787764973220235413248016835369145121985960725070800712398435070017368050658604659413036302852567362032140999628006137388157561172160874531393046378420596296892956663553466306475396622079127007674758060019468560398068310939805795089840850979038853811060631919831132233769276534712690756170244554698668877825318121606096729640465038267975854840492587603841821273247450630641847756791683900835472651603740337043958052420591334889127850600441293222749192675036470835396529778964913104205517698840955133081508140221551531973481651698970454248474856897221075442149463132066432520064504428898795990421509224616012331466515012114122658867055315951717690244293188455848083881388424494879578680423642585404996461880713748453102585198616002124209797885361906554552722096788230686238999043429961320010628776791449116218789178246358789652700595822052521174956710285514161907887684587236173723171827374881510450984705627060378001635944216961342586051631092251470705662826726083619540347938270056450599432347589076494573220685166615914054230037384189744365534389495186971631617180720454167543581001145943175342568965194986643064562712541228387496723469335631947053928991902863585881563630498798538184076601591427827693193350283561828113273132450479855177688872797241480555565729058049182931300884884259650950370298096746176549289900417197673032818192366526415861705880834308839322490069861703073663516387365192726085086365488868811102173368430952799182487498854900132149612639139960907977894856718192669885866972240522896782490012484874455386598823302170800488282953466152947209947485466728497638434486607498963490574435597795850451725116160518098296628910445054770059345936307042680645749301267987649000752537726185963635650733813081500126949597537505768889482605603560954395176860973667526590156805920648893206423903865126040789351871590998379442031217110850981630909953700475828924801280772495220897003728737103269509188386542935134418931908773088599672724154248903501408310875221946290133034700435110341867312185247325024035133254799613920299700551645554704919663310314633309077239079544820542875692858157305886906391267273132368472101389255324729848940836070752387994878244581129437915046582202347592585003287512641819102463426391594679443876282831654861021409282951819176116643297562878066065328322593490695129304473449686308413376193828386995778259653261774138122889841655646886819922734680490659179871879805515678826371348673236917947421803493924274544866313312238124226715520629406899535052983115187026489617361924961400414668757542944950331436137481334040148741154333627418973398741813714409137211858492238469271973441979595367938115391234698641607812362726023201729613583026193491421686797935944168077158706030290478871078872914294132279486298994659581453491689878123922299667022487917269912286301595676045115120172595172559899679595600129402209262099289712958463820228882025093377179977622941090602200710232084829873021386521527011720160824690916856123594617819445088921931873050067400253729995257944568195895295675641477185341841852922043516007161877079729590637529172380604467884803793254909327870452563058774792757039504447714012779413673341819141015326413829761208845707501535158533936575247485099968730477240769292926933048587607318135538858498624647248456494806976848850676038470087132623608902040703468665113277291917279230671782770898716162401884517364688072733784845847898865390556090819981007319832558843262262256638118858218043481022258732038130502263769398723898792939123426646221226036495163713544114802170540499207368195416487614791021630590648494340869865061518818405403236758128350794337757664358638567718335131925387159887412650949256263019435863357744992244197270976996652743089688075924141086244909722864926744903457747810777969445280066670516332484638232444803596189596012311729480057445480399217265828383405718264464692254797595772591020794606596620287946482655700960568476417697676787598442411191975016072076434924739911894782179423470803883227447578850484598414746767798676618485667156065093841283671038354253409830407068871970901518917882423690454156317651177452261265661496964612615888444604583655822775782040435267028612665728391197370137339677392862444031140941533813001465210583118473961741521015782469076176671743268856015606498523540732168120062497410969258560623076665414064738136843612867089535778576422090474079469160634371036831276652306212850929966153256511019709158533528875974096944747769822743881770302403129661733467758810298184312939472389001529052772909489132902881381825214399492803672067154452056485233421988755757820243069199369369173611868084423782175198341938439172077470807431030134955038169304265429431569762833352181662814309433345379341479284431453262848682617484085917725672208767916291536238482329518581890823601993315149917231794865507681175937957868996807112641136958194182915952826296348913428564041452873182184594473648145476468422988205686850540005519402445148026906315361961839312103922264121741110002923051104278960051165994911268978246714239128720379233931235413388077082014882906059877040826330916729625243216680486948147095944185795661575901580087408668320214580812679781356859535518446556828652014906483062346624172269985362248283912466923182776844310577630066131226179667998988430530617592273833109489815632947988734114381753116161172173453915348223518780073202728808525082158476969253625787121350813618768178474854282972034693484713854569607427234335597729797655263961622060776310537053272298406051097273603367819525663588926290927554020843660525448571697937494506037830734892560249678496193903548360950519679362388238442186098028620194065211672419114897362641563766689378864340510809483214285199009110147516795829726864564447212695743776944277681524676544415250661799204580870334311660376747290880194145753852460411021344094438956560942156767481186076874186163910939286148043159595881722265436373196783550128979142052617975845340424345297047552085019330685167204593057138536730807960236187433220335399895171487903153889972653203475694388206868595403892729686318607811577088974075895629880647296147556987171895066287875483517763000547172205255558842297394159153018904518428071500944556633667635016415056500419868780225482744793726499960052872890807850870885160329061182672073605210595764469596892941722689866618307792352664110916844257132601455834622437206855005256141499859384847685097967796943659998339395588586887137854923443655700914768929502674274484034271685660971462970303732098204725720977674112530240538122612492013755738713067160838580776938701935503294108963124263774750046437600581723195945054018512965163430134855530389140690272214140641628802186661613580545799722082403953383012554515560745428236641488706500206951614455289038787526820745204789503435309411339518841692055989143122224033200366136250873814650441207326187589588969598400699224325114561747760081565783618440764755331910726832424243868382741032537644364383202816890605822429976234263681460129587027497826994395984972022857871465507569398115789390306108030822074109782592686664365355571284085386035082248311977007390762105954494140465893629335845030596896420010581741345045919258692132652550692744972173875634303531422594568858276350216776395990289680913281213648138000328724611452087524689696478388720914843707165509638324415487061256548498039223672213812117088803416987132776735316483498108702164536513210748897843251307696544784124719056393201910952390678209595629318237601212753917340035721301969604154583755393316546698874204401743672082473645942900079431784294012873402026256717499223606948999759074819145895213265285434950608375532392833158736839804859913625715943459760624708636924937058166353060311552567345953961081957976849490775185048980023745165523246790668182903282904599422872236262727348431908142647343369799156867466283765350885964835343955605817287853271150259185032511527018592248184516993166824024813719932768225856839115503181926709261644384223559559895069559214730545806565278080964684969252714443578597248428903484097405420149036998714486699664888979651062031296623097275669461209275558053048245440104203348519711313066489418291606366131985050905371074921858365114816424925865139282068508199619486239451341556756312210251811995354285494412707521699030987550046244698249546142788402725045249657986993977867778908606336550348465289948651482322627066431208460719185421796384904728220018931882424001380496459535464769879061388460769928166173489660569794285218507209597265714905109745220831654816977895354644722356814482942209342161589077356226401332499873619920583307976429791413247840293351512033091266725632218998637352336375438531808758196445089950410197026979524809161318299354925990789762272840383336047599615043864476807691293664997471113963052085438677080203272450621789906352489155999395987445647218261390612148917319641856157409102602486940621838160018814813289500648833189330226410654455489160645562766911573591987099132250350833606342350139311924882489839051742284554535348600897736837977242247860250377444100187617248714675030942433518065343819819200703921949071160273190653232945568673962960290799032948040647012810773338196135641624116183665740332063968818689377096529421334521713728094180803240437416712735909256927449833150707003509300889589424048396872898580140960145145468933764739586937645736009207282222997520512227276122617412100382867314641696497289892035337627004837498006481604788133967963810120882501451174372126425831690684034270998089046152418834947390285322986033308765946084516740727875114782835734380237932592385704332986336603161331540604459152215131859619734046010662912135834364122745530323188486648789102009603952541695567741800011446196697052372799068338666490399962805109899043382570559927890299613515195051369301133279868054148610498178785421136189492218605707992983384372251363130505502529497206164803406163409383081702964367498313713318859773071660043949424073354723274292640421218943074245105937561647923959680851594834713287807330630214763969161160115214972092942936078237724628364892341045427275597743045552196835491985831493325340498507121801544419106493277294438033495192106188105735717183542203254571718334763090399517780287578193124003816919401588513506349226209264681700986862258369514693682594864746399989784438313893496827396330389299877526393112178321346752047754055118851268322035082011353992750871842028629054006130876336745740191057855825780311222782899184072375162441769636787312830933073906029193207920098956871023123455389071816901726376867870129996667677436861874700292517170158815385898377994817186391517663336920902932228856077456052883005255252156982486466547128417470429022638281813331528553436534228049728263850524445934300535433089197030063568772961280441733617924517745920484139266985133190691667754934022133717510186537951103220424162498891901925298965435850612540406780591996564661501017241097274853237434749235159008432792365774057631072565896365660916605557817572070460316804486945521595591830421793926856549251651773902368071095218175387705062927654577472715151184652204152770201233150571364838906041606331494578773975739543862929310371041014184418959679703235210896087286743793030718493858334858337822861743615668847152890918039448057647136579817243729024889356387180171286938516880527310987616933056964979885948523881263663522809627625011982289654666122345102174031388492859508223594500382661718023879607936566348424731472229431518823165786479936023003131385961207082569497375182226182494710026090752974069430748769902100405378227731687136403358022926751371622821717645589288807186075313360871120149871781882567495443875206945830494493605928625487223669518194364634253423732960246168147070893220203520195386651844543809052579953659814828225285502848624730798919419958088128730936904863145482613535838731757753258148575025471886346098640593643589571784278531532722040410652642484943659567547603149176990750574182746569489037345386658696152026841293046659704233530737390138156747682661307073129200501974028964914447682792766481831725886620006128683350249379057540995652660813053775980235162508291614670145395939353328086342048479728119190549268187651990551126315011297472182048752290188891480034450868433471865912512202191729830662425786475411735426298126753770144308964122083930453725165023096746473393722989862371195178043767917211398914682238079488169991326113751901356700068022409744896028650823185869061449374797968667179577656100111923026981354271490848166929789562223514100694080713831138310245111164054800789090842534908378700476845916098243048103352047545161816395977728628418300067920017506934385152746561797394293231310957689495058412217604865550528199725173566543879846571113550314658481433679856466201904967713305653275098687065597760267609741086660042539185002985814154148327241822962352170595648360846028547455112638815357580311997182741370378580388957605932172164691326251012668842608750134532238934402393775672211710825173226203022445783672877870984807857062834701842266742080416494473124311683290856023716051444653139155798108967131777668211125671792886993926440473801053290378995653776484177353494659805321108544017884982114479606058544729000134448081993761130945189529676374702198439830130311550933649026924672230386224038230990853562207786079552000275966400526772733852524733595399257978553121399037250106980325641854214409610772312493687316580364061463938967310904801270924670476292746686084798873849131570558319630198113784480934319128293838255372073996078049323997072901182437644017814347509164354348699278928342050975861886223208724898319545218220470080656188727238838308137918251445381311454850348042524994574205540109894010801449637710168923111155166074720922974395142029392598770683223974162300215263001741964174087082038549914401466325660619680083434792710120894896138956992778782711009227898936124275034900995331154434739053707537307635567340255968954142915604092596761797781375350700705433883004555467294256743925609714870714651910734312553955511504388511331275206794900647766641974255906234275256808526299188533336630373823578669769502248672019985194733223155654833649586210450424419990085893652223783200119557268138518767759239579694661352287264519588929419515589134604099172884068795884128007182105075651624402177830275551953680630472404811755432724141757830154780572285337909674789952819388397231784097198534570856817181011645973330875050929030735330501224421434446161580995463065566867688976429250947106190423256182736267799660334938636860887159551812785979464371988253992556820375389881822786109768105409699829238754622077877908817018118288426235328861395422394395079239543355485036363488183007237496321249315492006624534467933172643899063667065792595814926518226200499891718418123274965373657729618913559567199530442307792895862273262425548659581692560711569147014573161348439198648796809563203374574820182276195404133194141818700964498325106722614503497945026888988078074070916665052458265652528918130596701317194537499857098918713805353544030875437446661421563264198757038000240545364092485626041008467330141573879679041883451648969638613094732693547054243346262983969785566564393319929108202663567320802400556685369489437655668795053988358005338994726956022499160719923803711694294001067232844762662902994967880028653039756586602677484872495086342182521840289688038469321664915616280465183094908073244455525112714360145998825759744899898599856268786195065491682462885241155660743439629118550498450985967184291028464082438053632879290770099538936108920775623746738175599262338155980367785371320760533825993650941225840165904359174456729101749333182293895248512253998116029061724072698155700163629276975200130381060757543838063760484872772157283017886754835033636760061446180769151928834053213016360529220072830994331871316703851284444231460410008127826092412456199570452812364260421984285347910209446616068369461622503463534932561178794557103509823145333227717040990715761583544396005158547561689874800593843834954764589489117410008612277354549686598904543903084980373577743490873655335423360273536901468715924649997966861343984892258849863847841228737164696082503760145368038423405437091959227111866834493644252244960196035523801269593448016455194626309320501009590822037746829510835920511491256997930242012858838602936694396426085801788277051045802089662286812486934233216147132229925870584931077744941898114234275475990438218463088731156977041314925189610756665967997555036730710012290063888032440871546746968118231821356014623089237967514944689268234257391101004504820965193374642197410580575677213790709700318223830201499776113873358237603559137136631600180039270986225718050590752999102440274481182049321303625212791465802024571522101998135612852921241345423176007302669204874140847876434862792396889144928751603494609640396263822353589295831453484740642542158011167639493856343054142643318947755097427608728927813759992116021491346641955428348033088105726531141987378625628351973124471032083564356106529736710642890821811468084753367845658460237964029540856926310948205860669975983252522484674088789242409045273703590758481240828924334394755371556634692297326465274789169792674927125930878450542356300298772054994648857563082418482173382810161869848421670658140607263170575634932157535728693137523201842943653429566328366896522414619681626670353447475345238514564251435532062350217785060612491811915818621214213599671265149387449813487622559695185191720034126150204676187641039359288669954512765066501965680195988026602338117800967296819798072273522478036370023172358442450604716015143993211607957491943529081315773564771593151768934933444382388462495376353514650959332284372249042234185071259237725796634235945622059172033204945485977572408338159716007309690411046453219334666606334666958078940148813563568283844497023492072829372198077416803870776220475145531699018263217926759901959410773090425131492648632094118379192160518451512504377028957397008273136418628316334649961693337344868558205759248821722851785109991023312716215169894312311268997919884695415142221601165745397910414890189063653559306367357791891209535380467387629740448612138802932000744361644850463815878408029048173872891330641075354088267585598866058753119035310070311365746833166182442566088450556596931891473473987417185210713455192681277248574583651734103924896814123764644576527552297878965696502977445419439790207328745602240410028255729130427473527801485982599143181842170048306700383660407883106446599623123729808163777980055899774016470265242847151445919515325037368661587706367090484682809506595609708421253122262979679267660679684370762560788440618307690610152930560031523245091441410172689649408653874945871448385774556835483357849457196874270613191496708146984821953797094571959563633479327395941622531202734072946031718486302109978380889844136566049203132319325361825118222038579705374640223930360961888401658749431616702919831178288344495607425740521491777349464859564639132693239110004882805966166739177971700949025951229233165029343168319809936386333053603112064265515940214489937849196647390367308703108987476939255683628597774501405375295677172414775748087037409804398687087202621468694326971383921728911594230798126859538137574300992815443649244790111754684276878254397110348578455859670907539167765812480908777079507473339315509428364719869240231124686904137124000042056618855017682231764698943613600877179762077197732179959907887186524353282882420304024286026790096476851135749719444686806954886069962276588511084681605062027666597805766169644893777299680718247662469192195624147286152083965338672316628767377633211076341737939028313221055093965850614239860644241880925118049201060701057761793425371946888090491446505504462670471156078492337087375671581335961747578483245010398140188768140356943183596240183916596322612756763528132921591038732531688565752695110318435361190878419652411565787889012219910100610248394229036167974133129257273388969357952645474856477063880988275658996525803639527927525237286546062229466816794289868477415288251134137404854728271513645045965246606762717648750172309457768375524614588421846900620211495205785187326599572885487398725889555715978911415779085605982909421416219923915397826418638281338138185156286760244470046738975433831578812175609925857533551974647609159836135290827037085939572182976167992225132816652426855252345061975709128952088522229403836314932585753988934165954603409213085655489072501652477692294806262425783895158199535952528448235683504127368461172474210856668823714080108566937639314539990104582896168147222812965287792427817118075868604318895374161969097747579419209377022167237840802785002208962684009258765688468051496381250824911112933364583615534796714385563649390284953528915053831259010495166405752864600634643421734980924994781933004047776150215638232444277470663222110931423547763561073334560235450464178998761556261124548511753468625926986313614518633845678720671669801051823576895602367801228437438569318700895347858855528700826212047757175436758493596075050893792083619892593266225235340779353705541580828688334104719373576884355438869549219853810679889359101023821962191001616482365272254794657551734616740291274387546109581917375385052727219971224929586979235472777506357496207396126256718671142375627311209906081744520531414122107058379853385955336969645325359981131703820288455339660319639617745732940069215612414777258684325192550462908455880926100671260119167137716407537818787829553781702621684416100585925149456184441693275050451329738408833972558425344453349023836047403432126921395371046170482130722741568760353437428795469337886958730705832601061041838637792778967245070089174210773082194506861080734917346493064530748844350532178764549579220401873871011704384072875881032706620746648915347772150327535224478236925787441488486220747079521685912249800519864082651442529718729199143863313072896454481889398218055602822982507133113733247497117482807948017558865145538937389472156840212471611528839050229523960995886060843303836087250633526274140623338281704312993218408389814151079854235690556578275090589708025600786452317285488166908550680102966309022655796817214097968317822385419547385585544338110306822730726143162723651731991991986564432994134401191014577039936578774453221976441048513392218603221598931974955151150987189166365846484978642862211323601671054678703100229367562320244202401102006220349041470701224825782056934090492708190922167101685903308624854525030754270269391478282097201223453118103939531129367544517424931724231918016667960604445072641754488483807854470133441246035256990804018001834439084383734703514005145611448279980997774473226966096751169706945169249642292955529660851124794790728535773709141746622249830142978657243320734264606440818702786962924592832461418452964872085175740913923203160303023273571462363083318199798454553472661869096349740384201676010562598713319027919411086321301800427069918803550647121149593864984187596530227030772746775484078754396946386933272563109020950973452471149562186028598340350346431548913739484811520534991828787065108073074253727125042364779473389851664615335648951881899876830330295348785467737663964033983964646919682275980778601133321295837533732055599892381670555315514243456307479647201615043248731043211692974603261342984427435399182461135219554505653089984153928630062817133784795160707037136126716797611343862173111291664796615805165088611567141553513528574636302617022570136320541011079790604013683006797939426615758113683557243339524940212239783711547863132387490747663727654410558448594644499695220200517662968167443668786168935898669285447747878847235360102421902805945608724299969043784661228755302004040069609232385507416448904489603464740925329187693939496401833112402728773205128061663445384217380492976098003528340125328728150628961950682751762636954104778593008596987345635548773436005714836362187508303417209379308357651120580390208086035859211532897889694072657480267343074461108041798235435690769206096304626085362087755944413269035487769548753782090101890152167425321503042062448624502661188961893125128939543843794468581916368306897684969604404314405371865867894399038938495601834658219976893311998555251460203028148034158075721623287128600930977866516945661223731244901068312795204423199993829314084816098145561472128310285168751180757702738091516248277292608356983831226254998599461658016754468103763300697710445998985915613467890792604125288237714200585524307022670366379298354810927436272703415234154695864530450158248490558891960015740807662851776564551263065476383651778755590558760877025381712502706532130164430055388916696394586940787159590249783843542522448778482812131987003879186819509148655488882615328436257829006763956093362205762146635207596470420472220839216912509786862781654607416241281054775556170433273494636592991208511473295185277168233138727986353990730438558720938065227923716016178157338683710420709214863192801845105609409105458701847908309479878835264607516552790464070236562826668464934960991104403701315909809749091239539697545205715195308386998270722345208715272666243193619585538106628882805195095618350229659878306488785725961500139877689157066437370329555813930083297260796561980549744003832386454626431673189326950131846319782591714166092381197307357345878538284121760390449252145713652289332985882328423561672957602045152330973251968722053080814362593689627759903982894672868410968840012379452007298048106326850738134758174190777859228302744924515717584677602208580053438966117670344296373501625409266866374307285731001428325909247034880993875943275397997349299482028064073984763007361915961634608165801860599708405826896779495533393681869978992983559959868386947087055684162858996665988405856373449842896575132610328733729407782050188685946006753398166653896384558623802876230445038702972286547636716291714349349737825829985902903890891498612947465532434160939605396900954644477618399136534938190184664992655090077322151365147589848915085715705269302525210935015699280893659764240639412765997103541866428234384728797125754955566109731069855401681241622338036817834786229004456053204896013889907292835049388834855478392237106592799975392101480224408367899126068769876960509116227784227831573093401197504312558795772000604448758269145498186189261252927349901134971332976673666247113527144040394514387909228811489406710288509679280342383394140480197753950573714257849237419912933606789611843170844650639986642092895352973578144640657328383666840064588684621715774190431804174359388423143689640386059675245077098509548291580674688854722056204233101219021150413296847584188136537557700680202077182955419874823302223557992664939668897606905387743540693366185412871603235844095693558094652460059896614266459412819186951402362448005360747917739144749871260860915992197594561976149885384268116495834603210065845734647743297931871748914844499695994177380347566068281106151848379211963897500103061910903485662241778666590756958354701484072669812111440431756498943311118274034898762837254574991213174257618942998040651215259517225186749918055083858411342633465174628967589815544398154843336624252253037162926932085051005929710475691384754860851118034887786981617653346944983548639701462055949768406388238124034991437090054916583961285780544696698567544736863905686263121366071349457910370051535176428057260666341707335368138341683582006409175507347135610335423096634789541009765749684651853309502613946285309617784629509120266382203953926536106186462154062373530264369575125106451093890379713922526036293634572906714848186685614524908674265217052977470841658464055338879222060706891321832543549917505741912760524353388044925491764660769179296719042359552580021926417376748700336551271445190574165566340712906124284971908928369919756497228595329755034971401454444939711338565583248522467278382004480269868145186209807096002835864440298465946568616773882537934606871774630792087101256272349480366172046376744444753422984503064957166804070789957231850787982044268293870687748651401843201622457134414231895351158879036412424458855097616948252657322471422554303024057005394593491852283493878456434717279024623886908605214295856543661675758103887853802886459683306186010659866898494860779400331438024440900397990860880147732052483306358954070538146956348786130029687797259228091191573099390556598903779654437472436293427871391354278861697623989202061285446070760096417875753100111072704302782023615222553179051464017039586876251369357694854979938469505032126357486607045502852528421557136887899857362288334148070957420243876260389214693021340812106536812387298313680401483817466007376348419036862638466654080888038702632301373199591209343058335692623855515812726768942745269621135636275514545655935894710497317222497059448404832714509192071196151292177268582046129728425853433433282519059722800545166752750001579141164357323408656892956796620524765844913682386003098753319622899773913155190122684302023302556141912248105326480320733874262889733285836076924893007006189191935593100102229936913546825819489708957331029912788568982274098448652133894138213822978811981777646579131139608372143086899630656494685853631665084896588339172659474699591702895037196005377226238179212457166260867507230587005137390860080670014194003874192675540688741090822950462408888075029338579838870095340597147974259688676852069537964789211358437916187441369753360251134759300518000033501495424718126620547475798874034427225938459662564178635011366900101526091066079150211454847187249462310809205994854784781848900411720691575797717664639803260016321383633386655978324895380461672003130947557585570285465505987921516888469820743374726604623928611113551495961664178392210713501426064670358316761526059217218325897833880214074701388213101935894717563465029438480312693454264838649848930228043768410054171712698701961799867703749295533217615575243932822688644682638868553574552712868143092902855903450075478266419305939575489859718470663623593043462524496917131240807158714265154827994714869659932706386470112644159978950291026411634185318728131040084892164764213837348534278958180220020402487498537638726293786567769051074100463941882283207785290115744113261166996070603959549637082068598615028161709223846505390944497265584101477134821398683505651898664976879964736814748112632864752869525718897172010087490803890657618291621210629190831679328986790392649194507376720451249672828738084337584741229144526468976746253797814999273948640958019392686513422843863597088780296934133116840292361424415740295454320443876384706743624125021509329238442061974647807051394755748539913109773284701713386222719311985505687389161096367219882696404444362847877291604351993074137026272294124589315133919524994532343464975521904164444838192817221422897936697060374093250547354680806747033360962266442322440220154891676124159484911143693863730359943990654722702043230259116373908514429982629493859838003142573820218244686857539785612558432332712487785093872667704738822244927923405533052409758429688164725453190915023149916674400369208145729297004970025040256526405339524784524153479564210882979912334297611996383236675051970993167107599720353762523692502519382771779532950871982185833269594152286245650495296492783497768514919950128322716913438664505515692954196992545604504497582963079385242837662221183230982332937911497429618504536395406530078250511484927898146207166392943211835756128413611930733207291752955820392328150987232298510901480713729965189857239744829253390055203042907303453716450538232288292695645294820748386174021851918798854352199646281846233887972820115051987585069917040689125399485667965407671373430092950131240706496354234349587339973690732162841624906036472788645012308579509671999379354557232499996727283140582979828297166358674574934221164818959970523173630842694565078833340034407353016984163288388650916633167580138628729464511439952393181582607112755412016485809955026328146693079363345697138104991038675139577575373173512799044821738428466914091328978643655001545243061193884063160312325551068217446729813620593689563149594034665082740478088395854347560655276984378899697756330162803958189943265486199702319950449497726562873780170464985247521462604670019208604764528792188841194394464204369877791753468323895233441123668091755705749252307450645623123252215418066859343373499875969194321466575565971080635035189072717712757221683327991770936217337035558075273157338019335815517447965949190464311871618990321029438830035541039012362901803491596712199588843629930884130315977503173958731979815451378504271734844346797930147395994680057231744682706385624236987996753939883360425007899520860326479074657668806310007233906201370853071484677451544144777531205748362353569895004590018568754345847189049290732647513559297699545526686771551721271230382513141315543248046290063011070794249575766368382712733188596822291579286878786947058828527004678795536293232566884981166150798463067786261513132112218304402824611069345348278767511622438721488129667787077698989057651705078276904666215008736609105227287998037324904868906576548188174222349171907485030704179222924164227149876533930740482227511576779348775640705207617167664131943956719356069699459036219890065530131417811624594244841497978601429173653994985842280437796804483029061534335136393097339777935636557651186259983593177228096128714715317891646535044499949631579112515975867441975918437335602013487866342166138492981130336243782182043410844152319365481974987405075208288368468690673619716000188724172646287175575359582797091749490353647047487882183909326142561836254925986632059274716025469940585952699242461166045790192490063429531296084292810624670070275165700897784806695033762112071595900905700846946232164621589321119150833292213624776160223765674547585312703001341206756571080484705485516910852032451543134899892558830375661922394308939017569583620858847420816618721564012079368906952165888755384453546220114011927354990860274636915019776531884962695164429366936017260342724754027281336102613032491809314707300163329193404191324779636210867575758463919264253279615046427572156630679459018988236198187080091560385304231990958848474578625128544391078212519962993888607445680287692606281599550228522043736493517621652208127692782514137947113304775212156916821827629731023847622649534010946666557267635273214020429844425692700109172945027863366180683804729339607941242381195297157395226157926462940533331039740299279583514794348583601147339355864763600601572965203388432662864061640504329768392257663041508483015173116545863680188591891892088210398726748093663790230443283972349883246653839602650155081952393357422665539894238236412452946315639754598767631866736583353452819060803560562142371640359659370993522807335486500821621451926855273824497251846054469928132582041944923875728170740273726750648094568371685701293589674260171798395337114342724243589908740368970323487101214575608026244996530540818021442686608543732122032134034313536024476262145083308940700728458145551227201778475724601187829309387418614499037770862315122884027073107758309422538024254225977686929003437831873028958446859811035076226471464835706665915637436675168134094282362929930062341220441450206442465553293321245901323641640429676355307398980111493754168786256831497937649386243087904859284298393148196710437820011003559968132193978312353573786479444045893650109910885960691414606707491146322196157735259453524280997975179579133050605072181269106773611888282818854264624943143039410117453149360525464505344537808930660708592512717512294103783355448907079330397276216552676005791117739796912006980627485888075414341143279292074349412203198687250332333458359408693838427966786170221469258156451662521663279229917376968204717558071292713684373903550598840290555056198665877441126341066963397644945704169594697387442516156047580659480486268446376389546965202142590535998313721065919989750262635100681670836274046559145404594697193513854005845888750988649544542560433522760987233910198940115653846567965737746015677721183804205611167170272123352395287198747762296551314314637416435557018213769598477636319906327519639113532219170174221741692030796969394445170703860316362264792941934529344080295828956475297269557303344945511805908353053775599609895289384846281499090379780827063240084390171929222927567995475982087526244701588526847143488951226303077319305029087569229610793556409658085185642671374415710461189633100004721804183140524339979376088861171889543347071584024316187570948291195107019592009596033180067821861690835516867306928401407560564855381109222710329665581288208785646084806017631746831212088054475478818347622521378829445876063994742482512275680062393793683423296365215417278564043479379337528976612385157145534709540373015531153735623436007124358549593739072018662181136476836520695449568167775717875877297170300565632094671931236864715235522846894898788300090473843041986675545943624368355034014987866244814870749973005912905438055768176768587566553417042273149790368238133158197472932721174300543919914497133021397560664961113692512540296307747676143075709400022064024296963856723302444424618438098719619132413031027697842932191241432387910377724485422849414938407039515151744328259381311161034510103899334152099415453554215202305308630279040940745727934401117376030659951713967760628328821848891349502814359868906069253004218779136202550288075964005176261390844476629141357754155927039637834008298980832213963272881461018519820031162056376661238909140915102590759617453909248435765996686671495068431878604877836158675172286913920603635300751113278055116656876316640978482085776784565871804005512852488585571069490908618907368453435332818332512960073022336363237507473135699461579622713953957412035481273266690448912931737700163064102000678720008103382763262824742218904370009851874283472439524110701289546082732346112568376949513094771257099821190220567549628134661366483955749454301813577171559686239614457130793259354395435637050084391069010373610055435455853502898575762384653433457431047385240632733817159247473329123283810904268150831527610786171629373630704256543481210766971327070453481875584492476722259495231802239855377049859412031042621437180435009156009379711829740444923656531032315318992473711249739319367354512984422094430650368777048527904426776392730180320752316039233656069886562737664757280195882751609206083294451723425002100242149873492316171186277076916156959285551086018584081939761177353417124753586527198204615882230520290700772919867259462479182935475627050598389388391431498606925410550776163319135974276872434370005085529973373288880650284253660348813122662514931444483089488529639216778278836937690905464015215792046187820431317840396663028471936550367785754852823355861884739954007825953678793651122074638942569967388815629450506707839387220025335967658605229963022855510626508489953789165167293525517548036849658785621986897926438157086092495900588634666356276322635075927480579722979989043324321992573614610401146450404878589298388414035940307500743662899178313795318395437053475122341745422081861913479019951416485850947454390423521477047302027512739012300330215366223918290058427058274060615409936125391281333024998668620546359832676921529737440973385239666122404252156253372354980544095224983875264325044249277478314712340433035882646967212682337301606700930942792569318166268684041491675685018063179926468476830855742155202637498487436685296646027925727551167430365471173399922404646562463733857977440849627412359595853142030918080446589017121001677471649378538904025648632685102653667045410794625347833578242043455114840796600683748409785179304866776825803932833186995721580177654924557308712848291319285938252081745199550023849702854159875763078773680537717027516048237982117334397103627709936049416641046461854995230696252156715465859831337510779617328504873893720939081935351327157956313432667994883573140596491198363040070251797170617219439242895481785937164994574198879581339449331659279042546234950697054647371061983042755296710147710708210970034937612163123692070455455551704183295579966744033366452589688454975013690702549220999954293704313924808586950897012226623766693594670994922117591741110521771981857353950773223495222452546920411715731195824734261206784969881195638196977862498929668182680714658202013066478051963182407255971818450402272243301936569583473618593227782996072858491367149361294489746081027082158102246257694508270910443145840073120142527405835758983587073229062332846261765398992599988730584678747909508302481028058963234378200684827003221263447986517213272290887617077170016394178658523541155033146477696570390112820737876244064365384692270337359208195989566437064946263832399757987513086479331444890376864162340879280539029674285219360863023345388539766823326116974468108068927590045459916024791249780916012002237112972993959534390666988778544863607117775032371521317538019394432620787395840051396484411986100827872563517874930206670619489800557614957122558314165533083619029180192309862243925774625236491506286727733483038626926724305731395404495388628540939479655749070719350924155604670950644829022571089602981829826884794530905452458956279008660241496006860932119100619348771413721912076883383418674418431989812959263659576644879577051096015823041446633028323720322964898142745840494711167925676591239185443302024772947709460819446728318696495324447798361734416865674450012533598065257942420247008239006567873405881389429082355432876545223085786996907606718240226104582730849299758955124348030482275512833938037989492779546977436843810178239853159525821380676220402535498685280364440468864651985684591255644821238240236569999649755346546673537697049287677250918801582282621104157472372852215247520353120632319710298237218953584803558854114562715773829763515121486662732351991316819375664128825964895960967102405137757184722657995693743833290188400300365225451594351597761626523656710089672032807727609610936120904838154425490529178248494493303654057418518029534980270007471960601679121311627123626832533210948473730392773470176451146885799475366553634767612325055951553989964284627889670145960517892476000182182242315564153314985610290001968397513951565770939082917167816180682153175039705775487812592963829516554011371927765011687347750299174237836471567739755878679719731699499632845611834958215356462349609727295745624940866550194181284842083690080262212669955123604425010287536748801227190924356201750119811810766070795208092139458187979073619709403761210303798979183596329087343750404303063305692423740047974694563723389969493717658582416152705483381410648050322425905677603638113103660591076692263774444416518871098572572277263147242574054763036772742704686123685922721790227592776912074829694166240735882335983911543528752093765100340096064822213081756637678142608057301007545106287181310689889093782977657540319020732535231002529624246176242558899227575734251609581386366527795512744883436297335736492382259130069906510712067281011468196362352065026420439795896147860402196217358956230234580830548591712768673973144258904788829543016598314804125755382565914069933867204663548132921360181625178307091032920408770843458729944087716499852443301532455479904202308549762844457004808425350488044794810125089324868646890078019080138578820080701202122755362099724584707134747717578878515352524280429812565633485349834345221135333559824302678625105945805336749798679779176419163553560509974533444415594236335654295506901826129568450192313764182436719970494685328812880287327730092293043024199767852119302620873447848254521669530126357043168869532610951149506513999947573260574599438165859763786262794654944191152306455441278042021255558485231982270306940253206156392713053345787226722076941231264517093485431577465879473868675877050978434966207400163228129512239050946168391371401840995196883353908015144019490669122299569313564996315242512024788238730072109696775369931397668886121615375723564192780662812551006451664198812233703317827864680774362900668671711479777730820236814199605696615122041721627642068881102243213647067848499801916335818992268413143430196627040560355897481031111965144852915357397786196765959617920446797837460352448787521338657576213833545044255160293923509364563230173390854122446090806053364838100886666508928925771034698948090435288289047623997204146715786161286743437747507578077727695850688714238034149568600218087518225367269915712343160494269284432634384365278037270577774863158824705198633851823586981545987165440709120339806391947009022569745580796688325549928844995547059747174312795946900465262096701954641111451631718631132424155156325673449468552527755669438589181724762150313162752379414000321546259276098329784018963983630064000898741689219358524528502279912725978852919296611647962557209144099066795320906435919691029714184958431139639610661119047324084831696204890107434213083271777776712669889658287470028003548508428195823244144523300370338342553837210332149281188176305176045313356500728149650488445633867245296385350228720002906155819124579895067955687282447108676408290221737193086942522185635410220213743727246315159725083105423327870041813095887689782852834085480623384841147052041156163579055768229624523729995087313750594413825910372128489638596054900992888451379705144535142769665965146415561778437000960970867167897129859828735961824973694843348608424233036731821104744605256320768433201052261807372761853884930271134544212649326901488588872696380485133418628404614216704032825559760841672780982744568953464460188320504154931121145804157312660057349498607185538920972153890740401680407868856514857013503358704391540591935747975988500961838650314418636344838663180892425078401927807163664212183291846434202729012490488025443721442419302749566123603059120488818520931431309655578249124960197587736462873131308595947191283170769849294279711376602230284951641789970967489017971913162283796915662173776040284399172060011285550737504440739796257349076656734857180005674266779141433742668470770820907049279770536131546064391087857116684950223311574145797352717467378742206404959131374590801670983487460444168746899772693091897422650758858393502025797765985766225954905745873802122024893525229808025367961249297177644816534374667054595055960978376569549989645209234049419497890332496834123968446555330005856877004277103959255221285569144916883724562150535422216244139772991564880078078695574642692824962609809674483177081659220832150827572122333921822073063080890699965964488709986203056316264151434494521960523116874088247549066210819292129919181489176257896409043000265148547323270205529240432771801963351438198499668278903940562907858756246151928743123691539935817901426132047107938891704316221249333151352080098008548124398358166694814106464362441612342080511250019448583333428594620758846845900688729785918013419848930428975878376580135133360938914144434675292680165292227878777461993273680125199286275810339164035763668664995009327626332574085968343166181092336395445912247979886700934873155136198973321274590613569151928117413012605296346991021156507651449550201116842103631396945576894428248525037390754075492060070597411853573209095111777476514142942044227539673857387940614212788080242948366789612398506098750222341757393900684396415301905824313252097282619538048219997591005728206269299992054826417234114486896113050140225398454531631345933289324403428285540366465193029291566650871763648052382534785182422817246170395420907171056601019217891200400002277280842428126140919280167640979699978147184212642966658004707832904426889574239409698672490525190394912978704646967420761169174447719685264533658251572998412354537084889088379512276980246828152436205941022109971524098181543491764651966648056371563804536914653443705484213885992825447728591883619063288869797183675838328369798988174214376873617983630396240059167379709032487735257690260628755927586064438912628023317906906913827043966272836787280161032644939566305173490146117794447518874347507674852948972660145411052910067661657845631309885171220331026765753311606965972789367202644194951639297490252837711556766019400043398247620792493171053805347212452278036947998443240299344192076709270045967034085602914651448116401236099911478673673700952481404214410954342693379894210445767239637821950544733285528591786981202146232211610883573675834189097206853280569051435514820152570822682092603653759736451729411575050106465109628210786895298433993919065242947578056194820761019525036304885401373060006468224038577081923139553718195048561212855526562375044170053672850414998837814537604237465541180086760383444224858676049721104359912535468766127284464121653048300021508190240624165116435598702710011468413573741367581707841012333007291830681137963721866029384194264875318475872599857978173183179281926777011941989858356617176296316462593428738355248161698782368745774929128273080101310998157953918590183550723441693108041695257969973966591643236454675194827907538487939136419167725477697571658218535398364607737730053774601487227312806141076982094654523260677815754580209724831230324363146787326919763829143313197863352207771014530091544619530753824836246776955207955747188024012202109017510250033992139243382509190427579503174522641620703500192465252812223704577076865487828627876032507236119190492140840800094614446388985064459620417597604994187644978846171392542887596853757619536100222506126879733813922045882204162354675892154896900132606035295120807633918561412538957938725302719134923831315838570364787301013239536268431396451656470964614450052972084519432043925615153036671474775221595612585299015943427081450957082106900768112543275717219868560978659830245187136170242339952097288564927259423766949717942150054431755876602343499776486217210733584313157321163947188708851740171737272963855227999746870483866688958656361644469054720227438928886763609017954423148075256265347278454584624442600839394025673986139398907449389527977478236568163890069495754229917658551528785739456950654230935665536856776279076016840404394603111891074415096542168288400705714808676424976050654284305554399708492281488858647262023145495727065679077515929425966129868390538881309607924683563944829509342223548608592418849368214289697105842947683378634467618065957007193073310930035730042672680904697621641456102291123117125064272053087371527469839545158157572736473870343491042229711037798886117048722115155532401498397390761782346876895943330582564062689212645978262279037342894781250510003031503839033821965893607787178905465929360695086173680123715140236452959028154593777236617320437645573877204184764733293007024015039600689825869909143305002389837262320094299274789211487412339499382687605200999607477747693124117856437546841359300387496079919614882933686623443398617822932529501450836253909494073601694596429377709874466722338655290649301718615210247562893689595906538405879097592140404807828680714982377877754393893487582955571823811498589136955461614984244547384326194011176838440079733058429271844509037292013139772957381102274034696655587213818677940153696072808734376332587647845964561713512273477385060391593921800212410259874186017538031823792330459063266492790197287391941120383906108536033905625454577994186303451814811897273187127860798619419982222027253441764092917790499488053694690480206174815415123572400551258624303777297513009712975381713279548881089890055056488595614973261447046784761341999395395237827462439396152774140230305769803036035801928740496608177662534174178463219831353820680448213457343524211092939902167963954590236465883150381463420424051236210030135212458647623858540749974583381733720869321730901573243705847420874310406851432309872171822394140681555938395622801068590509329097706687144648552797185861033472111700662241404705137704021545019249394250487619538950979578287278217591790711799834491377769795393252490605560610584051685692138176368166439384600994383392962375895451047623874187683612914801926018609280673065324640794150266747928956494019053714473538860446217729774408353735769843388334557140856887387495030863302353071501855026902022418875155810797602891074852266545488586814447338731952984158823848476896483897183186263833881488655054439699144097122069839869567176271598334764688883227416225666909817989138773516967417914838308338268822619496398957178511001255018277740040956782078437248700861460308207721327283681318735761604517291328148872782359192012667494092238766779841195353629003289331942797876386951786850997812696406394253176435382198979518270325665049701333576736669302697588583579780732435012686303221867843502123795696950585428044126980241813607492989043478640640534879577692542305580984573450331774908478523035231368315508084605374115272608707269217188840122415912414334026904330228931470937900650074461981806596437856426254877726050072906767985706205492561806357265249722150631237890893842218765641956413073180765472192286109459030076665374493367010000195787827249283754273104828701527011292927161978410502682239628610736412817019176306574552887499552877950502249430916677863064485541529761539150123791732242746782623403029949852051920156982236546424158051547965377845879813798480192528451411549754519876562403982779427954106652114366733466596540555135663674532473519393158057871549885289584062209929221674657917992249809882792716325055842264711707120172684105146979868654952803740250723361901279325182582698066069717253330602480441063540659271441925954558102825835898952477313964987797088943444109647226814967342340667754026930539925477829013675957396174505750579030326792337151284495008120598976805945004407442727638221827604516700200885250698663753601875140498515988753692902328248365498838859406909766539016859937702178955758664929307525707791805575975798244644559151284038806151360615134132199280192724375498683190254751583133103908448393829527787681427103118629876696783677942572839810982128144958320637045137984308760789601491950663220368176783673159206467664700365819477955452493603833235651083063368692857956414999456004584964978823261020077318801153696195535721874256024293228776504966551535783865943060793459669829348766434630053691436328927414096638430643396437968724684951327709314609563076331656570729173036918522194751826115333226850848343105071569116195623771605733698949750689199143016227350131866618723698584264683752348325431188660659728886903671345273671397250534760122011047776817075320130232434192403056805611953184255045134993408931141636088009961039975894297342415203217314116165396871762343158102891708639935154568700256795587937505478738598327543804820381450303865265867541747057703618950838784463895062395688029966242782043177671560113863009030813876704307059078119440594866850232163854926362960479470060702914714437381049861559895726021015434001689818039126338386355691687543280700743139910212993397183669119840279849539949792742268503498975476606075981651452349629815714732568590846788068046756918951163039249122769306545245384358409106294075833676335414395787273512745764069683596686801730292290803592323383102101638891886588476930924489604127416084053202791281804344682374877014739382154233733733091535747076388733266673877498303403772829294215072556340607645410211829440424338924681600416626377037483937714390006162566346103683626424567015229325356014074203610403869091104408206088492309604401809588871572538798454629619596985623588755330874778778269329042664182469261227485178343040780182320244737199962810411906816226660631750395257423389444885590466720528913602047153861451463638145966444759891967209854571193018507217282358363285186280552272012901333259742118351086110637449825961236436435194934739676585037336624422469263377551935874859914575874363200362955073089882638645899370769592719323495180923014575769400509459363011512059430794849376320155801229048495607579989984290856621761829396962786524629463059962401296736273916655384620488037356481558134608700205626998866860770640466715375415376793509339222421215289175870558580013049636114240945693149360414895889773849735944169867671182865496962174406920149998222918857618320853118724169365769013368421235375666116821465190901795569588106077588845986039281415518030604891232348058801055942640903113722939326989391195001925744023847623865674665423729803741191791292079661513740775569681860006036968255554914459921660520527905432609633982268529908599899052245596677024891664061100106401263543520413152920291666326929146564541790600022897813534433356194918573693010458860085216462200050007613100481161792275789871349387288007390212240505622267132137871434340034587035325561794712471059508375327985787745082234704073955859458547702999710900559468267169646288542792069944703182736685123499795194008132551045688859165339084431041022049021040202448661973280850743516007349702203209129215106671458425767481613136593466782806943117024519860313145879235395104352918213938943612076530657471362413092874211911512381432835194921159835354216332986133810977937756269599713704953152829983461105193117885571593450686864995981973856875270690016788082811377040812021316130694878312177410769333413682005426400131598785740236093629663615478576871492806006833451194591347470303385745229027995419695205288657722561420053718067848984638353522223579812458537980852576727295415990641808359980482599213065962246615383042978958209467131680070509310042415822279331044083058485693686184251384788786868646276585827727387430307212579918850387420533240897275696731618650770362211718556519016156172627640821537161828665192865961188109681401396445666570524919815812962315913638208104666181836014411681708261895692122026315973614889460095598811485147747572515201141585698743202163307481359009284892078995406611035962421079762105783718935803663018776740784389013310524114831734074326821053500485751253221366388426988036718707681217508372681035570026584903799534964730422738013500534625300365192950293073233013696673734901632987256727824187158536887045662375435712971990292114201797296357904512452162098388812011210730243774751211916407192142824538291215575103807708469567317903741862830005845407741008707473645924996983464139001351166936721588165269286449261671202510994047548619427093525606909377526368303471987892294431946507407641829731137706558796417997594205691710233106059385443613742325862789163934803068189059695405730569934322917008137744073312923507708766174122051604075922440031952882198018893189633892552089297772126629629013014328996357368835644647985230069635352280406450876166781156871202937222526032399193532510736984833072984507253325187806827440346453510907186499693387149120496080607587491475799025184475475801864022744699680122706192042295811662422991874809250039051877018762039910264411665847698872566842018767507006334032907318338794188863123160635389903566857511271527984194418531574958290829324055054968558276040336280922049509474481193903400213555175282391282675785409772678592332133787102989828926385451698542084361231069380682675153039204189214200694128883345218657715100019936371456258100469600848176632689847225994443137183018422144374632242279166316526152853257705843635185464007637119371613279170009984764429333086415767890700567625575200938387765737691816891333109927808510254910086221261211119557122492734690740157728976376591519323603887743228139676479763980961216462370739021471314791577724274042106540295473307932511887584859000599287746891581536974576345906540473036862757465613209893995165209792553551095144211926515159110686820034080371867367239384758518805621076730536667596468289892080344487613458282423746234374475760938536615083529724960444657596301100150493733035562017690569260389181626840079368395329188848066289113005555978166507130122801888945229066791100925110026525519437093168294811856000920609217300267885782685613029492980166389704513029790392290555436844545439493972148328654975244795964925204404073139888656919446750663526433598405627984895673217673760899740739627931811694879801788574523643580541340992286714288717245325652502806477686118219223812280920259258473175937266740733642381339259392607888748602944605050744292841611318803424588388920043592008641817724991561880289243907044516958013577994384736356384530662316952438742529381035727572576430048411241269331118494843162322460464915871165525825310508415886841208612037368302402495416986136724929754790997629624677795826224892681847480371440970385420879921935807589816468764167443281461875880101789296559796793546166001269443942839444074768025438759099136128556825665468785590623778338312063982795628539059019033369496117946592946261659035973974893450011620325918333163620517277217521813154072539719942860083270245092222586656016179101497321269560734597969379117422356840818122198072497599829653997520781339264839659820639845695522570811352074811623631034251592536743594113918137153985080087702940798785838278062960543236760469981324702227840955503792837006708721750847953308728940305418000038825023984385215150545229796348738921572268488095635193152334800719564110181178383199653950827942868371092625383195756259680660384272041879988694447260336658953552025439719016894363348925593346356466000813936158495469209573729506826798577614591371346547462409752603781823750271130376320978297497739534743816014809922468176615614023504155567746697752193575958822697021180709145805440041389770903057594436602370568628660603532119436820060669910743277005328378433547256106666549086921561587173729827624874788462925840717870473504501164506900511581571120518658278020951288539737123299384347248586756400890318181417880206511205335654974281079003031972954551557672294607048846619690534199809984760954727260538978856306326586477478732416567687014489129388235736477109244629958454845619288751573457110208648658944527863443777711460823680259699357889589737287522042352068673779345659217036054393881636245025978869003310820006748632374253975989700692387641890681401987294655208038056137383397095330407554526867838526682543391244814245737325953495497461419192787586972413792093718187887892976044765733793927968452698904343764690236380122013446088300116669725118088621300158874486481950160071441414853564384033592762380222125998785023745771399151762907547669200505634430650425742304771082569182297111123609211618819215004782503641072183560713375113671020427895594452374902658476322043965810158066553061826747703288162930922448562954861692967737670641034350998749628880110273679725115703770397937665511178974830970269115374589426777444295844590749958542507846041464879109598763733885943476936233295538691620976320135040736135123567156255284266280405058709710684469001742104605664848331300997431113988386769225459997391114705983616475099881371932546038816894981355537445421413167242712220290777355829983864096035139308958356646396317059061636520177042652747231940072823371379449296741585899302463689566005180256118256062053698285695110774131468252585286851956794429353603279956075612683619187434405297166832503095784499860615025126071165825097778436754926450696639837127426437437071224873716127870759120070045624871368357332331403886791493287368587123881276307099358949982637867800585477609494255271862736888556614729962870898516981845497136879127127951368033490679119501430841090857932580252918603289862802766997130036459890106624196309967118050122140994534092670735144589809338559568597382065573846815329704610275407246775512553809718171280938303404877235270690472513968193057637547737706177021651566826621765281029132139706164856532965982799565622663652490793964466900520037654547924920439499687930535570015625200828287380919696947778602579589559898350795286966342645731289614335335928305020099863860158212919750090058170713970219629977521322145434921592778359737951979333774499635347655284975171970233825903208574669231119546311032670590986024221174394073318258157739882447679758439110638443578620846877070578121257073392505182024668968732418219295836286165253127747653825529989668128997612409351805227255048743855305616524673796059994362346804981771356920042885416984678207839224969183751524310223193856251977734350314517554033532927270231194399079288483060110664191119865642564942983625497337422878035359162393592072646109893333932861954573175029986746129840961205789082693070483292543414197315571404283068141521475517302072847243512237423999172982690911645398209618655278860727228029348734708997754451856464275861520766448247168149964915728346334907757576015782153979313648116156226667369781149362438112402653614602646822966455376523900987573857594265450639134197027211875924571097309203789021904700094106234499294862382300534431964927220781768961419411044022955319886703213897413963228802514356678152733107661514204237778446047932688076038362390128890787245152865934436210522230231400899467333520691745274097995319175231418164151248626987273328105555343050457631517053106455985972014442977554842662286074781680123466139304659216786582790518968786713046249956449061736860947615827180403072314343457835067104517947315314987640648554971884070686139689652458510351965020075757427654780040843215999274680094585881912529442386282291999553226710197849599814744239192215104405345506430002342213757878286890774281995328633682822060668132576957554967629251583274705401523291473497008712546384014429411754349030426038052472982122125079334468593522643467594047392328861885536071499127045036020502515105237501706003695896266751700501475529105970915058633543204631199721976135136291304516649266013122582419355202021940413560088928614419335475152377813420706659213169985169573765819946638137349832644256919839682824368854260337155320946912321363940501288815748356885017135913228160936504566615923366497395181038926551384457934043560467311633026004855177630799362285160637565999744752764485216463417377329217226454788573777183560402977323655740952362517980912083434049796620537848162435177479644552838990041386722816623683087879476244813917086738826434262088888072617549180955714761184310837955324097741103989190101916108465704423401971998756994497209715272784832904523563719240055243554892495893804506002359164053150698609724523077420026467171522661903150875701999065682612237475075583922111357069755680727348187615141951013439271039976641315094589720975222507317929435753197255016411549103167492726575128248485711648261903212439723097291775147656627636105600940882668530979102038425528758776059287832924836432355305375740442266595028933569482036083265612964765631228333770912985168464209981164398449090121982130453360978685271654453564844019706443842451787619515918217961253187010968048542613789932378784628837843526323907363803572273583926185309315526777184033951131654260951563598049135500627471174603371231118475807536570493825182034388466881180472200836910861965902617384716071694793808108240464979371217149080373880860665527194019446399689436529241885129509690416257275955868573003187112210902259407862183122236463576569189258653127462169948651521700314326666172644511728673094350044832345565392522755539224029045824560530252445097056407511565552033550876269244478112695310881854222252550678704607936996078859213529666700918066123274681382563686323301564399270096663997386075988614119308616380684616042832654926436910147070419919029890946519927633893141019895571290210230498772670003874799365706030048829820680593096738527488474124938161883716539391920958972029873382726498279570999346731048075864762177531258599962425193218839603698622656506697824439850698141524008430679774182160883638277631379497064800991061028480656988526140810012662269892739671744254542693328327178030038709058449441110185868457953795321107778009337613398239350523142332267861502793852184684948831363305572831716959746572512004944916128962662255931610790451487589086901316649842734692231686820584021466060643834083184803328512531912172066569028310475215082752187287589985929017584281310592632390896288403586364671646816276669421643357185452316835448248181692446918456609209383585455535880344566375620166802386688037750245067726804163341057897231823622162307842426248741566204438674435192582586729177981642985382425859039372474738865807647883484217497630388092408187523981121268016542109226550864640631981026595104046666449882825227296207317410631248383757822114767099914180728620761683391476297038486617053365727891737182111523496512240486771207938972784394582913823641312526365086354385895896086070195719937940777128516477731561369705488108061103907438024851813542424834686733506439385414847172862660259646129258484202864268410669846066736912326034442776503368870663939843430532805998835094735527320686654809334464088114840264690203944699404696778884796994896816225260617599365577948375143944991300248891624433754925404875351853304727640430296368093270163671469000866613774733861789622857392422185849312066102095110719225945845900627057058354542852742939407792894836878870537342829689992701725821580764332998418787117634962740504503238980921523339886263703611750900348232563471676050229552258290775012813028169291790803903548119490411962364541455211084252281117332091658821403036758537699133446637331302177907724342218811372848497819980251309524725991379010192306573042132209271832940092221924885192973265171111659557000809299101108253051418167038803739430539166726494083364744104969213523584672995516555867124098602141486009698328726978249661150843007054267485171898740366301849233467151834290277472506681602077525437288297866357671129117096457439459652269501727304876407825025344239750687272036334331174743235467348005283582064140667878334130743876227059694881048373666023084157620574555271904760868439780974144443523891943255469585548424791182592807524850625437844666588259446123336266428129249458113704779960987079782518908935346632129881961766187868300423817607044950805783558931607050437229521632709366363181880747654914786106563968645913424519500166330078160875431394503008654396190826464961607755909872410812189661414086753806641785618446994828897313963599742852152652365706858285986472689201340562246030389603469196174106679970176246149310895116408268986964053493926209803128803587823048516711716441442831948487710706064331308989482659161849825759251931915909002178676737609808968327801126356628582694718280552116018169405185382360723713836423666899491083149614564146889116146331234638369164378582250036961973902288965969519265110797999202293306976015697725605789009336080907483648858739194390794678982808489682059559732867074414246470917998784520465207270470777716985861116927514105149726434274333333262096576890375190470728521227617390271407706217335632245175768368382696387382560334663457475051548873784031356209502421036105115893881343250753832183984108025617402470497666235165069443655489180396205903573522993598166538117984388383183575814912686851651084157180878427059132035646273120170134277683430923415308517108729505946033467835114641413522533946412538370178310825243453337282389417927011237390593306507871821170682196786399132672158433874055734282092909657119513423283541371047226245833432191840305641174523028495472767597626794407111337904305939952962970768877008039478691497203208666796874401059174197740535974640113495439179681088920706106690707330055749375457759172091146742563405243597590519824414741653017826383433591991716971185857017370687156844789292757052009678408044224159825456603617254388668811867258721861475870660744792954566685264807873052852433546228505352676649490073000930869656581158527416996131246571295175834807497374400237023328344011150912640780782598660298041282208531574145734360905461282792681306222994561534253376338406142535440438386521668806840655879009049503660719652507189853385410126718247113480986777939342528586429906109071700961779470827211333667390996739283143505861712039202659555887242923057143295277507503118232080379857241331401673530486594651557843767671614026063846672946345791658211903977134478984271536282787110492816746701893615108853335495947878473957737501467507338538977481574136985625667670409258887212070233980451214119704076710284141907153916270076992915413903370655718581138258158080476587751350017723095334185654099555904610816297331995775839963506555497594096595251492606443894583434467633514504574100944238426169751582710551866796055574402098221660263598532146750868568801410403770201979791210388699936817811472677328862699920513307897924848935007211696068169193606429035311792230517873669871421760821876715563732358778687735279832322359468200795413840304557617488184540567623916388239842217596298511406655499951056049959563910243802935387401638345570405769556670135841038086195047106573844457833025645351845082524244740438078531384969079479266019842268352689960708220015334753751560752328070551149743110589078021144006931800034993709451220658603864238886564857780684423545996577858613114937316611329005712874464122382794087935994365909679434509579265502673456050099548370351996830203407696296089016620303329460578173452196205430977841507597198140124660622172344543540825923042557217869551182996225016632246069276966624357029489842574237590025647526677871384938608542311742230221586355844614999908624987594373381448180043226191313381755559294539008330991363481014916279719983025973081414849000860022108674807603460105182315815677661822587989316282190103692812263996200368683303058344336314282710456614883344875160598567327415195796588563936582527728433977056821585250409399594129837672813596248765369840266283703166736595811201419160609847901905868487697162300208018618935537500159984131777130586681123540834176535349414536650995336072473582475602220062780063937026598287060378015630911816879650577916441066465863480670824350112253765867024534673225061958015562181993616079630552271564949695563218072017133011006347803280578826830380835827614508411277594928976733965277276243238689468082655700816367092159702634824795920849757075357375274506898682997582971825073529770628757587533386214528210502119086469102010340649947270341102632049667116818203260704404524637688423420504929159458154000684479753891713906436606764331299281506496738045384761541304663863602951470762438603174016261546012723510645390977709188624015585587026773491940369579095113849599143599273922804154318629430124249857877170246861139419929199824612145399993190314338777584549265235283515349779072788952506340666881116663886216085358930533087720402175664932348811923314955613526492137238463584188447437684908843394650343146823078695890049724010484194862917162036117328797640431998038411266592593318899603263197270754836211678012389103903540689016535102038984391978951102377465230791742942086516877330605729741077549142413928752091366862217178966368482205834844352408292473266463455881523946107421298983953327980970463830388360991811060808950971646039492830804666945050065040394499520373136937682838618889892961952821043896137950651942773041729259885072436278596722201292021117345821048367669631317709622874322145165811881079376207080940254733061152015426760323925951813614502750123218896298841783185135603641986822604161511579012241688996151908882260052915445414917650085731456277763112399878824027260071441177623030748729258548934582770402190219750764745033809788092380634203145865983025261479316857231060929214177006677099920301251990221612351713848497474411674485306996864418128364720369659561956174300576183423244417987886455274411063904230840652886331155502377776253631158494534889417361062629804896374421896344530194795028732590722685654734054750075678212499524380464853878278964296865327984587245057972402681424557985348379297424825170970213185574726473190558954057427601065027023634161489036809299457174060892439406666897860388153925456330574998928525804877233283640819861905135888101371905448807333611977323360415393225127655077597863781826189204256723521779846459820769579617124948692441977940942964436177356284689456522483248923129887377265295707301683068799880200023007548007692217710450286724243729903779430450514106219583797166165863193830549211937430684588070902565166084689250015486556595871441570731879261460992151807367930063034281190639957404053883886924216594227249104615117660964528114764886421171412723362552489628075702461730654688747687560963512203793285878112325687676825409769667649730376737241073020835043783532692980198855703872611010970654156497486320644210371494233683265766835480675897276470520286177775852852064538413013989520974866344956222179947476373284823421438572336757184105430269217756800296631215994849558621772868882298047842855912658332880677357589300314447017698645638709599344594672922749662027177180341806744942108258400940071142899637322508792612103483742955250476720208120700614877930492579340485333126450057574616749334701687414683613282906839856124565309665582635509990079597163048970966919290828246404175454516461064569707215106647218648493048840595097139183022464909630728030738357249412062714449888210446537524712974713276576815468096969107576516069717500986125922625501194654716858319671316498453180648771884041459899910756396204831971182355301943699187888938850133916636769618507578645513950004169956474893360244947095512070198250515308267590410725985039131702265975010888159205438600515059939810084856373825572239926720537111484371835796257350560274822109802746182207929614654540240068663596017932238138466143360758757392813347230668270477451909316276292613214202868493154734464200017199565881632071104322911480586896269151287517240651560146330968017160302350979404687327081950680065512361833471691275220616381501708167840690736524197131464567091336851047024135366395334545317960465246221713882476321330777610032495122800194387976730400559969406989024700313605878656136763515307947831117087908932397584609332099099629571333188585034527535169793811705393886058400350468363352853462962424363948393695357590565899903615534428336634923347321638832227366136264580284870099463390538066014902508563761332239181040498893461798148582983572114958645579382594214303482362201564552428422623021699667909024574827979962841706347496734791764411913999468934159437616612189968201404810201121208860061736592785442795190150929005013653184218966778713610565715486987192220740113650671533767156510846000004883555686022781275231966117357075644979063560521419175684804754456493863696607375257012423591088116599345050420297010681648051325282222348947989018294656944288614702194998279129392164218750659374759725794810222163714759232443732427134721905007653270697434370387763847870375799024809876701593395111746967374321021585273885428601910211278301217562685132739186802763721607657205177113324969245047746033875727351845364212540847834318806416263770140820825134526424414366907994568440420443032332107079025521396610619019873078271586801195458709449133053320675196763106646480591427013372542191005135124427041406214507189924050348850453314043777764330633365726780940260262077676744344181195802580700965887557469442299762546549711793310249909088926088193675505812071531600220856379176289399186077742554297302132684122767659919621066173645352725085838917586023608333183079213618668697457231830731316510172009908507109996677061754650632402335175196664021937590501424593169935717890523297925686252252828343363087919170104730174425572967847619932454527562770363149214467535302253945291673401851424757041839857342772036843103534824018021562153664028336207252772686045316696904858153506866961945269319929892566528245040648161494723927174221342783306543246447743108940769718368725780617049627958505757131879027206758466747865191460884246738472614454179636819582264668578914468538378571720352324052309257516497589961775782390465087045882468975360487368200628079426688746118816476422813172095372717453249918005046043419207265703350865763774858685971478043312597370026896295329681019211904211657324484291291623914605111880949346653677505535218156723600017417243192078350399057327421587610726635834502846838286953884651976209147089077113130852520502841319601021766688643763963165140190799184537986489683515041635805977694990929260504895892581693162205248211876112521175821702476777710252775429784312162653308029508817306929673498748082310363864741737507248201872494289064873647848128240032904298884750626710712754064768024056938496279169600099096920614280435854999084694730335628482370168468811588719497342578060268178411433992103794626933798204044519808920111277862606692360556404178649880342208662775714313201661601645780915399432317259055081906602921589620429336676390504831513419312629946630801356058019194412811102944407457013139154065363744232306176141753951559557525054167930894595033308414249707294360608473003540682568696989303873583230789161893787154002547922819111364087428452971855293043822189148480363133395967676630810488942798193977541231096063638561927041826360597318999421676277017630683864157746749006174452324401127237237009681444279501624037529612343197947019862123733500063761098352554396018675582380781757937777889482439604867219521890898806036139722266703845037513205350438234186118718162251423521494115554310306198175614048290879902349571922201012084551071134654062664602967491868205002506502619159227882903014628485083673235256278255865409259393979640550481951992147686059217360939971826456382974787236454490497285577732919716668097012420180273571233417169636411606225827428065771630747912144265195632798079910369349257129148503212168067493010436354442884139816783648789176267360360301517111464957500483359523804912845394833319357950150232455073657394544188517310184902401087014701729631574440659724046663689166704928976810535857072669220158823214001529483530570947102758361118921384407319903966124422001191163844167084709174288356728247821068755939281804381314355962139014404182565659549752762167827020714717095501416669300627048331446640529204277744479961214892734397303233858104208981734834240204868784712228137630624595711738887660900030458535116416185304937118935221507271908990252232214165310163395317312309991527343845044859642724706782299937873544067735352579014264098017490449388335009195914325725626255142056921198763201918899939446327447205187914036304668618135178649576848356987133063815436017269068659721450193814653032820556636849567489840744987589601709197660635630290658779638373854046342529514700058080495065823212711257021918953876951862706825880891594719607852126095359754474818451181138214438071189115162641386204780980176417930774615604427169117605825055916211333090525821308992150505904338129027044098523409464691321188895829037279768287495402074376206282636751095540417603497651600920559988957323041384892252743476108676565469996710454431967045557609667812448341307249424578230661027921577310983579953578039565299892574833258692947622431613332435274575904566816266143512143732120741434226977287207982591008361503558580296671444965237287080981571142723112547669629145574853276288861248998965503699648626185569765223100624906438243969665719764870919833865261838224036291767000634657838347143498275167664450821448793286590346129357114731799670307036092015526642380233328399866558695994638602488400319572488236385283958397585300503626171696961956502894653506264036126212053987307670592168975610466320925529812833813150974237860951282717906316471394644464593868073078814261661434891122652686165957338956025126076824145905448354359637773328950943933638801382883891639720798430246923251966208773060379183140485427611831581540447449895092414756623704846280855893843256884400466578672910292827380785420443528427100258220325089396223396015458391524826109565117332296387256511877553078152820098077270341744855373433008708445777570202438149562473725535587452767740584699449926118902782810522004718089447006884655999628152568577544639176669233805027558727618052598678442987313633152927114617580609558619586250083679223795005601698774899580022049826926125123915416703226041995002933800204714018036033344926341595300925581189387410821506332116030529045191773516952247737362128337035827537532629496537273214533534554805898832666437173682553125422923709459839020045062864144988907329054532236226798170595710117571409175628866446259646821594770787593195076519300164152286187587826528592879050939453428878032200732125546798324884603167157339350856904972902939392863829259106195057894911936046610759368585662641071308989408385372773266496895226981292832421667395153796256198388725438883996658571889273662053870161013546418915429929570541763100510680673963285459467988746752777804666947715324522688445118437275203451931935639914340260561484782997090595248021192159080877390141784961496428931202822925027270386994157666780899761576274294047301624165848128927873563638428616474319843297131374420003152585351231219430953953726426527882356485148713412600089896350744056115237023403061628303717576974862176087677877002505767489499162920264934466174175208491927608078779807870256033715214037127037272830798131220431794811083189844470541776867649831805647326061452407564690319820736114058287645705455419400602577432696444622483902019034102603561899400619553213527827653970469519763703899858451875863596340659420516530144894040442373385301366615312152766515068199004841241754963620466692611800758081507688616378516491943851150926045233120997739545467719052975368029560910201993546598430430035119434335114094898444160698732279428195370242876508063219572870826587904250796319581042240802001654969501266166942468197572297410325727514783599243898244381494714081519247394074882890806773827903413656853335730070899137294416069474957279810447462917787369998266496189020206694854820275302908447235579657611906170698551563456567552120802007691228697799693389486131386253329206077957727398859236435601189309824253557254420324262338204151093148515954529935917378549085267898076980392927828018487960899975611889235390848509277533324827157146621970014034753305795477902144289067064167961381738653666419851280330096296345479580207959808910118503020615988084343013991403588211011804406749236592767012051322708220191744987167262127467398921893258359764004484358551351850498745555873428583160636946881747575748644547847382131483501994685049684522643260787738402489268987176366245546093623004611058338287699976906999711424833720815913907326594333069366113072587425893388793634721690105053838431930340153540733259054191051939202131327886997788046868382270971862025296635334976008327139364874984890726962661986001177842523007531728755630259539022259238377295290924199531617527232435207730162796444866867383123311067928056191905974888164212754736094738763761549877609459933018665413972222805991310487079155559810766167225167659959690772083980477537579752676086071027890239123197072470224287209171063025057762592265638691815768935425037627646493813976538928017029211114655769231601688067980741486798267565876610047863205617258577509843891092558539805647391296019287943168978330511429810401960498856475210491169057467913576428079112832112854640686401597634023632206710099000584535295749366378072577817752779572081667403452978391302926848521816430181188670112594776061056632405345137055048475343121817379239794125558891103206925626791918949043703120431016873243939855086660279543711885367220426149060715274551892491458855839521468475267894589323520744517566606350056751094721737082291389888964787178477168982005062731317551320403502131737921893975877823439592536831784160351505866851602096530506462157098455757697463135908540160036503895606480846780335121842329436569392567443523173493648607212006720217852089831835144029346958401358365835027094088246585432153234992053664510237929167811174122439463991900980506970457999705240735108650940136186232651877319159885610324087947122314776630721152345535269690498187871714433374139172446219642131835839378153090596517931921346491232183556185755496069920994084328751636306076436428139041067375621367880242121643241462684673749903004552968344975125369812092025155413182713471323568157735922796111386202576603579139077613260699381731925066573332539475646736142755050243830297016029218696745408303336454937712140941162418832852554346140927939030135861321982102360020379062435720746587652115546728475487237864906935914196912820335331331195407615489394374650486586348561386910331872665561572147541822067993465679249209383811927930011757343643685816454154264685344043413482657382635577434532847335074072394615768391448318351792542096484995010092245044515433232564179548540924447431094864301799884583222532279607233155867710110359778503806767185416819795976782384587777539951913478074434303270880768918303300162280037801806321919762779787651069111068891681497573669988301537289463993987948118482876519679117937386415689734083207181171239054374399982867049794468936557908502087951648234638789822160931020441545188973426273870749409468849973350631139588288025458253351358167620229310596946954350908300146950352456115709964708124062008022429733238871314352098122297090768432903928651943696255901256435352831139962331815791330124444656520891459188408539423784181460747639818990276274054275855005457142859611758837849788755933272247024434036429910348230185174816602063060045167611368347200678679283359157758692337689589205585184484710770850159497238195938048686912995766025390123418890213233191934073760365773636023177792061670763678037167693483364698795210352727429122589259669769383088925436004704935184678385660560470090985125046197698767270533835289799830004524296793801329695752945331613828472337916258138373746978379630291231347257839979226046208548537835571620009958234665256923979378349286689742900613542690686099307963635494499157210361807263976496840594677362645219510513052035897428434197854475401179360945917303751370962271973736432763987922019977292247124650140058746465457365003769261800977286185852203843550007070992122294959787945651292706587521089625700504500635571456207671435825051243837062376540753076885163929084172626947682441066803727721322861275286298644536385946366800356588684178117952021933043289177874332416626119028802492502328470288489024511404394002439021290036341966375740525914197618802069174565017123145060356250068338398643834812734576049813642704025247741496296440636015956057513810753333640103939104322028044508674850863540682478026453588668312602239581937584976414233467451613854785314131191401362067504375685317647797857213488585632915965659530374472949617624860523018320703420145057084310324620758650363411934576049941359321896186237217872523749114762373667079932468184332942984000457047116393207240896935146095396386859395660869502087709126392608675584472547391527294243880047323637131555254074062377695604764256138738203049467571282465818240607713749739439204688593081375714581035622305797897189126329819093921151288716141043695336829998623608422182364279767934466541141537448246367999502434122315258499950875088898521665568847466344939676317890230802278149064118039749914516527834661945183314755245631421732888402878542529335812862926982742792957854269106543459203792060789181395691108837680989077824395394966899965409725260340519830938567465160311948828335458524041299202786544322100347667274882902719198657779572013404929320940443075024878971564943028689907731610406800670609875363493919434522716066993735966561804379778390253080908499616999103756202364920786560448542077604594558114174019007236777023093946757935448813323526298244468386604987329294605484985269070382465787111659123322487777070860245089967669790165312431705495660672788203713397352575361440790637839313227069810941814034079972839951167998098707227222481320937831755011737887158437821155800107121834710190945396477702883378282778579271572142855288612754841544958273824626571247090961477510515372621622508861772108682383571851431491479261821472178562758045660514940912601754051053431712224750025051264812534867009096865383799044687832764110233610043264474345479422725897524819131375138213009025432964163774298295997625333304501752664535647809536714639099172684654473794069311553464320113090797258717856049058603646331858968193406459359565796266030537157349317087190208530235069432927124492484634798754818838716750441944824768607749935011971883312406840954560837553361327986863855138490935048548856685973271036408530785317016729153480121272387843993085642582839235520861204063807886313766647666748901127268668124769081013308742688202607440480702012985458392847807580545959565652287530120180720046607207702815169695890402119696218521962666438867875258203774454065469211895280404905804074753958283994890607770955811130919033950275154802357014778684849392057503863101931513367650194150042854357007664597636522573134298314796005933975296052923511789144198796043467451307504817356440142588552118151336365698610939285522388093753284369066914632232724917609095213563467268500301702972059631676024592156521610237891395988329404368863326246062688060041792228282089364164713604713655059884673441672522668295384910843510209690845289521265699614322729293631201506812487564399110898134701278085161114208634654660205305292949679585278126649020011597061232187652555161573137208887718939628244918164446951626568051793234050543674831757991109423614666105336808008829714786307831561097902407630482231876573368504155100496479736509864973645307299616334395354948996442726629826556069062824233467947911852552943436536247368928961677703956870442034459156001505529848937545880602314633052680689278164939886807934318018656716428317944250337221324529488642536836133397236603217151309078807418880229123956141534719700230657537215243705526543118000452967255492570148348786773300340445565204837540378735971179160861928711017239962448311419344030872624960523313184682526709828556664693261500648484294827411730149638151989929847716962378028316569089511522762243066375118087024030296002703983833278464117254944961011076467157973573229578826434875364603160834297198446558569727361013436142081822763818309883310333795484311239325309560062951645381939277039520282550823828963567512349347804788533231142661747442793997566400354481277322937665220503137132528669502744548182985159115851650093351420982077932914601102379421083899526600461944880546633944713189242883977496600263870216869504395616552281059644923463424285321788838675812048305672615567767006813659982712271968346782433104135515840296992545540991917060186792265896532888078659219170244910102184271229788399954298170895895554083648374086733052783093398740594239712706987667010476907698565566587855520732304233572031076868640128654480063175235300231210384911504653557959464800523718947106279076314729432510200034681033566198021576420397705140340845500712762009395135919751825872783562298427975142405820134958367456298500711232318101504997427673348945497469199291296797948905351891258439903782046175885904900747966149896628744292225484816692018955456590566308041432023909590984126260869473448287312645131683314605527613945222096798867846246386007525533283131222641375263552564734464888375709915091312358916402054878907807379336762856780612586423443185731768298238513143057430593853508382604206789348794822891994121134457428234529060296788172965899286667900357395093497271433445244791341337297068768737191118469420173635901668659310576941044542761529916361934611611546705240008716975067040449097611878439938267854683862925556497548777773857131148533482102624265275345190199525836085671960659571817757936992614885618453977970847993910917756265877032325214787594889888355481894005812820721843035825940517148391167345996681330082965780613110448718893118146617532370408917207485890258210135947709054176536441131962544973782440088681429419036041596095340011792065459845583692477736402176036607123687340601315358058199476382698143043358341506925462032515588907291758211146826477894738029733889421591188293093734803198271452094131189967300568899578828174715160648260666803109911381989653229828772873199254402981917131436797924584577401017077966038231499864966320123984259320315394825913674292726025444206122280057290168970782394278658321365543074047098550546104349681775417294654885914809577315131283330560904335221208348238495481147214833414637977027720192614270241694489628273149921622322109980594121362792440370993118269514901400150212556706463369436038158282100716121306202791864909929327362204083083111864301442759302325547600424247332130706797303256426933307426331277446081150656426510308998891720988218968269645143003002368142442407529600321680618726200807563677084704120491277475800774378407875301236094226973934867793082811847994915371643971978877598589601695387789344994076255668179859648182721891444800297122602907918034556876203490339354139939104552810633462838562914997572383067562736255095040762367167121481071282401980455445467865440824861504539963283283440954009554325989522077941417281937665037859405927009608484596911587843209978953715948053473058359822655840844517047965418467318639644209629663765418125450741803322273914818033200959418137100008948909632620449876634979104333846619346245309169675783309968180170504453376366958367980165389888487689940229837342409174268002153218551869476413371277039629933027414926361627045671718364465679342801296207060685805208464004592146467832941878446621551477606975120193822427616398867594152005730943228271689438097104894771446133098081654034657521205579965778163656676333468282174381558351889159026031765193393714901514929850822059979645742797326160609454212441859999217346056774460033827069316370467345948175197178401724101521447634637296654345138145438862982526828905113186911935598278482730987550004311617192866762009492306021849026166314745381527686978775467873495480329921986701924170198812842823694769468442773070147996417521724884052991437595920129510667739533399853068290389795279289545691018948285802770889018877404634900936661051389777494542491944012205676950243260450598021315989515629427160704365346033103533674663491726829224746595009793040298671156367034400844493673170768830591206655046193937191555806293863940788445705642928664986644130043290732165099783864694747257124713734116962956766066994460114379755874272244449658386021908048638076577777858121182612721704734933764838254433109108290281092976361977859992509293708796972408615177335915757625339022492412548124295287564746245059985081428434598618564193167623301426709823894682667968526002596103741809316214348488630315457244897748103123138790475123528252661020414777834861228125697054848111143317208415084361228556816802452776898673154093735674703671882110032490603474956899773822369378015494368073309547265824869246899264443141070564285962178973631070856030139462203788318173285182643491542381475651682804880400247683821304849075144302322599242159066161806554977671389053253812388782491915017966615001807443154382029672778288555590446082900645668645746001641143129337755059083378484590053041010134580583708770623051305510767757405554022008223889139661738743852347229736391629808806123502329107227891840273725220539579478703007189547090406019734336014564714548988331702506148056091577148601491475767033498188692011577686839257975579043440154021056920541737492690939085432465497693674113184540945686511494874234405229905914062572451195184539644389098901436310175867988278331946888818624137078799183451128814400172637678354709749631321456734365199799626082547310487669438265273230835220164229998710911075566435015613560658529563209742845424600388305497237253189162623833078436434318647989234426432007870629091137434939902119515932635525282220143176044501478867873154730912658897413398755300138576056610702601455169953747851783561726709962349143262248841311340762507006158681626612110916464022315405759975912206302271030844589397219319556842424448345500781490777293056280612825142980736979003624525336303600960167409004983218828231751043932031280762172505804106906172041373552402967247527875488457514244952337871028747065911659878007192646744243960202777977288311647232171732022596213727369433434501299335387542911189531575600974297874346265206729593463336733935004627174195753561338219729807597512021403765913626640684917356413859288924800594178207183272424568522712438803438481664811125883325573613516437960065610369935893551062666517522570191267031608582272624362656299723762127643758671156902509599324077389738031580064808900508873967910200257529820331212334575150086304339076570146318450139123868283259640068176263612761180714129916682140649934887943981961591525952864849910620406300116170699589125586667695269671894980650948550008547272977310174095033355174502472096873169135218002456157022261237667942693469583087554974781605007301935375868784888273331633769281418090149197585810431820314326461894794534356508404139996051940895189640799862092832033918378832059387372580657842314746243625091124175583892334451843553969679524543971445586864623389246801261036129294235183200228976878475564120512476102620861437378283778922855532712319036877434416359018264511748207209294477840997342675052698404119988876635953457427027352146721148060265537315783439490951113858453040579561627935631911320180356080592908147977298525332276430989211506464637819038628753210311237946749561992914362284664344165812282814047226183076973645949171590910814986202130706932376241436424708852422455678702993309727193295976261944464268932260245009928792186479130743767326727079780586882212975910586678234571016243158261413273237073330999988983719500654002922259926794469907285280566178341989662562810701525507297442009007377887823635336953012155218006069494032831612255989207703107817599111696171986056042533312057053330926536127573986558596300384867549222666048807998165383061342576281067275731859049917599907728686688808130710952261400652296739839129177937237693031022353549141612695702445385000085243833731968095472821527549857703125819548735961062107319482066739842383936659371839421965350399010466046143620046311377806784614513227612217386666843909972191159152782084691643722256093053657973523650293322040537276410537842475993472022507502771147540963729388886755660234187344260742101687010986100086613227190034057259880068220530829711695373932543336168262262004158495675877876873963204667277677023105854577708842889753793852841344300755372539988219884387762330229358943875435098519288009943263888591881953442419116945417154761759404587934738051994134125461412402172899880948566357385168316325762726390055552390249802846287318465290115473080639802311522272754691650759248724436682748814754460540535470720085958357667320303859484478911430704588605605691908023678154544279873598517523180352589730929426124253398803752094017082585906408255863353574157457822755500296123420884181538024530303478225323011235318009588361603067522722297820426716924995993571336335872092559582286701741807426656543346856154417713846254986204180301124197814469235168692470471621016723926979834496249507385550699050932713392036218425322370961987674010987919149816833747971534956546194478331340048081837509666254736558821308192258276591453170269734859255256103098865931657696414035116974384967793542552124644736752844540087812913158121121196538422885694493978160026585589898225109768897503837763990125023395482452715064747307138879564313338956247118724030591994395377367924619061934847240359333011776252414394583402690607840653637183293657737302441895137276172411359265963172143929297085723417572940291604804168650770653632279414965641873824266881574153907473988611202005450889591932866143608093504832403595780434384557834082038832781721653186805487560724232327878720838508112237785734839374627258041037027772961819238063680487322916466657592240004352112742933316444258101095610463383461239702416305307360071955616147682218673160245249502985528191962496454313604549512996291201387825125275066361074705451081561744988005076493048430876881572330962211591236755565699796286458041551818933119384593200543925134090694075763224133999348616924269965630167135831908669957851982791253009091705620975836052651051765393538230943434609123090710532044305453348920008290535476711956693560240421537335442410919858251477969740052938210745075388302139541011920237434354968805697315243637882738390439337884073356788190874952872823332368138204461692579077928598311932151330004017501052205420303948046150288132868344098808968700557212192939065398086855423598939601619771044724295537183326517655523819666633339330703037738945633453838434678649384360200494727933065488704906819043606769364551433898612194391033926867794478438437803880716924785414408728555496682977466583009651841221728521157363101186254470272076263749296583792014627489499063238858233501400819179319377845842038256960347069447665695325995974159526832067374565679975322007578592435122649419543648265555304627658022030151101305103848965266715330837596637679107545859540876742719053158481299345020970908167354587531967647013270551660657814662161957985488461504747380265042572190005361279146882811825376806596589756971835381847186064953123565893769465999737122812939173925357192419644258670488285432416527311372068167367035705837304970263530350215281823697672679534616906407505916346267603048051121016582831077698494630959383794282448275686918430276352562726215336373148903222092451829182584784156374574168784638983214369366325437413008040556146870977574253667230474546823687755066850193595909775455376899013830311120582384559659181205615866850360952048518182215767947118976588693719922372116581007597373441722396167737727097947915473342043229032444253896345820767667671965609224136650868500442801971086443798741266594180795835184096805967039618749150346655843205879768380942307483453866645260878805387049796747425925622188408219260136239512054352965212991462585529249800356241498535337211705717037503903678581861849071814425852977707287691832002844336087279223986766493732611763292809087552737650115317560900314599297933646182274238116191529500473536197195253974172049896393237479858432624144103378879328300674273412301643270601450796475362331385490509045873678664045074627858196258189476667457058295843294865029419930375406023012331944394081833658312046018578805799174842982779481760063348048499240878343836501375251913277657086000969139688445792110345023727295953944478006278424377028157940915567656019151314799300096256522047603876866995828395862987844593047014023695939408757626528390359384885813943446161785806671612046001410883508414668457320618296213013635744710698024092023540149210524679446560944539589678772082949180904300904529781714256338303573022504873107704933784153685064698312340381876492668123492140419145266628639469194044675712137050219189835437320053651757442694216344428362258534973505228006505133642024496313557717280335423010039886189838284708528151089523048669860966865671482713058235449487775884901525693311489727527931894490142477464101323460977940400675860123999968314966559437177430961122777602504323289622591986845990203367915823538875981087958144444882008792424230421902996963365257958759800348786472712423651750186619805513342851036362134773794107017391955207535403066871251466593684523094230545232719541751766001579623426740575860772916485932636180277390506363983159492644713269257243452109862883559530311431384715780841685931344343662220744447211024530137375574041285416691528132454056321158794960760736189469957422765010273043226587284125874106216346154382179965721021851442593386945107259396442954446678136022722423841476736213238156169570647907069267049211900018079236471336522940814911694401465126290741497352435187398785081985599767171503687182460807483652858298475389753474720884531085961358649054064811964186079501017322997307800382429668805415507745453285125931372893963692029340732675500525292305028352835504569777904729717051135298191222831810483493338920475532199114201314532031548490375692297873917032088309355500351652784954375645205817639000430486294939023079714030392005039534396672706610642116197803168172167389963094396728966224586601316494816439113173805436421160135236081939028972152991318117489443334283237964160751549583984397175312609692865602634514479037794677174631515117568296783045166221335315931815304799793090279715938427057288798927912769974613710242793268347392498632354802657474681018918948606907275094850324136846303418307142173080961488924439702854723959693529377261916668514038421815861848989419171704137068270262447321416063828579481475067888935271655526718980583292517108608902627770663261371481200233220890886725526539836265236156461601795201072144605146385053963666605842430477015970270052963822385932943858603364857690330678030235522287899208876797970410736116426660120702253564247483923430931814917208589412363823948220540130654310021193927278092729323909066201777502398600898182488632006529169863881048307900336321350212665724567121244340801926929644266106475423797070062718784463126826528013563665298985933458307091146512524444512964598089832583459880810355277417669302847103551520012050514948067602339141256770891863266285268947720803456185416299875097683586748783175312710673152333898062871835431457012855692265262245467285305002571777049302682406789621342440446943734390589300332047789745765144515393311420670683477850977770697536971285238052367385304372213725332044270971391480880828612913217945599426585310828088323601977706546568247411248274541083339285505199521914011489936730634221212898999762640720020825529621985266734393295352431076767249484253888162607010655305762806589466020254359815942571343036952716445007143486387569712000257769494381113300984780321101011294674080444679906659938466273457337582480536343988140457254038129592582085242445304801595404084819073679306863971110773743175149149638415669520198938804290251168445382561374799390510337377679449449472642279865836582967730980309542459079560748621121623524613622738965001691785829679478912681625564993206113479862645912529083104306005182788274333615361748256377238915019251804960544535332095630198174586586496068619057080193928363496828409699947673411765368639283505897214346520734976350526054004747568106394192477983026647991113738159155274942423327797335164937476003027715099801482889028447623329753331431425798689562866886803211333142323579926922392218886795624340306659476848626539075779069227466959884204106109413597160758815969598494563595357371881647663820911155512848773096891869518264461048835888522622610030104316014774315635081235726554571920401828601753611794925641261266071898742744811174453257325481763919288382020422812731871338835336749852323679378192928868270034446382767910765228131791710820628040708565992434121899727171017003261924288600565558146435130547976379524997399201458101337253924497047535036907692600670507078950939065197295816890255104509234532625899304887347116693288828371910056481360608340344098143040402584566930556436403216440194356041346738525758714865552036200108185447885739654894743679752177334072204457791691739706553091701472050174497165864144499566526109841043952504212946825809082986382401427979951670108162428075917191096257470868014723119211029003173506972540308012914189660208864949490397048776010138956222714019982217038338621284715860245684051963427039825075795338337641016079025678984193950730618764806252905764291080957893345877691485965434872659565766700526460772951789727755549770872890750050424835325638714622020999416439710572199456011113527799308352772057689227466503799213372876347037637796889472968059809574511439095723759494443670512438085486176934561281202938070808986772045367169776361144468358379659978692450396958010074282919444359499295240043863775127478968186686084236593343200399870342962794482031845454507986396261943262599562377809097960810312116345290052367891782689745508680687746404961518282322591973814075081439202809654442473024221765738662303781321066912891550431614498844477403739167380497900345626123704637842236231607965550707766187528827503099184202233650325322714030095979422342117338175816627842991794111061921376209440386472513605181958701242625506664520422738751803503175344565681693042983884027270988030425798617606427047696929902908704203442852196832932991776691186130117540096269821455744539249120007489873705953430070159126226261928316964786871194433468117745329658756877738690837541637652680868025650195200951745030309415690279408198610769003180165512515277478641991701937299977602280174641315903374540482269331583911496198027022825983744274102837802012451980492487816470035820801828752417715659468289057096538884503845002956071961726351551260675166661220789616895221346265988014006563744788838338366475469225650425937127133591800608722535846086313741979321344850808806646520109200010206728451904691279431415533857947880030995921797485782296165747992610636344901154614774216270385432597876982075827194422159662131862350120902653793256238061465681662705480011405935729722701767674141014532432305913825755625373972969953523211202946895204741377441383119095429592452503735158376581799531679817046894798562681739318251991478260102672773587886091906900049924062831393921228353391823440762943918838433231524840691604734330108435516631817536506961105418156537284608787156243017887027511205061291124771625313428627205573738687787071527498509172446106992234333368186239642276060085786429790916889028391254385925215104599536328772823209916875095717102018897573866033501036199867529939328875872240688436228016853799846342292955542477953271432776661150906529446668284855448718926398410698828551944963909712852073738994996304283248598345288270270057726602624516462773056126931697470400980938415530391720396914075943333845997378292381646815596518126832636499119031116110509228999227690724492124611990924100736018393292666557115822352476668557202056942440972713396529224204642922027966783975966032964524965008755481098606280300089442376471168040563091484322602789111561675059534023211391752459316365320286556578857415440122593146480235453321583818661934327237487905391713057083299953357023261107251868739512503322796395568787359676643880828252320255616646920732879040726839907844549767607709983715215489274348856684221280524669165942874588664430796943690166143244186364484852040544457103317871357585382206527207123031997252057238371569324129901014397037537436397623900914310375138294222318222145345271724471818383954066591373369589594549092294415083311139164111536307382803473796306218745289270418283149016796344742777218457018898405541442019552198213249252618082122430094215784864103246287483968504780778801548725957202844708242032860797932951572595013226916195607449236776789130618056498213549314086828287607030666474276308566148347588085046803595161769696252149141365206031897022136839265891126907311173262458950720868168230900727768040299159273801153107568858989357744724470006856735492906467738997972406003042590789364982299203079289993584909423934057772572091741671024310866372219829767223808737118670760718212800788921149160281560325312494055515365916047499608074235601647341781501320619754456919557737626999364393939354352757391151503832759489571743368847535577474710906810550150531826915384535945066893124392992642416081265982895582711972628562905692274849081567294524336967669344524371571851258514877252007791916400626493772194002205600013003065910067546131337295769160904638145280490769391107355525105516735600627644133460808614389377462689734641297451796949098280279044742377739797006000819113474272882339282704545522516009901925141092556085734884783349739764376893342151544076017254355743675542007523994928032211207675028787298030466033927158492798089666577633219614575313497165125135603887862551864158503052807729239833894255634926562410128979923184073489364479159071424541796961404121028341745051465425952980090573571628996683973972937462329270340713493263936173760636887462114614770332224338730780669726539832597009074183374371713880316131280937667237566682625899945978090089544678726387273403795422848481501020698677096676966803956152721435865872206641305236268153221197632427932608325564321438048335991808114160780564895367295415947051179832410769250087503846653595647641640492148192413800987694794399558889683934995668878100885956684498046483641604239698237217617297799764617127669127316976512641538358114402376825448207055118990087276422563107579394825078577183697017406631372776517735578815455792344864227151336125918415893711230852363687390088381416978657311252567931868949990475151017813920654264044359757665472829358743106590780636096201203884161501527539536586543796880817111151961664826721464775488630335309517558102368985071693006922301937405354569090310618396991856913824835995385555495907364107193832735337604034091824208062572135908652990679985604909286883453985075473677088078842506241674580845334903860513343816200047640037618329342111448751033675576961636687262754400974308049103474538804304985790801238438511643247743334527407908036009231224260222950948426184270942076100178576103416012757217871832733168342007778353858167705746767241852167377376951418727227527654120188700157533193669840774921102739271534339134186605198859172363811809198053076128475409954451165679067118022941584752449600837772438191217688193184241938765760470456367500178252768383905615563482327429777733509954435213057360682337255693400483004450846125094993294345049183924262476039536049537284793947924785667555470207008029260918431050010352749548657755521151744156560815051689288238776658566285610619184945622838302279045226308080244370001189459537211462099073828740049772864982882761440979503661761454992569148346685836593404172861605369066298981649392852153742855971296388936233258393300963654341417914275806412273385627644148839090689808826275218254421895565192257883338214845967513378792851090515893922827158167033381029949380315323951506725194174268386514414057614018835795821749911354579017148850035492719769295397697363157354606089253308486695039635835569758871523573799562189437052114117754531363703539982004668863761194293257246183862160302375338089294543386403926990060148166207153198428743741995019835859586106925854492812796742614137959557901555657969984110874981851054468511408002095284709740325536222957873318816718198534361621220671585979108201281502430257363054271364548048404767774768052320442567452794592356874250623243334998871197892152980718225415947141181405483164102101802585047875548247490289180056124028692709463840160970536802904747790109741523487010749748715700051045133037488871930605517604069364466987763388468533417999472896613832293800068872358011852752291847902959351158867108023290954969628281539040815368909429818149924027477323469687822925192409938173388197999945417891965218638698201148817464362795179863150175067931215850259235050923358976837038696944797070073822901223576067108871376681710016950072960562649308685816499824890844737418363004021612113268844925769831548810144912185438688529503272759729571287160289727864214149623120157511112138183245494922509960348931570417549405781664651347368399205284285734581778771204558043142015451716118729758190330182708642728886273182948918858429185067589889071719683416936793862139770665440752687377743441761468027786648096845347654869972521184375488796812447876256093484807817016897433361770969302555665691644378422615214271976330993872767123908812279478584564335402380648983363466457982113202748808637452366586151491035008305645170038098985648678874836509261634566166154823136343857513730255311379184778604919109076663775894083646051192181750999339720324423212974905943392421725857530672748824127955183273534942115561167205670731613063942953130346708575751901591696666679967838843904569257213296257566820862112277256096468613876629143532893673225821161117507541482153252109768113038807321653512028627402180828927934983954526973230699085614327049637229174934017855909546038828389749244059914023054898146573547249387707875849666595692557429083914785584598532530618652088004073546349801838293739958823703497597182762715924705494805709629358775149769771875610289460144244904198219085855001459812629016430318518660626752876477809112078998619745604437666842264955664498188057742765969493576787439473635243794749419312588781232109776594541161343324389845718492645759232259555299661240287666912503305921307265416565974356585172477966259152783681857412714471925655200171071733324962717873010208917446927443529711244930120945551702732571604820559827058798436243819987711607494049207773834225165575339405004718770619164325285952706427103427920417280924264726827650598115785761736685907670889621376064618060302474157528604720125520710440747293466576604253971100743608906734014494692106569293069147085176331513779197367455150511905643968509877770084405503501410784969369565023830808473782156832444833713513445712056012283435474522448172734310527169795097153942770388609830795755832584653120522249731040859631155412237056561974043107510724799767781399317712957313634678946433868238389487844144972833339321414109117002337423715797021010718886292271110252614051384075087503960832633837800692357926695052210234157791988574840926255622190123023744093914599967195875559390361221940757988887304689639949224842548798177338753330365424175662531773479476489879829133757850741126691777591751814577181657201298773352027561996581965295270449558913092892677840957785375060716158583038907090837285574837824130364282659503272805764109993314100019832197860195435912418046590193643302207914675707806565707070530523904278842058406612328349791397509725346233365853841292202254256707748951215299096281943810299123686870879277115246897761642493983524886209265650386378735754635224677280576229991561001096091873295464569674413409692097819054089202362267277155738485875863072944395339774123263721233197023379510584979996843535583789425092021038481277203527200639481426012884543869643950452138242400353997872189182940801046861079694388774898225313457834856227818276543051404673520740517764718253898360090898254805703314166393455874112861774465922369276716460476748861071609657261837032635714152798173691797419907686519805204533050453383525359422299088964546653993641205632314624428167690506761744129172367062339151371937253010053037656662310252231169559619645589402988859462706959010528415243922253946525819863227542882515386954607135060239089866477787486908402265804623134622970288066128999368172751743426206607231629032149174769457403471940233940189195437974952471416669241560641881236699425382648469632965230764497785637415655525381125855828281658325489104473815024506295803225303488254291052138325574825829780293642627103397795275252742521946985868886434441144817927865691658065859707723581057941603089909551547874463177887209315259476290480423170029056165336818382758672155810057720171155324422761258769098277076116584181048702608790648814931602028935602181476813083304604764628273185868085558230649528163872516196490660986337118642376217788340644098780972277392684793302251906788038790690055036766492519494962285137302502418530195808618442388819247828799406099200321296249236669176784338275465421455556860038366530624201384647849779798320896734034874824806136561943668855548711678844788329005922203651112893328675696885637680800201277763136397922527054785795031860604532581739672063073891186499061863989422800817305551815542231259488050663139267106686471195606313231430999331123179922390788057692383069993572504469527352814236442227650335374467893826945839603233569570410847455860262706426106386963394749527039296987431831668063446073550010136019568828180703285136397477550631501283927518760844268409891483891109583582547628176289707891846641566864001700607218221265745266317094806349200360911777577966180340717692252477060902197367799322463306132030025953905785289043250584407584681618654108336407800120740956041379456193905545971344593686896733860801813883737277578344810630255068475089360676701918333055858527933381468024936138763407591868271076819198772534728607574876215710017765788527817566638553177054812621212475582664508666248264115581738607278036392921008141388674907360116509090461417828549404109950439754633975087539505652488445366047153296235652626990633949500660807063203190307916865845496514997555524777304952585623614929287936378578195343396620512768790589129193510055275745724909562129338278442302210789925058479712991156687996681466195060170097869802116864323329286703074001397629827809751927670514733576584471291954856629381857223050849272230897956541964659856271869850588884751071583778669210048687386722862975622368946863386122233264608138524529456489332089538890135420819612873165401210938602388109193348824717207529964730162750765328584660354054091376314581505615399212225452393670903826316871875412913483509662704612237051220389471517185722670740696177605604092369312037018980340197790416242759932508250322323741315750018224690192581002267227508041517288752249059632498250275904740557491133984477042512260837355830117312527919549725227941032995135000444693772613655980792839197643078668515432157923607726852872350729040729260024159476961086848801553626555803708890979425702956813423996756291355961433054536381856458307343183347928236216817287321281664531277228441834168403389149013412546279789059770093373388762694760671792634279809418020195393976618479082328008702017721663375668962499601538843505325951070502761513228717929191578166426455574788474286017874636650925329957021609461953675709799615497249726625049581385602368717493912326137771561782797445143701505923516659650803934135018077404959383063634696706303603104283556905075555800610507778656783496426525999825997112380373314247155755905428856573438229927154904128912459569847439333978437238408676117064603267923991801059334797105534605444844068411530945146560545031485707422869101366821789845408835458568472945337454314122580920215555995332663040613264580050092447394546713580626252855298646028247713416727464892731645242248815375913165396971097208970928307606717335390641268778886045294798913170366457169935419512353563436361325922927168207460805376754519599178201214027620266180825814896967541668123269977662485507443227430556975384928104655250554175892498481156602804690153966331527497259706703719559811285132606243843961193885867139320507928480100435675823285958592623191365842989652890360739415135984489408585623390228148375353995001024011476407488514069468904849500969462401052466476732761564244665162734707470395127439085986458470690663855555666048249638200452725496313131889927164468206791614662344190168985265145070699044151138949529511710004300706396303569119746897903927516111767723534054856099684945045758464956500478661114456365329116359606388014282535581568175861851157879136743441340673335428366900312485414261064740171818666572117629115386031509814342613707154662977252916113005893914883649740690317016378854280551859963685841513282185856753209985776672321969184622456882899513236297874435846047384469156783575263286883343408198243425328016209926490900015898632660092002341342669658323864788937525916102192875391017246009640176568863103703130072318712474138533455557821087708386977157606857081076061629107643909218916518574528594913827772517678212857214250494524215323960212880909580671484565441767463042022235330374261026237681765196674358973374784081727220177714535070013335977845621613485151920157206884630354280739222168818113348353816898250645955753027933493043104519088189419800525216958174113429896141015644112793674289746747951715988179172717616722606092279052318946935337155169015051990833782026022268787813706274245630806561820715863027148614725961756884654739818326770868292714839022159734626261384062626084430407383472497471372359989039577738858657735326675343424443669061198334887547091265586007244766683560586473302436850461540155489232053276042235366665466745535009291954713921436709909910237027862022721165815898817905011957925730379424855683999408194044159774282285164931892252463182181162924801551799226273246289017078022234888617100620973154615004545979698979055834944142762643609918791962358591182295276134957941240046739892352671962292954664067482328913455243625541767145256932085661188962065011050941237993546846798980969690166828084395245366297048252731624735730029246083170662146257483814114716167472943597496107666097520201811914486381608313430568417306724684948632444213587646090327776629781268083701981331833821427299301956422127337715941520122189839174701462846772973616814841042392820070089941857017815979719587553208618822952912737882396264541168456474196822215470173255351029859873200666436946162513669672111374107259233871289399517817271324594344470358391718954106617961969164949917718743695391797316675077127054289003841324738174197370155402744835894900026943105860017852377261818967064250080000725209328666247012560151362144945286252008443862696754256051302822803586746610260825148753999560261964372367692692664220145021250837078886601609269509232514498397593166530635557944713639811755985467408170857140987652521121885739785501588335078116332837661864879869890495706039333787416353651665851001558013180692641942632611828348301127800810318498206601254231452474202599666013166179545052687500253085363398215887598655787075326127095802617192660914906586131786302477507892286312064108315943312003968443645913246282970899100580828921125962582492994251126369052156458700144013718177456303197754707988563164417976585738593965922917959829989610531530771174800860457189869728059517674776119773215800450015851656819395788240436943593627977264832143400157428823450923854402661395963771249100592822935544246124340186690236872543563739654936819965611953988175417472058180586517764307344357635993219869075801906251670892591733904861076640125256812061198950710265101240129991791603201214187321983898566840693439289397231729936790159665053467707931039820066977856830844997649522766867407299929837637385438617144369730260193632454317890366679488194101183075521352965468108435672070697127636377153418283035893678141951912032575147639902304368397029313905066723971948369204889971230392141776165837034460034085400570638123216088975077351163237027974664517314421950478674536774092607809236458906888529632092342729654596623333842598448681160730811200153940509108933556472603899223821068441036858633628517237147621873741647175011939792330920457827907037360921692468026520998397826538831503839561894570569521794363275047384326419974857326706367029429897338270349682369318424983518412633169833836205165709581828201223456886495595182755397779870311666912163748216053464866633748776649206366762244649286528837600042002582962770006109944226706051836093617546192139053882148296750581558452792209544940039998401379985895270766817443716751108461083583151992409785424204248397191974982117651475997512952930238109572486327346349070146013951571251388002335308636136320159567923191735499108704633534858919103793262540598065566447570111466620326271856596647201643214494399500460697606189304742502582762033992375282747784402518491909992915675855969921289199314335617564922456672329562376894964711988526492693977804094813722918491870703375084163879290444585063897873356014625582822808399053514275671692252238546138804669129711680645946514012224058743785570392137189842692112777532463297356628708465442307238941331711426219140089279664951242378912794742026982822174117826984389590240307718204268226765842980487621206556237931476946333668759015362209739287191704003623633658711409375755137406092965982516793470741123359535868760772537633145073205326992491999155941864800577478424565402405155991132004660404245007812078947893268196809441212280826365172562970099764501442639746566888743734456136072563086482343728091221536766183687572967744778475069508674844133415424214312017217494517637589402014503043555010896967799930618642227941010144945128868302026512623357959285230879884664398855858919097125050787011094645235665804105608537183027645361998284560557602323724977090704294924901513379188916077518872779382151477199863304985163311225099552202138278046061483471957143658983331379196332110852293317414696353664290697739473140329228669274024424781403526528712645735617506620985332783444538645241121696776186919426584232538035510349667008582544240990402852421689571295543258573250860701776251417638211878436803386199366933977378588719017350571510196549111224619519673697904511314383818366788581859047343970513940535980816094899115283724422005428837406147713090664439648600570322641025458753754787017021005970294264124385049552321132441528792599820518318801250260155889711099473330104817123861804701127536055359601997704723576900074454013295943284785480401637778835493539688181835028955273245096158155348948884266172254051437732179171037506842111754957365566576361357174037198081724029495851918729415947447569363489424648342219205726254051223075698588712641847685778961107615952621361444008868914863968244508224213069492816374797749473936340454309497171584831459516689001960476955158867286068536744053723426369710476184756426836416042278286120205103657860149309292060244658298462050446168850026457625652432496448934564582881871801479748428385283187547132115725382320962811836209079812663943161733097666559671143257735862401451137705926854873288340530347813798654415103402569530667457622496636055676620331453300601917453201024597893614100999853592003729954250300240705827287651367777550990358302450206568873663514466815450215636167595464830080195826812998825604605023233677499814183822943713187580897651126035295781133897883695254341238872840518474645629690348325319706356264514573810070071998813053982148257896050525138645357757770572226036563828443335720631282213240970649735272608570800570673206082709489460734533999654926015919959942044386263944621248192685627616525275223265793769131398350930285768382649499005326916262256495482065330988837044970846930067036412372233561562464468182963089467516469400459020911576752077346877555942406607473756432423935147050168498550985415937616180549371318904781678581648691828936639307013029837727041490479030626412592348683816874724970302476003322582532345411078025807486442507980150802917942589482400333511639489730142584090574287635982449404570146159991421236702827116715656445088842057653467544742056807930330520983167215141554847930495914462893720599252097037527158171830313005172221980180650984235812069805499305907003268560708470865812990103130148894159281640290959141167326357446518587216983842170303817254932601774700656994758113324831915390859560005081682076524544789313864149163368472722452804716576925588994097542805271110695224927174370867880985824405506090003385534894462979878491088585045363061876575415726912941772763261379417935728113126484512252351073207643909397109204860313746828636808458296434585479802795650753825055193388735232497515409620653131087510521230642261598659801670194998210993142878201556996850585273128269953524937749031226567553585772129343979956747090901464282102458706830985950953297051766181793293453041791124344621488333553322300303893885194980667567123659738018841015651768596458529023704239430086353421606781819882786196646328006637898053612737405036038781070705292960307406367319021157317945683474392483612078688256555137511996034984483486638498488150318352230705557995134887898297689915940855203894364628793429147731889568765638814769024112194045252330688758233607473106706403070881447416989268833210968173297299753670960898885311887378786298625640473458204881043324918786731090959447217423691853097683997113437465843969047376743174607080943676991453718707428237543406175495606918081939014531340125910205510508964325969401223707580391763165226388696810715980777344995549713541168298986307805056925896642367581177756933375457278463101611577283611625993434551621714312366527829285096714552197114575609491846086434957048886337505752293022450437337482532196021535501767538963000792925061732650329496830367777880459991314789857790451745113072317836007742776977509357778039653321799784294519495773646363325732907372592913562697537056361081871649683017873261781322252705918156758585943841077319807696658796322324578351563629175327714023571175527205369842275256292579653872686632773082312199434523488062424087076012841887695639291029418123354058913639524572626368854281930275975098317987019069008745043189602039209402021579394150735919250684261036627170376416091929915842424939368738840178672247716110164235534686631094301985901479005082353623272931031451211003178035536834474728277260566884320946531103739294803271571139592088185151086594422099846069951203081621180136508832077111687105145877369916484855262148983904792585160089184271816896740945704224203273785289695129371187499701511249715108630586914625995717813750769287238897654837882282693636241042073365595176242765404699094387761335124669691511281408051799639009466169032747122609511331521915398485176253438711398857475622701406948459945424516553102661349824983546230206322898748060638302339113652715982437025978246319764625215086170016951140270395305981375085106759416795275767465279084012077921497427760931438963855053160861664534589030471243913247266720367596848461603620425425418001774661817818664920879452822002644802781772467212895344885149692693369306529541793116829308757946055919746000367136080860900784467796188276930475629564090372276505869608386521449634767084801481932146139194058943292842097894405697384450581846837458439434496621898012657405230658826851101718888326563351459415911061800510374050132655646272705915709774199634261444206657433530264085006735156200252298417673304397282065006117588389085379899181782855124572800692721409657653329113533668361956100011802842261428031343657516301614568470479656400284171999161356531507765510469941228526814523116061476578664927828761482941983370515513973237150299505923813445284370726051019525147565659649370971744797862325443328273369599167453056758308175341882755022921829804139797605442102509738171617578972088514115541864648746893036645202642737566295547744303718361360118736576536009666155706599103789204128798034799380632668832202098026439178384129259106815882255463764336980859083661620969234773083759990694390206762233013489409474075536831579193458195827271027837166135684249575227584281087969621606240119647506673702336908761262728786395189343103080767810096923768677864574840747686880494625580441010185392891070205794241170587192070532888904733233781663076191795020128966939319030476743598194801193342606548220166324688693242726500400442957597529134061879756520167245082158716458901000644052743789396770971743299094865642314055238369398299165913286343247308310285008160819706948187055050381344078179255997091711977558602913948016653890938217944288405289354898365560120945151460202170061025286444742768543829456238660979806400589036229811346094404180547802639600256892635445485281398032276835249534267825302374243276611451839025273483880324374636446438546925679036500912126742748389114772957400599952628849346328699086591176447999263295868710267626731181236189980794979662268415947268802135651304603582169814684676419217968138611128490802084634146019181622660720784028485366556801982496883610123987942660495620000357072152164928366248728586446897880608375224123353537057313189801008220540757522459324373304919945190417484659417578698370791653300312592332982751183353877159731621965509907295036255986112285510296420969242340112620841308936366471162222584363810499793224977773376266720952533359115319593913266556841020526565406120283601570660185614755763930487606497250720067844587813819138496230218642341436070305756564552483941685423738379964220311791455526592759454401266864156771005887627271453681119139731106111673341706384902545338436081388868275303045721626859115693466563048846977560481297372718081166419635393944763080930601185886652202749042906955713314752394194566177831742082339451051161094063205513877039056704219609115744579877901156233896128345153777872879448189985903403289785339410231477664692826620833651624957586745183591060698327018865656278298091634981845064405555291406871266902257956352949876737791504163998084295718483913988680233009499682257703130861988519140750529711165999808606380515144969525342091017066653890271676076575197103228110406839038102903518948451475732470708640723663101265042670923923254016503155974921048744131519339124776591327357910913610450058717934158158003071333809718496726967603307285402913656232036989999302145680641343591495897089805660187513676115020630452090992171225284390066863276879083174620871106565288999985376259453247861249632534667098367978115571025971459257817367977559632052845300663979403424889627332670267531561895280926571083091589100928869777334057989223757123205173138380516118857174740214099086295384949813414961390583006484828366251641698878886861622473875043541296715924680792966385708621455585356421262771540106970469365341875156138520734912544638578966979728959796246905110374715590360158920729197102708140312965847886489440068663867715549446386532760524892430834972859498718276335367239421170607472995793566072822298086521709615729730892199505494836925658929084474631567530324168641742191055340663256048771108931755046302577194732652665611947352246929731736221604666980419711338732866985964467946508898014232837277900837751346793199817323507121098078220476850258841673077031702907505518872740561887550800149867128767210259042824195830771809340351395864779282382000247452477232289914094153217771285226347975833685018034419502909554112443205518227257388704160566910152840771093129164424404285704914351415612572152821974877540955388420590874322770184179224559797954857947090223775361372395474445078879605070870397592231306104583265539118261051228373336193873022933582413468255283835837432898404272274580776105593096556016732728689756778286096384312122693295992427482902181812563301210394724112874802316259561246794086914019621867625011828578781369431503633029916842978305195836816821584373597385269884011543591975557099291045170398354112341886961319084843794952445850008133602798993077578542126569413082933201619465150702221531639840837894733654008317877101800084236109578695471711580257038605190973078239824390403308275283147368726183870747475013032061893100760419744651042171771133607652739649050156381736752489875981862430990359983696350731804984105380838669642412950924639632979775674793945222828033847029864480178760939489292186533179187695097591257812017665602105977451605562434734197584593851282863775712619552679037470324941830547463860645530461742629359965208580547072833148362852636323318912392817689633616271301701300733097823059199958065274893239969401739271741219049178172314561891275149598163924040558142779079524180611362379740136616164385749234488357571837751949705291824984977614566435156431019074189714405430099632745038888854398616966523978235148194865600172101217771261147578878417948072360308710760855531060198792690229123213131777534653173263294967724054355679754865843515201813755369139241644826433743762894707737183035198395852815750041113287473942574457673642843642199367092178812854455031766595269499960525907050241940423504961430398205551054011434968165703959381865673597623304696348428083052036883536961898070153062731797693414158996907700413347370531041700905873936115679744421581552318559778503179004339358333068549086243449387894114427664886393763177875646399184013944026804677152103685734075189255945234229594590264547490601202578764145733766978493347574566733427939298036161761191147586523295622468154793461853471815100202682770710454611954473728587420595754869506532180530937027980492952388784710933596537980800210712534296380497417375165958760005756124663572016401302813094681140665880948839321391000736800887434614866973618704575343839193252010846280690416953518226191265996267844273981159991045954248553039673782000277264832667253396787591103868691382792027662939046451439984209955212983102615806955064148154960503110649900004329836407195898907172957004246072217719434318437724669971605332746401721362184262263987029511074905351759084397604301535065761532756507612847298451631076363005595480608571361150850074839353327775214652496065273518356690000769318588735064411343035591391900833315411293327759274642811048235844206078768963356691668849177000880244503818509836966002837340686739561248441063454632170289904332975160440052510585735993764583588312329705892516503128000813007352253847563993047470755378978162164930244894780420716716738589319625740419045932677225098357117635901874119875467477193497848725848124310529079745705037126875861769971800189952414576347605051337949649900679918973429276489926426243852317168337912667018645642422541351307410096314009689224263115460343678822343101929059119482901665931147757111571970948584223942673787102679683713684763393610858105260774098249629354840049785895849763842773330999496291118281084455959235749406155680760713584017084952794604281533633724800847521649724978385318913071462346085189208543802376111212558314821759385398579356938434164477678649274551226633722390200821208069115406547695525473694946468916998976146374990177870768520221960723571768388627742519725752575415459806920422996854701703145170057648387808659854389790376653407513704342098149632649683870898307986641349001337530224104042523283725677220952423358603119946342657048253365024891614263508219884574886198235417144652244938192071286517204487884232190058072175931929583859634350540587852400908497577931637129658135437535749465860114342194896828662777396720306627647045336261865727219949014480984481918839025948495163195989993146232161088242740099360698807811232830627956156167038804907484329987376434483055908691255081860164859692958576617269258834400872887473659446076903834753141698020473802491842035677015169411492128131367586987872405960649774816366280307116038239429932583115304118978159629856050756448824069939897658465207935144115292444310775139098515036253688538183315577794001866610384198594193588134513087555269435234838458333282127986350323103414087456262461494874806306037906222594428157835858438060954906305983279634791672284518569393232509959141324438384281787101486975718258083969957746736720288957181965647147857152911023502644311900032682135013033251038104630765415735305625309727717700231471171997137086766710538419831741541370237181934433663582433163787060187279882783320693126270407736742132004221136151032282840330849549494728913126003410556198365056741617833449904598559347280065659545827293281389509392364109227783144812622385885316578563461486049104220075338075699983843915536242585320657692023439565900225043624645540442292847526335718269024865993489483718282700893807833724692175843720256910081999307805311209215335292643819458434638559460803368015726979055277849819240810080222800511669543718036567088304997771610176370038160134719897046974195695975498783936316105201541236702245475497315233493970396165963261362654227929729944109538309080383459267256572715357516574224326935751060566724031231730683342610494297781300777023556015039978497864259086838788741035902774415633507540726846225873185281299418573017086832056178941219613891908301155214982936804182630423224994050937109082120288901055563853314096051627943653375436417436020862662430185348480484764923556607953507387080412407729286589127556090996196268649858226604162216510854456668454702270417972119767379219670823687572425391178483121863804452192204136879824845253960645289971555657825484131781431851730741868711325507174343548822484715373923408844072269294709052993872999221591346163069784674160369685248366607797640541623333180201699419897693242610726813388633373283348366611805919722277983003264488198999200857923114765789956652506034949114427180476358964352092527033109454397211726072924028424741917686113637144625991093655836651798045268977561879753952011099825990451067509569147205592709075953765401584840038060249686355975516824353200022176860554140919471425933135979959620063129409801813346881779290274760044099931941442006799539340974406461440203304947849487336365877718679082224815510576166435551544756903651647667321043123054053969288580666688449442090415364155918372561891014827217755925631074521270341668679177013415635799205069559231321219658894588855789707875754039411322220246088784386534012636313466446653352860224096599471493548881730093314975278931462749257652691426203239416457142686870229365357702347334626211276153942453565407414182830914514023146889424157015845376402454775520891169485102862608078476364724480651731089223858621495492490277053164779045401337979935688610506018799714625841367441711078820425246912921221683178416322543258823678836907624157775260078185796503696479120421461431730218631811681930608115218285485109770325266139235945669690113135583292106952431603535811146922477429873958702340247641576598878107893478524368952973276299000423811876012688184615212373867319810255470330115091564864298672151628451909764182220538465516893694237505189746507953516216794895969963488924914422075659161877438714381885747152916785730053308221839952412880325975828510819288095566162596138575531201500445540746811444537650135777849569540885257417903001189185553580205096231563852159383398067174972283296793438494010130393467154583534086322932889317934847580603118620227455575225997878478290482724338274220396843873050974812837541840712449676435639926126234934787725849414149657488924254262995488905676945981472336454859653660390355455697592512991137475592939749209911833021060617020983992116861461114657878017021180892160856924006016144898919157548666545075232486018781878429275089731658410694729534044732531219398660235352852012738229484284747534790633750580174887437498678989239351254859751380356048871544374424440768821194183554707951832445348573860750573665963752307022690402370768232967171417839324007118664207880624639936529808399744346596432716106588057631155296940890436221012792119286539450854330277536356616474036028103108163183610993297448490101130104762396342799313750030945265494164254829046155747386812242463287334335634274085777473427065018654533615037573110214067681999815107819360286544126729087759322472727742849939571631638753155539036873707742304503731042025949985580727596385718832773759045363562302693166053617107968032380949622163925815985032765758829075187484706222677451862047192032739910401835719558909984690924113490398587582613155272347141207822099496457526187697682664351349939077591380915195144880300797153418560658298532054489725524696561238186389850541413802411481439881153609958611579372666973711523411533648039077513964304900434150249204256707392144964333077018484035814387124994378813818066718329543819707415580906849679024248022350313882244517905423630985350343351958851992744574061435261241683195100146641498792499466099335760956798591375903480167915117651024775868846891246070544535258029910636862106372230048231059410451759654431102921403597247074295080078697115960299885527722973192656736277726288520691177533366358733212372063313239522037549071630639698224764934565633216335343004133295021467996764744062504131483959125910712435846907959536539305779218768984946510342614866593016292895619108236743538986550629567682323609151752311109641700466446557566850777052549279129516435931692862988200610982611689141459977708747352024641402242127602003642832531186327120898817678719276894415233893864726340378225855045185643887498075620244971242788377336068492729712465521130821502266262176275253283021518723013916657827392624849651116782324968789163315707324504263821129472959605732277664655809655485272711327326539164870288579945954866654964180135056582122527305235080755020831468556756666450808200035560593198339583600620664244180096855305241632134435048816391203590214260867496771083575731039484609291743631240081258835339196717057490005827606545818653940642989737031184386278742880547727481189772193692098706228188580752273579216236357583855463646079084707685802545873117053990123017390336947762286453875629089202667353984548800339494908061981774337575690305595017940783411642353384710537883489633282467132360641440878104138489989923254069369842951613302809931303730117606985839426985419426373179997422605770557506584354178640808579105280896014525793852594398873508222490790883251193338556647112134299018201689886648793269543918114852963752731683374134943393907375737774103133785799355711164451399607863255217172520854782461171364108775619476086817836536367533026110737536805495397739775109573522448193076569716446561192369700428120200662036562613083940955402543530337541841473086020031685677082346316532368161510936514762510941350980782440486473897912342852234379540921343011190896785185450949784710159765701841690665610812168242128198424508386966727517553900846706899100416443580588567321628759599486391437924815045161994810814391902773419360830787733749979770623452366477612056982050622799758995121196104362445405974897236716451075466725556131410688613645597306309024487466374074722679896583958569673704216530537428906584231957999410724124509166930947284170856543498669992153541436410097383036962145140035748290958777744423385733471217720471187155093796855166728731056659298803195275102375071326101792392167097488156269050649503290415581280474507123860544839808231053793644013086140068352551400089998869358506656375334751891812075790998010508928630001716698829406660703592793968451024035049448364210538847797080767414498935690821614664407925269773861527654968327182506906625183271350560101716474283142923421691907006782040394284739220952131748953683035161463503879882049496659440958091755482734154049040142907267360095880575303056609567696455034395537870817902040841696570840223758589722958432828257258058138362014000291354044098975049735314684341922424458198435358506135961802676576937547856744228611532569328989783706017032404050177125632940798757264228764356472469357801209521009981617477002972438737007099688654783809514109230858323918458142783750491355619795949746900369762821458716899980274032886788197325377773796945275250702921531576799384365257587237360577794512790418414490212289741160670451462323102899910541429623215423265381943545766009985882074008118788906180579950625949177981186501047843745704149584561126719187029043009782641611446968912785574360512357153582651467319357248961013069136874453476613936028757899332557676100361950117560084640067236685200081869095282934164538396972508715982054111757521443983485533372993752402765181963397067336106220167212794242100291609922486933664497226987765308087777078026668835605980699963518550188254842239079367156637015952203573710922961994281533960980169274996130156004362976848846208548927678092112144218504366903378769554152127372820186572715011909637390493273126982144236821712988802341633075214607750188881034993342796738556301648051060877098533601716016111802862910288506443747315375231827447764174967095545341945156706000282970604805346322360752254566359439159025440925628998272045236693429231376787033279516838275412320369025910681575587530835988661500173123533087872724042554818949234598026506454840820988025786025815168247418182073302449005663573001378336517890014723076449750053401181624477676184666241563932417454718760580695709287970543534417352243328596831457953956306240828374835760618841641472631537658430496813139199140167785211520593466203485250032430240832458076782090363429216286136829906926086822244635854466193011299180639614300779533468564039969013686855814637203550054977680897878572077400102135895861453379811710123749338767134796794691939974695932408738257142607354986410784596035885179262984069556055710496583788882277700964011837443696971669922503511279265982960121289313848440117218468000895323897630506380203118422914065822201048989780929731037191711851933225152201566507390922664070793101429712124314553117859550849470924276163795260599257680141332239563956286791751715629116460292178945424092818856186014132289534109814887205464249838169634145672017571403962740644459473716195062265388975963512393230380211436983370176733529839889124663885595964412858738630029454322893434120719800805820175068041361429736367379257160486450003052063820279428311637791663759576373507679437519759644211664808655119963679911317734256078308929611210565563452395223463873993031988643270682282988931099239023141146260800382151749119957342999841472044104567823791253092532999691086912076545639854362562700248182453224657141680547467347111987035497425190450118259125451254555368534634001510602198252635248910784233816471457872249397411909576468907484286532744102897335148755437689771751142583249474164987244678951700459538812191590512427385116890894068603622033874868776134256249262735694878264390580512682189308750997666587620621287339898159822359097177676230382830080686161453142316380800324413478366337564699167763383181203827817340123810089585251084027112952617419482025116024489163367241202897514607593117575781514728848263559329824116979717576654140228898280775037696973904394303715703230773649384705393391947012312282879734614635377538309477221172835466788485754823185386627534412911028903350745968004446887402682323540694377423313774458553060204513244316457864660621407876427538560686339586416853056689343708906991717050192787087820177814579869267634804603634834040772359364652629522889020908430709250830281551978657774847629083777957288122109014852786401195604835539864788020248278565117541080683990382364938082180201520516038509490368721736655429497455577474546024968299998302035836818666382332713223488229556260774554588499365150154667285381549774141135878753099806911567154619685063333892033438543309723794039116385625186361685507790316967847883716136740517475814068750040985932276752370073547519669233874319306465207807496376347752960528444433155332994790430469133073626762720083810014190567437974980077761760948623700130653661580082850689737581329765054702483531334017653827750330636249714861480515054863860868853205764884514400632588376622858027022138698745578118294091610972895987047427998900623502571119557846953521854333206909677255058079987111514589022712195593428750204862407801709764827741987033466741082920455966736078156672848615964619334621185809966470634549130680681028940477588829335045743479675274025617420102892724731507419677674146784220591933567229389292052735809844242153278639962899143677808984570647711201276602066923383175771452483561747337880353202740871967648743032162741942708392902280469575036867898790429059647991172084891294431500566797379561238762216347279847706579758097422629564119589505323201600072181422050187887688441460416534591096678991045686301014614054427387163096296491980634861319633862551984667152717914716379844543551166438548293771602122535128048381973228031946607327445148282021736907090745245428412108880911025356928402436765377245867012429537425826404500703524016614674568109697804565066454301768593795463861098140664616408956865077817202415839039180573305155274757623334630725944817987520554580488928224167259481109695864479779277386528545623129600398126472883382596840669002298388815260911447120318226579289131076893497153385426880037351986725478753665844746473513488566412097971573764123062046830415965320066805237660873143875964879227789329738105169509950961985923135030216697937820713636231199781883469337139206182988998237324476993513196182628514336665230869816304427662455739024613234112935735564341051065232824114301775134275288781162122079570414816269879530592957764906080801560037720432563937304271849541113577523698369674288872566130894058101905872560081250951528804211523017727652853497702118807407005333199099734819188636167047780547083344878225940592931074026635458337292239110927481426350017098574787809942586987575662354937432374446556739652764838820821045505498529838534132753954047442612553305219647084112935243408294867358721526757007792484659977909264285915386899473268516391751331639367983019679149744298445869020864105108488890709635076657075910376667355394509689318390990520895659130111576121977655019783587891469190045862318752763037088059934779749590858938355945441383237948713193673637006738374731593602024554879322307943082310336667475275166982219340552629680761432533681131587215724456795010200742798344150999277322328845318971622848302448730429322325487316922391941727489326740627369054341837157227442343598998091637195644912971003279256280396094715735146043518875283612026552412388176393226188462230186676939392224966480808561873272770990902146177107712517003326702531537545461105488925978210297163514621118675683966961270894261889719198666653896361144456572793138387157286122441822572709002158976840607306714009156128097173363922978939585251317680770281039652543490521782369639828863166231252770299564944049454359152794943079777035924886394025339831846041990470598216933223932939575540757584798022671576674954943014798737069049150027575829923044855112706701934904513751392131158217336440890670538169670193699361343681470438668054428570406648307369095180823582168742597017780830542045782803487959738708606545361330157939455271974724820954994375367942772221524480088337444082870384815123265412397943929811103345732275598704193033846897102738582240729711679082980718032952976787393685554268628886991454113271188177334292440834299818453680978038840524237983401364932579168056886548260931012269820236898853977462744704548024332030573375631779750185950067890539205340029934483617954601495606378880053412279274553672022936795505502234031243041344583994606180693021002018972030663653441670332258520569794627862984387287440755875899840247694014949554885233816681486150322853200709778665885283883703590300920117067637517214682935896900626945864412557359815794935069199181547107990368541429481263039166801729686247478508990635638355392588036112503119915326055378105566636768385572446172169330534878148763776392366224650577603142467245127042049445524446463328937958738685587494477515385111345574018635944271880256599677610222324158825913452674248711798836426428454219595032706179682992802085773813905529840689456560895736680841536575197524716715522293326213292631313990281069955306589195279573200227409637991627743863919444609448264627990185042516109438939829309123072086743612652587274310305211617613055220949237955110668563442201465067470296863458855726771255054960522739627997646309188954583898485383278357443009561482047081471672789298191841281130101790514868365497473529552474506041853746783596443523052127232784869937662002437436578505067893778242963514747906253821340490735029713288476430846281754184792883693176416098690830287347659996297096286797049077904633694373798390337530068462891850199578522473178404787404857886692460166630480263767368639477172514324735687813121324421296521021104481000104107289315368976021548236284525040750236180714122452203987680998401988785699477102330471429702040881182516061991951825334223674124581056903920083724050122628926787784729198385941143560647774484170162895119604479397618688002660219994983881177648879197672829798801155586772135254414288159288107590088666200761049776025895867976638654299344924412744060950669419105328578342707308912419127411666165256712220917005854415623538464921218865751519948972770374486445872179626894846113559140069184758150151139274738994170864770638025687781629219025439580502798858859205738456680051773998381766780320293227856593750073132659962144471393321852135781467720936208789143477657900006911334249362294878695227220742135553418631399836227406249757992585253984954003092090942167708296179264037649908847239467052496225523033744948837995254177682437591250773561661686791991278885435923618273088420568968909093538368302107319313867599198155833969803111889769781790974734175789838907561448576783647605782698208145947857085755428581199842105713889970984044703507104881081810043350294728241283867626028969897489358537704570036038587163236431980154347462311606473286952991117666172255825632387993465720079590858904544667052462538008794860038947675359708375077810608548631956352257459663866146401896428720174250422831574110819056381699285803790233535743375940332794747333243360202926380124024331931053990819035782000544581895047692540953972248643824804520295353051615574399541730924141434511644242674192952029735731455906204020956773578960728902307785733185630062047143924910364746507716841385240711338692857225376225284190683919928901323811578745769238572706961793786271857421242337026216559147746959007887924846023049356352240372290939321732019259708675247441132904784717065308394158966346203489263241888412295879998986278762442615961522699280537021328222263071368405545657645996168218758950033781184942057341678658384819195474222754963624973891038023745896641812187038609463919062151388341963143953592988878422161115053445623409869966923261766189209537179547763450829693996414083906856913371356430794488292622928298815237515997168570706966197099251321816735101094503936340254200036654086161727247344508446212780625117863220972194287986263216597292420581702128364830623056701296132298850848583006666768790099760535386446548727471793576405416323815631891810241347595026380497059000375649678380980760526147620531977504970508091728708875750435770362002098971831862205235278481331524526930005807861729402201586891050290536278376207607457097136022452560748589193939991148392552332618739296910568311251157208333305676116046352542700668430295650983908273009781272413458822045356929436704571091384986438226953626992638203213424281379375822131006644431116767766420674300477677579555511423919511834316028144754395250967474556123954869083166244211240524588221743374368790860825020036254045014208186744167185753788767552068397082386471252779005560127238443704832184987140395674570509385792641522429573776063194187934198111983341047340059526812346676529797690173209494493102731898997840133549338482057336227917899508329939842191029954457420235169128431427303396281405552982052719658252249491513955065615855343396863041273185180975850696236532352951209028975288108501775025637165383535658065443359092292995250108455696167636903342683248855006362526026250292529457710241807967470098211200930893667412831142943681012793105515947015157174340509139966073434050125020404112593824601442767212121040986745359890331661855334326979875257712632966731980581007704029298324374819591569640425410170128262357591051281338172701675956879841341878850325088899641212176636566461693266459404535774599476052319078678111842379615205341886756746428540758129377178383575706642683004720590316775579208708266446759647965949741283851573276419236805756456572774270900899518408923093395694789810615966449761661787039842586175001207431356290568529147941758697700776970471852961938088263035756981726592067499046745596045845753817903451837164156382154493450250598309852295647986447125334839626710870315560640366373559213434980826322124607022565582116431790666722875229522574932965706974885540887962311643554585492239511098569993671263082565850364097629444150206971212989922351811033662388308550401579329200856704660845744509171432033106280643717568089661915507047396797819862136205213314033814087315733097375575684478824596790285466717269943574859926785220104082156459621011123255049709138456514762975190891340791913580213835081015324371854644684348495181610719445633354513165873470949041207746481920557990497320823051467725532042569195897888864923751471093668228007716300924234528463199435987208514038180489578360572482002726077954195158134335966809477187252042737845630864311722305447383148211339015677872658676324995652448468596344832277559262643201160880630400938922750562494103537855431639665084048529809810353028623536170850397996392414358120095238278372317399426777480650033808103234419365786333484893337586476456877051018854918718192635581654009050037049024199631396365838641215709998619385787359880322105023214541834807492669967354244388111802916839157380238751531815228204922684888027069562620766197868555501379872180428661553681186440834431629700595640001304320867031402894255916784067711988767217032132512686175893454391768724212123691365139969067261384627922647736038252003490060405051624818159785649247331467514074438834746426666124137211324843716065494834950722349280454198379797401466930108350848023207015129620452430979974932089195436679571743678361161235199850218844617759457676645241542994729531784718965933320801242374001831247182509453890863675160742245173425863353351019188779132925022587915151284642226716104832403361220045716406167455825991951711756239695748915511991701121249048481437349327727876363183512975180095411690214886596449774667476661285882622782703253014882587629199832567081619962922322213630553721037121785949518448731070227067970904204032978922309455854918880149336199118142372845845273698191040008590182985390261884283196625814213130410331644406097683404422756443777972254668077230490908016433942046432114233817284496623019024142838737012749465663924012865599505686820410423158774163418614760973237300405107089022611758621110708480683648144343051615646472793004592898633270925906349566938688956907810258867450268390980064156286632221045571736024286101989672701705680775008844785444546123603976465733425746437066820621974284755556034447908465189409114371079733731464571139410708885598798930721636910996244093076861052695667904781366147538737599856581162082575840121096265802962613373382479492179829116750676826911194956000774721796524986486288900788759246994890773660460367623590963494482863039574270739206737192466630361757798192963833212583211044195128497893107937394529721435701057819952200522663657896023546873243568013522800136678019773913069464261526438857181299809201466396855659051521870196979072756232713079470367166861197300957929949009031499500867515092447850386833879347966073215168494332921757700951165353507463280567418340649102472454113161825187426012484945727353474662439948594731259594966820555013494683302652169596375013616182673717441667646663097941137377293494363526362021139640994607928859825558314872532354282302252703074863539900261787029458406345246734740600949470603861828981069338603079115355343394247195060544654003768424413293733881687661214889149620816732467682445206036838025095457525523683691854410038844916692456338116231585497066653705240010276922718634483909005356567019349673659858101255075647077504986875768019579086601107765022088304797638694488329095075977244008163754037297893079593541794899329588867375132290690668846216679970836616920523524901565610887754199072467124350436770525071736573986064093537196770661565527520631656812431196231850628558529909800904199347692177666639034103249521625100416700622590611538716983585227287397627250058591066729495332600905698191089373474333712923891738815240786174505223395189871160068481787526655770578358379530716794652979506421713172086411883335072583220858395939992392964675824730883173899143934781102419190133321771493506732778945255204700060961350041307724746142738565924398941005572839766386849024801846650290170163295877335582970193989732100018424111846160789910243666838100503998957942383452559824623538226584049165661977626725693545160412854556340149942667935277755337430745595896994661246792096935477167395160612624021393217618323665901615812629954193479269236320622418694664578516927121328255316038988989188469185594638180665233251065289574161213956905210665642241240033684564662605649078140681194208307427396364166078103391304808959935576218017839202506280146804665074512576017420828913895866630468313779585506458847892594546352521926296579440833552028925276931489633874792256144565906420114311504552315061044302576585470050548459994947920801808690588387717011473336398157637132347556437401463652481574114446816238185909409748417496430628613024273557045801461027011861091303456407126129466755935390818605869050229896218177923211739595688131877064188832770546269715571970085463614266935922869732163483014518435818990866327213734403438973597243939861522092353622712383472237617882938720997732147965988994647103147233314317141764287785204768277892563008522976586140121459844898881913864093835174087841881760913209747316599707347468844769905559321580297802553031735876042549477396944400781269457212466023084699227967375154565332013868079800553724277924221397477545703483309109343950322909915456540082940839368580655272955991526194795690367922975489192306729632035676408838942862668986715919243546121088199928147562003652795896430840387312003149206678944188544650839103730490811794067501520241118304697424227864928843594501960599170481144281893315438111808810573260423805435172471389724766169699242489694608627442603610658944200306976260255122363382639233416819726825998539225854524203272286815099024263283034417705096090744652650180654047851960569485458993351141546190209630516699623789145605207294326014237045932727502239429210223598776169801571693363300119040271978602915031824438912829204778184834345670387414595403603727544280618585844047625123538827574423286343421278327155557171041059425138196136622794463287270419930265501549836878573783519118544673422136190760654057842725427089015515710232087690075607397346355260696002674272164749393342256703878674729965420262152086156196857269679318625968035699515144845390466456264717156375440182155526218674301435397463362584660419198616758850571381730856115458706547635035074791310301056298066097213278736382770181552380006173739809117760965366311952667085616983120789166596228407005317073435033447008105729515915916128069078818240048623148344280825151405485931435411467764616241157145324885439240460883764129892800917749756334061668701967555657543393715358172132953127341825948217578284848164540940534433388740529344397480914106268950372652036123941951249693163878069975378223888064516507717486709252967140782969279029757112313905204013837602064353978130222684827765593910386629530532851857165101328335566386776252181667775492878429569926776270558027539884024227976424385881921621754070975980547977248781659655249641235048569042331210027920617781631274319583552243312883318145115888682978056035310663105001744623822881719035745703825605780891952041043930240834063060852806201498341218842762387111365228698692736959787293063997026134175735561165809171080414832163140013801995374602495003543220982083452497710710104397860531004336275874654511414259846624995223471580507077555962935832137194923173918717062529369656703867025625772067776554237395652851038679187702294039349990232941376999445149954269879384821647263282925260710552015244109648272625534199483043932439355845106139876631275680043533038592391827213850406185798227883448485896380368905713046673346942249391310888385671168003275699263320131576976270541355669625688863593272874845651391640159126338738841589470341416370887876364401560406301539396552638496901035668213857752093832275180255457612075838463648289651730831447416756177041876492244424289404851909719948402341587880539315249586062410419747502141516124335055354337539897851497599264964719447216444194730596212899129991872137086881950809008321943113744975959532686034344564242241135486027924420264288592602805751171894378437863496530617156426107247226082154325869282007363050908310388672960227339262759225109672602256048660860472314111508346363978243236462337806789579118887209822460074255761474616442203331094293133225257459055059915318135865873640450507902009849769223002917939859899672853195041828176518333968184334772838614326639556516986992834238444358739954861601063453337360974652670316653868049692962618371652063734598258625043633759802647511355297710948960533475994489685705010897266332256196945664902649881908673843106527390819750373063204072428011624553805740581429313272640293124897848872936943405316096576264979851498111345391389518040215404580146136572591574675804694588258465103868906971870930914330189680696523761220386542878952002481311420438162375915399266808309228655389590041116962697193243400871529722687067057984809767725822909572779737776550148447361001592412366454867090539631736140068832332433258534451037347070096824690738373890504761060287617728872930882981039379222952649485368962165580467912445295933685703067227747428549115091283584911285485759548542350682569242768425867103923278013860095394155958490147521049635458109021490579803904677967766966582286926717366832436848719255619241336160762626526046844789235514526546804006820029114759299281180912406025443606191420282716874083655969004302072810366120126895375904305646262157153027237758402444746361522024615723497125423506605888504175590326887470753956333801026873207893713081202028547740991777894590004319616797007337987493841764740297130560847576270037798775894275095155023491431734073506436573092644315991902837198886031374926426336428197717624606811997999687786677182637059451471846929547394093425709573435120004762475578886339710121329610674519993409026145674362642613140238878305791090589109731068148798855528937615064871310629711565878076673774966108385696254843202245613268419154892493643520880467967774188163634414906273515806023031343524015869463300523274590497495511049501628179480087564800967707089315718752546977003619743259021445773744892942202971328352135071423055687807559537156893376348155348521594942612090657907652015808114765717306692130497889789500941553588575898862591070325729922835496681563375944560963517195472724863598843675765962721202502057891556635307608538318353551818489228798501454986152763150644801302871986387616219024819061121858380361005256680278134156555308915409732233217740789221890636107446713253978507391306816426033067304281081896467848191243066947639797806535643863693527495380125119571420653187572471477773282848310976402232056665432467271526824768924109049224310163550823189416434867129145924424323905307424042171470437126946921585397206995168555394663555578794396682389670438986878472907144379745094648451805760709119714873171330968273428693198888686849367925521874855556911321749929664132918861016861755800616368225439926146998598835449953289285898525856933123955444445653187075028236399973104106414322113038680787052625870487717670023811245338736785493159880803562876456851384039868250243880388343251888852314102660582233853336238870998949782100482821482207111049922239042096509779736905272525783963199224928545730759676613985554687151151978391938288588842773080372341162277691644806284358452584691869573144512074597769708766206411685199245057810366739887425934905613239507508150790100680254599429328697083331522043605978118280337815395420619361739100779859521702227839763735545825941269988796354445518337099734097426676551116724630641696439465012533585068094244441412896790192684019555309354423211427779912199937153871801924421089223606599220124238643272527782128324219414756827821119276796579020046657316666529592809998490837713800055835784140215640232813451152815435935093651570024470991312692748006556880778416680295377110650505790116747644674640007519078879345534984917602214116956701165187035597189585310122981081790927641977993486783038579890193254657280351850971271213015667757490733951207416013655829267694384517554175744476807140117561357482406662392598782050730441833870301273689641010567684529902774061459881828402799727152056863528821079046422432704933709509888269413291559702973337374665903168309013144696363182310878846251897080545100768304303120042811773525359341467338895924968718370854378498239407008950859869441262173328577691412443466105802946696302648504390230030817765020737502728595571961109547623808699358814099864735471895328498560781088600319587540238501876479694818030009201882194181669892055406637378786355247374406732827407516032157887884198618197751096407378700889729780914890455297583189010216498965272828572769639896980482490722145232334535816770506671509664047453537039110483901834860661718313403564707344501521273208762497792884928385661378691067533752159189824524311563050497806426879766418167110289066641101380383253903118690968136564803326497672116228651441403788182231316487045001601873768126310456649060104151934062295727534051993521915208975073818509353741319305070260550145016360735084025899232103119593265335407586352610810062660047999977073825849650389562288548104658004470153664074031912031389307498265593584394597400461375094654216360618376943331617868930179187582765048104484729123385954643891536947988402937903096674779302583533074080887111852314661712836842953223821657950673170932985366966030694265613231240476212033755671556153171333470771151096060552271218769540669748666797696967420738374996369350472845640382892238150832841177149336209581222130929861010030586358056584021431237530870860264705533253899618351669463564104382776337489901372348107925726589047097946450136651789870616820662907643358968845158514295229428659362700443000498886713345479549282555391654591221772566232064597001482614476416518112495517284095266063682866567316874483797582314659807077318999806822590768849881792558832676001496976836258969026252542399635537966146797799147121448500839776333872861092375017302381457742617009870346393521200466000402541275840475138790767352817673833251996987586781470461086212667448920106824904920431135604581058169960349824904314893043463176118043872053968926348671221630317817475229961168920675227811393121567301646191336529084271324004265613627623320768606023981667328869228766679798480917937864354304795845390208548157660047372254759405800009688232430801178764501308674614635779293022906481856389842038457019051008277495425282789697207319466833142641869126383028159313017245337799497733459651072980664991102735299735903149259939931787807877471465907215270235040308457560747446212613297378924285610136069369665214621553368565371456043717942152084800556109553428199297648195360421329647068039639775765807998917961805064281908392922532519867749721253146301395246722286308252189708489361245162929594644000371936501140941437006974071843188782681278156752399640440667368682795639176771148108330886373909786200106121812879324221400296838889407629828639953313676015909365218453133461337682760543612004036925468484535104554550543430311920865082641804528654489778492749285764523241297875665403679544077768869907405974750188272964927980671772721217745816486232621950330535985986883179541603900561858347108456851852105648131905924582075041972173495442169510044020306459012628354639560781621651727566553968605199569157568465699177670045881293138470480375346252750026385142451074229013255282049946216522863473520030672072857006495589895999090710771105203322043639480431487701150399874468318067500479236485304409267111764459731972028947490652144436481282694424289626621534617614733334845711119069815756000373817386348287142007222518451284099388775314644941233708262676464439572923478542484753294859927686081683180766379073896756463243384767043354192466781646625853968303017862444097452523132598625204120469981611941538136630971756415720118968014617381188065214230725884937648051166150936031002719904672609560735824631352279258541551165442096810176804156569458168319114386540580634485233703899712402316335072009095782958548126075439710392766309132394828158698932909335525018779551084438133197731570219460453148558690387610324669761336752022196479685948711380305753734358247751362099937929352403399031851176069125282765535259211307760471013535517201524554574482126595029700172737111961386898402665144802311727464370820732062147096720553163381129532590998243853049117001096883362387963645271277494224347221649073291234121332245503584245651934376528253329355662850362456169491316413086368943260581143825587641154402877764124614995721104747625070652894464782295480516976924494367725347461276181360646488418543915334931576724179789268004816508542140081731489485273401904547617397979441798709109005230545999295470729952967540432044951340873365376714839651802482933763189974066842476313799469867392292905830841818205898194494293211779538205318588553514924447861657826613552878470754209344253232994859378037735946742681008040237851917602539985383195222781459515648226986223224719397843347010711592368889441840088250319264709255646261324919554906763087100291651914616715637485811700864363793757571620884896828800888480228607805306606037265558427651105266491602145043133392743262727671055139598457981147499029633682741430913598915601651443553586288193858755751672601467212404733269588691928032413032682242522806798773182952013154593388828254407345821343266993876939289210817667808874453659665716578077886142730588110531347911470300823289665469622861411238332185522492479580576213086766772996842611316507348375677429060367242899214718893411458272960860701414366787924601838798502831066471872411546761691852641133209620286309789488988553377709985647296310669656932736676667005038874419442189556839500747218171818066386396012594498666572475467305401706752960030626942539037847362495837732986984958013071549391767936090806194756477769996976292653670325659117631398937837555642538687464123000212018610168208991839031129547775449746549254289742511805521714380589310731830621724155447725446200023324251102542458241773365392316016336924494653715850863827773030009184942067217549304093370559945314420205946874952859353222703220854513577910827132086454683868190487579961073431493062978515704064369004827027036695767123583015519410108014829658083204505725801981418746046308668775287926948196607263259685836364545611118952211539235029157723786513869616901912455822264931036649117359236263395619388905555601246758287758783234986582292033738104402085746231544192008744377969893621769773895214317091731659087117460713191792708593590403657169527736356675867026005715083873768599772224298769946991682110485438706566771614758435250891653813560430889734077975946302926329947779069289591909317726375062002449025593851518483950314178402525494993348149529024113238856462449363256516744782973041059968843882758349087348191906467382378949044647218077774333445247142182298483172324495485914010590473099495783906580675759927245206282014106040111667675743909442159495948818187730985887788439584457781838234362564318278971049195622866793632343661420892389611454254505903068477687142043625523727277734482651265625796948747273324912872415611258903107792502412240359435122988236420083155804775879877408502765264118488602307199775446853413647813697970616774200932460535242077410060869532028287361915899953922320120696530638841071679048006743650872724572878540309866803597740754613308218129817505536419496785522909946134706483777424759192444845043382715447335607722192088577916844384788170520918090022717326604370368354689753887339701506009789017425986596280207484426145439468496593791986722428608206428238317587083425552222267737001833649655393834429633182355268523899048721719108110754012311254362629294867228459841596216466522984035073954807808698870756137581131546744852433661729866978313161966289909705640163996099648982121896396816823470326039418363810457949770827748366412992463385513992241247189899295411668286956061381101329113398828806257935086064357738663514701999527910522137329223238445516715583411622965913780067876881110198713759562744449676521167550865393769474350444423269095927457950864780662546580897434681306630719682232816861332219431315135630351635444229107650808264231912428647965173916135966829513179043250643431090732549250911934751040986556378998926884027442373431060542368170651676348534546290363998471895784748851818864669908992897993298141126880887038230200921599389623040950796982824534858344025793413924074911344922536800526995576461100972545968375885761460347852327219434918627503478164550375397840174136582150956776056398193920835055656118384556058560853925517438552454518361531731462116837515757236237379444614674940324366840867294721067415343530290780669202089656747371928856577429643819730778177893427019974871468238339953789912761474962646108691426860883803393660136144559041832371298271105496161231139290320695965060520177452869310390193146381742944076728427255577576967195862954588778458027819310691204463085014081598933472361665496680423567210852393848885502868639293734167123181386613074058592383045454653486092221508780731811146921516316759111948064159980487709311367252124528137083976684109311694566114534294971008561069212334184165521448744997859428132459111361786956753088612955525164345062401300811051119603824355732373125056112678578042620398339057249442250564843943574525639421368052384318732927446524252278790732188593574780263384285280221866504537509547258371800267178869686991341971428725518641129388310538336487485665718093769972497280345812459478255556993070575138875574775206900257412025112800502820767393227949945577331615087333690861534407718968543087055651758343223894782210500465861854667075847393937996288714767646640357073706196525699562700781972832250371996713716240519523275366986352918845727052562679801313164977432029932912736296869622922449102700852173787152866202638634607009446834459221765945317750120620139951155792939537052194251651866921528403789051049717889154582274132723539475343451759187528549303212304070320403125924572789934079380805580217857095544787710502827698314282529719151856774872109276350458191927301374392573109088470020195473814021107152517706430377671332239271348206464195926545539944105135134959881379146615898435330062609922543603117457233158985761945212019324920071148329485449108520657803907074501054677179503803775817469044061250171533137424087360678988344378233004428605708534022947980979574029670937340922000773684035542241158506599184327231803867231232682555520544962135032801320837119492909379243816278699180126807311894525521826282883239771822548475307860282083173086333304690796057952509546307944572649422523686222012467431719702384841597684697511667964807323623538216761795364873116766691999139976275668266972605026267026654204731654631689434841973622507736918717619044466909497595008008509073837094292651233132703495435555615149999532977414851608178817637462264566342770137884785103354203759857114398062525780266396820304570253461239430591426366308271593840668143915484528808450084983480460052969516841953262634449966666930837776802764065773966667694884722494448223651017664010701434946495670843998685747371364070705082205297002056875192746672148733197399669236326881480115136980664421902475194864952871043420723320173746061415683919731447722389001395842300854137899956854277243469691094489879530452866270481259310349700318168164500769180908892176222519333365791880362182861207884126677324653590446817929486066491080437355067783580857080162482997590943170313399593194216108755096951067394917407533683244674323581328021096259477504397031882117435057831686482906614649660358584579614358185716379738856742255319825262281440455010581947936772313473245763117158787148930332040496504843660825423698150866595401295238813915363072279763347457480123899093409694986428987745455151642671763613751687505002538963380528330013916674431412096821366643034411952192107125805418577211406906418675887377663654329711323939724117210012313594449003424809023101793585058606679092533135959137040482318696189102018244994298099094434058420569033851326602985744478168650906823029864931747352718311339748643831517940655517358099642873868931012420710287544615866426892171523112260175083142521502838417963036803166150222565601393856671583792002315779702060279241602503543581825788961803017887417535056075705126830572711137234073270473068638213093623836957285360194348750749491761434573300378686534379131475542827272032047663827713572541836771410172963691767772787017908194090466334129933002072061383880496991802362593099776380532439276180233895946300038676752972823167353246392546028523030477430135339818153778749864027609414679015235229522505903501643074597017866910990444606963424227338561851471528712328052058468710594380475420097130238662115767364406698775835403061692807829220076949566850503886666583306350222998152933154004873816350645154484291550492582002079060637156509110779031674100939070872706906397563311237064695158641905654919839711051391922471046656086662389751188239770116835792135461246633591173550973509000176667153524278756820380333709416687478902025202072479751787730437370824691066094909550829505180731740556009312879155699924064995217649091035921341986440942653460040243632852062521091989597105186572474682940130686813690461581024110977041459094111038221007257431627633993438741253242499530454042035653229273596316873775122550483421663218333330247029077703338560710784337933765229661666849341462860711208145254292430327887230479834081905991085954937397059751028975215101041730148918426521246989711850075382663766868970221250273635130663609364442340398593565445276408582698221803716344663259055408884255706670046130892458101858751940368707217145803573580142875177737684305476621505294424458227069384404285984207659454122394540388042423301043810983472457944553596775683426401542137934874637989176721208234145469169226667254577601794257160854135451126174935059468560547636229413150275989599050439121058227434802608273305175147602915571747087705038822398751762270673338576434896615216318957300989523320116321735028201167511299273750713267260052876301880209759346412772159672917349664862378316174336698041206647192144982268940549308611218565120221443551567890925726823648380887101752810667955325488424312772881023409104484877439252995391213581614290980255723943439667559560758994049157336853813928485821194616790874618789468917988728073168351633378519054233445188248669267361534024208813908888010334840461688636893596622788277685261338363667423089498630846433930887771794323463406298118033768997513646695327446763957091745737213162896124476822746734373239804545436842248017638163567461392617499658893301926273138137487507561378907016016819398381833062519689517451289941907527046727329692293285953998363055988264640015393361046518243848418644340506990242670181079181071096042458403761378768855816569136065284644177298806077731030087940515750336113812222602487827057111355461084155181133658667665845331703285468672719707272272151279637912285883776209927348134970673946468927241281883134565204057923164885692160137208928613734473426101059903100725366969935237359151118349747594798699204439987520066426724008621638152517329007924359669989744997233030632552320062156951309316215427296522530617447221630071305528637574020211844720249079371840943854740066644716775821379218855935534031571755243716666934979212292480321128715473978834652343744036540957345349861414078153022245108020926079742114592462841159740480168620632867375902381097938381683518546489725876502698669718892953988325081657977696882466611792524696491737938204467460275559792750317244666262706013753478392190765884307586727820494632774090443878033892979962641975629622956104893898813697955118480416013976178366988708614996427728341383786320489573528050455130070143900237690323087293304816336664955859396528273676941099705894743530522075381223813250875719262351201827463333227071093518595999584547289523563336638487047901370738802947139098253869207712204802514484754304450282184833752878854798863620014060050602375537333761814074411572462445381039698689328724381424542096139320665187875639892242498131165994297591350919925340484827275541776814752214116974062306806481580107104957032667454977387911481356811675388165263505343649346932065690041462128502698945370256457659257641544995550425200768292285402684848821037758062658272051604775099082983613747267020457185218704330828626591204621773638048244285257764205429920263295075043415638598765292143537601845023064204079417138883787202239688761740037666840626100645725902605782281291941693177905522098434391665222911808391670932190206231304618585498359323498019845209533531758060111290562282922755826815982928535846974653831196307119831657630152116913337200137791294958917922301347225225247473756900574856666061257706021688768511658178379852059859316773387454779247707927344815280589952594396913916997638414576290186986787941051757187759972671728169822526273551128657567216987809198213187702896074849207721557371485647308546497862783328333963832378040576697733833603268100541514270012532071467324391048034729453543920827712217887260532934636518758101976419188915412949566795747404511049773474943248506828947966749926559273258764743042015726811192978460728917955940221027046405024976149346487114510499627614553552667788279142649776542482335287316825705963332807348895991892995452343954045465374301864913114376688338339445607532596397410175661508429415889603815939582832411810569971875905968161759913377993897724274417072004340663338377281229995717553831278630730022809883489561682808931695683545551324577483733123972275567066282680452507065190345215987687633868688547510243856793809267608639992391758160820357258286254850262249499236194851974361009213973978967441624593053374011479751485643454373832413068379170359394589118899342636365375754660433041008496252652519693254053371979694432399341242833623743685241861012826065760655719331665920764132128617478196809716699681389916393418918114881411844674684122239536295701823561131765372743398900705123479549138222118136233764769515556531866394092307019583820869148825954971040053577444462987159991618620091566403354080749330788638860254347857990311755095098947121462329832926333359235919945887871350678697676386624843578378650679382276890918006381696567371882369918686939068433740809452366747151698150561958222617899913208638901003573170822283936343420858299232340467568232240476982185560240834965972239456381655205890279446276251674570446455971118067842646398263084395704692169766701670215418397145240681110789609644310701442296183382904931581380238792277496024418664155382819216810291565131290804299399696192432099719627419607662716910301271872301833584434780743585523375310345244334532861121137724790092230441141506413703544342927938289886482755757742895298374946445349656978907423650419308452572428429753086954039210952829087198967819941805880723151288800477893370044107996710360949093163072970596514516912965130412762335803179181430995665227617872649703672296291436170506281894033124246861055454477340147387515998715732263103891157295762792180287732580177590524434906478724180138376002991941739011398081634179620987076543713259691226636681943306224933160951886283956994122985921859565557152945505056317527222147818646334089220457310012973042710988354030118569430346400513396190150521645775507348484099065642541407584518477476457307346262381751438952504617262982223617168549605962110759283269633443335265856333544879111389055958670473875187046485691347101447554308818507039972297703761359232359456820422343519934979651257901547179567290602399599066717942846550228106757432851464652006047507875125920951856360269185104769171375995048932563425427367088838745632325854928543063219163261101166729320058060045041439291897024106824502794959244109661199853198754538220657518497718021750505785172734498455365306316382702620756718794630549650859549569097643398421646068787545864844329424734429582281312792385251180334411255892310125962504169001222223991808865799805586689731942081163805298568487405866852437973108921846788037665188295139735076727642948822973337056359720180026399398861741899134721514715637971582639166798052724084646518077450034483315173016895454533358724974866955335575722388416318700559138458547868514743664079947258587337230540592956725114877515180339226189740653287165592330489788698832246738662259147727933140215802141484212433911472450473914585344356214062677622710015979947538854011644327086991914829632222694606103956513394655310443224776025382142069367526190520586029183583048598589382309413833406259383378926278691827708629127562234618177034798997585347336575979495244598309373452079394184901562946063902051109629313762555648811700067290105213329436196343557565205874865462197022770257800234904767961021543613042220341829302625551462594507274561756713825460926410769116417331696926056384740703798875870250432093249060897175324264480851417853993150267101884760058144693627018038780184088912249442433852688414915712146227212861408921798329455889041348529702130909303506827346025777859732498544842801260694579127310722588403494176709909890060342887170847226638260070659757813581592143455758946216628128052567057344766741940875104862305884921533759373001831314491962021475067675136327898931472621148096258603763394894415514174470967347897278177434243146264685938265870717728358196819226976211128633800122543744153785398002237634493729950037985247233334137642648824869617405040988744166201038608708808831237763353894118371711564948059841113381287608763807503857005158142956754234274864890668797029238941667218593746854157152187884862516333281622224894696518978114471393387947973338579178627979881357279636157187790182340425082151544380424178629924928600615527048599758760444723066769081967247023080324355932672940863183463655504595437412687297541814762637369803720989428960433371192090764957327044930129755266325559180605058114994161508139674920767280731745691940252093232054922176307018125932421477934425154441460608030881824451374662560474595946818026649218377190967561154457751678394125981570680932718932121291531271528202230339182347580610818152745815889249903102257107698697012740490025683958100382717603038300510158968325238574423750901391112285997582619394898608216126782707780316548712136116386537907469910638824357849999372579809449217775986838817182748747512865791498156214464131682237897395779899442487711563139218303612512286429287921734315460328308287345337653693538127354828277894495321604585172357286843612277608348362427788220013449159735155318008332549317565902007197943011213111849233327820265497868242927448433664181789781224954724524775522232510402786279240445904363695377971631089913188094733087906956499484318578281164193962480769986819659402584841799455548105269639062926194382542205847101316473670660406138636024635019646063497063878910023806828368930120195689248850104034791580199358695834575129520420158222882720547457697354688699443441984719427222936483733659391702894999573750642027730422477564821316748888191358059881118906929827777724823791793761947090207827530327057052098508349995958948328501875858150208721812997187422620879588924446756776874394540794467889226256982461898325870964705390177750223309415858351303121015271567057752945375907865305736465661602742789886614163265993559279362805462133963966332991906865621767973707679848986391965149798930483680934843528802148992033890483239780429938544447063096309049167274215868560150141137759330287182712390174742881569857318412660373388504383639365048156596171249191687102855262372423474422226874898883074121765054464846679271452071218738950408462969775490779965913327543418174004970493958518918940197745622907491310548822381237524904278585765635501064863122554678872790671945217769236868292922699524245495229140288159280196917049946627510429127555894730413241165153702261881847293672602118490420190434922139167875495568610427474403045914946454680180803046508669482133080705192150931660063367504416138109744075369211950057344276848831863945356291145313464252856518839548262230233463871009751393459357869362225160819505229781015130807320376665251200087953136987439790176756291740174836945683865208859122085633274127470501169624847537337223149674896563782366051020394476541030164709533226798498680278988038645599305489667773655688613708958464325666503021074795234485377176593877049845709177334751650167559001353775197680618057100656961240008490100938580500548300183331106006018568270412348796308970731449044793973384623661509218073054966412794046470268834175732970561503542150971129778766113762852634589111243000291366743638239428000747409578037429699534990970206356788393886784333513654726119015455744252103555912010534376086575551661589122103436247616345228491479278262663846981875301323846843838481989822591294319654013030910358495655688604233992937641972775377812975765767511042206746925082611163134834217523947148508368948856907981373285877035438415456680658224364164231463938542036193922212954900831903388670466369095491639802927609292377331817116264586222880163249362259459684581316090045575249164412735153811920288181105177878340704009271730500091533156698217832636230741027478089835182689634211694353118236685711350182072881355252839866581284887177163390803587232600886859722842258111252157958486119196163414348796621527963384295981931583040784693043718770598959810050206806966665800589337130838406689657884135863890637708867140340399738851692796902558584472488745241624649278253457794336598652454487515359972558689023144906104687505528437155389713598879152829258282550501208354191205878805103954962024358774182848090428340126233179135488242507860755098682660221556905386167217397070165529518261851497851559916874134807718035396476962531263791339314466915517752428793983765839968049063306801768546528336908119417846493436243829998179420416512251552816486622789692413169672831757719065981066149201890948149667661935024634794713256571468360997983668771671176457683638466793205076045684230136456074677112822914544104578362295484190057164603383652849543626643973131121579909004818737355146272400020405283767480550460175052622383391229222052782088264761784333412824670904342815557991999367870592424465398414152483371850309823650457039518718325475058891469219727877474934761374314763340744327236723578896830721871781560699923669926078802347265825841118585367854946347040895379200774061632452858548320124277962065712557406190015405686663593551151914859073854183367389436877712135766803563955549543196776432618447854583365485919644751080858682417024425352522035849764711681624768399536244767939082234282929530813009066893806352744200043638833870698490217124458839678708195459567031390501961333024247428675455688835979890257698920065894342002372758672588032116926251701449314686646805490007896322270317733061013130171870298649499302591773911478570497087050928009408440983014171594181614899597275510048899623612421846679217404025579357578418304118548098298513982186982856476644290284809902928299225862429896852052598644052317227866081916942774374705757718807610801781701444129234726812761690613753461563045947649597658485824403587996783733086380922467731648886601375822301126677143588182693220528628366006846604176086698120853889664484236341278304300197664385747240555867854142445266635564782338147488020054711907400969340766237231965007136880198868566322481833546175394278105286340454876841501481778611220049902044745915524008385469723843865268462360501650347458958564204870767381033449984213916272550920081664283184601053470258182980053420902474985118817500626708844123795231950420614207295917801204411082100431393233160501226616047367209730557539359783959313912177091662531487278037432000322972883501284526320464475264582496769538340933317968119665779172788299653910349818013943784195582297131148265236376063398286063429623982797764964466869686298372670174608779657333975378138766320446277375915116118028066748521752569248586037187110772252325736495101572212470610018412611261431130203715087649154625609502557447887273002418076957758943010976195885392410713950511086718268859217991463470361859657414169751603470502384000132034972016907501434544818407850019596165555520217503766142083536003085542265162831390008975535293045797927990515455417055868204511356371467044119427618229837307914286142958647679348290323957224377818313783830909745244632848910325786854558403646035053844397353565391034246689017692808127542457126479037940482224169728270546299891666570139969782325080989306193053048748465057143945515221309230502614800799788033772498055259574017264490512951188917785457510528092682134469720712355405788507895687190937818533550077510430658882746796078499318944743950399994408183458015048303450399671553271377587146387780720816249415001030651274833836478345687842369103043301755658722307711942076250441085243871776873368931548489606049816676266903237554966242753193488174814078324573160795528726768371261180815846239420445429805334977369151954690504981689487929396399687523249080655163452169625421320376499173307241615820431724097797802701300870041418760791840284901459911771426652092854535706362431607650588473769859871078717157943381307075804327172969270199868165889180703910002776030843581518045913350156588119594244307187507901269765294172343632404168073360417251058805398571670603829796060331185358202472447637100518324063084492376744562871674966764906056451249918552672725649357791499360172133578919283541461967886894754979411183203860419348876042879984268826641366233877374794840536215449898937380939446729555320859642882395609319267332415126403894267567290121357815210563565024506348086672003315321509921866502645514655205791404343314189317441458384200347201145276274755663864636371991548915561641363204872557098537964531331780549946573844174134991542306899599530122341566701605517880604548830965898035177625890408173033547349579657198044315768041293561023023093808698945864494845529984505486081200877197201649821373831659348617504748942649846874924830155575560888233824686318229384898269587431289992734559557910277778239997394740790717062401146961427224603940522446727438009047880680092042573814568154461386085398935802290841449896041541798013106017660497834536415316331972244968253368074167153989974494805379247894767258473239872079484150769751295779189462498228941443354766318534999935866735816547587919334399055374684030421341677673719138787763199196732296496249795464965683637625552014822103556764981580368568685280354399332067333940426466515845699538819127965857013151637230359715150923290992721128883390739006302685867430363816647501342790324246927344240284888799979004006553798493377087465930105080710489414230368639030468268501636881001835789337993296776977715162444328315053425671679088359924142075044663393262272476704203597843328155782676510262432391884337791934948859244730134105225075179840387790778127917713160173784851649315163710385725417716945655316779332761549566436575685332252610232575171309192229120378682110701068156893498219993518860514727897233089561527552591128475292485254504622154442186574037511325911009383386728340694002992249892638210919371194866181715127608165176557767272614186021988349221312277590323974993962445647805866207744439351101696538818414530236555591510863748325039265001455155916506078433338531928173595815584583662145019537017088254897750347195468687290804177816216202561629309983632840384019453818682156634241014279349905486266359449944025094520091830255203972140847406917965956813016590217325902095674596037189400736533494501830826153184673641980376393253302862710458216060508616058717023420435493054056511364410929802887601483110680044860370891442690504029783408476691810852542171156255188894347569983843727694499414297085195590263655923859280302623102690849759197164023288477313839043559795303019558472184323755258206274166198289843830210629717829159215698433161110530188584117799875074902145597259714470902256255602050157838361455881783792684538353467107345306113924058204511567272096137391191069455851087120144234887436845722590930388808282210338319881644903764406256507601245480998750978298440984638103104118277226815721367324769569465904120644820823374469559941628109862113508715735634744002288079602660774573336401525093369196981304638350873760418436481532037750537306543158444285774329722155830888165573252091447713853416718134438999897277934959608455086969532432131343780888599514266804074165105930796532523718464599992992942398322371975367998325528618523573264878710093267957924149964951806878525791823147618723930629521598686937378237290921419768030248423379312492120912941713892101467843972368739307081660139152865149578661929929164439118903211626114809089660026853303945856250873153359850263074848346906105447014249023054829299661850894289015259478813384460260028009617289925714974777075894917567289921149108269974117774850228458594809609046249459839157778081170718003471302906301162028308205140384864141569628495368791235745053793950827888189072862544907466221707783805120018809539386352510234908914762718133723225259106605376421140523531926134201406350606300187432845145934730553459704219947546975701929130541340893368859424830027480627046640443575161167415276495155237022144876988626846595805266660088846455496818011071009909364248889966982009757583460573853788034470034204089604099479245743166938181538696062637155037862845057054188450964696328962057056292348826251337925451036444853080872538730944007350347981706460652347503789824110465974717481155239890312363488745726348246274760957517438198528192919890889743292656407594333165862841246724010235655690481117569753737086162435839678751877009847840583691976503050929709154181824064011312900104279320543904411739245556173621925120830998456641624805764707386059954205257697741047330195414833615334240073481508862892579364150423402253408493704434164662057026135885413312616712157351019987224242692783799237163539075049774326854874338248930262067273633607793776075367700462927382559310066025042069025358331972614728631742206538472465520630618072151259282154759257828854706800082211190153120865951225651470830249538010652748002866287127462213996458324577131012078227598763520822289382690288319494077772543020190149164010198782913990163247907191802436434625177010696153522120288789546337752002232788315679671189938532933536593949903522938296260379087717906949906119125422332681040549797248525959491095256230147834898201045071956735116137525642503562293164462549940499533763935606957000818997615661104639996968504159253857134825988136895394133983051248427298333256580001030513153509680790996525737825476708965111939364287896837275776845935078123417746292367046159317039902885813378987545460643406593881863986652278567241854306304162097294686920039610154195508035983774355888736941366897257468094724417601896962815706914230959157670097594765584986670528924642208889780000051543895753363327777780048638731058542396083548466980252413564183341290213942664070448114213838095809621677599456910405908669812865187486504263380538768215603218337307404430486358024169945134548245177238652032319352003662291015738060744545025072911417045165082053002528350760305671802176735610289235899758448668716021543775796514290099151441658535552932583816382863657600898384374767972804092752500822022496907611955017332562673284383738858246640398155943521281168905998147088079444191830776585591804084943131425570892885292490987354315360737039483562192855283379008927965446639112193655696471632750812596369829675456851024862840308743355397966248219041742025273544284231772764873707816328369163501082664202079728533408734892267083142585499141101668403192792861404454428634822582245094365804777222659499237653291515384749554204367363315762705735678725541454831075538771684911434311272502004294746902048758570596687893397307873667114082913580284627017952455906619170558647321703941461655344148026161983502248364247934147172530412891534045064744165650827253312325107593688256197051598562206270940238792736932735308414749363386465028182764873700358561355235930913221343165812414043980308595800535246967078265215553707022012926927272437490253543237886194196165495204872062313270142581298949265471709614557028299558298867419571736741057610922022553977805597734427686847839069647410872028277529928764215738289521294800436150585533096116495906193682026407171960860674620556693298771698523020618335929419702805145813146215349365031561472101845006263794606002399121849082497417555068774270757804295808070943900407287324744751598188023372941222331484650358615121522208178911307899568774441071663365865024486083903810132989270744792294902280489683540054540911703858573528426684606998888741032312047014616915777375942379415881681124391095728796799194031264849829862167524251390830132640076459710216683617362969723910161601199354977495578697924052967290339315423916841415011608067266878009266768052142837066934937284375792362567511043304698248705826533764318544358591576527547143088579023160078598029502306197090331070249241089133246516459945577089213257309984201050373015387514611360110091962764603374961379446922186807855008948112724563398978174763599111751479053642604525866534522359813087995745859244920132041250396245632898780738137300671333300157557860858357780856082861897468967084432406545132530038447083814543263528092742538473865467557768770921919443785539625679013158885854197607848999708990363520503789891086036369955901923376354046672384146217564665020973668463352392346791941626672407983689793122757229499336289156376997788650186402026960957051472993199633682591151266364470446006662126630512898784537320496995151413767279752434564055111360444456057080143911857047055517380828658447363441412698688749583234795306030080325938606946185192001064291936582184544154569366810563204835715737646345390364262932667617533872525239038564677518051386226191773247262404306459776034987060023582992308557705109009374176574347234925033940769721939086394296353887953890077489238368716607543794246899755050437085467481720159648083952043675643020501074370556831323904259891299849991947824881904419674839413571242337839610998535432090214777949407571597296529763943172014394665151269249171071713269526252295912188571410124617980120101700337302658543326626206918094267442765108741844001092060877272937892147619390350365130044247570121077615324575337537932674660637337809050695406417982166475130511404404117222449746758136566050205271280854238156001609008083978426711133198566477464944202869834434134120205540302167020706789905604381470527089684832528842036857290992582349131466640387483751528090003152737813040965587638912530480414394322207014094820762814904892695938758691553407192874709934425571090074076351184654522450441951511598747693965918880011099298015445070417102994652223872430556835135011849778075704748489870356856871949820400522174723349473993497727469824109341518595267471104314180961315816846810414730929063884650275846098810693358669297570052237061381741560134129029593495009688952388721901383932506972941999660286924622629318420511417694182206625429675259094629899878332898044983006582213353792714063793641713130386694823112540118136356859144672825755580045257706404884259578607778131736271913429901300054017344617472151492455808177483422619153971816337186537933544621531637970367060282567256627013533009155063594477720114792167066817991790170477343647370337275320700697012052792363089659277054283852391066513689293899265767083942549073583356027336210318857322857246443300343269261111109939528714134243189141138308392118310370546891844208457461777507258978602892293574951736711613084454357038572956618616380806830622974681717187021800745946177295269847632946344320392973167044645370183883276432188894740561360852201270428440837384688948541975982154093057791543353898108770610107085601022866764357601000726749700073397113126559212633142588378353777020764988860964646145703986929558979619572599705560787632868538343556092291109751111543840059984757735154807253901906067493015919320746932120514781905775850810871423797515884535608859473347301130916228004279663590617009070084950777073479786156964651581737342002984196849267138978915551519845953669914886895675980818516350342114722084003012061996960062758479518416994021128004227893568102093323053159963128592938985587121691429987356420147261576442491834012038371579991995118578941269947519832377801054246057648509907567962411263858013361900172365430560200562847201023092566935675587681452921859823033689999528329072597865246071453261777522336234596444761499281646629782274794231371875038387420740071007156689387998214744302780843080105194017792276766653269065825784501776936465630959781000757982856713995218900636907760771625805942837052627643101261658481139121366804999141553748856584409616047638058239389750453280843815747191198688172139612587750749818324471845267388935465162389140126020703564823958601290322986038245774690626460113261590258722912068424323509927391848460411497395712964110078412699910983298553140680513453721661472575818105229558809309758604044706407461552885097686347752037783651276976107989739328315938589507114307809380655456458770954700403930135468703780803863212340856820872581979852288339108082249389983939650922161926033302555735080560627287827880489106739537611030952118379949643782756868875833337071467228615996059105035802186359188728438954861781461307711809108124908499631622788328465755942530520464121396892260883743292735410371752618280291015326178949602481000370193418708022868205097090079429884714424182187773768861843099810951590647162827639710855739232366299543369517956672221617776145901220205021035647523447654091913908169541515248422485992665864025102207427896073210875763593502255936763960146221972429449685875680715070495591512163060627112112147489087979762622845759965671927541321765027243282986873623175711999387927322986125700598328733156978971662705909319732438794657985417750533946094721998731780076716008206327846955952410960248863270807526834723045488795067255861137014841542863332421274439685755350150915471135077423476211781073221684164922782659200940617589259055238051584905418035565457466264227832969866348660856717305131101579037003704609187052817844553570948431848180000588203687460311840948245631457630975980522140078822087503759652946110817044769871467128780465285500802105046356816350779613241577274287679325546354604364832185302674937990146703631390890118950746757210014971430598121993512673187315236624596562910797970414806744210490101788887887261270617678435745421233645298317410254996844673829770084188687631047878303180932108086182998397284890065777065751653951537411567904286097840645757874659646810824204777741142680858377161880557493517357854556530046722245503694751148940571600444353023813572700661888425561330275022591075185945693009423418819844949183555322524954609776026057849839448713691287578486983393698394178016707891959247335127280754594115094987114181426639827788836829694575221168575815912098922270112183352565172936367621051932145004948140445912615327459451006697953031422708546887391845817707290090378192697966247706585908164916708046212513888700062931345870802880778924634728510971040869237061458003159590935541567273326471335701973050993681863303073416919477744045409248412075769458540688972034242180656273178897101782330022881383030353347152105705768345809461933541177649998178171646552127770177116749936063600424629195518765570888626055565459333578225336007892478936520206793818083966374149942900186449247053460893792649105889062174647568852477610239130630994309231488605391389049826954837716137543862193794039609277191637559200612770437952535183439342700726037376183383568538642646126005611698858934360040588872761478162111107389661988522624011337894276219449124450520915565217032119604906543673920413375195070026265821556514581869106925011332498767162533806363036459610957091311398259770990380773298415126534060016152134848287892526289435353590534938211246282063327378870394866322265017931364783651490067651121214320586291954220145643554300407045474345870123234223814773776360878549099119148357397723103112281690277386316348735516399292176593575116018557216638140780130962613880503904422655522276415968483995298420018665228263060575946232734683844343402962736671789492433216439317725287773415081338385853182185817256745106229851256358434372125380670846714651692367965790403036522208800738599681438723603854470527078704964660357633278591373682630015911138178692435824228101494387937081812728199615119563107420225734289368182030327220968364380917860869709364474866301850900740788083447564412034107786671707299718360464480693852092838372196625798822505776417760778783803749834016208600260890715750689080315245208780621186888403413023003730962213733207299288667016614405756359109288763062635669350361903008975656656848860197239142264480984704230631121915838138650616796296868227712562427285306849409946459954049493167408769710890594124916616908686628026982932261160440478149370830454885903530875453538880604490860883793660838911041176682646711227887137483759245632157691880071025274168755164805110797882265156946483346898874747071077067681812546150725053586929824442128683024429084353958917028094287758170178130118255000187580985891511712811803681333510936944673092077590986154382001162792751499546241027036830511470858333698093637649277560523472276709318477247530253376460162812992938900550523902526264800254984546270121626353529575643215202222778242872461188269436589455812695555400747540855734127125858402433534516217289009984331194409839882082711437144439209759797859787676868940833259417097339335747964194379299638159998163573302805024185862652508003867630115027790940578764150480421255386937872106226418587771821455478413268536516829648066142452006083984177306997782350786685172831425111924322045352305680360814646536531361539675629674759966353698578880806222970365769276341533636893568872194370103773952970964362817377965583710399695863923049408795918369555339659079422528031261304179985684053833404088638304176204084648957608525524057947338651633006582875507428339537403278824368035420707277650899927371651020023632668155914897345691221331697102040850338579600024909895438364087759780576422199087858999653794089950555955437344280009261103070066846926296462609863374420905443718529588201847267175125248638767707450171051792380846070013424766647239219975538451981016397051485419675882856293441581476287627010085377604997329539279110539486343985945813047621834505053416466258244874752156047538835823429124892308480766651796693016420104677551510351064107042908041918607209159768365379810185679250372508658114949539466335598325855515687066524463383436682190219165330673824020630512990746654796488731220130136817640290334543866785097007002369367791025515142481688418705147278570587424877122386614774241774807206682372847124127648006318918502112160006797043011622831201695279226813260068657287931612192948192324325615493944784094893939385527493843942726131517119199443701076180565894582083712166376364148369988179742302155962392238131825670065112232260390556037504635973535913428368195442937563318337371130556464719467372684891275343243157237360389421588479569701290408767019187110350946987845763085124879448688695106177415556360159691093285528674220123419164354764782653034995563023316482734073650081827601507051683661391678262373833937833129722342491273356193266356780150259434035590504017728405820183692964589843146583563761703695644418759924821083933350364504161803340849583010869561202233272443917201709839513342256017193103398791871310389329311403423165985834734453121092956885878161678560563666939604643271798915451420119927315128127626804090576754887898834122405698296212396515937185820107210044425687770540957250167222187774199239699742424548052508007003651772294986499015445827627842205454236681256909000930922904684104628400055085367820839412438054749831235566503163972667292103672021935794455804376702009827790201905035677344403077045282287879426902320872463084029566008831024628976509266216131696886680701451369244454072753326002088666025577523713540158210904470956072117760677215722517386995526448281653924962917933264624545569307017521057868831188639761543759181843490160750155518194291214939314650934369590045434118215937035816748932184209235535796164170970710266577459163474350305938521291757951909487896889365699646366261155514221764701176091427636235413560144469873087108852559401557702933307168065071768265890615153902280501687194706029899966942891396516170048208580986702419163348746485156366605601880505274050937710995639730830467828362975188216886626775577351054940008852827265246421586600057407722840665694825813355725609743692591190583410232952175787279807299238961768273980489549060588528596126909498942603530302926581580788812103826958330327474605471748053286310264149730959824399131579369073114451472512334249467338144789666069844796105753759084310553203930577292020189606524270856590700226744022102298415563365146673692213631619955273184795179743930272917536976022597523229896679719920382541633115497231881323909486824721939039073279232089220649021092086106215321529644275855956270680031474536194530646673376185166884351400545795955163903609083185340241724602647827855106535046721815686945020859001363203945542104889770169032217552535272034390120254058953732598054682351907224679120255482650001689498736048527209759670509429392994382675498790441922020428184196544981294172220124164084071081140802392027387102776545344158962040509452981039063143471483942989930925669944515808837644702772497042815375414037338408762335600317217987356658812006770248005243425841005727278167899187290110578348951632774543456246081735121350454475591772322511664178703949210042257074284792319633455228580744444758722836078505271378413001422940365878436113148116807611051501023677658056457628270017870648722263131405972315285109426730487846184572306519304517935539177936973596234338709254490089616428421491462553760328849487249437698165304693594660832749250421271091886083998017151547484032270727501159125309761398955466963901663635551605373629702998153481926128422266101827746838613579906779088500590193588554684486625003660046402785539129490563661837409485095690931493661098151816531867451598763493611199087752530933827089914435731614022030339425956165447171433234572398654059666288195957206912044919166340306981069893777000439653274886204205578435506187953702538770982556547757009449576405103079527915571639314933999268022088135490251107697773992644058180271458457839616616033371284952864725591213131655718564737630107467387955604008923794746471127609046964707390287700632491388175187394169034253833820342136742176912139043047767556248866600601029766203196703970523050219878247340575278227574539325310645998772948587253392109019256606414329429354449552126434701953943638707330140325025303972774725464994614199808239862545959475285821790588598367158790563308073284991257451878231671248393507628403826432709414376779313617360014507193680262946529713940054631013464801499115264696521227542289354430502769025857664578526423474146824575589973748700437806412707313611481479504367696118484079184265310289307658573951650697204617443504838122589164098330326890572665655634928486224556964049788231810212728685158975211142008810082193704625273041634746551608024182409920059287822244496463184203534946521153893387266567077964901974399033400471625414289847003212805301120134340036327319266271716605294243073834759457276077890947971101893557097565398782692666634376963867617767794271434435095362526410409448573878429255659427633276741918905433725534911426597845108385542858746253642752881382049855090777913592567618959058075496275134387283063288942759443778550189700134237036990109176550170688208104224334333518563785951292184704424877901729468778133885847658534184945642308439752322545845418705850594092341549923260508238923487915182831343754059035035450379762468170925657172328077179988621097795495301328819372523229271695990186185375906085078304989791828212896417758283343017317441877513669979213372522843092420115627595527629185635382680457361714898050206727097401891265414827560750459891030616220200123515772743556422404302484019986114530638694885796719733501875508366849975142357425408660982538495599018546220757493352032381704826267034038046706713746213917083267126127675155624229756231894784147894467926754597098088087299683562191030033982374398455147085863486253795829331428754803639295333914149259074106540894851885067441707255982706672212269748285207306838172669686588170085675647581339168954085744613683441273840072702059073356924151551455407120384849038803036354977681747185035456085413197319207832352586464838413187025885712690709782857129350080704174081809415794952555088338454346389920407385387348588911050248828008169414513832865225838292231314758538583932795822568004199695620841869122911142503117719556678469341159010950786417992925723510915181155598360533887770090313132719095991372364715817580357205552287115610941585638780632653206058883871998262579173222236628951710240371017728756869275347173428308916211360432610252091488117828703601453119074609433807668497971240237471836371168194079584222246280833379820264095489741139215727381716741369795847920376893230701335246474657131953038631824563029101808739995674962009094931863691620270169537396624365715366303944019024236012949817900897323824676739181210288809414980492331568028592141868783600235270524291122486296344426294552160272974072214744876455871064880942246210113014111903251953960604982613483763852340862190750914800152319949708531516947270386985019286275220297914444356244908799451922435782038751720621877544381174128738512867189919926286590591246275198243804242899570232424868113317011861887207769161962195515942718876685566883481514397960601088819838223569804169526399252075816824473752440458115334760076803080275613321844201720159338010464574495390788646118999550592086446673125382114634390546197615764595587660547607503585965074002148774815338428678368946229923222593112239872630728884482956666607613832634414637287860892448545672063022276452137418070458288412868674098741265616859243161995726023475792750458061442190607607543255561995814060136237518644141143222810403385315682772942998710378694843080007686310299521065405032952653124909512839160994962008637496895817239810901048657761216831816968821519232383141111361692477760538988734834262435765912045195257219112062592115928575213520731916591058858877870225876638275018530083155918870373623281495210280919852284956613419232859494197700605539992215684968838167391812752989384889959034400000881516285725564673261947473350274286753817766598462577715612390044881775827998185401216212248499991626995832221444685440642134639121486770364045164902320300514532611661250781643950297866605926605262374316978760012062174887894264003558375206177689236110197688499184297711302676387941791539387770701165333001758240976658973675491295981937012290104274427053412456979325188773699710095651477809265528561006786143078920841451106105574114886086046734840864214862685829674587968221628302225484437501913527950202026101441493596123756673706370698260478311729640284145006336057007165011038684874873199136742003687704593308501922674395127356037195671519912245766958248907086686056227078267407482543288839909457631450100637537791065983576406635675080181861396406757651236034036488783017113555084034551289607011520864124983036510688860727330931442893584910305024876845540010085834739382534129260129748331899411276575311559451640276725786431882406018608562145460960775083555879338537372570950586332941286623322401456490990819340673669979080307801990155450669872291184321376346335066231712202853246844738703664118278889362003486585753903403431828633949858420782888040649214276776153308954330165884947286870507324720475550629544883714849352594381067877886252270329435253604199844767083696447371729097286304795927936774868689756948414572544890488701936689711911062585174873295577932255230300056739600120732354909252977860372942236165664382500255899958852771181803726724058357876330698825819819354282610466028454468736006402442350338344310835223649026244620875134903321423394512265563349591012199311262520365048053444816132441055557526547917463104550559285052507874959871123714452362379975829008374452106684556864786847850179499769747647508550443459581229516323849675061343151024052186051336531618507542585959339128049634167557132127466266946880956417284775381369491901375758512772544404156300740502150283114306250071390201298960312698371346988811545870685015642458402435876568777210272239671238088048820990142330171993366256444796008555295329317198236663133812048850526689785870618454636902873730910042906010574339831498257800746166898054709421847902302609166415401823386327183403421500421174988529535805842295682260306512216740622643480947395474114207218318311734478457664480312320164925617140900337626477086428992356522588837632221003785501126160166349327655631119002107211236095356655470682416590306756548340062884252949983058781875935376548313243958885227276250749354022354123389757788832842444052989327522241998654234400302668832781556756481356263745415340411564742460051709429218222731441381496394041176657577377250108786207748842968584956063458728062874317884979933856173144257956006254382515985514530229351641760606994859352637081287869290462785459193061810853935910213280100916511039112108128001573196088248443656655196485227600730223886506374828243075383750877384969265277633984211645583077745313963423813053331981929582891473386612695394497316725667241534603460999708484106268393735982125308895521803548642311994969172897151929289794444670238007164934813124424599879033937231347324586687210696558058479932804332926306039936655556400374529494421230448095573322885458279941076204611199152242828455003457104545393131017682252748741052792716813397429501166618127663001029888563284240465658085431819050154985535351515705314820805566212432853357527691291249663329658496690922725196860002751977895821887362023551584031193888826455856523470284526677556236637750954479906781920011493859349170159522681233449038887528236704296630835867686785000132149573595136469365367555114035990407772861913124936222725604314527721679919158872761312596425960497009290465355190143975155677551315616208350720267839728545463692545632415902858725872715718510879991812076665635383473741597707148636776029922729594047292575545679835496906936142841057649820373386444525243917394310124491128179813052926217268230970609646016928694453431004893328674167729086830679197445415436147294796202140655182324312626411537648780770600574527433207096526536230261196418272651375792724995613674128791182321785174623406555580956841441222771222715573580733712850285556458913623453940225529260073462509914853880658749015864743928791012433893273712525118427026373321910358307231861499322648857605268256581418713845628528022188620076962676478925307083793607585334052211092978378396606292931192046139810647664955648166053552687133516826987466489598738914790064346289221826808831626073884291951862499052298653988021283900070110882556020771705921847955982461286629043449303538347468796534462226805529616613564169971517395946974973869472223608115479619706804090128577944715903839482253094672822732427749062279281192860618926284631402992356579963824833035565442997895865209904786514956861466814047145007335948031313658485495656306380865177939513201358251722795771893241303624462095851642788419951680920010306326369299494222453864865398727691237013052995630580539446805246955098912143243198184862828340428102867133606074802306809803741524901543920000930707036896756755238592938197913483494374956216362332648800419037836905915471887405877339535524211203332904625538035656243285634537063204304929323966637755719732972839332655857664937425923654756079891976982254271699061830530651234371605914513116807571635550357527711529160784923762332236922863786213377607083746740110512523380609950924231166459199657582349133411473454485555839916670988209545436108263242798043555068446193412387800752287032101164115018576233302147400573159254029107601915832655055190474918997046821238176555950166889123030275007880565075800490313468421759096064432249038368512875070906805263289453782747091361038137306717040775263231693602917482707228826477725159569991857102591569042173636460520317684455742840126932942743851495152601370118194296546188512373619599279092646621239612960998024369230429945769290525398781922535646892047486171413895513330876561258375201313419237018929205521797245754163563429109684882374385144965310713627635237095174114709050375115859137506437020190584451437525104375371696833318241056721768169415403079743536103604457327070796116001430052927942123350643445568376680004304662026189402108510853502703712017928323298931720462917891832884592791382935066270311103281203365357199178896502270140060284635867342633484038138150494636077936567471656264076108041957819840810006143491309220744592482237262320768905787764897702170118871922624134924725451763530786341300835263748451550565256256298609311598337141139086354984924997747118178063357988669850653745661280509301853744843801564603532781571612001225448254058324764372763251063618008054732049289641158176234851165972958945087514490520995630502893912679083957717541231467018120076263603686040275900140582867511769362349760072254885708820418299321766405058326458870862673799599409099472293648711363869872896176047232335275288766863689911257258787809665328887801512962362505275959972331205098857873302784376174741128507557314607344373163429080260986655774941178202937028533932398249259514986039290084586817840590015028298401484364525816364281246816100776085194846377296986127802434099477462884333032198343588658393980208595105426387264390736932699283714826847038891556295726903619753742291597180571959274993155576564178557375050796131189346337710161877743060998218542432138246729683582074590444007138611965021707242202473176802162761755695044339406399069569983020354428487695983729298215726063862796462791134299251297049046490581663768584956771677257154543164491918867879257077333890849933820028621708115451959720416198895919219631690603821580910212868902302481039346861067731813895299658907886429755989984912792301338704722161197016902816296766137262946291329454830980042137901231184862806452954949281557193443449549187339191713874840908489425848487298549425322664452447761239914706668127875667867843710595263157745652520227275101646562522479227955239594213716674858872766594509556324900089707425062026827012771765417778124175950177904075880629440896519663746774486577456496138692833298928811201843078742454322657355532657821219594599947458160281502760627189400321473917834460738277591192022109689807967596230612290375827636060211633721723412436764622230723258360192166756433293599703307020558918408741146648516590344423249636563268130203553819969048524107388344445056203613770542638473872125460623698286819279668007222892527170632349634862013085458004901203539527898424602083323064679157663196587933293421567843805202155729853911070238127428734596925641776662918474262283158822615599823074468596666953380693915042387813542195262221946513553482057192723973072835471547682267956593004961113373435364094461832849594221726439657297611544686409121827639030663664057680426273776726391036675778937166677911183096326737345492170384741098421819299328704022941342777080240715827045297953343317077004245130472428489257599418292795695899632279079648261437438846707206319365072880124209440267653017795298146865057444993201892531696614082010333473474572331729177700234991060404400962208814605750525116568139102153454930068003744009033678776149280459191031457341279751252571841754736722012289665929536240453397082714629374872493999258014506258610994192080862968446946103257409232053229826413024608800147291345607506957307739762802941553848272739747296431915757260749488193484934196873136231480431626783738357023779317547706864219856345105434688530369690362175580789960840752977556656353110240774979853956930282840795091560944301420125795422760432123017166635513929351588628284103858901991344336498298982943764428180926969507902993684162287640229201599556269062204566513613767740862011534001424398979641612621816849040768659762966636682736084619360770115057523747986789370010095162037253426190468565381881883271364770814293007009561737486702229772250286646636017385968766807806385831387994902400609949739053856510638935899107943370843886407833655447858815986183849474308997888823296597524502663351362959204367597533928600849621741804663032124153088533121085949838444762449604147425498127295449822324654099093851767460485181616346093082293838943458596428435707144197594664204938387461999533948067569133145079975086587854349989050651164037206786000312743309003471900680728419499794541891507788478024513030998888847164677849181204491191272375797308356210394933409624167018516105817607404773895892585594319917219684762256380432613997298045171162319177341193009793810005888699934733041126291517685499466071023233475203912070001314259747241782833043149488389292301458490722253169853589197398699264036949845738980397931421851789925170317327241158866963820178869354678141481883659986133700875287721760338322511392809036292513307854281844759527205109793298967379529343895540829680458454880268979728716812176120459960204832991383811312865406462139972254019848803748586052689219906877540929148607511667164780288958209929046218971090939812181151552992749926636633652397724560470307541311759637017114249089476670741616204229775287479311552933667262457648212689637449098146859126709194821170057023703920962683730366548527217160897789428370771688476094226160707546522809720519699545722731403535501070447232716700850264148810480190824582235846326137968575934514049404901681330719981473452399430532836091711876426756828920487508680417721771898733669958675477100209909219183246379862847778261410893797483517788679010805909285662951394705770116818212901547169337933660367338850586782372589538605170312918423109041129090245936954031915712966511750361562645286959738689249163726973081378948202563974300998041228670569404392206376069614827651547431300982897304212816150873659129591209214643488300596885878739031236709782130150055082260590421962291437192877664166499541229031550816557584873441534444883789906991636548974510191912173876031953161298958177122343143345831259480456056035140793922909947609422519914893586815806839797919263454270623351676340140048916424664510462802466370510764228275502370033465676855446519875212834041108168876146384690248343360159351017065883976264494724955786960820915059068051707034816575607201822980104704726079707983999010195850917740484204453184993595881292111246073523569637364508465460489482040392062905243492818545322269127448812828459158465502612881276210782663676909472157102670633255045954233129008863522122053892685046143294035569543854076881988643946033057302776529548451070780301107083687212942137934578024936620072911903876251326129726112117639086534702236502640593141079083914976347682976334704380316361295056769907031204622031587779769901572744451792155558067701708193445729741107130012699684530998999362390559668503090288571489248542725965655599374036836340778028687385473803258051888022696196937305280686649390676148681433788168726713905190126309289321560259277540188728311235716476448927582106932360066911640646327955901591985338462954360870938491544043787953368105858383397841412366142575806745488790631318005966990753354904100991515678129852892154721973228093831205228062118377709932460448070891195036403535512639553017969102525788145403421499694828053494480834387389499446950628126456362300508186365180559703065665818778592713505517363237671668552159613593544273882463832796194302192545579523050244465052323615239711558527516465428398484324859088541530322348532363156908925850958248992924057511672197685458747093520372858445268053136263159364670344007691856443151467772873914467685778560911376333635494802158149634238874342885860482536785160712137109793117047031356001163668358019569988185926634078290824296710009650262343767450733953847307361298266422092273613639597367825201360727878812438930878316254289529337974787488597852774386270224438809034759647298491200714320072355947134882438331346042912914702900428058812898812769075863076219639397867804380983981285369069446118601643824108954422658803945107100339382208516666071670083114575541795729045253043947353359181698537397838785059360864341641385723595423278980437636731900914680652900512196523707757048200326126536851943559331448045208133058610232484905922191238011974924881073477670309323705646712704539500710884827842076598681939320823802014424313928940795861006365271215761235280626664663483510343874777720510555587781511729148825540554750732124170870656535655224489907705208139867738297225175199112334665353373182766991445444457100640276579552095787271781587173180450260449683425271845053590505086545033945541447884634833032555064653828200792339827144154093282245042535830190389199788012711892736504005370821108186162631736155820471854678272533977975164724738980802658228431920849071762914963957409534139835769878700152850582180519588547309028411218207261261642974770598348713697343934300712147462887622621768509945948020970171407047458344340287492257214778163764153178353203894024883310207111945996334097779583674103982188086100588432322898381891978666491068698007878623844300836084820622695707935519582367243209612145052391427631642610859382009152994593071643598115097444713996107467279630062549460064356907613550480803955522523467839322992340368967732949377813064877909822243209583722098770625339626946125857872182191830274846233011618928368491927878024703045068401334701316929236545972612736096291259035091993171833621255215974448959290125390387293111427835054404953488854813504961826334806145102414098826324670257462336579584882611662108527886146848556142359675944598443146434460231439484863420223171275542897538784432353270814323985670428529827957672303197477801484428958469352239074319838871946563101903934295735663169242449379771517439392755688573323869047144055380869182715888085916160519199860625743411011989894905256671438929055056921463711451269592211084984599534658367434784307059073116725716653595118883926342547243183478848270357394382947661609492895295630237495775635904540376776198918740867661628875668738681096325132180718199354544120446896316889641863787964817408206201992558318733023149910351925300869996893099815288909656031686961857169438872208269746460857285311355981741517527810310923303467629401845463870264619137465800792996805074957649581320583404124852031772418447748168023756970689295571344996022148181582170889319196640428364089131552763615836911552969028146138317907664658783851092764425475477575198586884455416508139289413578608340398169110223395766088887402665731462182344010687048869214929411288653134487008963527366948968621951276605592721422866064306385083322274328547999547282077246997824776615414524344118410767454745079201002487095742847246272090731020268001957664283002928949125071511210249624216534009432919439232311183384659478390081440160932629624307142750452495078275371057717470951368881100265521155808096914190251238498866517102804438493943589231202100018028299138900818850456044643240070848341112204453357102985509402254411307575038708551169219367154213403451051584856383010867687689027538509882134953232299439970922772842049231219358071733180545086579329586898303116853582778640393346299264876214879050213213585502653539512433828813142139179720487335443726237229312076410640361125247982870935979557235843645967761994461101330271017593899087949209625170468451457246237274972239206360854581268159324966385259138463354267944404846994044816736850859973506475740869167131317400944315431733963787370838892556929179392458016024385936301010943470196475384066031305964762694696103909695829327193268976291576789352691443539719504446518005687731832940817926207360858478813341064366145843745124679897661625069690737586985917996085537156684328408129047413470701599440981192474196863362445880286969230087404563509404599768350061763733482348622909999093456043897679173427187529508829727009468132095224542929106923304756809987451937069669963992146549096051901018035815259256295117888165576004085797229114124374416373738864493025525390400038538226076264669311455007752142493933620369761322460900462349473565406901642980441966573331060153189350898416563717481529828067645092184799205728823531714945895976602749306742980340569351819930018898671290751739328649562411861764026595728646651352791784493179662783497525176349399041613630742370982291423202444763417962023601154697354989657785812777447025325425530857028219376120212123079519756192480742172216432423739322139156622282368453677853397394695304325395228165915021042111839808295729789228386424422740834622913535558525210457011376922409778477310799119888363443862195223309625830773802099350539596833838881849715724752620194814849244805263875441820410215118475291926047353305151349034872565353004285589033075901351850201018225299750051260012335145687970157884779494736209745719019243680565568521534706834431590964931844250033918097961572908168595913920147836031414196691249865876794098277777770307004561718573002211529488445942455243223828625592312099971984935462387040833145802631020441715335174551714546598119958086835306089689895277409174406440972147711315083138286926645160643311639326438551408243660323109563776989269784013495935457097656176612103153831701587355881845905949164143368347728551325805758356566009521749941039902297065859489977873797470122894423229861793971140097310200515003039131406304987374164707583525566427723205094569351020839152065961716192193600119390975986276904599780142553902167520766168048636730571768923244370268787604308599482103656518551214670215851272108643709070503228273526123324719590920861994327617346063241287752484900942537585782142022980287276758605510161550503047626089802669299631965343187755080991347565797377245397335849454864810455357309480361308636984060024250191628324619491771683490798627255306316634106272468935923292241178224379007627571953287173839748871056540577307564532239228092259486621508442865547689163851727060542391743016650127834840374014655305836936230283054080695602219981509977969742997156594769194468153420743243224493965493171348797648888477867843820001349626097220050468886918923383826884491413835167572769174546123162306877924145277892614846251797397078314863413724692890943970168296180840782119927134537103411666409888554897974592480978083510386679194524142984821547894852332512275463475113654289109465964035502463927449861956651518575294088437124537185729065240197714354715498368046642375603831338136331525396165707503296510133698544220685387425717141618896259989150903989287911396089923280949722735007499719614193891077908921753870669182738768386853656800438812422426023484218032237791909896286832185485646686914916543798942590707804834342978624721071413759793575365289590835908581758854234114354689891517126357783388497100094121385068729974158099043019321962339742923140602392725757528690721273584360608174123843207945190199269891199532236801071798383251786248183545496537508033904654174270358595775772520816613598891324971659590784376780183650616173195489794798403417255823623859487350375059165037244020024383508334606535883963581377975208996276010890880410317163452548585236401606026178928373115972932457866257795362048205873134696749582217762220595247444991754712211089511158353142818716293569338463751159831426196893985479154089581471247065500505743018099282836911292513101670046597620435932723914576937307759617348135623794170276266626860735894132968140244554461794629229967896554351537280975090061275168299682323106511063002271290592894747507904779450661410809205552779908061361301055938647966560361763521798069337196234387328598765746710579778626163922179491895377743575062235599458838509439794529372471075651253353725151065325883470926830784806461388198157058829135235350857956464509354284023581629264676269237180243436337703873925415075367026954674759901383974019422836789310740142739509435283107847364342631431721965061444834204387107911959560073976919024271566841916196465302771319046965396901822931628205696646953681545059448164730408142811064559426455935153469781689321413423981863232908174252075260098346967516068934972335538878891478032509254049408363763391993149203769988087240866120709926631460860972231289926917416917149007567393354711805960833401727874390989117437790159926208491910319237233387822764770294854503911913060375930244964062614897197043186055735466473477515985400259318780992815503461655638774010808636355650908900330516026259375366743370884961163072331542511137810282463955796304923847600206311281131945933972733859414781188965214417266612297755198086077669687930653246509148673611306098326328793152683696181758749274925830802738021947456854817774180262168761888716521795388681944148416320239478446147305801296703139949251677605460501982936986598464730688115514688039754475630215198584289087838003536460616075367155131894005973366200476851976911843914364794855198932106501980899792462645128117087401443090639482879815367335304517964743338385289711509180048136349852059920982260589195909686665924009719183713803912194098611107081811858856705356295382054282774403187628501091742692890715254632332966757312475335314033450907576076230115065043827129259226926235359096870513352908825194426380640618984692893911727753684741625107999411062287734542841919374519989309963921304502857394476617575780321946140400090732701324725875034916050565597341618242227034104419793261037342467650328381582901541249614332495848073772393912478707886085251656990776398811494936675986261664038692378645743515220440458274986173261936754480308830956739426853344957819308204327546856240619529482056195375145942788635636149026600409714841887651835831494511782895220094198429843647588360236801741159310887881043860140705856400002615904553175373832819013941603939791874221273470341594769929722992455544295858631702721335221224796334516343363930365832390479775932788436198108560735879105385981096920646492514874239312895615271140231148103314623928456069768124483063190513612979898796635549293218550247935774097491837300863205871063320230694749788678744502658688123255491339208379643013657294129495033736227969806371445601349048687338553036245057506296870479140796509149409174481353570437552938595946779432578245000266752508442653480631988578495883119018361757360120730972656180503493135588375203404235059092864671524639106207438219704977671841870260148162795921057028155058964097193853480623028341486837688057432088572937691824241297776117062652308584376628868099690166753710664313633118087440446982279182390835304285959637059490312892123726210020568370757821948402174233689917970909546252081448666758902800623392766597887015611926291699312092779885647579550208250985436654646395131439608189479441705785283625552711721168410825731846214442683753937884809844947226623117060998315667143890695303465767673392458452679318567857631297655793955944022239907071350263390259950683317084734771242161993913046838595196183750735500774048975837053860252777074251072225043867791098330614989593433687041532251953947906627114272636233372667868457265143944302872875716091862608083402298523035357549152306156712521733501838101998213160752551751012478378207452859367931930817234959183076397443574113046229717227036418162433263211765411259278434787726778278549100115670952928343531620844765138813124669017267231297223027553939888133776057050637027746672934347848712050984887290144305840888765598734833959194342148135500579100184631334446713720409792055721882443038555298164792079359275170630486599360728238340072062271526359646609055877950795948203283512067739139697321816111552505787559347390867269711310796046733961498339640686759738178063541635835575854654749437420511848818365748745492059634583780553862410744596620607782339879182459841801713898053432643789299938738936312794906657362666632728627835992045309203710253331632159181906814701898173859427768080879109790111326186023584667195820079430474443677915054193978429509339814457663314083690946863408116489805127935520678657533704114864192975181182543411718876716490023520091349067577417324208551413628299379868498513045124369963285387276777753066528563734299161690070521861947104229183637101067036713785310344608560467228351109828829008702295885831651328114493705161967607451526013585046745198728096899226445606062572157545869823890977051979723599720315465833406823557362392991841844068466238333074948660635963171726743635065829614963478438145691954710029984536487422726181136431923487160463153028652173496508667276322325067274450057248874091615852223625878178768433242364171772556652419005916370966152057214102966985961050586880103541599971500675839812648317024496596897022530112011312865021864925323609744320730347296666657578205559776915072597955574114684807431951323469133335917799681713394949263689096194198732130847390271352675988680534674160723627843605557006871653333224631478433818969163650274793771574142373909406438820868861312857833974444101243244259989179257953946722483472719771158241629247857069935257000880583316522664525438920498801255553907460429409781140982333496916860070400989314027471155898326898630919890032210381899779687846993331267017325798751751677276386604003318346177697163679987432819816365577080476824048940296189083018025911310903727694546451713376052798331800177144005446757897272687300550334704941904778455754821489617435803475486724822374744250432975668378903261375228234566345116197596215484948312084475243689605665013032070437077566012140112418288678363591553409365740927687848695413481426070143273867307231054681654782917840784850414862925243783341492145044488197803299179507436013457110879030851480094202470830439337727187872372362429620530172313645907421224530907816915005381467766081763870255022059325506918359711198611350863735662618427778115966824557559560683917221260143246796184411685415524548471662494096154943554017566197953722767277428748460361434612349514413851391829192171409309389632608694550038717662493923127760980378751416824369538021690093716937950946688304708399680789448738138784327283494547229729037385747748358767709470678696740339327452764684544919694948431148679862217468312179496298556700505883856488627376579263737075935150012085100069099866159434851086803807083159032905452942841764676926183855374859367952314157532145942389203393478625464089059310146809411360021532228881827964036698929250843228709793868588210212337230353974798331473481274338402391930571417956083959322997780204680103601994335174632096123546866601008802887384485886487146987883884392632740380605173754576950695590036487069060570365564372422328664961528950195772210710932414837180945750843535330819983811384224097111434676677611549925311204504664277448329125632431900573336800842835705813133771051852896274284957628320281534764626235011432588931935009408942257098819356551772529597839734367494291733687059953749537309488523765481972410028051469659060261984919348809774564259193741945648461279453864719563782365050746666110812013689091428027234678309347201381165761147886974995574887325214798200183290186697946943169093813725508119002142775047549412142324476367791931159497598158875431688790975264746813669910594253110768704144033545390890041010533720780126128647073099495407019816828318035068512359728296503420659383154785557314960974970946105400339944583042835163173535510790112340659784697286417008516072882865484944927460657835185523677641011756294688494506513501935614729896821459924879152413075966284439149749227314270109984196929277527102536031219104168285981008313346058727776415763556358725676257788328343906544985282894682870436845713965090789042342716966888084612824395671771753211401938489749845083518637324750575002945253587150954410057834289674080830830144895744141817968682488396278100990333210919026597143322056590949505354655173816682427958922486373391297335691002114608824756112120333657038340128218148034455980919659899428843973342753103069102819682861861579548812680783758141300343797409142460676909840660991135948656850171958951526801292504250146336675093215396768731777603501065824486279896408698407156661759764712487991146291337977172720344160943389452116526869180753752361945660408617986403165359524823564567776590045647112314156387527696501524598834765907350599257598589042398942612010189202165016525062105864207350730831581391540128058609269973848043952697329136442383738758252975269493142363036481743930090698769747426100076122172384156842479678822235071773523692996252523838907899993937156927959853152964188398505751554206184231433229080578044792730700050330671377720655741836730702285521669950226938112786302914387992115764761461895153750119026775732147466892840701778609721251259706707932716580342670204583663725546775782670491275111050452876825269020754936452680880416951202322433184317155813056287615334803988290383261345689450798785131493435885140534093336158449250498503335344896793721312223443516103208387245466905646271058124600886263072511865713172613354294760538228176950380501996933646180760030854082101878812930337168595091644275453375780426449135846791772745955806784882871105230079514507920321220034829531103956459375111455072479519923239155569887194062717908856195752885568063563170239044601777535223361767177656065693756193619362595700684922484382891442879977842801025159717952482817934205022994369733988831278689438088369498972039963180689613004578499947471605893533828598369075887543158127479461173471760372228648947130170439398513610970124821835213866618782132376616440663254186729754836265525098194052773582030746905418434768121264640700240591465383256435999289801818378015569111506399256148995220185249835316390390607438832642042794271905850615003469431967160639362712716136989366068847181532504266096516467058976584294383404133448998170350958524507037625086897853033601517729745230087711998093820218200283224819687652317962750315011120893588807556086360668652272562025155204603549818864166563966539983497550250044351737807810891197100700185450607911214080043502990976533737064370772337957896457954449189868661093072923373377995637102815384031323992916928875488858364585513362810313037597446599763246144388271779122376408799618434800168246368288924368859049779160034015879370396288124137009003347518383178223493197255376795918146325669303732311755211865220261680164586533147919032005561523312037658471762268306954945993509912185835299271701866246619554265055579169220899220937416063345966282865027706133383785265940526441183010165255978125288906246057525082522471537549396538923884329723498887218816835844706100377479756523757990019736393206053268644021743293720932058884076565124647946918222231283734999162171528404168463843656625319072215916463159085985632645653821980535360101903472295907771081796392001692044443233763567811667984413230300356669641803400850527583039715215309498065199480776343718582346703571375219012623959720235366692506079971412866623285813110300182669698698236405620197965237829190217070596537031174753903268130078684500867436454988670231731081126462755021988128173095236218211546060701287306650195455515036656659229317392643019494284811383092477055594739712381421274460760696233217270594150713886891920959901890370634175504994767593127533737609811856997178913237214852658499025356718063193153373840208318944010735872823139644749086872274442521484351796727856788573478207005475006215778724374695067690233241968078869746222850601143261802787427447425821382694394086602436411347101351157097941023767356352567234624158660847050529619579325015208545691231923285254012202989727949116734741352737945214451484328510367096134964256687197878617093890079021446025466127854216995254171355478595825126732690124746277689875034981324260214187331411169187585717644552778692208946814485820993862641065187020293290533186367608740175587804268252826969011489759156845363237064165749986001849620446282360368421350496805774944803613487713095837219673314898126883417020695380219191985100086598911709157381841838615181712998387772009467756175258520740962795827193352189405040644881129456161953393278212881720054268759489533145783557492004857625375068309785433489537497532576895405471932627091772036408894467127907974095830091284204357704884054408356621724589944963129359240436035913355496397363633163728610022556758904216951605526630510794942256918548202245722572079795172277326419550722579692721685905218628473828359226531148668862791533156835121813707088369302072597783113253188649473703551055046677480309052393540648658710566048891226600799480399149580308117440898199398340385383421509802115461693035855668625589248049454439523959372931391111627735673531947995637195437443144200247401245957686481687087717975414122803394275362407605979384904735708535794722063596018023282925210448696282218816240261892567084925052745929925220438218825895021344328172883612192709566056059484404067033388610338586878753031042042040568813889938479578131287680983263671105567741565420236664409766808154652044264516131713542492241493088397327498026439566212533379400552989836219604615828359306964832181150008190967352768990569948319719417698422132293738233937211548342529190865550974116065193280979563056053478388950682528114360997646682823393874841471939608899080383490762602594307447976737071051702488208144548532122456444681673416532262342619055983149920006092631526920678309549023428988838821526131068197401371957873879734470295029043544086904068675991743762662223946046443498655673649141541157440664028641699644733261799539660452142879179739077054286215250548189129033267769530091038453245205324654194004136473254811460661581881867990681705414030195492007132239772209550276731147174267311105344811387495700163677220871509057043833004310158164600248543330650069985693298328323954592053026102109782950889039463098645696631259191874253388746597252686493076183409810940024308757029623926399208813839199459140878344856734121765356007301111666681302543588829594223967244361576764802740763750657142900193412719368341177108074199308838731885759725805352608217936733206705359049015937804876474348648387186601152061511919452266182513202278229883188306164953410122149089701672493745603676666116811366356736112759995475436456578864714770635215943803385501118277427811933695009349415187867971154265494580438059500464302098551260553271598091760541104013177007377906733178746544333206033317633276441653016999388157768794279976658482097636321868406143700318516036743893683951815183806870601292380504103970937013353275407048164410210803232334120297294537283903703913120265145332771719631143203487950180294781391541671122546826020663848273235888914692377380285182026358946917429806068826417706487362048827304947722276087456194106492356912944970559887731305487387163928907281858892624323165028584098864301500121947127764941363103367301489878572179052835685307451716683762526987431280334072871201423228886512700758316580058267965999952281418562167606140863359418484062838153882077027722223830592678252397728962906072904764945075485922505119261757307770058298985299959184730112300780119372658949549431376486670784062295984815281620856386485679713104611381488123166184161795976237206018038071461314291055007442170556726291215549193140575807302741316998943623605952245074230397116217164945033827871823917213832806613160244165641357236975859155316736782711368636926673938874657176848442870765543744025862307044122889424843382134420252316883168199071799981048074149036011847093320907379892685141437390962505158850336180348057369625361223820307584006255968953151283087926222099331578021490241828322278905410515030826477623677216198167062597738307728127864152709112741041382893441746192215343148834356007502960183506993045377700718166001491716561761930320571310180758755112216844896947841778979290722696782472259954683978166420778862933606629926754833763526348235705661662233069049931047764600407747957903695453270777798624858272168266752283572442028542925176968991248392574462892159719321824380047324071509107225599135073235489242217914949842726513574371389201322232194436388369787842581184486531810135359986743720898877039922342888605536831598782745663342600060527852849678972526392974952005996252456799866909835746361108067222176228118076919206252648690136415328883449756442534127967768305773546443844171060884108441410379124720260654512279145765878485670127466835259047952537814324521686583109133661391025558286277239846109521509239743007268516357244557738311092778510640173859591975715669756936823800393043495643369826186041199979825744224797213206299238258693893205116311383590272239781856293080945639812418072366115753571765771750915258628642449923988908451591960926233268041540202849914033529379948866129905848379899745321982807748539649983709001189757836329221569910065135225164777792684573593276827610527710812619305065415546204242788526143461195900247532195892412870948439624366773040782829042950979803366980199661862491022715249014764834740909139305578551793371050884199913505576491688183121626684989496190484005039433180122988168778202001444929999014034822801007650917661050036551885174643858805230029184080112294431785282276241408360363573365136170788479211415621243555136911126874902092192949946122740478289839323850877528292534514715165653763355564763992622977447565619285025378325947342182517307460588495425327335034876035623574197164892871939912417875101760146059302582569114268293510399289620117494651034552669370946082600721953629679247304173351149017826405234920691693488656077272717321458117956590402927706023192373539548257865928864628843485285268253488737506097269589349345870441010628863169036189454430684276987265151672812203818123360018740463991314217107541355432293841072969963218087871775197309386663276061854308189025596068679309635920440693285453596654725391711933154388093864091888381364001602241517816058591590858203539387803382962008214095868156703171131398628751485021936911870618271275410173323555765783056907116752418142085847482239818517986054041890461218875262875969424507868435159585420511415402155032972364053696851382474958272200579413252055188843479051708672450277259085077602688049592613470742753859783003757742153332466163693146812507093761796527005877700992952606876662817164091207160929333088153876394307528897793548006209454580722251079156766034435158452475604370208396637254837179362732810682860828917094234144540922811094955746198789087549897373580773575160574441968939726029135186642217894480793273891829162452850073791032180272457137842772979990906813060532284146009900776982261479285147844996815767905092904902518037546080633012624107982680367900215366565252237358249396826200850776531863214813557060146490877558550143228348970285583766997779647939290602757065690019263992629523418240465414655118864079120644642133237970866031724495084442786825978453544731453075164582719785328342581584193429805310298248838279992858904391002987811706653883327867798136547502704135599993330246261908110493918624488431996867657835720100589712635101009135102376209988836426503163906995762757322424853885490024202145883253006534680443779333601832870749216132993888400861186195546433428316080696943967124913309819269238749377903347230979800053618584852830251476386694915207455575743895313634403036476079589862790854821583247276221166519228389752622455185916297232380887456938367949566661418085653781050731923016749558301487700411321137041324715954646454801602668610836035818675407632789504750840652510467638346858596138181315314294827384254498721060448651202908872525751811499313482564340523594454759127703088011207479834059984371936315508711779844914253393936242544354649822852131465679395144481043266751969278320276902316890565183002021921611562730305318044269647852290119995273401760922282576431383895507787737028707044986788962637552377371746708214121882256457360234115131319685669424597551113103803639688207027020059215326006751952348578877089066020299322599796081977456149576246920599061253264129937964305441138602547587046153970927914363246231732613669437865493649580742516219022588712996396721320351605517119414141717110642131269462774271891165640547127919491059388341376154304013813170346121744354226391457774762707226595075210567446711136152393181713277403347750784960407474058604330741113454145980264093082096887711551056952267727980894471940678585589932736732531407057776573530178233278173470841509637524925074294025600649477725342334115624558413553279777257702173194684120152478666161422865546961368346147006316544427156673697482791910420988227524140343410014162834149124023888406883543634013280852014026556633174153819036687401039005916322394590345138868020892075292660094838716377934465573466872439766134738285752209251563717200820716669555789525960503518737818293035394077344917516701624215270942117672324738550617457502503114980560223810999489523564471981291893579075710465768873114531252211914965894900529545905156757014520794923429133942006513499514380451072347477300601196993067779067768241072718112790989683845267507794223432720711533613422394998779916835750955696876987508328964227218526545920275734334622918866869393855679454583866531869143507797458830851816055666361789954391939765308829860726400664329996603080380172286389032861993435157085527599954257645675566812562783851992472095862670172575290642307876645234572644428451819267932599369774697016959518386334776531347469471771981152704600228428578208368039461906762870923912490528935581565349569847423543772708389950006762933340863618091967816871505883254727262567145773146498004530486171417171892105811911667093896407662301003877031533534091228942373798059273106166450079769830699142782251077764351673719908408426206597301730986465434537593160995685603660508281714635598175673845307252408951697227477869513157544173444547223195238424694176572256898893110374119866448915776227369791872420558652076079899558584430114492990142055387105387376532560803329681845461686610828115358318167961430456583180717294406694115863763848461100043821786731183590668468450363854531022542362709460429344065537556014298693785093825141995425009306275584836582645267318795545818851650630024040227718248274711746991639279354106486160334659917170726863865485157139421974871191635707284322459832882084302958557623479175965249107750985688941470276920065483334966958488859770908803076811769200053914084707132951017281461218709195151806511040503781564141290853921698108676506850812134686179795192587891603212667370269368679907297728171765280488597560307850318167544118004858734611713772870812123336141562903155587114474038758996695805665319660528368352252434176052773329344897092428335280862061757158184220148063073687375567565707457065826730899619674838644873091052517143908838951201331333495400284089327909176420749930614456263373799608908614874689774462333802472710002138760013001641987914150311483454608576274865193599691896759676822573791016221557886132312552337335391438431644323431250569957998106885729960583339810350790539789148761411530231402748800907136063487219782707285723970624638034976282068438881613384776866170257817535255652892751548151049683344185394826590754183300519225238451661155094680507716085165849445854988856528678259717354781957243998982175044000960656641069241687721501117989828381109920108257618788397638413323621747316038500646610818910976536014753896582352433057008393613540046214075206830759989418635034669203550876248627615431115036843066764290828007444098839453241118614027727213072201661704054812334814045873343504050374006400488265078711279144360588671956657617660843063467185398005831077493637541268373790738169947643765180917798148518015700664216922863113013285653372913430426416116030603570273195405389388923398444356807070697951919132807616471478903173340413027027814501407478629940377493006475033774401666885187157054537345267096983042921705295974346753502448400045860648432125106718272611499125550774102837706653386377171202112819236335823336340387663099681382103749512126293936505381482766561103659286017097746547111675377351220356300750542947208255469972939797957500198318067845574912703169375061390782412545331434698155728514735072092514040230284489312525928434277387420200660236041624700034030513184695759723709458287575938326895511078242559052371242261402781371200573833472994523713628312287666867228229494371577320843852286652319928491232485282142099076823741103105304317489378272132767878657672450745808013035633650687367073590719424875839673315790523404748239980777074114555131318608025775566929347904667295542129894007251243766535535369918276364596045211092170301137771923732570564950801978385201313074570413156128011409273915121374109200215367314572201864394132709988218562175659565934544729850629242798422339474320583806514225514587842277845751653145237760092832078745790159395034177785403452479862156087170390424668764492991189872804192072603307368658008890697956740573328632118748602536913622277111703903767149661756214227871047636750197729487786971551705532050215656492321229915758819262414524717281424920418257623825755392213731258808877365222826420072902855588766618728956533637287963790034901662789994558455725072320510842699864437070488579562322312821976452705485693153646220507440860082201649296947272378696631897288537535295496664529441238399636586701509654687188280246459962912518943645395988734574902174365408201339206097043057588634843946599693613751136699220860085078191900218784357761559301553955928822907142743036869620845177168086924750642539902360039766027107635906562748976085711230233926633986523984577192808211907510609451890427630793924618288307997551831774785713343128232826112154502467372712011637214179168910789031133699667063876845253007597562467527648836451906662162762307388500978488336685856067574086110656005194140599859159468110571271796360445505174144025459624587878979763542178837152108706629766185284281404933313056206855422893076345920136087226007415272346350294389161165166798128401472800711817348129165560394511057372660435039248469519651186632701177283998712598037348685203878144573609039891377985189672185579414701475789360767812442055555337574747867044191714613342044252057531101079289522207989600625371130231156827243427312892007384945416133386492731598170168987669608646428448384961079043229172133327891404061443294353980689870450113388304466253786599595563673921797718499910831107027710671906247241897718931395703540974673149466121125395481783523771570739888297169104166344151022080470229824351953195854031140283855677631141415962711583892594746115769794070812354400524610529125384477524954718215981346782825104315649470337194506231527911174645287746511674488932106999794356821101491292586213970102087453236546414071425265451685312384733794838677855371838484969386231958542673020678857691057456749439789465782169150250744276503986200613658152009057903591828161480174569984707839843964849371304922505525602538777338018562290369977133702943549181034866707931106444345981136721567912431490071732713542273746317932173009717553736350752874778473693619528085144244425311664915782639172248632774607069418353175565060159440467166507873097128511145168314255396588717990313657811934693040177688341451752385336001257844076353671234950801711026805104627818593642357014391312094881435804090498138460034997136665339915975252030399851619589805830700192560727840369693729873556529024364319340585148901918365225712922601242295107624031283464403286263713634470007263192351521020747520098458750934980401237494797294662122948993842044193016904841204390646281364098983818727797541099387485557986284301459207059431329445612545199073257324237580094766758101266122854048507226973202573184914149388000485674289247389062632507321127798962079146504677775050658030537408619754933701922297151960409975106381979993172628087353565382092720641316090770271544936836114050827439593497341980889546808857392878275755495601355287211756063780881642482834726194942501732628990611687148782304382376694929426063627271639073676536256381607623590759485088446019294188866224888180873468873786999203970312885969960172587691810037008162523907605452947212464341986252956891080083832741705101495232390716327147473661783765396881814651933522778750195978887745772649629529385618217065063946152739486379289370887713953474321417598785655979227403853748776610546779671671176240071579773272913340842500708998650959229673019230618540181678769998499426206753151036398155067685302848662432435139049094618005600429308623033504158793947092757329378669267123373720784502804919057671856868640282321830733905136278450949165989559531760535093126742956551363881588225853319111725617740153018210478427989920892342568389288235153338389396463018146973956011064458863947539975119578366766219951581481589473528972073556766538734869035377319538084354771739710944867981848560971987619507846812451963906230227170310528874664304739831554942822501203596637805956054281073452207370578751054071640676446506816917119033329940108679726567472026032682477936397992142566918723056581453081358398309056320273128519934454917126111933486402466590106966017292481339927500195011549061153980976837118915309303131561696733271945869450803409254388057086654996689135334497338260511140163158471379188163758968346562464875289298675328672369617235935815708127939343833753203687681398850819307703633442792926852519406881538879588049924804205439212258354460938548349627613039242155602989753644309814310327692262949247981615498394416471075125511815535701797307276788980016482215427828877289872341813778713567018410254055241572234834849484788028883031485520595675566144726992229074918838620966948560472439677400045120260121195919610701965037059815865387154358415194852965416064590514955138778933106461745128764705547472644011069512345669862802559358629075614814393301827458339069708605698178709623055280317288349876015980831704206091430811450628221880854008959585489801408002940538719585079860511045333061730577717231087232593692351646583252830074424984477483121087508591211179540454918493504551728177667524706975946571796812693583426830747504649845077059088595444152092853021471610612800408357359811234599492470430716176999037619776182705599503837468702841621846411562623623117801135939557631898555748205968425458418451443501466504026731909100379609179949354612811937025530800212555081345279160300998917809846094908386876420300395939551708232993791873255627073327834890726508606930163232982827306669225960595993403114538763716468132170066523442462549768209764264340078782705783601958831643068514615152855352776272033240902177699860046661974594515208294463378088528468832720427957220679494027611171528875945875233732237384488396531893227090522503323460421674082943984017135530773494577859547197172976443923886164759075548109324866230973541688071887730410740376854232743763576400833208161815310474520119380951803836988159895531477545725589461142145931053905271482915684901551958818348930360222665016560067436721522227014785622602056333560134497048981706922409206697324261094221849669967478979255559307996684304488628690641640602345073832314772326834885310931738741212469406312390466228243286578799328567078258547107882921677774490916395115616487374229972883653019479369785953713385942451955807077292501312562579246435407909516663968694497893184812863086748237047292539771348927764925487798366387770837025362467279461064545689499390549023353819065740322829315765980585701299962583057733816073821962923822035298405130669963809390624353896483455319326738602700746850104722803761043203982915933757505852142100757880058375867823758445279506662364900737900601499055110089015697986727396522885278942104805880313492610827456428913690711099652679058200430007917548710878857422623012798387331256976420248113486562601876486895133576888286357667882718831932831226275916148506182964950605606211634242423291705243318010493792930448284903820013530797548155882725954667667545566847104076748480293682882693617271219115804656123258770138325694628797671307725563284833963698837875047780640193107506655701782164326939872613907717518023622469125671712863617882740633432318137226763916050481324095280127688164593815115111352354840451850127472278520389383140692170865804823141291354652745286673240395423965469181287290451048003137582875294385401154867800069062364833366330775851716862734555167074043632680093903755317629291619739773349836200113727778652304997589277936700617649059688870779541723407640951268455173058028074822813435949492197399539958590727393108894268392294560662697210622370361551027533202149525467426279535251319066869943805070801988014477229684143073224050661048396205560557785391805481576008991888564600596429495472907995982893953403405006403027266956470671062195767417432814635139182291664817001086332382395562441143603413180768167977486776422800932883932232143211564488210429830502170418580417105752324973756095429125866613589861640703421918654629526477975321619381551540583377038657730509515552204631382145208952310383850816021368801831349737890422145201153469464091695867546625962575764793504200240050487347768083086959279536511481628846409162494925325666454002485734645468718439175259140373044289602107002228086260753305832806763971354671602665509375769871296427224199293404215058286460207325098098103704459041943873848834768201463841161350813205169358406819508047399946276917309874330754463206631180950239596116179935436992333435371745027445100805977611644543429405236426621013182418574309414454439989081351242495320669172977761903309496661168443747134768443865389132996190345176369325823374129737191837588834700778041036902902429800586806035664928763834259158549390463414707876474070911121475522624576208738658529711007199857146250000639970282544981161850324639901843833334268384858948423700164803028772251556243918410898506637649657643228873234845718490651934573401035245372572533330299226730277504030986811549248227228736849971630980264076200305504702624889177833764485608967570478447776423414929897331342301048143563451702176962909435257164570746825474278644745488939244705149467020296346104519561630167459984944327006673275781461518716448447044194651879060926733825407700563181243917527611485822572878195269905258346140880655528424764051770538715421729055097559951091670635486164550311162747434340792335793313152356622830957717713097661999217150253543277105323169781533849061215553475701086966876005490563337064137148459035472728439584976092142830604487534234371466908095583034487641636842794192454598012963947950245195151547437129357126365750049561695269050740064410014884096169907730008590045991542678189716155171014134886946736112580003908400152448098744478222271621724942660942656354815889400892897596949291287561010866062547834431494041842769964500007910514805216649516946238719231156109805140620442874097150163015622159606110095859206658932291579533577191452693280518124602562924680260888125457522087083095333622694556954880224581187582024946319609330561004101018740906774973116404168954292811038835904961560105630556175516472783306138450212576228629485254394496374124203582281029266708881680406495112666717304074184219757767565343221440449681267939076091911997180366531034463276577640349950940711207405580904166365881209403249723228613863802534106044767393634591308717574374271740226773805887273042547819571742455637692650317024549902876161723148963963950809816283993409533136688488381797146096651342071520505247324586251103009376385460700540590703935792760497899884140872247890022248059873770531943632528435228735549798592287122065315734145588109646680298046247462747404109655952924169670357752833881730605267690676991077867962985429752107409508052760951868232282523359243119080381184632664715177796716214692150612714495111731090421356481626443314781072177724423413325783310891725786624798815007876308650684946643221368341302391036653458655039392023869527284933279770521221374016448500583835375925989904526643210776087368938666560967970337746908417583752706537631366935984083860096619172534249381221950626185591955638084037219897780197364744917436406869321956484943405318640332810322393660986114654529741880516327975606235571074871058143924630254764266747302053087676484818874972480044262818568751756537604204296786676000881904754940127924030971174408068327235134443261198082269471335977351694307128803276338838882864219140707250906738043398992933068248944562197055531129940039454235657049870224684898116122617061229543995782272651588668749500606616633054959973409565227330711428300322629771667742914314580038278355490371207991085528301654152179211048548128262100930229279960934232011840854698206895954334023070499270645533893485362936528144843990284941572836948082395464190044262035495759331838289718479673284439432751471334947008323904856633990291761014140058126214447873976922645858473135069029329232960262257909256483614144192658742399926844723073792545377552722122423202204246538955658880003060784568271886374519022900298306346879573678704507569377574335954435629869760181201859557008796894929887183518665196355359335067493475465895035155265345139983374386498646341897155729876601229549009923804480735838121166638811893970410391951919655518425447315006956986744810018388536813122965839630139185407906242943118507158903206490026578776622861902739695636611531261146688754075994318381027185299004967429064121932757035029025137118201094723950126448476198207893945846129594767297908376490514603681079578262324358500165219536774989006078995481082528421654681648579005300382122169049899216511201945719085685964937393358610424779814625300231746928678954572892956473891331851384245340023026900890396776922668548569787872557364997782344262341253345591231232103762140429610281931322981594859182392029772796782330801427353931905290358077925095122940488379479848792694647551358122545646437034584428060503506302941547244296842059554124729977381707110262292135778799473802756110005624573711871040120923231253260859603143008640987514244024449447623477739053751197299380649786996202923584036790888440284916038087152550859942148339277563219040224934853955023145035150738684035721335873139094721085545034050881329730759731890850345638276011152012707980689827483454540089664872593027524399615493821022773404913035863162625620934466558466811859936483027524599844856620457542854122359251547264046555156466379676168605478185194832147697840800834987507372261409636850755554085200019370861999771370011356685472221297954051873935811414036547889056030923430872414243494256464307420993811982058394896997356037937238060982844507819931182646485934983252924579238067729135494852638684565082500723185826703560593415077057578910084584448305348452285454387238718481384161071282967654639739255026385263332187550163339327504883945395351581621742238491671708643692083370824840301131146114331333834507915591477722461384938678261621904850096206775522216398636682147892913288003284545943974998554681907343295970363227366766363434934295185788085989595485619328831727625197852093596546344885514940112740390152355261598904396641514542543465711185748828201642564075659943860619253061402664538098628505160661557988214257252593865741052826505514366106881786773838838057868502758656347353380521646041917770506754336621708972751377251538004712126928126043036822253020867649277650564741408978709292620509311322798247951596895017561621222413100880375422923653782848165344185246864807729845985755252600939699277351661015402953628727815281744560794481276274622461584867445453341330528784697597416551723786144136018531855308783837037982388848609231903103607579809526255420634443983716266332042286430351755004546829650185898392505834919537888000430913400287766638040304645934624768408280523090083738630388322655238407223006417612475486485931310224313381922004454996175995962847563681190716151188171073554603799110869879209301926597606165469270524931810106919240577325678732745668042830198920446369266640037908285496907706693278286732911502615316399000389321610810322936741431198188346339646068614436102057179740563170584549395224428712856191407693495037390236773296966443066366067823150569526977661449292962923520454358225463893585160910388651464159420898947254509857899228790251229917538199776208218075122828568930558586408087279815987300123578948338113361750868413799652875459362629371901063458667669656754244075534569757860842465432444043010989066395415426401253084022465513964682391058231985898675082151621004056398217431115266188233056074354782469807838541353582179232335023877709782474539514726853875799012474740695279161416685971032045528557706249064972458676241983256734066739840654506225745516984949519866972670292718714454488922585661410178912949994140548119135887616545189177798026711583821258624110368046187114461790814391033365247733988249033063711448434967225986839665617187295076641946092197009604774980749063977484969034074668296883794611073984952339022790872578038385731454869521872257730899750331132880643380070945539532985626601421014783783084394407222421294132193238955734675113605566013981136480689944003963856426751798723003970188982836063194419112337157244350217880657137388099554949523287005527866417600915819969259942870978642013709622707550649873366598645710624536693884205487473313562866976058767158896562642610765180727198899030288415463101202396387594014915583584105176584335757095556977323317731620840672737161022987565634671717603959715589111861433247764589002239931622258336067396371822165038273972147741704030048552967727078944779810619484204784075425343623750124516763487171925574056707804648288299874354422767714537036280087062684853130769352472516893077743712878987199787227614851463297352115491728660897359546739468618968821137371388361674566875387399341087607048682483727716168662496903930349285531397499469936732910006705530700444003950361787825620539561428035415129698246491314023233041464063749244751500119003009535530047082472527758611613546973369298183265361841815175038635981518240669300806687485963193204649208350288854834809144194644760858504191669169322715012045915664601620850322058739884370043904474829710218225295940728212164599068478347976293537672759572290736409114017785922110412603430214627551654759350068162040929589027445612329620073676276006590461513742564990613347447630727866891013587692257436777291746060509795834325522638215991444838259559537576683739273521300491834811602322525566543265296867673966175009738948959091053231644490715140484401122861784046628763363262022701462769993278688377509002303185594480290821580707644827982927331297728037431139450349766409309153780146514798514837759765546571596035055209889032708993733258699161438143296250888149528050398168267034737000765063569137166496988965173683143452410481626458897652115444541264802516714882642648748240418101591262976399678205330413299863172673216711546271269750773623330622885503532349388128406790620749160192047337041966836580633541427934340837993020445955607496906503751142910391944308350696654293943585946495261579739285264930942713823221814016054922710754189042095212228443250768747050306215010158968301590379105985925904433019855284306718263349811791359335208950481255682445066008356584970676132342342721576053320973103502036587694749784428691050259886060352164194880942543036439111699005825178849028153675575554328057530971799789778786356486111572306924832699628433637147828906532752934524485354738551794005570934890634342959352717495807525615219042585644069642721923892278910331852731518209935999620023250944425024694923905071527906006439452099119450313888535880251537981453580952110698214071188714706296848320949506570605393558581042788114886850896709910819024840628343808651332794149686729085378161712894123856018413372045084416065398986739170731654114111653192439015134639656323190114320731366557007206756381225391741226120132901158544942243704154844078582072639490076314823896402952210505959205326672810619813158768284761112439124775318817407263993665695891413297259376356451354009079488381901320857158448035930746408217122326450715636372021108215247460152458199845559600180699790411232338627730131261137002372646654342131131230115984549014198173370540370635065370241529132977746873202040401956071669656889163651203372089114886836681700403795568753446605814741540849207902458998741502134457124827710061227515746074649158399292377350196884096101925451256716001462749746716338248590745738692736094661809955859364524520933355545383862426950821610312365435963083566099098544336524113601081676010257789011712504336656468046867493336570586954333238285314902332865948154332777418940237489089987729382053847761908732455385096629739777825683843345070877838679301817241393203079321483884919273920392387119640487858037307493830866449929835934846559285631022815190323145049086136425085990951736441234342362307109741296154811436930659062537523176689911240597377614227758933064511247337500714989323708747702608402121580098195379666106297682054854815703430822336540065120057409600318745257095384620442727267118213532715336951198471219633303423091018143372819307121297405149397834668577099386454208866604389987504635801517145264609454559841581748499540268978780249892970193781891022349145794670091784288335120054863238762284794939823854087754146048885546534121129513839883566324891903727254205346217399912613282700083867923829723627699871648428995449067126378460645295200676341156575593735197677138530128205256866944716181424401362685333118728406156010108970292859713449973490759391782309149760667427283675325030008089351597900700441912644491410996730819314603810874754134360854524690985111936504605738279093783964511401193436998417354120018541324922438560438938110877606428834649392337053090374080998682199364838599007167699884849724366581622136039487196120340437530305659048084798025664380249392430480038440697894604918103814663206757610652733144803000124548089590772409582135058832130925943522465530585603821136919932899994938904755833399886469885745645509652439554387534963094558128925467254239506572919840300611731061847195537827322303792459594790806938838930222828643955476556683850300903633763781821085148352148932312840427296380981892825626527273959321875147452326529156606590029623394935214725629895266989266571509570785874133222753646167917316894339146663327390555625101333922232601707086769529073512519664799417156278516135591401175555247860863895123527700586468419064348044078981327763076133348100304651864284034919571986521394453042480962989705665138129674150608796399363986571488205299657702809440900669964680122003036774526466179851078385752549681924103147402597561312408525510060998053584090151711453572037878896020912203542349274058434470310359912171876166560241154521139277041333263903590999349734932388035507438768963136909643794081257567177818776458948009705020678895673954992392880130629874852392314562460383480885041581739335777613636096354487541497164495814153079486381168658433478568794680974285696474621465219607139456884189202060612105975503660782087359033433398149090330121119673467309055959093966516934632999990960084247870658497154166065911760578923968543751802648275393997661655951660244278099200080519805546697153131855932700903552603268623581641135546725656828386545990515073044078167459487668980478336684387416811342669371714478879685661922320274461933402355990605236662870927477112953351672228100651696335738675535936265608978551429628703860572467835555047402704832040180713916389545633615373783956207661512488331994532014077445557919693814090947579356793098202389175438454835117267498646955876420552282860207688190576485173895344904506274220916830780194048730702207567489452591198902895947374890272790352159018901570954698189829398238032090126515689150447376672773457019908630122473088306757063991497408198619825650811716515530300868544438113710852876156966762548290366970581930902513062289842046933861376934515130898915102525121894706590209947066447313000106004644482368304177355283200087010960542758669247724381630684801915775318192223156974854471962364802631005531512761350712602852987208226995053263292066051611485667195716089303181808402536269841656912415808449248686673671404893320216638590698277532461559919385103016033592393800696055875260439586003443819327770073517514833908027824046376484344794761631336707774498168119164548109209774135509629287281296222607510675509190266283567176496180722849308846566619243845500142447317170331041740089200703169825518185923185704720231751417141135344241703899616538862700016319185501250507803196605350860820579787920336559893299575640657812938165057018759849763968757502705591044974035210821197924112766584783554710169661358631534755618133083007269760578900074636224622964684119174518516254427336192540239973395172252890545104615153078483075083755348685539517424272406238208099655456455014178953504222913401806565128038475397548161633078263900869805977485059523936424836220998642415399997943060071135411136507602709057534936431205590238462870493871888892203558782433384608272852896164358514150034947353567103732881165983852007363228455874656759144710882657430264622404544767345130887702178995772069243762184464826916115586727564913166939937179455111047782217475480520633343515244477990139008251261047181327438206387223457511723914438934852302473582228901799364447092391832879668340657118588251689631676407363704170305423028792587043853107142441581244258148339504485812368142797983143503438271654255646889024003293910391031229432412685391728721987950122151339236339483982333924855747642598732912759622875051287194505625850365179076278723307786725292183490756486945661039828274681863397504056434607790742971433142350462493926610946593760973041610494935416348301105297003816334091870173435421061755654241650575314420965052733373075803994552481705684078741116340833749927406704271959776105481116337365509890522902312467078571658107416303609962832182746553545732697971501298679803600774706052177785433378181451147598354526791242349358982360217885838408488352305134204504043454572513308500516219153501033240419212393389082493619416797350382303017802024393171759209742612808911013857829110633060701822487485925691431531484140932877329819412909794581075427021614676318444427734309916053001265274387865192613619009800140592822272593898160394703789799435899461568711210911732032813340805740666232272672965311622050063062467882581462317243960067288690270466640090665435268508865690058673842494166877138728202122007960239492923530929631287718898457679634516351341612886683908182958653490925809906465912791529344420569808086206794276017796064472575133504269726542749383238581975567742776443335641482890213294857873232031102585264592113626957203825816678677445547120063222936224910889970337158673119085236593615701669901274966710689379608819084744245954522063198354702863406448533859170031484943069855821321126845333625862650764772482576158120167929098332352276337226287211485798406218950898299135693978875966069476023530448020351201069576677198705445872514263677011331771255181351095053831910332429011918084859038978358290277724940844679614315718370458446813965707998068612633994359310986796743668923760785995595550575724107914267662859534806198014536657850151809228493858535420176187183474146376800274936426528109055122155768702305688441791290669378667159236593699016011579056888819319245712495703204962412046109138377381553684476994098300259883596026105708540593071609394843362590694193723739199441180922056671826902831176513446852964056050035896437519429575220716741218898366440734346770770768832411680546941348734953837958798717020558771550076943656507441539594140926159475488586723149190804793682630844621635095173207577491246055279055401844697242118893243238496646832493842818603191584030573539087129805395718632829597762938720340127823961517502647663195999114866460040853479819411369876578246836420878917711052835479402264208983725954391740828220273870701165882897931419337980992314951224406988087757730305270024476041574101194021042492000736810231860545192983180205020874806699245982826582190312189802557067370510980936228159031952346926146733247184258188310040125025011988087728695865142314566852518012387877732622843487632925318884351340991526574337601692532813435604936042402123897616616540875566932035591494856544852475959056478482368704227621956335742491303081158289164788305350043570276320586921759164128069139362400715325081503250793349918495092298778072643414565836562762625406232080496740646108604769712210091371417082250800151469060521075744676639184161674974707258008246875558368334166178051137510787866938981081221598658213594425406828097459466210794191297029471139091909877851816767907946481157485555036977454328473680091517396432104665413542160307321716360380688171147030625573805616368313200710697141766884174922882734737903239093057039149558946322573178603413130001690974694755928726043140882032675650869031817700592493484184666724503445067492775860353780861207918525959369743849526284301187411856847247550697260249606925741561919335985053174974304446220281145805208338388810868464307484657318826981616571820376074800636100329124861952127686013082730010915604724283842529582982028093381149358269114820682203999227081392257706027535864527221965746019453418005990323142594648923896061567376837775087690242922983744488283526478082904564864142737431543520199715716410109995508230278352298652157710193039229019937633368525851722312992453900931103444134276984346551690399147795593848142934084387401637220896583080263931921090425068656595583896806387712123818915955213177695968406420254002360531732788254176080479754428669037051653014861670979089935211845022364327784093706831888144651131164733539834292017777457652570102766269818689428749037073203908969907570203805233186909736764946580721332877307612634290376997728975232354371751041253260405476848860617361980738286370539753430370407486218576569945855859237987694793410009726731713380162548859615427060588016428257447719268586400869138610176161176259298551870257468151326610496289889073891353448124119198545572040662066064527220222001855442942546378500990076057239099213876365480373983965818239220872952050341981670124723205377517218515740231502295336950095304197908192725019366733235011338394801553759667596641946114891518405962706161950382539922068623993808324936025631977748400856724167496315265038760944196297025608443178318977528954228196216113676863931934869711856126504362915074595090297051138614241240497849075507010840060210764345520484258635116318219168466063656230917972972238118179189645370738054794590620218314186280024013598814212414957526202243329673909820365924942874798059441752661850800285903161985124412154491419726209126780444934607104528052921897296474977191436208980278952692647883838678296488109068991440779417747388688163660853037722422785925724311604471836201250933435524670130769035271819785639568169510083170616026982380904708352148449986714431001820591430173836010394343478215956362346422449432690260232925927408871227696992803855696731634942010889281075647530368507359107394449395660036404393865279331765729616738894361622210035314174481071580238922977334125706805009343204449206064878198531672469302662046326010449755864261274612208824926634141272837438865432114286669949148687312114088982739445135916774658349177397729101433404846503890087087386834198148244374369200206286817553397898054096151718705998320378933037232721010457233575449386846046906067531063839144739243124114855818137699207620172917167835695902611368325228571501811092781524556675844288854470005099917887385607349427959673991537411579350506440189439575718885900507016992657538153369040271530805865205327303081345804454166114295332949729577623375312977437705574223631697070163078511889112495436265452100082563950314985287014704666720775665561966471641891811706100997196944669065399213110979519669833999951297585357097465699584171892234616360799803921188164779095405897453333005741446540475274739344519647906834919033830504675848105498339819357566611309446548434262153253883666425892845263262600625669754788454558403550978792075818432648566791558257479695445709696902991526828028491672014098639709628665167531845794674839079010344897679444709392807252669219753012099520690050924925586991140653550139263420190260018274614114099172724491561708388880091842940640169687000595466545989867303633147870224474628730136102976777438791971117864786464570984444283715597983976566982726652189499060501798327931136686467827247679587678996511247076324541311259940397158128192321680021219307623166872961514144816692310621686063761087078763925399165249677262667660371157806288889646801299330892546949559574268159082320293025592680871465564611016762836982083016180738036505963678436104521784920492408222550641460006315484794686068529537571027077822986620032263304791675623288174992679231353063602577990183685609137451086608928397330137766306680900409127334444713619582467958058240069050814527054825942632847203175238040374380298416850036786213424437816983613508363011138336775830952354270551200986884862997382844013302969562090884509467752877771554679829161288701350548123315317842981679073097533457308151644473483763228917953925380572100761178610355282015590911500292267199970633014749975470883353673273169039897122604935781449091796334401172923208443602673436800911262846166920709096522070951523886608188707337105359525207712402928452775612761646671038789103185936217672418150461754534008215908699289980833057640220939783973416214187619194963507605374674660961233950762985362596329312341850005268990807686526175098760702368619886722829398382303431666596783036789888779881178327522265055058126192794081290020848937362661285223801036947092171880394001319423023921818541226979673676496424859650600828318701950984571910178989365019088646114766764809556181291114141400184678891828438654127758026845332119106300920684644711327584103006254692968645177999072366337223908746714681854349046058304078769916907251662446910756667525950100401253498511406972125027849442349862617866084026519478709310875982920816241229978134607389233208261123527166545913119874318245321114369842288996184894572375235325220282597256994961946764772524870205934016378212046656265111508099121375039223315027886134995315684022916444626625582593899561342567701480802258829823222229013876739207998151667852978709747144130408717456499674104687674465547044793933974798454702228976185317421242604154804335470199406081035198486499804480484315378994405420527449729168167859710725481317979210547796643808189503510239346080954826293432307598665807508130464034494172345705526941950997993013550979368304913644921087727164028705893178044829960724223521714730867674576734606926860728378039180895813069098679752171879698725815200954918604061811915986883795860220737657072902287140080298900377657281127004995317447030168726463639704562304281103171408137581462391617859953793922478370857120225006079956040611177734544831164204998797240148570136289291467347038287815662117462452051341125887270130196258545904894777433242261696619713758234889835540500593706407813444820333154904922296978346221328257771236368790210735899042792712002551269817218459769006539935240151192532829525716959187390039466695749344100986120978378192893896945270126241115820072135379255679032910658768274723036261203979453496162794060223866834059626730546323957029459344494753668248353020590106000740632040888866512341113213267289252912691349375130515774747059769956214666028393255240299784967982315821002201310242205043584959817335491839180143667618916835216406206430039218612542639472695766857120699606753973384050443119353457061534232111886669936836505628459457921021824153538924020687211935876403445468581921724497602772532520650401785535615557894192874182849328499063585954014953214897975033001126464133568132742166108971225237056394297247841208507742172507116795274767663101817977539809417119900836874823141614623818908482107161307242106156831583178009362896149915505897960528148104900258496950562632768713351808374608555550878656452156044941431601384671041198306537520903726799534953841128846546754972472826714036281091468143009469567968471597436469592086704797625455623139865203710483143999009509026518083811070560993725397958578910918931544173328013043471573060834714657870857602934818095465448846811518080955333362192284261055902345176653812100097872121098434552743288806796825818693322262348659309583680452274213700579377152038628772096011965240685916068145192418758329006721877019322747942819378672164154645262642899019784732717102404909876803822360648673878836522751248354904615290087190668206996381527650460069683951835306859176008707347252521603675279005437200895765412598954068746981471130576474256642677744053314922753693758560632460627764176197645710099748053008820622240495973506910210988113746774352745689343430276278335741446578930852851842538467410248986995593866323129584547559812881993673234936154866536671170591536856486009241974303002430639935852729938858952039229868327881488686075070880122656694689635073266478770321795864159376830487988983812193007337889369020328997781690185233043219849129430799660075237912313806220778226914590601810817341188889497940514418269685031026821520466542551301996267621924759949970236016478924169395400193797213664787540620332515002757211423150585756228645657582622792139837579498730770589802302335574292354533722088659957635478617639844704844888029028709227268860153185982979030024168169798021962307634960692011483189361572506865973053475466141030876677478480345781666312160153118894424064222257098445851723095750343547413351628087462999926403814640622220599750531291073664367941726369729644880533783988329067782792743883261923736625569258301226983752210726628407552037599498321814470495969680090997970618528942182050735842670405044329488479429367043798486195359269177457616587542548503179437811049663116683374304669564597560856845665187140706674987606911868056419364938432836286031199632345385300721026203883360300936202957015615863020775355476559685510373776849285806328213639588379187011776226356637904050479195663929440898359496071807584450025772508237774710121303955388187772918602004716613888232339109425852132258975057111614504140985413262724182623182546345778084441223280559234592822866053758284280363448948460243013129974521091779627604924911645978283400555621393755516171654121271298386220133006286422744146674250900902637481505135786248966856787925463105736942911226634849499548772540603997345299655752743496472832823305478778478746677066890206038499889949288594168831718447453174689502045556976309263927759923968038516408495173458515385737679757055881231447474709388192664132796416171624662955190099929396310756649829438969895232814003267587925705420951773891225228770585891785403763280304735134789000234789758998157617929785824566624478214103039540014611604073936676508863967914751331338128528648406182255865044745587890464064959711121485517131283620318642607440426939869428697965210206167337452561070862567121841269513460575377764469141675369009186434378783916572150021975686003029955830205706004811425852424935818571254763721098300417671246966151944571253908718393576500831003219192666824105357038491898211868999280288816663376592960294523242553814426665914633509968850744105866427659181498277748818381792041312030182000509877331267373955386569989539193141968414685063230656580749125617809325813588962876623943246118045920255283901588651662953493275345022642139944607425933447415928336135911306624924722915043625864867638243597703744352168003702729879063607667146316899766455368851673475039124610036489768330813410343246952780011561424286520718049096229825046688676650194616080238968925424614283234353297914505456521552341750348894646529170460860669749357348719895709545265478090897060975119320262761400122186812752500375240324600845565425459807635039406108059392635074009036108956964562449993812820988335217121545086901408392422647018887388330099250677157412301362957587503920192480228176040609791452833411446671438016313899411662540399918439607527450226559716577041829362488152467979955891569335099032000669791716594892886049881336019456747486893050285018183670919125739217355180781439940837395449967322935567073833768159806062987366012130278921747996493246275374688102111596909577809029321233880450146480503484349380945700507941612074816742292473143392959723309298637193765972712954860936369634109474136542273952392308494106457233703733444171494196714855940914229520534030444575129613769442128923818438567688655124675739232424738618881448291486320526439605448609477602193035207101958466983994667322204662273205375595930746641257250367066692884532916235699179753412581660092859616203261605528349413001643695910919961130935811930843074182626537047502749343663132749726731872706589735344232810858554102783354379400651653960562332311864881725112854290026748903999646847105492050004911146120967381246335820790893907240393620922632624058426115704244843770271600357661917723709598386261078193073719589414123902657284447421529101996493215660350540185180130139557647874241249859690822920830076658228529877481168468835073233786482878843524593110120710242198428037827503729389411331746633432775540702164297141465617441066461605315446728444157866434233440317877638788868311489331245049846533976924804682797902554905530126510008088202127919640104340780942440247600348603122715210142791536124424594361268779078452969002144754489825067261341682846736506664676688552464443905282774444862176574387341245586171917632964542143675891827451955036112779675537209911366803996038128648765323639205283379796614627521801529421489964033583940310321937457713828722732195682724629713146757609996636069408372061783677028688709200083103499545187318017339511748853593769346874725804435871344506759576979076476121895920336713717969188666454759957802212492711481702618540352450285464150670050529830679069222396623606530875230495347940919452016964186456842666744894759788716624226085988035356790378854456460020082368933665564566771136945042831848251329669995513142710420308976708279226206204585785275403918680094541560500880528736930115912229542481994640911413184234043108982267595289412692100101443822775076325361249250944986196912134295328487485140774058081396992608391703210331199310817779513799023199318291125044438752864785464202979882241972636055925099775387453354358784479650679535414000802588846663502001129659152403812700016929194062622570966105307934967474216568793299148749575455069553121031822374724223127403770058465915852922197779283680287565065334516885943346330151887784198433567974442685331551738434841140756402166963478710191845578487910651702645853446375456869876057205899929144293530551178898307565323397492342544352101084783534237809410347624702030683982759379577884766411166666063757815811221219277681339770463980702071346203862094564463718439160715388419611279075316029289036800973612197095999571951002581140697625708975611293395346035311299435004359422527684140716856910795938605244240107271194576293314167706607978035973334851681675560594351471784118949964441864772744052256683331367388361846693120462890396564280750069527807600346504600862560576131830361199152441599108222357985217214988538379636539863965886675943871935616551805451287396576651737359551448305506394642395228429443249313587685646966587575208944573561517862296380478430072437761383525905906985573924111128183673397407962745970772399954705327071151117419371111327394783559717785775500924023716271816731512883913577076059844578428509625658381044989032426573927191852800691972744263512760222379715906725209149499020955557740293870916963717779932898497266666242978499599852725849558350871960534059945799267531800669980486640017110861532263927981714667559024646454674435040143204050903782451732929296457288243941941045770503282020070127813142776584886146279418187622106743818769881445546172349495490589150074538692822223852025797756334404150776649303272647200133802055543766104307371519295007071360643163489678793778815750668262496076970307547709857964470594192874285591988279286035707984041368808285859498141967371003691654643647452873817792901624487207176371379358221074556085366835360738195669809907925833779891912232174017556614350952991281712220776795495509101957532246978616740655734196382492036653477082717150834196012432982953986406356868359915145724060646095782715855683996097292852441296181931851993103852210858228185900384910179320841967433788914827939500133447733967651303290954373604561996118917640180339989158765550990067105604824723455609869378967610302722625907725038013407739126162198444892093609061645545151102204467081255667046838187041362212545388351877041749094108295721495704379840151671390623612508658009169729277698456737471595584497044358632624592595405814397559779775736017018559877940807296194272752882221889358097874124547466462500347826174391874368872330653801471953767932799799703847730465339580622897127165949410064359804968693242694568154676638414652503164692901562978834371048749158326212508888968486677366974210248773575183912349565926327589011345547944246117047538666399467772432176330913014733305375418365681168869791800350129615108823412919982168343099318927333826851691324079504618425161080302690518464518211865045632271782196385553736225487311842651911212500807258326464907996596090606328765167409027678159482373050027166199619195619429137578085758402464800791298922330868635374291089181212753512386439933731898717069499710119808753465371970999347839294860036414990587240231004066613953407893621904654039547618342629377681860292133452599758544466236977250726401596696242621233264973519713665617722754245523923469504132529638256030428982871215962218554179491356893997758824672013825913837434011785245221069254567313891194866264879417902920028430386451703576086767755138334585574460330693104824659621841460576219578623472496134643389129326356532789360954704524848865993972681347587432312365179916706867216740345588286130672942363650774701543812993866093983242105938961119320077944812815818912001725731252523484312307902572311152593100263544995397898692349125616728384648907629119241603593410453240881503453202486891339339590695723019906812183487524065813576841667423704172164087290384966725696925048145790346681844849405573156970251999904914417359126734861401786697156582425578228192975563463589831440294766675381672743039709545662378870481226777361828423236930238161517672187443991450912419659347590509743437884711686568412398103646273545807060247839281713994774549753963564166441381013049484050416686126882391000596808991204149117131440916371637280988667007588549897468207360247330862711884917486429288061625018906716815281075444322667870224567255111817915389443423631351267256053553222936699622579218315380380875591052222984892245718412639181176209236066147047340033887314054454441541785457338959889470681823445727940531753717015793279619346914766625074981692107170081629431345909634706140853909001538200732684467508705643633297579069339635403036583561367293506971571787037658310008907973669829453053297404654182275744902311282161020836299840022778502822484946152296313359927695519519280639680379433952124100667077968008391331694102205376681102246688410256776162670482756702629569949041978340916064898924988610025073774576902799953726279555627235105393520382277506788966788512828337562691587902916014631749039524844023703946705421170419233332509100535251619514175263023388933877641220414329566093013709416542931908554537354899453201089799023834329826100173122924502653382755426758740817880953186774022735068576182147324325502315339877726858677039481611944498355415079789394426049503543151422202048577398673413748472793544003971463852561986393238621029934900081735792604237538732017527455496834903625029847689954630277172539983556823924676724003930913483590224753444147981180292461518792209750507046517678963806601403317478915343781216578136894908085931071936382660606341109318093937863393364263987513065592613876278247922684229085706267425908607947306208901138385660693959597003974275293917894963857527074785575989574683233807149627475371590818964049656276623303576041854019666568835314693111475301823596905016961581992767435695860701453591570033039554597121952576129910177893248072007128411335458844364182872404482100917497396830023954760532450040421915305570904221265931758230754031110949337857435070847036206308799898073003580647075903898370735600778454022283531070600390592179514325809963071056253226998983245659275864610523794726365988436014541788504095741721141881281707443094876874850036523072626279860238411944651624478689137596015604774491650131958977208936656894727766430868262798565687963297457492192256508700140847689250969314972116636919254741006915814486097793755434472912197334471380017067784658836660700321431181689000726660808621613183728331526164639407965164337390340860632879240044486519377628179257730494933708861608571203772823998745752197114143301139445770725310562577733732748894246995029250125956961294679587330214637778746087702168705755899604594506255871430006499131634262146987851776872343074480023923670444002553390471084111794082627289108438627755862564110340246417811734029405579935106904766631207062438210798007226899170351532126381328512648690299293978643430536614894465941749382035154373735653782174126939701486811185838431995931762361773853210873065984854032200611208413011572087854632645325580651766886737779023104070968997579424008412798709029158901304416244160854439598094550514319682313956401949128235574423311549419667666877284474674512289640841721482061937253500516720250182986522865143620533481137432612770523325677685523523697729426668501227739587275373541125230727941828000804690928176749413105770188266823607177223605536302901483088428475354663454036886124304308352609976714973221590849734950435441857337557800923031850490230814312725056426631197665110690506589242351065385756756652830830338411338026501442690394393104531754277457444590418815843783342393098461158476499906788704889133259996781805711018779707153176937374476617482650879927985906185685948465087250903615923162465210262208813997884095822547040874777842344613839434550100751496086212409515403045736815780998785181335678864578747667250236107457127104070884042596171606387504001797966799853901624416427410079618092881295445940645766005502862472337374215670877131871915789400248010564841847443991704214282891854976065157832422550179854770393142200504202945576940470691074377146971383962098128778547381184511815552984833967959635490539232912817443214325332315226764458178593229938457767604975223556015672796889800769478692028459281735189171256071509817252410325324686707659700468309987992134834233837722213008191450206129570851137010920084102742155702483554484644015562562373673533318951355364159228870312592211126176345398051351987738124260013868030112815557135158452950211077429085248417441451743209693249056520662492819299888433942386533633414372255105237892149371776425690745164284976263143816392824364697143705963322355592716537030087542179618400869895403816623313666180693318198844212055100754357917736560313291024388035654840108670472681912541362154234797888633923184090044202869353343607185972166448358252062082962549625302880617675103433747218630995724072424834785602705186032061644729108591007624412968616848881883870045624624291221349376349412392139388748112998929551672300059069058060194447690789773988484613826866557245940911210218546336915596206413426057959700323647030897662712433182326663355800978197069879047444084724410088294265778515485214815670740116585819527979545967672832669968304536747538344198044784535045210286372920355527847551067874775601233982901385306233657235441709505675224908704251410099963674037815489686908266225183870874543528311565104174340706023838390757976265359402051808043785173726087460170589195274939032304942364795064914571023775380261657782358798698727426697012617000818559915880065846141645551726783515114279144383534466052767716147510095369416847256835193946320558399139158128484486407190706517341861080202427381979421347181940751489818129572849152222912859810835509633967366928827108738753566422183513255274688108034264562496552563583094302012642553328009627265945428369431198919582137854823803326138258759491724444618372172475036736137250777732693271795834451090668655635979319917529079459861627154809260984936055484166845907468139705435788473575463045023171970921662060515029721935487809411241223313899378704241766520061279250410280927314800681755035780626838231834693491480110491662842239296762915617192121578540646805145440288896259140497137276419498778182870698578263674344300034652673493578344622528021721382635987367106461293095166947862253377569151176808004326099638642044529810135942274088134242586171767388332943003323736141317472427852495961808676775980804591248132032207651296730983002947353220776060661624829980550700412301884439610379920167140781255816105544513044416218251074828650250612962968510286298015993250319405667994349683571801870210310663631838053720319108259909300095022247741579645388871037054951974726690644373678441107923616380906501214255828663672069352138387444853783621993829009909015598166033607310194244285895000400234120136140601358763773809411578253059164272130570750809080597438814723011151611349209155507416753442775250718444144434250415261214944686605855096309399943732448197472002233235407697309641346691188939038801764031917531668151764313517852268210939308230434057191638313203130191555749129877327933895155294940350955122907311481608972075614806899649486476035361938030522244278396317211761940506731337025899904216266115560288905312339724399181125437357717818231824661072703523289898951963447092984313281347635626068220239072161331599106203822141137456720144570993563786578034982382333249874817300268194755460064615543395826379561128621510394885263393682242490716157869388268905330379878688690541055643688017922994042302789294991254983232186076971474664325435829375596349486208024002048202567458354870974020263005664128212164070684216553312927431885277044797702997447169748456194961718469046466177294326017197843786889463670299246900857670489742098142908491718124783255536966469773995126221294490615148640767550159932108045886227573923710011211291903296241227979800493934346745544677353818510262496907041524812016688172213803499872304051715942874109851815056746118875867475714664468993596992887831823658670666509454600961386810595018207649157991682891254752003263934684799231631231637337954839955186122307635123799471288871433519393092979887196715180867804525096354797513846488785015554025611462499047694824399900616931769917694845900391640139059530745761029578359919486001373453578714823142886933178755562857317937280696524038489343545269419058051889410060427686657178429366945664357813815981649388365622102734635705613114005664940168967339319998306056107653932869972274968937574475596563786231673810074134661841011443747754881411510644722990801680901869448795233632172482372175945374134163713665250808539060037533033566586857954065420349669616462815800274350795306035855251941819222416231264933561083470589164201800522607495677763110269322599510568813555427372898446398359717205986277470311652538699837422765550751196059044560710111874683493458227629288225429488705306811676938717170108288360950039474203462136434303272599900840906290140448091724820680015495400601975109568943239694618652148789168759805765428106454321660027686454474958078666219316811320638057636759640147719459859406769713086639923545795039622391144558976568758585977610002883263663180897016975083474347973128500255986338025701736758545197167253173737818138668164036631308754252421320549070171574639519811639910578149432756585310737299033209280822644526967786208344305303444429381534123881917706255944357246265669604175621753018301813475613317579984399529311461134434843518332580852192124881032013356278260646426020774142491610049177442355714843277984448457802649826355432120160772136575759682098983218420308841305262790731540326815377854270109290801414110670771992471174129706530191504479157853274994334754864771465206642883864234205055937941529375184653564500523574156096602155822023605147466493619674629410298856863402100705170052233812420811501321256213169790572302429084566184071209717039823400477899342379838088940438713979992664490747288546434517034123125902599231891815190807669478275886174754061295388064636387206590042728650805832146741019984033929897537267555650363603176578292682759780415742661363425970915155698381542700260895586908059840225446608611675124930583064246990917840112658543996330442545702047933097439923329062033564847340117826909396394880488150647365594478788999556427323757688770563410626993826656339369405032340130110898214402517113021257692750095014809216019552049892729987806156509188250298360523960455688037608168889957771131676901994602458348542692897562088561112451252701818649898197025067203684975686188024397186551888564884248477220103682661948377238829315215079665462079707510567079101845359888854293643808031651829800358863601752262047955388114960119084619698764703626598254131492592101872586722386666555793742242083625774037987393619335726171558962156983266759511699891815401497041144052015158671268021588654908715202844087514327414918102260609143508895284325362239691611570293459930892159234153393456037796191366257808142523825265023267027985530355181028487641537850133686654724425189935563982382686390875542157214066310220197881147446119200122443747394485983952407664895415300068130058024749697163978500372790428623990770927354756148288710473971058837600138208434357500683475858312833680494953194179750992831713405221400772381426233629739871731888262214386402026765839771592002810124465884502873706708679702745049139593846532565875126231932708774394256437769584342175196896887888190211089031404019553268216490237595527842855028786248349376547118500637768691582096612058362258723937247582313706801407754548215073110782051408064694286342158163351774299316423649978019350628550805405037446442083636073479421415547308900214129580031983875243205811317891119685871842159334320285586643178587921925077912730599818329899682145606522374556973597259035988314012718125913239682117189960091794480106658631349878694278996205680899594873427667827969148798152171459444772269637930627118627799959674401278575204399703660627313559966980210849522015232082406599877429249495043727390183608047891988838737321284536872542935999883669353467354548868884270228325094198872031769430656596912778903552085937312228229745087432826252578542025976238416117452417404259814911291492816855445844289897306381864103926778495099535345451760068869281291576399818918577138109681695562696334118090062254448122021220924649576940707766100149937960763198084508566661191766949824866432021702182607972520164246686293868576606657775107665030781762088220961668000450362774399563080041619633915377414094911497311836558933094164519943092214155758697548316144284054258480468493325055829884380206924095644704201838981301654016828916434151135612829676423626325319887955108846564037318800197397934761209689469549301575045699568394313363694799471789910146387510286871319113078059983949498111476350397610765405429534846373221033758839834038821718765808568525657721037738016196334420143431051197695676095045566812280960515817175809367933362610002342970013041607912802201759985772148516558151235790748911693638216085264116411252399895521046959166625386121073317046380328519125543311978906644011123835504624542767550347409492858609024924353546965977865451615748753986360772405219044771962907546207909326090240407783340514363018643439622100062904969141016124262112211732171755999184738990099038094791854418464001577681468581250305813452744749898568061128760487193584933263718808351417963969040463058520092228109685550902336028184265946754533138091357325311356955014243394695654996441827909473362672462583509189784983639912098101100142667554928148005409378854178378669473556220896754878347103785851532036059919524101540648867110971215560685774523828529852584017307203156526291258057979065124669741944619946192351487238055418798647095093333343267696748421298192382029514599833952074056218866205957047952428696416196661667552843847271029381990642147280744145387397527293067696090127963225553186960795265873876795320989975455695116866720947157144969757873127679786535604269699083874997366619102317706889601953096664763505631457246988039672436480452508834518008204472832279250796421828430095926357821888723102008764462512511469169707575950757441263904472273413168630950642630500627816713664477414919448097603748838590604372657834294831016661751294377736591302528138671008348945979234601195919025964009050352650277287236341515793372198332410558684949974300413350879506548338778674636158255362885437014558645596981804774081685454461001099553614683109778644207410675427827453310285035733327985076016064101399513245125185024882983610335088351635811152749695817758299972889701366597794746008817629410586558098041594082436392346488482847731729974376772348290971162520535662841901394982389600635301410130378657884578035360376392857074265181328446297827636062420955141357988748702010099833757252980371566023853612143784260331510265697958701640045449390014639286243234728104774070590036200802068026357221419310599314175038374760962384775553098716610540135619002097032605529896664970576161695720542141439691518036848580972203061420381570654411736256199529767335720939215400581472717845712800507583426837971454617587571939391221428218750944696243056113666708047313985217490726955728876181654906723094846875699222364965260920624843716752274275085248794074984960572407741793438433798332640805205766702345758171455877953158906990905607720425735448483188754912384205748557602031445527063176855636994853269435380936181871438146642350318425273170358992953832984112450061587108565556664285620711525432071962172988226907680374265933082841520629485380093542336794222242033923496037697231230727875824800380159840076117745447512002435881814673866081143535092033452002229826678332182235552448214786925814833009148517548407752107135173874633504042695099033955254202771454947488408876977186381399162577868673557341635474838467855769882100854003897753931275137835937178562045369149386654224166482832244502922032556246446491641881177264455357116860347793373735154260575017228248580055227193283378384194916237095954224879308045712250346402525382679971019827277198231258891368573740681617346760925029315968859618402680909445186483798663648383654080225784285056739734292221031480917034077426902832267182978840121065367313983560677054606540990256096180060760193163437578611471523907117649608173299676706188300193354197896243380112717975627747061918626234794780054886041112352367224098222332565546766189016166154818507688611107332270258657544656399656924061349500248521941723287447516255603040808705053475427893255086910987231447534271433325010395645270616157771686967581329562849524944481753444063406069735671637021071952445228676044137385067127943218709896324664493818142798262938566719391992686275872772672724774389778535540139234315837648958387047372212480549690658197132598604876374511472588177739457380502018938482472457158087067535050520360058276986713477583335198686443424022899636585085145131423528271982649018727624948133558248325219201322632358424158262472970790330900322980136403298676159509742928019051203720496922501989974131320544500461602820071059307405207698901774984077890391036304586166513718269510248664737648581432426095720235278419375750975117740812724697647618028376407426563490741049078452404882281438432166668251062289830799876403660778381851976988281887381196795530905174598139216153494392763893655986256375944698432407768516281993439460858705968460716251107437160654342001774019431124507823612995600928497159133687117099264462676356698591466895074236438568980405109919740367795179720362919298251905063908368549854110052059837779718363941336102034655736374965457681911131133448711597815856491799042169574911495612536637435744355904696664434954824808323729023415463662716428350469907437504382539505849765863772680648663556315440223255685646544376010106489263253167894385514241183386400410117764416901951183222186285701094066341121291502534156821177089855686135962749637478681330630720896548879730321066574427321615118994126046614827824883401740013253798066738921708114801679244476582940963152125135518579305502751309592512226681591037929503471175664361364562380608437939726954027902677183347245791009864347654030045422209690485371022974154336186563107686998522597834087886049811336905383311733702671375033479104759920981901403464148699759019772653480470326996641247012156961697257020287766429398456861258530290407083725456752546098244334467125458209577016120814434781641439897404409373642509643559399447937803936847622005253379565968454289313909389271731786405478506125847469895774054059484997448138234323069221017382560015759552769618811878023043184064559006875082826304765147916998884028857120817432586913021072527998485627539873295213466222921339762992434062914457429563722527910100426138205030726512130923349343347087835502150666597555899445609103684013307282868078125077124073472938136551919564839135650185474680129290843201649504409002764961086265420348991345009025386853543162781451579952344844202633496799679537196209185779996889253762132556593125660774405632341891062709696222229370503794546426337240139403030936920552580482174724728361177675182356777886018416450031604381898621355370738024095626476852361346762368827878140511294324033368001782773353793327864908889935562443557150189539898511404862419465282410823730592187942781822343097966932017402991792281008358491267817352076158240539393787862354624234112955694885107229919045035333581330820878190110818838369473437315489876263663141461960375567946673118961479916497883963793675335401180941401057378995671559773381974258155079124384188327661104101285166693196785186473855702388048842659567144776802480542213890655133780952482165962061045533674493470309844246116842979505216271830063161138601726418116703328073511819331942686824674422538748167620161387239413024269298399374876685153538255209718042854578932994018407955387724801611318513256574376231328306894031780881295356500689544489654533454826899756976845655182606334279425256252035046409992413634989941306878815196341920933435107035288010936095901213839856315754281397815105474516615381956937441839308104305595875982274019155662176673620845690075573098033842572520274474950467797215524524352296211131099968343566849735157271980590234854321165043606776124851463115320653823425491421334832443813034912175703753463814925525275942980472690083741510239021630262492394214343147821953705525664282851306865432569453673455846735676488585002095744833192378481122690202446404830683045845195561458944957237430372294606680838986712062932011860261647547338010819505712844853879551363788497638256088810127060174140066621434137202853435428782074899084246155865193598902592175467470926369369848675242024953354817520783853600324061181816588160374760616856144595595789002336612094390540883765918795704122032218512364448629158715914908688188365012441011191895397105921403669913440336213768332513556730175433226202343949000132836360777689852467066207388539125370315348044268296370086314261065243243263431937310207917582665439511835598625832559500823380617672787168892523061323588421156080319839899533535974641986095534349821428706060231930595324670008401559525189661727798881509457050996827397914939152749238061573691924082641076297540830789210019934898217339029733238028003327073640101210037683864638532629613979003454782392727925168729304017063159669473252482491027168889775285731994979154444590697762094762413903563110398423092061443823462015878077582009933435348645607299942637669955191596775565819027476517936947701178317460692719281715185864173838588915035674884233572978398261097278054524351472020339967313409020195004063901829645482331966412878450904910128763278053323392536452052736037871334734403040207162197261030594740075270066484979798841778450230138948188610541739005059734171952727367269613269603248992392764358250529239662138476191473069066193610408088546969169828716147287844178117732412692527007198739773870858881020906747848833616560358007680922381161675724588104634011326029687343768372727653579809247624742097291596121745150978953680366836720475393551639337518651154258862299938361146606415877889552748986434541317219079561424646652209851271576058728616990409505616788804123014289235122243484812372978055663196407588476549452033548983313810614601045304685796545069666026333009796972705475476809237681204376372652173484944825290025367921453715355568584029761999166053842868560430320130164952353720952303525786621557821589479457260233310627664879917421371315808923831732730753110246949718681447671638086413759065968455418559898244312437612992280532389602761836166616612894036895700040030773444130109117187708721418793395940067213806136852488325575776475754946476761964353009562885418906734460037055332397795394547876746275846090539356539044923175019029016897265884068798281743508916673100976714132680146894288905520972511621464779107541653114883757700548145186520977708496870154020027659621498613464324706644799692756153232948256971757322774385827639631003872117636821189718784639610282873773154987411915732915602545175412877149526302364071501141972132409680809231337929592356491992840821011035764669884733601493607386444862365698139806451895309054473371847653776448364866043088440217007203588762128239288690181863557829428427506472323092184409292104523998767927020545647297991472689478859343506624506889417863547547689504169846912105191963113732613852541821212426195957017372371962482739663585786255629427770028590680250667092301216708778669894103239928272358441660408065964545697936475437373929305281617385543183681177075804759105976379772969955192857558215486182400960605781335938519960279526424762052050899011841691398785952173217718626993791971485951767668679344228657042373758069613750114553645860865626593072864014884567304929955945990633251711442251356807510039241698738377361393279371879637117216276495064542220763136849157373941234931664837191702643637178872785928575082182574696840459562450905902649573240940755369661842922968774891104218834632163643436184074645768051795440061007549385051715447161370234927493093430790594439698515118715942507853003085436843249809049273301183545042035299400715228440743067402239828349185054809743271649027343016887557554765110200555388927104555212415913335761407258796552341559075063931029945104065416572635925324902373125699104853685085713057038557995341094412156765563261263181064242098053843498182474092855283538056797734633820078557411545893063342345247334403237700820894547202635753161721413934396116897123916090984236843965149813423286738614006430090411423296430952197976140208382704648821303724707773148049776391672015998510316054955655211732277217152829094295448112377234585967252083901528125634162811806707550595458203226167278762286250529765679562296072864389624008366852533884863894284303025048650501450782076794768283129220265046240891174980774704299768025771850543994477559450961574819395431895499458066080390497501288436374200209220002611096664918258109764561710190811642483616004427958683123530609224797780058456222406733627869373781496524976038838536649890452496342843800101629525631813241473798408926874963989805577078312323519905297621101512347018209946330759152145571272207687379238246066002702485870677143977232051412957905972497722212318174051477370098975513241441355356376940088310622297949384961065323325974724656480699423116143578933933815033418044182136220597384540297543888551135114885898584560891922196677940925568741665330925066471088030528309979509937540371557282061435239456268146817738381953571504429632924788967332912422983736989263018840833316363207128445804765786985057817867764024931044333262792096851375394414580595635472168730069097928542441634330448265334561964270678603094348382305448367628013132829086415394007693830523086615612293834704271292360447465471270100797034286111269568415517213461403945054372591945522118581922019708856499023844760710180005770804477642963128734883387128071730473447280449043240129432078138090125962775716468664559602630049777411965633498303999887517132336108594327252279138651792363412318219859833466828375389563360257921905972829575696646596289821255129803375271944959799707095797954647957795178373397201410715936798495254554289309663810243132957147159526911715765887967464556273228328295098073377979683964939603668313707764691774382674580353025844772656745523801366445268160401198915109870533773016030917341682854581331136718008828277231383254575458556636540211827182275081911595842927986547737391668060235238280969796372304907341755489967522232143821442929353620608075488930998865674843472128339559456629235443496300736213961364907880701058727197735675828182447279471615788268255547784524145219776947733978789531294217360744671222980833541033847888445058544139058070310293089312339665683770077619664977112232053908608175447284515833760855855600594002187144383031118399722696276796013079185144571327931621634100593188399178177222138461267349525806775089414878003833179748253087227847909126086464110346605495554476635751307561758825714428930173316322844375117854206531879032638231487717623523232125856484269596208880196196837446912927996104120499488811171466143176828505792539010612021506878375328476719775213594047836029614358087883854523444927980117447899749556999095013038183105410223370324616415282926472513700584792801081860393762758463359512368678750359666325949988557942772441712215445929473840784266907914792301129820529047034554570743599710830466461517430632948391885377812466301444129284840409574108729676071774373855023304395222200555508613228661001156983069462282566961407300056649486947114857675378728053668997836706808919186861207431316030048801004748686103652938957662914681581390754194271461541324831867798820816536662253669777863210709674420216963082228157373658019025969844389930361144763627997610470020961018106708649760205823030300422207493208456393120193219518770314110284156986102857775813242617777422849159130791975447976428348984460067412887151302097569715496615857651491743333517610181857836657240226018254943972788732429561625250724670303342974258488704383094930033495304801932604590905492151454827511128224819727250916210342718968612385455790348749445358763349686407271601141942060692701765242485033811281788895738291945090931533802006863483861286079926465899813551963122276321565516891065877338441172391512107414116535583121431509930971508934231759040395328452308686041682767264323802540477725063324819814668996420062857786004686054411373114394077801770164377824682784685114300355557314151304792154031054770594399081153986571227826247109021263585404523170097058092243824431274667941697163842726714656575074610714423627994441336121744245547651482753677301192856988183510464647205209758963842582200093903689201640445030193720514241098046458650262620050306663719960645060088653071833490388095821983718858193952374910501514499558081210098528178600868939369923972635909413102439036592528365052068212231534553132253204078636835115080559961054761335998211798214368008861438156332272526857819418055809127722833455320958606889676623034980280686171906362670024561808157147915570971909484465625949486579312464417520294732116996552345964057766890543204028609007211334629903776758203284400312006642411059354031866713433507549742999944464834031371524702050431165785656417646923662827423541022351683402794703877489737225118648783059830668759956087846662950626854551928778448163819443782566245180947357151323864781665219751236977912485401266836424015929975320351924699846097699094932820673433962745705406755683597065225513318863760902299258464953489216313888002581227989910757553069484642313168036380632174419898074249482937175065291075951877419012608158100815877584142978706044009351409138894560671815061757012780255211087153495623687412200067662712019045015938345713248531178910674064336115480981756829057645865040810277800596520619835100349561302893651587941387664715676655603608603592782295972683381802630295229677703797694136904750036428472020032773842839620867648666657526254695895003575916175021737045414262010701683568348486960899508542599473189538149126547854139514198754079597309788759904248911265156909949991376355853513822018213312069887680194589603210813482818593156993007044317918320456472111246868734307083061136023674070597641672759626920340338830440763524844664245988415313232375165139788759782423062535631635236302051149745135288699515070538968328465375110281272546004360731320869708175952190233016752683697457998646176437876864615637974083350397576967267965414988140379949458950301799047937509023466196356742482448863641419551665086901779216079421588292105266936490427498155965565245206781457374554753638436215988505483466827706414639211153793801565380975238567844243888687533379805994883589902843522808681292600626164827103694937869873964003447541187813275740611215944667436342076148091239379133633994962306588552217878519602539405177294471064597328765126925975966666731702108375230071191757357681754008057425819676402579057755820178464245636541295319815735536946039734636553164362982189146928636721131511827963943607816453929063065447082435218926263518737104637547863798068368343045764645753984304728332837429984792945628539774807111488376621721813841368779240149413877905405365357328004868785657729542161725375095217056193243962324836568373547129842778445535519718720205867837139758450680705842476964654870537552923645593422220960247833897701209540832957820038092754969109542424640733463113372839803448921892607216318151117672236091412503260885483920792691332376031680067484032981775218626023748449430836295443797197155466744981126710651062085823305613652307466217186007102993487836292983903571845810884700155299874222334501287811272803587276571506227617087120871547160381868268221637301359489529718840759416530057422379683474006972410924575992105089556593196289077065645119978273071712471360276460644740815359511471006663397857581434033237803545617905563485521385157121641418684459209072069302083055604595730699231022745785743948065179626780373222427391861134233398521875102648840941829888163733952236843605983483291243489860877846563311838639328095365090892926852129432414601150136913898059390548096923723526931614296817502854284352434873350703287652400205743393110973015933702328063504354609157405831706260837242796568089897177161349914005186801915267447938565678755588291522813452469280945691105818331595134599722930507529512233349956207063562469523872070113377551872835957058476168259329003579801571312550457273412972650420129409642893008622760882454284211598270960353985889703609603536858041143964702350246446165801330373953059265729873033530037242980955195437000330470579817559635041557214587026538706627296322016047612136852171075215812032652745439465132456339589804660998606588995266402414219782091299211124554820194108518084272195564227368565313460826259167062004117948246055303344208381856775877384830168868921380831014635019936182871578284672047428123447274173189845517444472280437284532148601110729144578828076625181553282028885172145743557652156155611416636920119297484955640166742123183538965261392547922033242275348781818210002990711646985509953386541324215172345095755497298419405942284516053807305005895403845767901131108028975360215072208764007696971708951066421858624123041186733100312654345419946807730791549566566044458070701056740300320225980825709791132650494530757115015353412435932196013021743526554163531223890145612988895335233675770993924454239001234680164356132019064111807047628460207181131660741053706499547733295955749404506661718080104248056058814655386804253908875254892528853258468858272557212827358378497359190073938919635543094851377827270460165881319582112398261674775492762728794448277255337031899225550935342108702002950761172067123126478704048619024544991943359867082988090772320346417776036365716383258907639662723373713917219859073330527072148174587063026623814722241028221969300412292871204830593650310246850946730172616182864442269018036192200158677595901524495045657423514025464761144467872747748332091724461107237564764815473777450987576272131245767640881793065042609465592140713447151989042923289431726379287647296807895422774538937790005812135775785951835753223001844851901165174853548233193505810433230563294213232188790920441849630134481100472231567117071668174225828367893480605398906006104394779113948276664566010066369747563620631434124532804660943216117252581689477358436052713608338356086482793900585390097367583771501546164536218219703544362002277241894544852374995669770452322457422135570942097432626202992421573379470237378362604388552134800344452515992514742802524530646827848181221141045208986426803010204519117101791541941994078995049285814013168859928802539389045218684623911160468054705636479326993433523324822346281822837311243897655046126911297919387830833917706824946423611415397286313303659181251175449828300788444837126386894131772520486393801743508533743496548207917807254951453115817095832343445651156922616175968970317791062165128918966246407540428300730271450231522357040062210935448469117256721858892669492612064819827339184669393454121410207813296644135041017870530483866561340080999372385302821159560867726329993270392970083587865449816094804695817688276086812977107191794735392391436613747392001676347641986065496935853888531544391138994238545207494949609556920804793887514195129586513240062897179390499134011916987195593246417786808095572906852532629881867804667207091534205686504116807548309145528935048824485546728158464048189303156969783813239284487665411978628945183807590927369553162258074266025463378132547824228096161262009947145392079108786327569239132848712735105379670092935625575944644051456773408857973377047608109103599489483987312877252700143009593385237098926775586584972384382108811265458154194420709352476865041516216314232943020321593485582635526378932096343938885668029430394553544237145515968381409982114395709740168068899652189607627441504108409659526410786974911467830821068104925363491304687261598137721568526921887764194780439823345040726634923392114876881043737878497585338649550768013180676101934955853176238856280561226839666151072864061800205860790344588014790862734502036467563688144229830042474265041794719026747984735082200951648493910445719828391498062314199646635788594352977271109141648779120411706018918273091678397383370980871476300407638890808291064582856324527400233940951340122389802825023959267536628238428905872514330172723990934728422948587578627643581159116338780685081180640946649023629848061305311175793195030316397389473704661774384370227521276274786129130656338836560946218485381964408319589543521127204640520487054468081625560058703816837960713482298309027593657162822471250748259852744820673816236521658025892682619109238509571300302649390472349710717834668695546036698357287790814787749016616334464985136231347842876221328114789170608603339483878123050454390033826827579502612250382186658359451138897043612559472527604620154851481567602903734395293839973371245317956417206605312215327192692561324480927544717580915057449906379445107975716104848343730175904820455363629083068041688643468474798270500957792729689864159285845197827628450978109689681277182828821697118007769777768021432186796611958786681348617591272305265108996632548374801388071247750829373825179871777286794552317260633837819941068587685982240642070196341803405887957463488536814750193121641428491703602717269116473218655166898036539345874408960808499837940694958732755050142282183388547350162896559426304894776729721993825162725163563774608206965918348338605753028486332746086953376545279893969420730917818446324709750851687832118757271328835779152663350713618235366727666577290011035564695906442471967373459254878738611935988040277559434303274078407946094316381763232424246441707865435873163275386923825235619540077790995477494800884950964539976471426142625259519379992939436605921070586100835138196023188992355240618646423009654126396056908535930901170128848467578626599344793187796001885714715906731479537735811299005710706751001239313786799548700759505076781060960504248115711903456956210437455266783016645186349481419977935196608501741119973109720251958106714178145468713784778536911176343685479956464567625929493727516947630727831820831375786374494376090344229284589379510530484971710784275789000167234852197095909016985445363480218909947529412376035418675782186808482754742204691402084966474036724341623843577768830375702511584881123477798992279336704120812014490994632125052940289894235119586130363315978754235304670960865770506177118590024565212782441832131423226470138332384027141559664605638457356080015515714264170508957745778207630138719454244561913981215420165331594891321844589537864553272057998856534301016008966639762510181757188699352894196000259048519324895656361908489374254847353903608763214961522920816307173375753854921971846712364698386783022724523289961058739645958594844864655638072000237067348708174312517345848722415038690741799997613748457258695077501860036316467298760046182731073575727296170515053255348867664977716096462222321494377379720790347417883719665430149108687136106927812901576113622460217504657749351014314688986573908808073615953913402765559957636231269468766227483148916982500725685747018006040220561462064871516596514082658958114451339474222510172265159469260004709686421304723813210537581887103462922661178419829780650058696972515570580105611421924373609868245975885315687546340527443877485668584185014040765009509743190638798373239888728445432176412460126310334352563173962009292319744568225673259032498921787672271201101456386024462300662518877550223135691891724838809223622922815212060921249185325430181746906882002558243311857125615431769811655804284044326919079141436326384070188934681258541603812288620490643083969791965517585829714997532504509814039543575308527190398366977639148240423258965245977438883813408664494466041630509416256321506058332139952220672777109691219893090086161973413455258486364290039712774907961129582204630300600913369207629672630154900025760648826338893909284304117704051812181387156447171807237396345625675685631422282132947064194838952869733276242288717723401404580979361614552673866246390974863278635398727300542329018627910107622394866058095422923859240419075401981148645349022736273708033532761992641799799436846811311357379945355014999862764664116003425490460079230522311585824297474192216238771206784311245108150782437670663049526987105026937134583730957435298016253842534280983177715304411887067348515580378985575387302167976841045122280828394675528795476617401711117329852443212427976432026291892221151608271068422343440136480066947224621874589341481410283068154126598453029944574924708629463868685003413514946197043867616499720756395369085994066974420055009206766953366869363631625153803659635131129692162297667696921153764818552264313367528338010083429667479190505983923207714658839058736163944317352110807031409922113303682200860625713086995298225057219712361999032172803171673524192692959449294879373672725593372376507050927659041174866242524618071989226013321441741376240943594351027936281336454003065739088648883547498665516006450692739675866039451230973801138965329635004255055661560268443102711890850500863582238606863043630771668478533726924083306132855255541362791005571673004256462201274272230313307808757060395105425785150922318962395030131765029214140620806600314263198854553872369208681605339473444816021939511913850441211051508421459749507322300543904584252982371477620060188250342193505671107921755968068983791634003386209099372168846580023124780778124946210832845113812275585912411275007374828680652767787538487610762257153865300060127994030251144077625874334511242747062978842539473464860363091745587390741316210257240591172270655020597008923211007514415665589587594336159391641468704201757881410872950596029807253242837736109220650229618350267306126962135759124312675591790380957843352334227700787449769253238941485153953620014913441666962103054430142826848035821175804843719216545372887796023508319127185721530331445673976480829634409121305472518411095216360886366148431557777853422537896372199083457909310735178212234203999009792595071161390725456613702056116787260694574863412863240833784671115220370224247756217990628678781258309890737662143159467709097294045297479129811552311995121966684067035523781894966254895615562318934154514732943409888788256547243486596165188112897361884901957403460175352640383463997730956586819058470733806726759591873404026436848797021216034231265722751265167794387055576872391250434425411147344806422972259973592171673404382722846647419125228897466045719789577738343767572312810804977151956905789637955492775172519124599194239933759188312331274461519108344826983864230190645639596073497508849786632430175567304448966827309523985362680315969146258779061741890294046395880625022225617429357155128816039981464002926990357791748526592351221319377931208167293011489395600033059644429356074375906237388628884532518204156166744354011794780512590317771380565002673623517687028576322971668199138805166953397238504813001437545380217938752677030996579167031646800421346544679587459417827282410635149466132805673247438903897591804107894861441799233739863281853871692430605779405415720791718622738386519016377585829114040461014074083505128688113581276151757987058560945109119060786031521398657126559180575313599671907113055892253950858740423114481675349019299693183585357384852004298794153870039086969909358094892777879708777362001270813908154888880688801277151086570179805306252948885743787499331743342273619965250095786320549327628464742236911433573794786162958359941409467336736583867211805068606694524487884162631526266944360368776023741230569809261327492628566172134370326298011890181466581191535670558405467480315897753105580591653164451610485055315685532475033104073324294154071747848595449949292548907981510322074146088817265782545356259990143949979952787988993954562378316496793928376824095614255200819703113860870244191649292948084344037559583818806145747453031978888286723382741299804327382134961821223418173966192741071025736592798448397220797166367072959105926408378807969998795297511291182816966333860481666313296415835704512596276091786965702666176558563833167966709168326117758956860715548594885975007948868694595065170620479520622843121270313211959291351170945160754544820682498629806868464761218678476493600235833597946343196175424378190283922538326373747505511504194039171290871449365223698989910416824444813982894268833350125338860756128400081376485535785045064352766044605236609255026982160270232010887858312816852639915210563446293628382667478226407420845737118667242260584855533312130582072512429028968607124524229783245222515632110301580538867201938941811912221264350681890434868337028563712845955362707278140315111538681814911129711906867841811144567763814296471533752708878859849913454822658242028139487907638707136522168991875158434185235993494982837033232027042691750378793071924290981737668244724408566340980438213108407021363666765851501340530524612307084598058010088329477910868250557266755676099102890870998554485026278774675692478771114216130424907170288978994213546063346658950650677758777038967097361235892435772276577533618785156076457110758502638715082827183839406141747893794054123992723142197539090643606117096214576291274873766971376135877439410737173968066445869777834356548343067602297791194268331386948515311018066260924522147132921745221483708465506953843157972296959908809164106305525731075972378011362798109804241880369216207195610927216467938623641363313869643088408862046071965969855505087590437709878274202700705269865803072467984258300065353299377120213014935353618114292148618672273791467006006335755210542525931637084696139247790356353443102444713179241852501469985706244819859911821251291237981592217289340449432384887373112409758402283138229407658761359683221670000330748583867120508210971983217361545046838981955033045976196494814345160945618697704319966377173527781805692292211849661551852603709632742243502371061627096022258378346903486636576303520026920935898096638001727800423577016561382447104237464438701647874025166751813205727381114974318240325910488890901886522284460400047541727352448844285433916046729222412026994456550081273171554528851329091406837961966633664573509331515935711381224417402270686658467463395201328001092857863954123324555085490642021893265421098328214482270211446517412558534492545128683039914470013441314795755638015831423584288534978875786936995450223933373443544960324461325963062385633479958562217139520449778079474713483269106059353866159068264305188478111137844846526540089152097015977717295719902446311791921092804259431751955104493696516140049472747266643082636686610552046838539872780940311839148139548415722419926361464783854876875437542321110314967467272981670733265447111295115001595431877084549628782610080710978708425051775871403773855104350625845619363692719975624446941624676920259563992214425757682060931795218193014548879432184828400119839020271411329682116027841839242466216446985304552641871127696115430892199838475107254063588117470189954753359212767016910015270541642739156419071062522144339229394126179678535116516385363969959851139345853555973091992381279816083411770051609876836065576309599203687633732663267224527477754718025909874757054861420309604800551369334322411337722042039712418905608007201169891702670581931789914095219197279514286913134978150123757772355628048211041110224198203353669785071700242009295429668768952583323024355249965998985047368120877383320120244676794735922734760294028881581498171757150376074127079965510906824588644229244208279100748986848914033617030571421545142472786593115240661018436720751169023477006631962238984300403075538260206430719570945919163161100810267671290905250649829420490507448058811084914100035868957573942371281474053514694498442689947984572796385195872796909495967192321535491552785269682601105552635205853061339543237447163648145526536791981073480731465674474045986934544099964664111287109543053546550175937300947555942898619523682668462540499628425918833937883672492455083003218529286972892996852028386748821946866540797256874036701014263687497158727350967366634246750816858595480608367198503428406880173476670263471644255083371154083218463209378021265181170845405811918324655686633611574705475104345089196403073519202562555652089089401729491850306328454917630137852000012367781498507100920857776380299751685255520493764472188794108028054579323588616761773742732251044217297075088644400318209458807683909836300820452379783943959958845557312345434863278079082285355151014167729927514670581106046199751826816162506386872281564087339442342388679524487100218469401105696768123247501186135253091974790361067542637266220507875664922760327033711664317241463255341944432173209868793510687683262962474350206778999310587435296205092980564450361621532618972653920506480517884554470954738846147319024572362962979895797107434844645751527028529678667316724265228983190088007427066707023882551868722711262047908097947098182032763687667617252307537110325437826381651072674461014446364741935750966331880183882772156168066148774709468515189111812245225391482137040908761314978143343199497342997182163809772055658864462572112237120784620979148744345358957382821506869042866376674036760997700779930617773253937101365222382421895944047449108928206165998876468368699529918257587111627228323632726584806431639575192673961381134435396174670190404053484297252370685634212967498915841339014385209032489123051887082008917847599565713671736362534793803015528619350013278413752502888791790900313718199393535812331598713921300861815102563296298263323423615879946974688528096525805151858917994398745758258725505743933204064906871062959168199097892618545917059703526289568885339319572400904945851911885231934655959157429254289920786046554648237675954748909873844040893357363211280550991823954790197293327947040816243639395864277313620598909617311262105944053982147375196484875125429334327166197774888880194630508459999057207524771844875795344083260251199266082281375399560501976285135810904379426761095048566015587520654967753219856549909555062410861533224997169501635914725980349404871841439669530630613805798535506450012863200062859114225379744350570298307092437193976501749592110931890663083363603434813823734386885889485555664476614327135419315197560247642665643025247494686998027463177440752056336837663736425994896557189627151220766993070568968226258724486838976861750335503081106043476304815209691984843930363090336178777227060548769972829300458320370755637242116206511400798596614282095987250383466153899334710070856237663852938522640297437748741401799023751161314283696305334729471975991920154636277863829105115762934319254719870726576421040176432669860694880450931318945773416975129343400545082272160654813930083581983098194794542031793926284434667386723647632296204149743230680574749774686878828264259566798642828731978354732308418871030852832155476601328882809170893947875922189126266995010271339468958968983407019390467255808914772062261262793057609253143666451515787930709137265113819526079219953022743426392477661835498653708194779583143282980788803188044021419974972580904811681856101102849232035101235036510778845060947314111254303689351237988112052627937412677145656456592385386493209825413544382209184146874755381902544459582966239970207901941244531521784218931452648455540565882392544555196589617299760928222875312026232048525258012732920433881507939539796627528769831417752748334771817260796160578165091144108486827717448816811591416898466637378013643287250255815630746410319450754750796040970753439011578454217977465250099592740133740827011399358324002550125728261849446842701323013065325053645998184336623578281787527514580709497240924736757285945707144980744351890946832192839691284844769585504952729836719854556915935263328003888210065253996194391510678092047537477774829390330642167708643894302390418457825194357540011897404250964460184104600648139261294412093600933315456703788310669247468664404184274699546882595018424435247980772617860020721106946213422977840431342866467194581922827035911371530720390842280204131511173224566888970200831420659187165312345314620135603955057193825164066459977946541848069747467938979541794408033397533408283072641010523898227372727031133967312640179741119026380789452334132318697651893832935248093562538991550293463752766464838664199524286487612221790892617237350929917029526352343166385738039679789258061709726924985705636802606234617842878308189392538245784413331043682354921030933664235408922569762685168449782233052359668477697542870109593698238091875322277197255187272084261953681433772074331976764090391026302373816053114554246225848074433032634891341326216133640136417525141743755397986837696077469385135888329762719017873485478608734242129059339867922019804437773788911663386537852624179158315228110509293230681384844863429839460409926058742970963508955797473534365076479687040832533628747961183427813459517302740908748145981134290157344154721263785896970356263823571709023680890333688096590126180489473267978244805669743491975597434415342977944561432865066511039321989676844753405943650302014608191229479395042789779411246330404396350426100632342862577159556639129677894069652107945260580955955903296003915062332008005546348963834935514446363283463029630168963806653082870919436142059033439556540631490689668350958704415213763338714452517799317859936536461667349055594721077006110159732422755514402216935662220480031993634705605236968926249073468384602759189191881220633635101069574141821280771172600811471866207293409290528133739693156358268810605835034525593232206278254630233881166244573736077621275078918950402836635017770484229613472219071420514044143380146716831484946735551275559263473550157861098867768688181895697511069130434759547481327386667983637854723151309239776573184250886815911903490216739038179676786851886609319607597338546809486129680117877444319699686988816998527019676139948870807094493595181141747264237049732169691174621927796718446363572068378502448361211489765569741056329903227995463770276447678776495364998137974773989543214982519758655950110563401487269012103957321360341807120098867160973740099154888023184103408293941443956329586771658500371175997722899683717289550656470819865525851526276678243846886907643076605673772358419245597248564530362806429749485148129452760741347918726660491673802254332361594070807910436208949506187549380641174206107413048549765791888604631859307958689363968896375918794110652549642982172427751388452987988656297596548343648622046913289292223600845626945768426858087439210962265970986565282007578273473716842712212066604488452240829998274451898906523077421350255418972654578452380588934123705823022235061163718760908637376479086065617857881778698464120162675358927671631428538845893645335053202925817794068994835299315751911294924478250021313941620005916679638217611814422395293444917520060779001312203600972186760976270089686668104213139290749542331020370607259434841359475670494964257536373710557286138423489965603824050720510262335775737709267433904668787627978222820034636426828895723177423901058475836596589557851527075976079261466979920741919420012416082784838790741257009484151343203936393467198718213665572982057035018647050124497992244675655779846411897512079313779945883820699126266904079809826190444007599678081963725977804333057847443418089113347180377343701178900223992788729323124499740960693387010689376031732667133191892144114730523456229224489129239651365610732406433309973813128787865160317432738701726109291728126440810026253557739961384204274171883458555997496848450232224291844562933336207108821227514184859835552485299103561633896040723515097942073039246098822224344244490145300099874165112408943276695499563250768974523049107432528886928515660713419792620919895811733739316026645106808172140407711614732054740229488823665565183276994608768051133973272453312768658266472301346663816485927469375366621438999956046685751752539032921105243744288024737711558533534134589289329750857112485351625207010458994720716595991983015472127143330672251237762682663554033107138986207419644958139479979527676916675314141104409203554131176669315237010756740596965010845493268633418156968564511158662007702391416133528995062623779558390457806092893825602008680966785345515728312017186668216026295188706002269666607257960260921321076666725635714813688774370690214561018394708028023892798533105583709759616215029741730359958901745078332758300072190977605787900811441631630447985046800278290854656527778962977370603678877037834441634470852082638518648234906347993360160920558449099794876722832739820182229402198168732742658883998004785526000499189115282449255357466143194177453202216900397900119884844703836829184946622755385287280907897523128335428269266115875131878780514524157382036066042521650597540753704296285951222778788487437548817950453696007317107799815604765457876772280028952139741743637368514070447934251961423216481660878993983817164026275100694140139748344504058752625342371889915340457956688083331468435280211125167635972827125912687539606599247493814567207027430651855295314544943797231031688084210639886831757714520920554823824884328037740359470560743953244154641080355053791696887245291936605274151842783972083995997295664398123039711386392646773744878163676540032032889627996771202761655279241780847202975943809838924112725314156087122607023152821085486176769810260197562181484544294702544769068743969569404863112366953738315695311851437768241378552356911392273167746647377177587606948842312642251716463603519871330143427379099134791196541982896640716629652123574136340633865384827090520749237970763025238176061227323541205275094785227906758229541447956529137010197059061838325837166082070638721563193536389637531764559402475697722070133679512927239497768793754980616432469248784882917493613174109871034281886811348114639142323012450148585278234515247167734655745328677407639384700558230739419614204875332781233276869285800298585018659814456526454948666055944222821929409077615357835932505716146093660110862131878896083584326870708878371553276384521116316986481084546700955106834155707534511405684729498656684941026388114744478778438271234646584477792621285392038038109333828768249784912549497821267719466736771814327357368242871965232623357897872028091596824748117790946165626635122468541799472150990748049793595601059598790594302605270367145370684295194893878168529731051574620264535948441430016200730328140115274568284541619609062051559638629345493867592449308113695842240568219859331010837125944378766937314650334001723498156077231153165357306308273762239010805462199719958366543633503407643054430967362660487971752982085582191163181222274890158386889810645534456058775912283353342191179467849263511117529018995258060720529816142061506882661926085589077830343970301018485967775301215597490749814372706638546008580139368089116693032790102273279821166953956061208707237661151624876276777848763621996808766795053367496313404206521658919237906997711029378068248425255015407190635963553436735261431502968803460987447797866147919167323929425689972530923489227933564649842217676238997438247167902501777475223583138153718972825434149292041315029760628823633642512292527904834875628558215523952141716236522717179012632645168561515108409842879069880850758052041999573564526554478719597862456945592325683147431741363025124466646398792183160851467303823568921730074705625013363829612978621600381990603738886910444747728892195997099201552357078062644558728608378275943912809459322141222012257311620939112383551672843385443690632981656730560905789274214681752803767561043517569455570915280360200946820180286981062860944687106454018624437578596965308024837187430358430813862917299106158525038029502906668130966951155419318971454256567747579653964260851255633698736805268345385943092882170286260797361769975961961933760958705496295509150914516071516576709428121623047234283341800581540765438418039735353840242553988695666240385480266811373651288646854101399388421574269655685102807743608932295540418364325034454386756600076532816815100256726482981720617205015276568726062629574179904999224317430563142677342322342802132745592562471462864382127446760851074835613935782335142666612927368693863352582423637049050666991506517026912538378728354135597402412929159592005209362919195484171600136618916583439003205146634287677222928144807931914717927432235982871494495463224218071727337770023246606607642081621971749468504769524010531155309697677135059537949244885952124642742781916135436214984568569777735368514867371900494965155621262053038638968108920746272061309076014538609002729201817745408977836831049470884409606460591863140354988407823926982250237032532273587632569991413979581486796851340668152949623365286358221131766783933883059279441998467712628135819231195654907872657903278798567899860613713288202881659095687951643865955570890693231985890218787654154414331006162893362738048528916537444862612733006602472296643583681766340231896973005429899986539149612927361989702153283189718677981752933354711384228971943066137600853937503995235024556645105453680471413843526134711363524824206366888401334521566815209512957791121862483444366985548856616840309414429226538434556576789434519746400880121056558240997872657047906327684963558541221957412023589843193961656166191916113802865197664781987189095741586664793316742171219487235498146850850488513803026754109246856655638391842030821943126810668855796406760809905502711714183334750466943146664843027925812082580848096747614502003371939681319094992140517107956879980138540145163710027230953548764888932676487722020511598255506790650271797426028208495154181846003812178302275575142352378888192602483664514536020925103902116922876155351940553765908753672953236527018704041612743200371767417522369149284892148093070875959338914114451421150385351273447577206589885158646038901875367548713991578716776724173208609110896845749584538857061348822884009977382725057567124943980303178931146540278866288055059809601785186205820257801646957903434825263588201197671174834467992299077852371736213419310524338790689303041755749397018582020324458952731513221252021756372422518367760437140285928580165727441476760085443709583024317037436949560881869013739943940966533440501544487800815146350181439622004393696926155606875766274510380931835294993301375079157444725548474894776852225440942242658198408170574771501450157652165867808261455583311420001730044546764084629740333862910534270586967311910290774294506091109870553824065885064260411843469792310945688890403160607653210345187098062118441483954578176347480555323066005404286303515681346098783531385790838045635847459083719784935711090269457352555969639542663199500101953133573884103282831931275385403150317173771208298494625335190540675940641118376346546163006805033611029610194696883033192795372349323504323575712348137101078903000348036140966619358087750270336448240028858249151482821406981060222345563437721659729142126356381543368789343643557171209967562070150344551039296807480115039428972066554807272355238744865408595894813066087462823234263286216928346039016980531598922168135579012902479826429778857232288114698764429995447173498343674442289464370565119745442768054552276451603029060430239738885494042060606757870713636024089642670781730860022348064843765390534928033742865204302056607754868441768609963571324341576614771868246126297272459282479581399194476387050522700472097323727630219708097787921747041002040835344439556331655665110643446945172407021127528884636812831015230489214611085877516913929286218988162141613093236466723451778938406859348418190017958451704938244422776635195668579854900709580919904214305572237652957605094343269451103882061750928829572877009494933393417502270066452997354513637479899860445903281431643410644998178118576954544250033226038361120585038749775947803516828878968037407806441134270530170944144984900029462859919128113855152437313516360554513151091015487721822148300683714004005263970790595461257868711420473147052201530681430401375062033346653379854236475690848582815068928707120478694776785456049985877628037079513124097657015302551607728388988099920296422880646975952949145892950172865909049500565840518921800166198016791358881069081053210798506023605669683593688311703617770952920595652906028761664237088949311543103611521333169000272714459807051210168465462986154390802156759410247998672124415026285856935858084384479573349095451691876059274974901682971744062072480166505517416230563958652082885360163885616189266155745162816638587813574069653233604387362638959531772204588927804783253349980624104148374983311546196277468306712815835864579940148314868549051103223144097579916955230465166699463593956713158719451809773443811040675067333891726183771206153813841047382230106049249551044990198334188056781954480777432434013779385116007042368740300301879793143018608857515798681971530198123691391111244525397692767400125483759304067530801147459036176205747117210204307222622649758007636971335826112883166325919461054159619269760333344925356322046601254803423951494267207747255368215492948353264801732900564770567464284140145003145093883116925996860991218730405154063946430257392238346539874343342980500677916573668930172801936185323462769507362902529406643332497251305854911508104650113987686829414136904611276085857011676757589396447329443510750646397697518137892740799032561161757278684632614070219722021276544182724087026437038602950028212409278438944842740756094583398898721172095675574696267404245099150830154341928947399487872707313235029717434070362755576444260618282274994586807868478860142245722752792865438889359835870232966287416958018803039371881820051687619002214870168620609634814563037203985000405070273776135072362518200002419488576294318824673136309216457367266289510602908311824175126055559098498411032039908922907342045890049631497570690881282052409826714913986864004230910566653348724516926960822131630586676061918924474522012815105347307820512290883755978062267616377536321761050111014281989838196055955982325868091341040633866258286138814143464040225994927013758049350616046328108647363183769385850872366698703503832996400747839536871952853955468200650588834508003943913266842864177829546470244875893937368503097127704544115221542327215347423976412266327220453387152752897009018178947849270490838311798200844984197778364065833369335424733955404166813173981137697383567086518933403563180237442340363879461697767373972140436301597843641817932749031864051663454279365167034385121446975115072557220764814353156778585790706386113807762198338727982780796499309303547235049708640044989126306713845179207490757646582841857479357695469267973209237922779027491131995169768323559759394457362765918596322683735030923849236085822714614022421150680251237702551486167145531542244196471757571497605880937891950241095734248866557497083717343536797398241974807728743329757723120241336849353033994357004830009828302302505197309652209704194440577182314085252212209010567112009183301819165661359245185607424566432497995272196743123741576753892798038213526316219107103585070268626282067243467863745285449347992027170659469417009309793015425699306264160942869751901368509610157113477440458092444950853669214444510565199159907159872703633825413863771352378764703776892367952787411187839368797338358202657640600937297679682561356049153068289268509778587095215053375157219917441563213978605384872648919532617977922884938176706737583232204191351987033592786269853696043199229795625968213669419783964707477548705186690774954273004329026328390951336197045608489910619840121109296086414805350180494228214319025782853096076711568554235116316770664683304614723400702548159427111438042491155657133373765326950454842525316540073540878699910920087638909491458704953259096296994367623290724028097759821843586970137034297708993283388336981487569152016323032467127024917572780345203452787066757127717579154078556372215838057524343221022930836095740332725839492155799242558212922706813574280054532835541905350396659769979916985898353693264137278048554373621578012490378694326896587358389625108869370434244242667063760686274649081257910265405983691199650454714884954597241480169069540598432589038811769184397798963919413214463548031611103912671872026450979572535788532351527482166637366534403465210352149029204994756530200834511077179572565641113123975068446116020747289243340040417781908976779957628881606379925097791366403333966492948590204002169913135599273716047038799348892885514699135654980994249590003514351307113687173794852682104197573192902953166395422892110472161974939526289360682631763173057308679970051753608034400176502857967469183066085613804915440852934817511285473011355065829825795555221287629421309547093876291757617729324613953893260612650142503077154188082021556046898842601237403063653997982226369448867767861686027510294975697095898772407114926525298830041521589087697184528837691765793847474846978023202565085981128499577048629163876395562766664484567024557613952976319887286272147535547531305280075349523199824261607556148219945809256577532801696622526197714363262961372541640985183597875769675348072210835425849823943535203717375548559040199925548861310346792520449284255475936299283398311029480556939471750276670648679837493793942007760875469993571874415378446997950221746048032115833543614870927527396454795497762057894570957195979797812842496127914477670327447550440208841350818019399650329309581039085982916573660830259650531855054960622400028056438362688549823757602291340960803020770647760920799849197539403176925544520982505646948133661764810186606813555145565312019654682468688619728417121863870024117143542036702117336291974463389725681727177466603266702572449238105588332973423053058911395665129091658405031668813334813162745393199235222474588969945395405500537929882989188345734779982696047506507514317071968397090271554527338128218947670990943075540264845370299042012872746817736837476954771307388126178425770666161366745056464647582325109102772767635008397998400130060223680829180753533073806198997630890122654908736219689107259258416535741066699953964539863894233309389830108776788935806957824743170121960583004059717217595042650811815249143610067281251188975574960096747066212010995401495163624558779553811696688079634397877786396365367922514093044797072925548908101022401199535838599481529170201058373256860252270282043021160955005907603293508533150087923645431433283496200653327600029814107720047726101418017375329741586778339385146095925513764989359103456939878800722131468092586473170665324039603155726235184001618577798867145050147750651854788824702622517866668084066736509486934121686581562580189696001995090527092400870790900490943531193271612616931140125452843183664113575002069053690603625216908110900788288672717320079226180243192374522727565647579727389165915861141660878951048959318509263575885876594618736884643775250210703650188812676404116296939204745599296697658571025363693216096028282928101399686358139699112648599055331260855751994615217875106197564490966017075596649866712571999072056093526743905845130512694786840623173027463632076476648224850481418760089873720705897109221316751571936847086538361035017674140620000336797523601006318289957088038149994827496924061837165258055695689444368106589228487583352160714587666454637869558924799994055940088052331331967224972096297896937740712937542751763276398451503917997355464856003426740693841319230448877677473539628914563056213780440583092253754816354472922742963605771467826137500594821274503684544287907635016697873423832703383599190113381296770685248812187341485713653770217441746631797103059675046589845140290800530356821118238076054432674675829664715597096051133996906039352432519349351886204988513962987751385730941701527163507230965706724070029170472200187389828570598730477472240757672257596122159095118816001612795879866640025562343059356970071721651356778681269131381709735143925893010870370667726083870237247654209605398133849704517575074862392006281881179369909264181627297411794713666177018595982904731375474170868032600619413679188079985389635026090384155941391218098107950947355352921471991650735849481631758963220887678781729105299216566112094354999976780647749975308161601800904494289696231013048551620003171486702545416773461395055330578358456668373220169650724681777624871624680691498585382547048665561887657010890916875037409459572688709529659656607118331936680039833944805002641150047189628542436671989316648706203401290900564708845434590554745352504394743428149740555752246665519949219323066621385878929470991374547007138782663998882988657525928475948643357504866900720431286076817195995610787313084252304204973065024275747792914244835503983884679192481477516522791842278178056883536467878320147094228640259179845465147379165614390319145122433520954230796283067797232385119370020412414090749025465288090611037546435119003565389672564782790003214550956834293328829295409362286726929810547881592891059991351737460224393726861270363320900075020848478238906051255951100070739115362235042734386018731099591494905422771081113292080927558894665041248914446237991335945152689958635076165334968100624652261770766703984227300809551005707214673288331585567978034003787008579531709002932397492272978879270749759902322744547870403284605639005781657808217315904419414897632733221494536623409675839868129053551380488679727507263110906204801878695114531820989543768773967028816545584461745046812662027050497250956488384816875621482135976203670835303980400606544954602243650023431111497023248952908131440265275071412890564196353954150519446997678804620000606434503303297073327700225913029903623627839636213311485069751699421439574897692083042882475229569766053874074030976249378067319615035911543362967399747161856767301298960783509082060165800525737067038760640006348772159657987191724073828582567089323273649913319851026851095560598627483321397255230388322201536296892666017879809169403924372613232715516263775562356293916925944316722715887864175835321672579892485550785615635447492898205757843744225456066714248469807272675755570017415455883185865484038119178334709726701144396204640314443298811647313151500233669173031531810844036720251014860361237280124363822850632886715869140705906178913911260324814225536580251832473627312156607146784258032299582697254907003577115761819076280260806876688516444917955242509065160079774688567121059491895528557342181026719258737319153098394880142717259646454936790203526858372835604379894244233079407754956441030911913739319873338202149116780632613622480256727639308899919867500463307810143937126034623057341999877543391550890860020250669110776298409818569729912791802947973605920865159045204106522493318159278272216678424431981290014180700248817896405037300751676350390567419798903385601817840247068412924146228277669124409326966386029321807712868695536617840160382171606304302366713377418915322206366464722583432643284327796724578857014706731187128725864932649711126869189343733118307445375185027541459040792754629894365099875542663021216156276948886041321391496172629780686312352677570637659150282591548766623866750935332961721253936593555139551002963609700405178482530975596819509667500386273846464371806919312809878040385932334530777415762826740844072128570882667087161916215563223383461140586184157453133299209342846432554384889016503263519319059466032465959197347540293925410957597986652088871627886534484615638876915942677252375847952655090842371421580195593407486726789257398057543517141555237329335506915491480927872833613105764477678980736611851252677740994036185106471766191317791037747417416471698525113710567567789909930359638567363540568677694116454412035034456902959542686259868125850139631480604606360197210194650665035647175999813750355726246289335008677958179350806484022288636062712897559935345152478715445835664523555209818853863001199388763171118084737800735724646326474966029171775406954237837213507965120768832764191252557939386084905282779097930761429180167370237129521216137115610633417957894148322806409044852858979855971841087801358375380204242210254563184204257755050353223176693150776274380892459694757964163838094724277874283356645343973242317975346697080502561395924270021515779611779868761281472597905967058559932452222310651982665408527307396768805698777037406843381626840569526415929126319841017575471860327896894251480734683023306617458284586170053727766953545751328679968341883891678392131959476762347858402666029681318270264781845130700680532112845340288837854363562076581781089521555811438806367772061196083832987957243880308540832465224081405962920570495021146553560054702500438378079873160506035830960036495097457893551767564458245606385321754117831890860542694100177824509623386542716670627173010105109854358006994537426042099255026410483487959511088474938602938384575835786510041344438193929256189152331361639813818516810440647701679457792324151688064008286861805469432249158108319554367652209633587307050562912252161549093462864174749441444612681125980126736987874150438027413312425118051285915936294307340433105913721966913644557791906881680308759294183512070826578000964733228729357555102943031419557323084256231649367736882906285749845098623588565465311268345087063981069195768823887007764757208571278601130468788403207463123892705071688156511081882000337152189936706464241566956976719168112553075426037671693319965655921486259080704864579637551463119766521814533531847034765035633761790650150506873887959838831627565048346172964332302776600565712222540167435225881091635821397796599415800327101977788661351610758032745862935673407984787556964802876532011924792461414834934719068991345127551543115638690871283150831846286483347096810396831398895877053409977472689110879380444161800573811966380359853270784208870868216914748905338159301631921665613240733865083464462343060570173140115741020563768872498081954981800733946318608919737912928703882842217162722362300764803507120195979435445972378239696530700700483121584298344338293813279343087014040975774582340394939521214075217431171795029898804549870004580568008565128291633983763747366369023328137855786500905175086447679916637621533943803515673821713775696712713675559047319093628359977022860150348719252853622045519085310848613947285652155318520854563326015381036844145076025217085928310492036606923954555915473114211867559207588004585852751401052545588997315544497763948405956447378433843448618601741794290888127571031794504775840846077274615957305256206154011060755491086505462147711292535251534341924422121962684283663373744352371259079220404408009307481625225695498019268325849477681804733157188885935475165520413171993523095695717171945276994914986709770651946240940936857443886363311427734134213856441244267469716196812612122116392228192056519346457316941595376925529106380251402164182146898014054936758833160676562746905238584060588546341580868091776527597866844717520556760825929098397168275573613321089709574892827035073301681656749022800026649692216387504358415885685559106343689495761759985599936657703129076183472929990599900915943491414039272070786381680969767912914358688587816050790767666486995944936659155358629136850081566197638763162124450515800234612830403666886552496778665576681981552086163977271994125019096916300314590685465731289883165322713123434641303146734496183014422657186921253575632486320826622076639988759006059941415259597414795349977987354307307057279381393481661891833252278744824605505309987537001041317603883310653398432887251635489433348551934217187342019344872745680953506925000163151511927850325578381509617566079101983862109445481291400702864544065389349431123126495521602849430459496935525940973924587607079915016474361850934881725308050368401528593227798987136918386888909238157065031759268659713643580745410296670260299815337660279599285645287007299482039801256442962003076114902878659960130585234714957930269237806729094397510518421099082086378357812143997738905742121799702641535462720881247182007343021574619852007544121886201971469321231720600873805477531425098057600245060349848507038721112657581852617606704152296719114549299667507298208489714184425534808724481200429052678478503674393769242464594114976513994993591121121730393719153969037869049401701476918680807840784530093448260478040741044811907501833267331716500137624388183000657110098289486528352657889559117485345385372499205585018727671493580099747204551275319180870950260276092059169864215535429830477218642539229410667004775200427804039730914504078648813039359831420627020576412012185618160166236446776818313318170034253854853419218902145107011374807651229828091155484160785106455637480164532518214547468200632569880289414790675790801326456983644499786598440107170732296263631696824990271926200712200767415096199070118403895129895717282765414059630363373372656239618282204837237473937329524933504750346074986741180257375721097692916890469180158578079005421170999243941068054895022565770205853933108545661470473390637869242784035546768814580806706275371114536416852238871113318144784022726600802810830420778358240744957090530410927350322303251902606181962301794037168221807418548425819681544212395218331337737294403327555600257027042188866555716456833107691329963176838078942755907908122401383804265113686162104092871929570589687804395003561880431603400584296681330581625761086032270056581549815011685899745783857343625597356421870374862241317409231415562818990535154068461622632015126915846624649482794607978141496683115146426465856590651877035221602647546658958254562063784592750960765089706353758464794894059878024560865369765944780689271159292621939378342697977356353494384664406587618274845970757042721338812972072138905442794502784771191863948766991406300594412910481033940742435105388903516912695218786766080013430962590918519176740998955943345295146619315082136628998667848176489572162828051497393637581043844404138304929148083921193471522530342814434724923783319264885356213659677099292006546121809821198847372797104356045596518205263619786328439367186400616060462290825633174486450973878047835290676043155087888423279440961462206058330188357916983302151993892459305102106668284060432724257637746620202848047089170030422120381623723175384437781170182275589529008453874325287370279233844886996413285648616601183238162545685322614082880431131583824402781190812004175227429739575629842307869651722825567560962449486291086595020107806269230883199774645701605589154384866254499350298111703248529797616352447597811594872273340779542933811522186065054735706626559389221983004363488271544843271702395978322142974850611823039466419562803103312505975157486521368003168758348417517334514534708573479482676258281634378067520291323788561552456159915853276254588634860391571391483118052010127350559376621677051954993045533665830966616835534359033713875456228090817207635885218280191448933244961216303331182104710794043245452483284513999794766901637244102616274068388731332355674982288960446102389411138988671232233252391807175476700315228241783388841403668234037729758580295418785406350144035373373105749287752946538789866082283018584618906434790898211730617003933088448693594211021958537214090341402874306995364287824875083404691359714112536353190025653055082488570324874606032651998517006008508715573427837703401972929106759928630021860696432110712760127103983818815433799171613815599810111118194209204508953387365717417064381461681298197548749221424215607550413477473870291790019918639326695998237655950207856614554780610274619912327978880810580257341613339996523963864618267753063338561806647686812039917864715595351217213692781067365743918814008081560446772085990143839504448892798808901011250184135594327942657340669734704554702991442127144390373311075617375006580058100404029378083021484130325042063983762755371157409580146646045025358620033227319662364671359811468411074893493501915336617423281109552771928200956742791351803127211909089697080148835808468873248695367857194462978541500122892604378469740087687334942033566545027351159942504426494628725298754915391611263255648180634079837582103296726022376636942149588792546241864618247423016095343771182632678017839827037631465873454118817196986746714597240241254718600463399701380620905197864375115617080489461567844603107351973237236516902509453891527703835978862629261260454442560960859129094736438275228654903368375688476833878657005264069780483454822412596484493269395573473961268072170436533343249596481323136843472901908165270584317647835748418827254613756087757901725727684371033278262328409381935672348793572044584369341005508525027376414529244050896157038354616797325137409044962814352695857792542115595212856099544864455571916587043972132995806190065001900915272503425965792656820060367203522399418574888453314456313573734356806910957025487455765018841095610501145742818910944546043570124375532531014725866120110442016970474304998485069055148028801123191232112653571174088691139786474155017301537248598108023829773443175945144951082736489436368075832280334392441180794607660808055007051902697846661499077715396107317775603202762706307179352454127784401783829492244527519434679968797615784722376360711599128757500912627287757537784650641332639415889931122236800257830620999281798628806674348467045327398782552211317146753057657960480573773751063375384646159661302246228813754272529007554794745896282063907526727741605187525915649875233121411423019495032769667481068090813166576585589854582589636913990000395540016532657060924092986931762746053800575618303114977874173850660536525376021836226223675035819068959769017960648883011421637919560550293320087472770139719058227968168242108612506645162919953891736295042353744377429867793111018326464853507609718417965919786883442313692188959769653011603206605984800356784151619559693574392866363328791156803986925304441696906326100574039577181208951705365984228142137315269941868836663682282376190613888324880614811468361238133627488658970347653701801760460860643283342730923384782110008675833066959325932050834090440032836914687294377326701115430026278000143018129822413889794447151964403499077892198428140762561100614144176695813341770013145630420296391142551915373033169363678330725565302891336372693348127690554492139019804218638253150841900994922160720467840247818100568829173561267083369071968617424772471336556046736854283684912361635221370794278525821628791486296344537564470751795517355322642900066503037240571576415216302516796772692845837514635039160863694032028193515536216300526393176001408317766991288718053735670870273356258388679291307851393548692354549227753697422612145081252864139896248964016669516824141631006888485311014148001894433406420077889100233597567290075920872506657308884932175397835334594678591308309263464216050846347830058789973383236567975934763867014088083407805370667711467321684540137417257911156808796126284897185450949362215858376757983631109047921771941891128652886624252870770856704748385664805229410703426399913429181654761748734682647849137424500401824693383649866665912480138141409833928583427676762245983123095546818759654322895864880776704647134438648599812388897318039218546353072660912259228863662825930620516314833659062764846269854458584074821679401921094766951612446331743207778544960471850672681606992439246595982121302081948712817906278318524703382838640271267853153668368000162065039488172561130137700260753185002568374101559038795537848373568815056332470089064353924519331913121086211303597779151139645290901939341857951512883726866678024078922504855756323082444482908800955677487186591684986165313466936389628525240987990845577493638975952507480906037412983426107326812740114337118715588139589817806121215253672024907076793981747819040067446109507497641724076512617852702140238639065773082272144009453400802798664292427143941405479739822685510727662183636293241382073601769038772439070728826277606271635635650367065279853633137004212336898650533703545437048513875470860055862066636170125414872381978421183611653206241969467212446829879676728642690908202727952668642680460521814334164076781297710565192699690748560389484080027890448891969412722187760975833191700068603249029726996445544969032449737552615077639750561373447727317368537752939819476329507552438093065904953693117040569212015549259613768839191614540830918829697076884385754305666516799057323212332117090202403615499081577446705460447583809789728345177877281835852597884854653866483776710343839772878317972543375813201373764841275726491852450121062571354064830486355438877549723397718133547765393017978933497248666541754823977265018731388230005822424779962181258305537411215503508327572592042547257933401816510582724664897090623762762884787842487082905361197694976234343932681228778731491490685900633253222428583456057377234050596764646745404037653472294272921115478513397638133852380823502102672273476813417076133990869437037956191891362896410075645239770859604662168545629391201053298649826813770326666127257057679237338985122318677849693286442756997082685158331961544711464128268873194834034955332072007321402793914427392238747319822253074251055939057855349758540469077279465652295152967359497646821292381652698164259150108174711797693475183047616247755817021336344553763411114754862573646173871715992776563706145173779165260868727391221209134940868482344841449600735890567804057536143349155810147069270765733344525018781124183613705462784877029661578683997825504446067131243090855023399301433334195935259911249483180237821853402749590538539360006416045624104401816749807857368009118885829567586549550971573199340320545880705209027231513660070524979939435502279144940089836494828598169820970861550574289063398005300149193080165939114814711776368282121505500580254825309486037434506511056756618507649752491676583854308406168263263103940314034138109279337860268483038234023062102017250217366503101597745360433350107851136235878674437335615245850839333956116758829515582325560380707385658718571108209855544945847985357254610482590080329794352555584267377135774847391354329228890538231313123244140717780287423876384251920012642379253192888681711609338000727502552254896596416327792112683775655293596463284921086859150927475196122285327114015570247121656400510173798453041902448108728479516404788533736221200959775914775253981233011091218995026336218221905147075714946582521917782417734104969317838037555539369952657922685014553971194929227031694830086169135523608867584248353540825840184000823137773077961541374563943560598236449443465424297273529548791805161320995731225602539323514987573418599125977878568945481236113033812975450740292643218898564071710635620518992248141380062012172700865380612384602516631043655282375662126973506041052907255621255271171680971359098213972428098740353934508275818264638782141143942020635192648928357563480922152962317171694026148508144522506891460964189605114205930795259208149753477894440963123792526234632050505103414779463734503496489496735140810645487805203081571394765294719402968785645395046488382307840925357306163719495465432750444181033316914494238481340663525787069790765006108275726215439425029350424319017224728818533205424565718892353655099649392681682964529501909205011257691448365280050923339889601883548878237939121563212724411536835099977544454253729885466885019298049760787611384559424492335238551740309066673642091972429298604458191697022857294646417638990645238427269069543172585929768208762296802781679783542645400569902679184879043379881697757119249265132703882609087788846858781884868036317588165621630104886658144785028194864245545262477022882209720217570637236860353378460241195931747247253291081992076455450006048763383885842489439122354818140120573643466023819762840092204050816608290894358532842162094019480908478978518640689689537642158988143953359864655243954581673966966302230458545551596511298231114656769787229839905355449790534089348046001178432585901549261955391418350838749634574927779954199888236705566886693214262993572778498731782093240044104438030393843713059494592263314008845312788903904142322568815440265082783267460669990328069594986230473501315708758958657718133257640721616533100387659506143123340771458540100121864024586089264524466109745743370878119190125721455329896580360924878606879452960867747832642221155525299718841839320808667363421027572902546626171205800149890320141414983825474413473927572132293629574320710675705741731237092679053752591663954222109769451497407480535970841274896614142992446012808436173818551919974222293714224959764087226529859569575615877763926069284897605381196661137336629754935400102903631092355386785109604964264950911283145072145161552868696146989821212877330448526751478620419876498813704848899273701333078370795009275579506359509990422706061913712661522260351980140747735421232720726879107675352075308482793860029338102835510586741137703827639080268927592995621195378274092550075867484928604379500195703523291226327640220274180398199529194427277194238989825799717310149182714109023590315870364210953684712061124356116206145820971012067544820249537463257724373209212295750450772036151498500691927616067040075268452180025384858173977085838474402948038441688151371503805639825509232549165116660704793673061476204412837448999619362963389862832207517450710051091622740781142321855934543359790440568634937016051935680172211118733491997528660217794068909023910216612600374501057808581699278198468476082197801676304935176402113147013825475796924337941093361780322366331807223347233675346457696240913387086207769097581221267758403091950736056497472932371726276066031493414353195711194881015582565915676599380775485114806057411371810636564065593211630297915030800653034533989659352938285987501776298233160355233786209972053042974853137686746702911229708781739885506475979602938608720226380180135371590265159041680715006593720433482849512112561860044072637559401858094620023000651203479752608673839265488146728298264539405955275623448522961744329051859242982516650515243906842258107275748658882632389744330387618010255287217961559990380303343973797191803204988624942447376226451423248576701572153754148743025692203026644411355480342904540597790390218833200730635619446385746919388052173557366232356749247753335512864953172158710089999606676226606543988126384724816714209814119682394024150774444085556833928682361874008809799189551673246679404239681819842407955772196483249323394843857423320015270291026093462703105218767066467588927135993189435003409000468685638609229131448313980232171454157436719689982003895889319661701580734849453279138291543782603669047759041602758821444957557879548822727389396819144732092470617047943922585672722372112623504780729435044228120281556503330995456260009534904730915497249527341639178947735539677093094135053821916942043527804276219022700772476935489437858301572433752348990340053338577170976166949977094327935789514245649692743201412525793443773276041971776825433686256780749942798859634452902398640496029408334496400723032857627532317672242916542280585902791541173382172418693157160046757147384815421783433832059436792106898014507611247482623673170471967496687322631777529969432696595766322691487380527585584920785237087177499607224480416284536095682016153755137135451171668212289334998612024055116032877332367606233856366542124307694633982131302041572209711265417104465473632732938653447327708826828385622053909752489616388912795519186185543609113567539702774623476476985812828526633279840988444768474840904642937103500042875448241677997085002183113557226186568798541915775057811994812256372481529047682426215024293716471854719247996895229830725701857669749797972611484481702633929820345399697723602752582271068164658234867733421231917250846669049251700419913410573776256241616423754331473688835077621619933849161391301755325170410178545561105868719600092908074079282687945201030342379631044784690285091945512987055040328879735327497962800187191626648414583314734087203111668105919896809502055734637059854847079430657374636103243641604345245775173764858096118057632849024139211051324963784480220395413982810039794340384128175615028693351052289549047592484948355150681069278756288771425762673330151872978471337523345972978076831265803881154146857391960274220972148846842359823793099075070206003144445076537854528745849006361775391992187695411367301087698275997777155075152973305135631178850662146954345213397081757433308404166782546652814163634845258056234915431097226094548203893675918998646392479338275155875796033975520132626265476697233824751774845746782428245968145481093990737343012475543133236747869335421288061573202548932512475605956455402719056111207852286030358548822827689453402600748993997024883867317124507510862175569674925221273137622050141861951992526566196992762346486694552908126331042490991500393735498630221755873743118689899417859806911977602657856508720519118769964993080106835821407380788948788397910388488721687381640629564805294067361601359276528467448582830006228961179900562667475027801063011367279314470564521875149594710308295099793414895379997085266099508024921137265171777034593172935357516205867070362676092828837815934908057629310029676561247030752935440664927398810895021663328098274100974926243900161711870554019742526833504136134402597650952531975321166671814269563614233864750789727172756220046904574819520537627688852241944649305933639546595568852204914393166065128588387707646584749373007755938033348121068833854784875699152211204621231434283747200163383449797565880378563502981417918822055888872728583558118710305528611143741236260774466977987644654422994867533017169067260596095543435490910379845104670739749101331839303356321491460878898926226793714902590025337622736652110825073877236750650821262452262101087139679899097692240197690282614046800703409814254939716995043278507308005234899488435454072597007419967632764558833175381311269589549490256781801876331389676415978643655947159253856220187046865852549108495428293676700466222459611075633024170385189977249650950412876454944089790693689486350546706737650778693050099229800778354258223310973445404998461192469057667173485532744043827196193705488235975425777176765985230429992450682467019623491975611061511687582111538978469355484912784076072677894210328962185750021139864013722902957648960410778483532430922966612675384449108611168177074202260658724838853445073235140331223429897652879840702831534368848105622096785091642346376125868303303171876618018967851807755784114678285234494604394482649419159876857704404519790263205612798072867176505156539472679165551668629290027425528339615640451525723043370138968362487917558316650771825328409572262237653690941834977685663399594694682937636688334658338006605599920840621480083495845285647983008404594740149636332010536502553030022600908347470194256732421123232213158392932941478323757655426369364635505069451660651964292982696909146368863980753104266467395522219895674482896778234077932505027207431347159418862614465433705516711677332257277911061182401188175013266900917860908564440113647984332099302924021692784782623232291977132795003853101758201751263872920227661620370489107468199951676922577297975647026061719793823377728952983614188684699900897614066606760823736831561798079682914293365666719556898704018329272342382307579775115219905078214903847821896839519307420448005434736806202849378675920646393529362446315689985698126122331705444911861754084989635697167461667039662755050188999921126341003136845234487834623828470861180468873525124316095443142078159491345791412781185556054399518864705653149883391358699180001320911629912466211460149530780008715240893474617492665694185248837280693595657988018133771991748571962773351264332202630463297369117793165328913785202151029099557266689798694181368031388551038183143136775522385410808185614649408514761218178707928883922933380236465625313336619734622490740751336941031179584813009614477621574644175860928583493712445606999606937502835405829447968677553440961048833774426386734761475471978084072117099046009984951200090919982127435255936237508356248854460925817478039706492806765051327890042968388859199876968309232795272865027161041407490144733268163643898958077157023810929093588042037769670142398240118061907658979993554035437242003115132154727380482932283639607227168877247160069333355988340923307415744861283283856040276503043369116238956438708313598185440592707934927439208712424880693701550219604381974953213567666142665440735641395175775287298735354691661903157050926284559974900155115353508615088339987739645302913932758372965229030755072179864480934989503175335303900376634133896661981126099665326190849817777933204143845787707610871310789592957776890973710237028920955670263327953247003680509598169978754233583675740468484160689939403423965116620183356731688756051966839472718859815761746168757696258829643472878631498643277183323897255828679160975120527921660887004773020960990707859121900884859263776879491571265165451798957614261351992673337879196756752829951878529658891331350942396257492239249790540672445879370949533893932334715840054025554251704944175790324112058560931198480847981190688665585001597719247088201982681641831323561368593487418305284549757482734888737098985136501956628589237806679765477700157124168116631847117213499939930674647498526052848180379627399373943464321229078877857752891570247322285952461205841246654281663483625696541377867297763003118511734297341728141945552070880394937415560494525533468807015588722452710595880252514648605032167249488743793229711467344768471314592082757209962827815821822454365979761558288373204686323009384217167749134739327505038289519271830269419330001676518978701900687831647827537267004977366030123375774257999034084582689456627623350468523126683687642144315372206106933289551039563543720836007449995894045825307348687583109674226503704673880128935987997498749223795297942018338361081604380036758871525963125560261233252596169717786122439163750365611249341480691117993608129420056504474163244005092894224097767922514659675724394951505081359156063776989069240031215941323429091613322571296968046926029645170566290461612778230112306364840458780434805271710727977769495759670496612908214229629148263446543916456515401826539540557886747760219046171806261377355486168025399542616597843369011412494469939571101085571605769887774148853886017441897225896497881793105290909324947838512445539738603067152748587529534864165114513495913219250947128119388036478617536379945715110536764994020253806786220028310133272926394712733940097968549660099703048707888179087826154999333391816825806943240175402087098280658244988805397269622487030572626987708867563124452039899881353768441013931802330376574835148781766795395471155303953430877730995211928045720622215928157304762400418298967924730604375538598566386942040401854092677741800963490523599979408415409187597973009137393444253835444100577493524814855292586652338902031021218708907328064921465672369772362834543297629257443923778712687210674526455064658203294037405471522720954817966526631583206858029472662277141554388610272104812486649644029621637743646695808038888952076022467548549526646221496988348551604666105294983555887078748635872328459204091279830662281190822164355420629449522084968997027593043256289060935613902250872648506706985753749308825261816954253982874442597124704763253861404171746318449585587509835808666330600343049245426048089653204936990485005943093215043492995887410860586841982568033369872283042653146479576400649841735579477182183565160613477017983854513305272858730384685906899362491713939808565168150797594786729327693014269857602067680700819546551901996685738864956713620980457287236172788273289350337089994969860750608122289135994951138220451634441390285044732567226911684433085579584135825156427225846141038051188275121087383205647117997748471288661498251908416754633364183676269870865929333059592289933936161549012589255936084785803495565432379835020757575682131296003329741217056261419818623892265308996729162160127467868412797859499203211489225411009357612480019702040468250646585056978674001206512539408283044796911486081665262505116952129828710523115273215869824762595293947342648011357812881456078753378550260386232282659499858283704291464064307296591200680245738479341539331365998173723926224809566195478553675443422862569030092387796695496965822096040342480503361599940184149709286493017655494848300962362336016084071945003339551742511437517716039742064210887413235736091318204093272062357372140333076235492208119855394494986024798473137805669473858064447913916768873867039770109595854326757826373067585854965377117375013196664373165807096694864463354736344401609904384344192604405262597131747202411179892318979122503173173716619196759801608708679672519554770089726470678362694025864154827359417583041723316684656313049714652693840489448800575289794972058890720118256746360132161428246269992096654091609172962141312924895609957106950467481472399548498964575662490482802489700502026348010228672243369207665378830472170206036889916923401842972820102860524605946540021092846939642705713283255114789402692009644472934705056105180987238531617016066801130029381787189886215493985338411927765361477945824898610151262162544463151934420015049975229096432217066494218539293411529688879107883446614247975076045510285706785136501774366409748733819274521394245221700629775523786528101259783459129994198763634143947751199513143020095315731793470843126524473086209386536057565226543113141363102215845179139681780018850802109711934800755920161191303312652185478920762744615450589422183071148880050959917357775924660194390872052402175154140127007667304799206121935138153974874218515888229320523310328815891849476438322087539223036808811542785658482870168683895123722363630855204454546792510855630579560215295386238864897641018949718410669967803808284384563002122256947827504798887001738890961389893950723880146805050921244452673677890647792809800911746277470564942020623240575132109819269983437855366819893868405127176165653471866921247966784531688845470680293131910912196722504141030680675831343389486574819029521119879595379272564757191296095094820666926737925000757772276436183422369058023655685762068956478939995995764128283348954101477439777384663355563057695663732862871057090931550126159901513809923934728656329751111430274108831997762512690999967563208379131337614802442020246022380528951421071828282877091769915181328726263028735785244776359870846926492276720962428322439024298566131285797255587238180416513827143498984771318273509943642566250267417139487312407049756337781471320275382084654037363416820743045233598653930620437732342368083478747489130176767654418574136946365859787954378002226710712557127641390420571732813699141358823060459494563597682666222432912261417320870210220602843010026724531054186375738456943630133323560141635519192026167621620220032591634965534285400233574664882400659780305197945052974475617848350998869099864241886209823513483162297959744235457855179225230210460034666901194675628498928609977918613680392004830797712359254551024770697481304438726956372038612099872364061062129067856195845580731718494441738732234121629711507728353708095303410826454082008165852049143812662844550798008588702330624947936148886199903703789406953668937289919242736405110284132999119306278136697595714543135523169912764904344475766688913460154303171220952490622984711989849084666939859702660468976682631577150595004342038893182849608397850609531326174930818769016736185550632072962237545477584461678278166216678334853445309672173993299875627459603233552764957236693104816731856392393058224052419736856448357634507841294411612307310540367044071052600209117860593249586557597617141476171026132717453352214246195457506020586034261093036417057790859336325566973233237655213246965106448905723047799948714302618912304737107212035847881928011789212244846514497635444499235524235801387696644169071289682311597924108136595454411761659988368390910100041105138218638296691085553052907317090192155534791192355984777285292786181142080737812844492233608180147647055931623250398190049129752347898524369549256483593283850300811825781253881006278042985394922430854521568838122616508604885876136264422638514320348180206097300363615754645618477581292033627631438243898738524883899669555562158790885237183540966367098084153297862457235671976045696223851297809260504917006616249720471555131144637861484545507604817875495772194981920754709504649753454183522118553791552969431687269106662308686937443057561639117253919463297266132447179279082026279419805550411341678626344979082424756633013450474492798197593948517102505405342913960452373502963387827363354935702104866400840102234643836098025355814437462120885672935890622399345003809298556636110356457760491355839313789194293279773172185197209671409217394928496423545992705687819790705066390680646665375616728343350585809434169676131544223169089747559437736037615806245753844600024378723702987758996274994375481508496729505619968489469866170827709417713157481149087316624053794277815155047480750007892606417198232920909956769009479839164817178124521029916256711485399966052945411768933766239157880541798146419260975338597143964808925300873399163693916524155869525778951059620804772813845985160183693471658707933252910971663273066499536987569668716228503785113275666301028991159598980316115396528677304473425248715232334835613296703252123087699229655816549889701645017165833132427171112851812681827172988377480133693022811803998606527020202614896061390954420063504602912261837306354688221129437388102439742174513955801721702014000522487418865562375083262177474363763784722605853819686866805791769049470151547353633561354663554859950257475501756722012547097644198384037598432949850332972733739816531803971085421367091257726936014521512127717788711421736130124491179530485624869961254833623520530842889949035631250168754605487254994380116449203772860274046216759616636113608782663754793862294305087435572178640486601725389026067308480353271948163979315539631097689257400840714710795600449392235585763721928283213042652666660881988305814478896695592016360233951092091721692074712393346849415852140711811626977066873523728355158193895443630223982210539229801438936315787914600298675418832561075174253174793563899294146519859829214038918747324975858570663470413646107155466924003087625701728514896061766254095482879739971712770489710730597096085788908562515603253172327191776348850417786079942320509254393894197140389664532722250260455744538885357719215006043861958571261798303604853075630188074993445062352528156759493994587476469754876101691035342818563805426703372654728050205544550877483618069346062403981477975101175917357371859973922764009710834355293847446469964144157261273531308575794430855760357109335288972232686447616047073101278997028603237431531246012161357620941241574775132704050267653892781874898548679771112595408965036952985751505507618261454111691102556057419145204664324115222071455606102278765111063059801057631533270758742150340612529951409752777206331036718763771559898858290286152729514517892525847109057001037940013713153746164504681021948856987790447218911963165911326780971297299883386829685889617512325419543807431290665042966266359672679114561746100380029208812758224116905545245207248100271733525796761026695229913447073301881415045580763458760281818969552091356818240961326987056930926868860380178971059866528300499624449582321025065894818915451977351345362834896857363481840541408300830737014611805093748129232509193795966376100632791374621360216231387761136131874441170772555433211889293512614162155425386130365571581254528885841320481649186178371942095884238587497460308701950681599524660948661088818506666881252942721350128610064038390444672411096036993232874172696979107007910498711283531102716494191632018111386963432925187122908293113816514860958326995065908397043545788392112977505258781083914981630360216872430507292626787797855164560247300400816812363591050883500193582469096387928794883615453372754255371677223160430730118349534127123177633942673251390336416805045985988698274349961838298138954336783787436723662674110703606606928790526851387334052737703001844993281123688629917725689900967820718669959595494878336823258319680124509254143910782721378235764573416600181577237582699749932420655611308789445069360305793109605118459123267617373712064469788439398603327783445040940753457155703227582036499447197539335802434019817497482603396353779749433082846603142514451486498475371222354634898995859002088772757604692373414048615754019871403264241130007703794836121915780488769692507730887218836746198428305496092895043987313427102150179070240218956154131199364460185736805275774373896263851391131812916191260769964517402516286657036130083474699428369658924683806510759746211487467310554903887274559308981626898312044298767245916715585393503196136935919491295439886704860571579620989556601538957196267102371239446497263678462996864474850860300030212190222028655184779994172474841399205581285030919847438254351914743596292332527746133742078811890289418546021728587702881329436258119355409455935027272986802676228157294574039145016352232052522182419616956857611936978415533732823990439189269626776461698586881859170007379502247528769253218180325273966569117062816521911495893439669984218161582835417207387277033546887269130565473033320692737874058965985487609298423483841641273283519638643179521267478879969623283418837873608594122293426846000230338813136132633083473818409449166434518665118802976460371883306040418264157113773569979391115594672140065698278967009072021153670132163472197883740931600871874037544287560731863004935351946584875775671295597401620846087029505685699419703562593169220011262254294517417888057207681586061700971184066752810248909807325798715021555132645683182690749978777342774844779507665837253131334944231263804316066401898710993951177322599942394673548075805686654777796072926506535995065160037257298738389198520470982375550217334146288860835795645684055074969737023557666825037920799741173633341095951682455924851106764451923330252016300020935675546406472341911522745825367102938876210749109759845630945874622351841070144670752224812051336113411657251951789081451615051849483164879188159412552774587541443232155218493409760519983129461138539321611975593095863216481901160712028861122364676901250059504100371260998348115950481310277111465447109029197055158033192588269609588171464484389564374782511762356971994156974489670805214434812453344362392257193234346845393568430581840935171697555004656832173772732555776899770530257200137743457633515472049013888784475365629453747795625825413083923868671687713486124689613880274685331882756390462473732272182555847425716953394459787843381981763803957344582650873393992298168849259587495091422314116293691226579158448035750266058193186284568498688889569289994694376626888164354997851019375169785265311665774957353225365295148965179383962165628128723464826044883243703796096817614778470142806265458574425160043619532960356096800075762413985978289509173317856251490065744291100901117420761240174941397668142170802645769802851614816508913504230709924152386168924140819772066872584444403329926142537639633032417618203217447192661399560049205574564881493860434695735104733699316335115593010856020602378020698586652447333516271159269664256066227690713526866157350884582656527056988350771704178701384863756969692747886252312771230889013959203253408634783667931160681675692722012178217069358936090599723865272198734645592138844871707326926172648894076075656769276217409171544711923339487583141979804415345063866290154176699671164025832210758896629498967921389598325167472967028575761912272787114445288757257498730192219522162214875356483060704507132339142784463219556190541213849931636037335131214450049870314081571407150708036717103748372131646919323917699425493362241993803172081963375214828940875449880534466422003400177712516889398788893853667404633975308282446511090359774693680586180161457580307891449692324591374078499202762073515635586515430506929743296946441869023331252267729727564126672891492419976771076031691774851521608621073067311459189555657124828224457859723172516665551018994644089654273086301062367996974136442480933848352086666403206482743779095511821197973337438803226458990378033963511612700878142752828611974903662233122284981754135933695451706652449262859212811398449835618610440917403353790240534852108748478054821275272137118615686243371133646361307252479476865150453512897793935595376832560063053381523926575831466463100548571343387151705020553600040068336909277795931855106369831915960811353467412897208883548806478106046956043855112096499188750577989847561294783456701693921182448408947995386957266042449622990560101957633581571702273138085600121723646582606492898903339590290385118052427960026538827706206337384682292592950623939598066914493493521785368989059133819679107862512852948691660058605389381776084649142106106655656344278804091077329056097654599000080743394126954508710649546063191208207465927568016084332854096592023768845440630046886482361926223397053438342403167313412182625508033762849842840048409726135318799851598620516903468270376392623329837732964174920175442816144873429336387246809710139043209829979370945035632571488637235486019653675647928413710668413993569988860363535737951570103319113331015582551906054653071043620657320438681508223125691375004259891910447838134318032552898235044581771712560298956372975989964923742108278317014321382798499553030137523729763653780951391168748023298488584476038349883731417962097417882534192294885454868067089492270940685307322626703459666596906487469161768481564183328681271915624682354596289969946961605648591367227966029389733740122560501185514386668819776733880917302226418158930743002461085171510435172248985146976221983455886303821885969708829231027491383970235390196521420425054269887060718306455993876883178846028844771950917997415815001957565838530079887340371077083380759515575456402959020666899859313601809070107299183588685542915649629567877951691624021538772754455456632945568576682898365806558718277803438613528069968554116720430461134611612341296121377707951530852265111056741470433894472848362915531943891671891361958673315795696782559924033404083780649606799789665921143317365496611864466842353452436602018087766254306575335891005475994451473573815918069272405249099998412346135866828261889172165804455751851382480598587889986385356725225955483330517961529742328630653617328099502789645995008815022313183474859751949125111617860013101449898600934054831981063721844791522316808927612520008563493093981112715183355023907291437710930805455936018592547180200393276035958500826907039833227483397755087152197797806713760867922214360214679090813072810473804482909215888237078570660131357238019377499443854711290639662438304225341058529564265707812185641718167059881972682756123694991885307814895549014162897401153586605904400580869003158659261721642155100595107059832331179214243068616352739921963300747712720421783100759540847894118447295938067674255145580244511569583553641991542512176265160776611396765065776153736949025938458020547172582469024545465213744473894378030056619728111022824307028307841626802804112742783771293854958365454489339007705631215663627396153751197593239378955436453953402498000579026435256088400039719446997933769237925455870265026042315037241414913345355502099382681332553078305950664821610001492673442193851284537077439577714156836696001116159211418245625705762988105185507680364464213361293083592482110618467892641798915430233177044015126544535935682752791962250881011206866782889862041120388637776377687172789512491802300350755239924376597635429426299883845069988423588823333420473988965323534369832609527190226719286655081549040167721618053359265555721359521669568506581422039978254426844642197980880928774228328507783033970468385096757497994960863193901460634581020795609517864839484467302960160638179837321865110562588720361631700333785567319351122058803749079811625971298105892264944138870100599748258254297455130059525423511234567933120562632407457454035390216161617819692517880806640448711432766255093265392924773566815725951894879126926256834046737050066951637440062420133992984777882096175031261520011212820355128874922057025213857307957349501760635144383736538826323635654708578785549193592750108751695888039748092593969450206337877520172331190692035186718311036201457482144188940221438575121941591787405345376002451403262290608338871039628758690057749371329714582839657766795313698023831660957224476006443502488938268989275026937643188802410840804496412829504502953821963964464297569596534070528835972346584729486681980221905050166987268922646136920322323092764197750081618507284278200521762465534477306427776304629350287813947301408040858357925046775859420054714307061932212519632954902600025194399393378689553578900813771557569011784478918940130040994757012345554932874024087792678183467031228816153758168157024606962841034092229286782034087365769582468409287362489411314430938171449754196090173100814577026338313306255093713183580759188158045247462441681856701586993272140418930605768994545753834943801279550788314255407434626153618422334631016133970474926921565861734996613997413472690174287244206493112884060521007014315153694652200594059010942263867050665361647459853504701507590514979873505499297606114730412983889896887071021170452800386964948986212450644009059121193962965174187109501547547650005221077547525374906274547656888233791398463076292477212377312222985631755510324560797277066220361062610046230353308985822790807558284086462201015106504299244392094865897700160174978938514992532022461912432332744713339271651366493725004392818094555041494150437954735793355823508311357553254617026012875331710791419075521887487169617340236600332163568935536995526001155232232214482327217069916000420350617739904819788838993852350992801660961239588249776786681193312523993615551229649421525891776929422793514766299114303498617790673905506515009295947984250708107007545975531519217329445499655932607316568887426486743201787938759809922692417429547046209956064811368597261025221896601900459038415422823268848469763381885343378421174704274786707486767040933581270733649956388516779763185947197862249532348341836983384540855815856683238434189732603781261761370092451829662422032342014354461683906210353560172080528397604449194332247344309697961491024753522160762842328323139505358265993599881798096642996107655915601272483966097098702425280595911254547894046920312257722876925417579300988551413119659058107804088782288350484979447031969702512411134515962384547696816727944168120233410099355207111411467658309998642531666148191375613160814630750043463694088951190462815171298112754767560126988037373352773480472678074268447526116444964680713405927877839098323331735233995031970181632298269406660503703231434228254352171359720411645790243730136278244986015014803385550776423976114826459831721630160520189876853147687283387278437618751329610387212198031717683827228492273689729479850649782919713465998693533678870053266706633658534574895620527294497714156067331270373703107116025232572635138475441609326654975808875935077085262905579925574276075296821466142567817409388377601044770906677868663800693444084067378990070045958011652176446448457156760744273687466526800355397662574753566257799401320234206891538344797627443815151437534247301898662389650848853168857273264846760430241764927330975296385913749779271483304133439866840389383859372494455949207904657395508399960780950690132028275939133341914551645110590355366190181137716504483831649471804670202901582950202561645552342797162816639329265600717323644002442019045557127189145854796948840170131542147023449724777589185037489803933417491169181733418766461212259553175262485876891749739402528513935877641169219337321780498316127417663872259812327731241665620751077968897594059471655073609910462565063948110986934828570582393373849862547840610986400142043186575673740179166316025481213549903118467381450155182781951313098244166767842206416023381073417307845046776123388577443234207179892662457654396726507581852727356898008629057831615184556302636167119300228519617273558273128244877175398502443263649172658764517310450100080134258646821279176738443977038972469427382881962364655373964774831801383331016064898672069544971736603385704716230326272488351530003303415622884564779607326355390776111096933666970231835091058586577352302929704365586197815866814434827337172819225353918010535406544011275143171577567906334199941451221317679103786762923896937047286761143392612476270884913044947422805335671878978880393340831141999045352159842941331719638027981153481249033729618234250896545722544785375771064571839964095841116869251426192871473682236792790075492635013569363472112480947194442097530320914088761296836177169563876410698222038741667522145649456171935062035163936695587008428504568573112501812059871611554846034103578556158018038959752289897377465066186269618106165406510188221749366749274722602144050854664218648932392556466437051289495783455347502031898780305302451072747023194343094423710744577235101105066544787199285405443281710250799458497137690593403520089329935842912616538115558587381319062670230632840663934162440694666997528457318563865443025026272429025731480956083136343213029995698757133474953843156702865477128772002959783409517307180275639807349842827803003586841586116709920989505176383633644917110689105783739572611926481225414579124153762430043018535519468951012180787470579888624580915132578693933726893323089708239319297947402001986429428834600518696225393824743929265073266373424136937108834337565886661902947271813160130978765589901293392036248734528525631884381939626059825403050619074822489679768131390923788229354902925694068596837808579321515060940101623377708405703586934066771181176463169292778483605183687567205000293049211044458434277025351018044564010945679954896571730321081050520625510230379317102083847322544127043000092527332201353739101724480072391207819057231972834939838282819157191959341959125739599463719459569550220467884564848553657801126893875181515463438165088486226412371365122621179953123236027976372551819420210294380338874223959369027666292528986218470644288035681995251737597371443786529853888130984827850144560188706171587938329281543055328611906034491974272426834117038487741948929128963009574635324621434127877281648118011196725145924326315027752231642413407564542424738383055211227227108086463056526271903484290819603915154692906940827976416235277298521086329656046041854945410893118756778816676775341307703463351093301175139476568176476544175582064597044078708135439470577395328171819053305479031957966600106732159278491638051843413078944216816043512462435735476304900253360722145312868168623786543030823292013312113215343861710298524737747657122819056281093535280555865300357643397336662289330508608641150190062939469776965041968274713207908835397359893018445929577568109536763149144239267478867105391383409138336212483583617283466114136723535644408475364118326388347981776579677265760820493521101061552105281012739492286201610492078882888806540895508216524047658219492727758233995856061900609014783473483625382526284190817012470003608555881953440256196527390917277209065650730855897231869134440540769143649988340886404670842952769850650135538156253746966597306858763730263303125482975201487580213081416422250488178649012050354216164688950106917558217130283053305529694342452941112249471228000872334695035595178376236552556523086037039046058825003764643131946225076846916535864579441910278936988567521112245879137245688727640592650236429204234879317422752781495548174984431079985312419198803410906784756642388370615009840962965107658258233150180185977219127941821410281124574208623597813243403273349837419527131794822619863678043673515346635057663863533552674243813580736509016043140384438361098611546369257808872263827558239082772402452185242745815568934353854763041149770705199996178551608352373167171815372046433589163299304553749051377008809367208087126008452745386141668756978232030777044025539137779214328451978689666948474587888876444975464169333269402340998092935356665786619383240104224803449886268525839440619772205584131719020391930519899136180425917682172838374307487708431770636321110247791814259487189261692201665037939451618508023141157861887412034638616311041814181375613500168585801651710360775982645510719811486935678334149476216072853496510686623369941438355166497519236782175514006949913968573328924028987648887421922901870945985261521592572363313380886194116901854979611029337407490181971217198243382112303731571960475884767213084043170924016869404183930503592034894002202853628873643753997261003340194868426681075476860896028760984305271621630105450011532823828518128638663728032124681288852817362287164071069503481746757016957345923216486197484334635497330943990212108487290355534852122908226156462067736551061888408936561383885614364467614573441791069578498991669269279454506046805855756373909035367387604307647088938745781068409351031467592924344910093194620902299213563850024160407267372077480545769552190133920745294738304077574145443336437967932631288245171775685388857654499953763963594389531953697687243240698997578650934677193297695431857364152420752671096422015756930012455400340212945903684885043288058985760999059863686106989335778003511340216022213855986113911153281112428910411287958557286453128089698554180687686661178881907441151833187438006773401319239936831755759374472564002902352709519006899838182510081646989794546476304954004423147778247143071427913625943295506809072316740452696236059399932425755163129978276383775684390384592293673271928663258663783838948409867284586627716273688884539131491193100762504747243488988745434996248027049393675432100811071742532476388852078684415298006173013591544369958870502506439624830871380000206533259836768333965497420204264586681886428862487317757272575747381099858226087717296210108170482775860970806897017711420536298537370285862621226141251584888844833765410091066606346416220931445064865610765497891647678315438922546188877198086595273682992472106451105294155330187628824560760548966303446415573668095003029241737633137098227742819778204390190934295630696320311214587475581126449027483680723829859370287593696873311932624353035673456838946622681889900743328798013221939929363996933174796564313841706517370694391657206397519540354926289688034951129165205794758888993302644742660129491400697837345241217593849111605818164170575977205632710232145845429479664377906984279990409477652262436021928421978743573424240270085363959997200258746070995157560427985222572746207359372827445293598807326981890170380699076264686382457387338966653422075699761400092905201660834811827756095692265064707203128573091649985289842821048617998148422412462921575970955174483415552224400327795092377309820712154231346435720088195357886644882698835853272361321143543642954978839884480866168414633523738697150172023754332956528021409196980486683331739778899689757168710260240671011546091476410039536509993396310260193662093983195061858499054427448818477510457867351238009736093328145461649111526056497410589715137735100532890134046106773143059297200616268417753946177050935270516511740090148415596956406949395930707906141653018160670916497502889842888445300300637884819851095647618332715798786438487494806377430887660434481850429057441499110408143787647354900941594071138971836297499676864859188379006293010417180173655555015387810177435395349053254593304663770566429040102346666952736583743975634385959869249478610687780294547047726812005857175251011879914741700071288479358094097586142886865037869644508231675308864624730635718163025621752654647340783579874195595796703700580479061574789980454756270681842298123555185350375372208288864276784403180622610312774039841891273401678835145994433869894997798709144526651641390856249854765488496209635532142070508091669745649324507747835262435104921316333281783310727327124946220963899343424888739596205286102983779005532974859019846038355246782621857580885107063381832910772316156042793181359406648040596221241668067973071950303969115601657316527878161291707560877843896977495574945880798932263183200774836607181969550479651297544611953431755748832539832523520634063908321553393278880618187866087989640087622327278842157606589529003723557057684536751778945815075681046282484134826984564960744736086089024082739657194931426124136851923370297663649198378083055335850150740951879521438266002380640026777830433970270431148200770317581166993246339834719109826888035865313104222013621642735224524555800704925956695474907424465259124088222007860613781609537350678628023794620186983045362999912419631735163967760121043194253253320260447005021712306523607632240078423380716511189237861605838895373648307972081351296343246900557746435371514777995903862246446383928974501524250502569269833092315780015820342235483698635858899026116081074648436964037812636162941006095394423711609876793305988464921863041920538587687858495613761741691450624244980194062689949202185504932097393551548254638563726427786934706042738886247775616056754394308310436918749633253604411025972524555885554059586322022922549686938788850848707905387516280861179705838688340370572873565653507479762669436508773910626653324617562036745980488930693481047425416585388259051498835967326366296882832157221964209934279426590013347483127497798804620036317935565785992036843767185591684706138999236711770210475252785471594999487494048025974581735740571386228658363291316436178783343472308502987007076276677251986879281514164679424729313262488818804507397692403796913388828248703813293842557514165594409505164524945102483786568819875305815261052861810601954725650797257248481528531709523947631843803824224085888612657597897273938723944826739423812161266717633654470598800608807937660452141824797954270497674019910448388112972748247140849303256398468820959057488446262126616561032446176218044685807322889121739738385891595335887119225446306195915114196328265016035990661893768873691013334064710852075597670667327087226954655032121655918687961076520866785462730904776000949627690324441822406763116708418196052223344904738563415456147879148665879721369297157994131951200622239480364563474595761123036509934520486667493671398804506135149178922649119015014557350115803531877117963565287274588722601338510641777582380968762589975793130750029032960853407918244180609595397503542062343713000072462818286731743642665645438663643954800504340735762490906122060013023765147011190604341738928178716533001790522266892335310063332825875025403002531256679870431101723088661144126749071183000804300635688004515733613986698100875046620160718629228667698237811265803737955946989082570895766014265923782785084583821340757453420220343409461289199321945377525482502384778588675134806138503176637204221351883782883091922714150420890879224792658284877511887403297247455018104774530805006302646571692102904083416203997272343581720107111960808162077486797605671460641720728359075858244654544536970849064476935506722179185658552106165304488223840802563754487799487141283518861197678798708683767018730767594031696649004220959488402077492928845729688648302134542717116757332138176247989941577663709296539589330380042367537637824761688591607110040233930735758592206887360396341746503573446697173917415521849897821605739341067771917155049669101712696482481558274119280253813078969634225450113484027043351152762350440378539600484998588737481276822925331148269167687344622403572682989371352062076422669109016224596652726511940503031023626227359940807166212224858280200967507782737384267410848240580170941230638828783098483525795605501904553728811250062105604120141111393648389534485082238591331188696211383024042295232986226810498841487688147570927843006632623999776086019101003533762567055570846895789830301997696942673566794197724134743776714258922425346373710289336311247605494940510766195789261955982373307413462687906352475325422636913273600492389926192567450659492194933803361147399599119444049061512910078497576039531569857956692118188668528445360504453166089178738413836479817652715092241718149382547748883119650130305675231010440510075056515753704457725697720558982413678859137608173056353152835886675684163410284930003464672950830875417610325185748055582811585471480278376245806659750860592322062697342868629019451725383580796899427531829081510762143484237639773575863678889160109233277798897869059253631144111538094362842243863115991636067001526987805235737639694423104120191371849881220396096404002344728304004445470475876538391569139452789695123548407120627555392603925573989260052990631704572852284275781409055665448462769615912727675463174282512517582280725682148899018865794815927460047288980303405159200478252085861270305127639850263989547980390552044705644114377547726609456120426790813510453069625627815407503107886216422273673987400024163543068661024015444670971060161325369697509190543267966489602029687782653833393554674790177157326222561288737340499252681079548285885346029940778496653827710786787112486174974712337908492040621970979868205998484804136345336774618016319525320033641029426083556814167326992596740504078129183765603984144331305343800742364197750731941048680238618994650178114189773089526989694931190756253227440863472961825001178372023736726488238534503593880469322789585051212386016571838554959042251042121911794830481754271412014481783802993518908956941926508689490928345668185758749951793009335678773127527044580084756668131959614431530817106864317664821394065324760697979016647572993094554532466399500886675249286921812524380651315189874709314719793297681392975431458088744208696285068485423507597872627933976995218098439850317186804896503482561908533854034944813723155440404437312328032890063038505721605251502323314194295796010038164567035190575785753078202997232383973882490083064898448639262225770648204851123633332723465760146147416642949833547489945858314329388988086693132703792425484535194387576083219363058557227780709384477167741221038064636386843163794727129498382866911099303805444446859746267824719059973203162754086886823690089353671028559152191413214841449606359089315923344039962682102607844723555236267686754207728637604529937669321795977453921289779881239796449763488115234088798425380020893554772208565440460230087013760173223923177652010873550258900422549312965254371836622659949076055873496336526232408606919706403149930784813118998819275588571799608953342713017396902932320933878161488899185465442460973415981167798834722974083317468585123227980452594288103712797670971742987566913945307293427134883062285999438150689711335171450186513772691516087038948393295529322251880017331532488097523064986189289311941638681646045755498482804038447866676218500481590744793500744853819393823417790399593505726911009155246016077128096565565503963119402430351328201369085740130226303537785745749568843351824934296556109853209158490003229175589367528312982778343966002114475774744695127451412823185828276981274135036363198972771954110773751257405782894670823217781083607974942947326145254417741666176255621912858437161638373085443460356146265818943031145416113573283821125516099765329298476547462691557921661107859466234924096268271560871996065223862187026143381179028735290991217687802002387743417991515051963164159497589550759480495834228165517018798030003797495413125950737539817383731355786557774133546692839451051374030199539879319755837702303528219504306963140773775950740462580405840462136714463791428296910385230980518249197987983395995835587346585682222101790251818252104237406728729408315914333881676397530621585353494806437828456747732183918654368256526769245863044358312106565797073696273427914459394046348549126099757628112734205055927561681699539981498744441231859243828051059454437407865699451759561789446807257066897817230904414013260576380715273093588073310176091787702625867935499179177076355915132919969361818438140413594673787949360318955380348760132746873348511871829837649259356633612095046292053992213303100129898131312511991789592164235711190324901876685398885767072381582423521399592611394583210099351062658598003091876422636316214244063592021952903534779766506315947235474326680791645123594395122492755288400410689700011660376525451359710675732581042102295258367292130776057179741948693441961685765536391054867263522646990420487161528898876505529161085815952043540770474538135366739847732540443373816045733445450829433323510508349961588303724706775943843888196824449231247088144554263611276751926340441417143710946124608848106969606751594233220536332064283002493395678237998760782088930108880430464423134940564845540133500522202798743587235703021077763584034553012686231246834554194309212211626819376980972007453780176471820773454497044431158910308536030964072728399549671295034157536060343131797949398099272776662193861161792645001160804985011683495100139119461647939886869052087978523651036319450072359403920995137841809519992133608259257900228238618060284536023385925633115979830089228102963390845723237431273288217791440850527620039293409651307360790306692388704745982302450685012883088605123628554889510271295175880303122054870526861838647858515776312340438693283480992649612819264177234834720631701922719414735722325987328535855182639897980525713907431775609984148426483210945287679789549484733901659710202003112424278334640185844192908145673697352486418321204628740539829643521424357347972162292158777284605051043790019747924042819867169382600498216414250260902236055666770088784474743127583226386051346451719395030456518775322593388406721218013094209880923558312878609400208328122151033205455380080682304487166700563842777343299251677512275510448804550348287380780673102796426748556492750656387404293196273283486045369933926617577251426443144363774096449881941787196020549182860840658169491450356069912691597163208329057204299768498280969803913029241854620142782328223362477798744293702657579622946498382700667426678106124198654505862142111167289310680684664878276834516427186341509605946295885657684936705996155261325711404732982722362313102041952344039656235543842389576405573992096894738558016652679417897425484710724343977398067278045263863589954801296327169161164449100282328526977607320520489443239281836612205976062929454529624056238029276373417500092779856185607024976439114201634997628791471561416771097615673365703155718061442158569673827552725872812712913774856765528477134593813447612026862938196099568565153140889759151100604879159032735587455115835168566472573941452152370121645881232489614713666305974385570026199185309418216565396438496695920806691898164555902517119716409093453937565169291650896898375496084371628648221467751062068817993382010040311771351673795372817648422401358613985443148910389722782871039443284908505891490995655984779608516714815989896633788240091786076908329217303955495292123816142495435866126580396324265166304800639479728995434890026926108728768564098669852118733607423629021068227246390748247905466863067381827166475453720742827387104438908980453682047777190176915212776157948437567536686019444933509227602501575607665677019039624221124244098328731690002759432151773748292790134704471066307474193989005997453063170835168706260774640769142807304790679622834648819623637449920298204536749666138749894689012634685519874826873033712418699827841544269183818756741692798987549159230498605977783677457239176996767902774499816229921728326759792889747486661895551072812160192044462614830157772367552946011079768175705474551816051241724818781670086652536419184340741118533993041254518281667186755524139459458531780998408436804258813700766796250130080521780819527913403502867058418113302762558335972316818938279236130025422850117744852601620501621975448501726447316649367564490064793316889987854386550393265987258477588353010707184311191546722851131046859625882408284180493089449844058770642425998367478068715076656158783105855917588748084255782652889784634027675713220528927255844157921490344365481026712841653049427853368645750839677044056236434263312368683058264376037293021585348093035973074850239856168261366438662459501216802711324062866809402914222089669023955636430594669098142828593301175681677713864021812234068436953111716942489391302778967351673847374873396308714368207458020834592075513843782796495452891537793319007545806288479204296986649580615992220568552049314068556004331337829509087483339098004071562708641189668724947853393905720329462862968644263371652920518614631665591475529741143217010858530999125888260897098753609490326507936235828597157000238845602298170160416174766508926586139428401965317305397417507640954493135058838782914715678085336856595429966620291008172244704777866967157528950076041099692068403697356663772065904458598201474566588234087712032750949081588293918886388720056613404407942944872645665890937535726145545510998952484541954529703221448844642176123582167969399142033832959078593076148328750657155338324038191340857824071014048800001970027157714090734502572953376530827281209113782267840150898729133079198056730807969562763486518787244718632472051295716173505116868616374287831630283994114718681886104335041809612904304989544848624484417447444671924566835873042672360783937976455548270065480499100002382406891103116149129074384736470562331160620206078456066595306125633751350431537055008498808729251340878224955183126963714835392641695839322829932368578794582045579240358399755614820519652514042880504430646871127640814170335589572056850450082583012276883871990759318142094173579023470222730696636757942122914495287663779488385800349855119553677825453157612654499317101492047501078202627520660211135576822761930245018914968502478950836297387635979620524487745825012017688579489466972095713759936246809130202087031617601716448163139255833646279917224419866978173335986982695617245207881004815639751868650776339880732235289588301474692185897516030732693864729669157939589016930645313867669987887662675820718474460265907964613636229974965516961307097479988457070490181309828350566527388060573810350099857421345092075565375802276414786493561545271630774734094258017034049451664279455549490563743229767073406007921475002991795589346891404435645363938168756158491794342499368013382208182191664324726566306177878774189780276431438453667164462974625033214267785142831639966136720553836125029173866322453985449690463827371108320304771422422823308582652122683009563429159362547481093696940791913425576538033666524030206482522833773499692492449969055588788380816854107922971610256318543017558074959401765856926417882059597033801814893008833059786540277092827425449342370407206398913090987062683680826724713066268150283967683967927182307507601956501811289677805781991556804330468855490720930173223342818782638020523440994555680776630656645445485819738304381020663139855904267144793239424785527581964203370389434285212151431314664164802129963117454787217388776665097786565854974163009665552666513342947706695496232994837350084674217302973683260054567597411929138672644070974086879621142001905606864167569163264565879962238383929371386638540376775369664820693037350963373286701735946392941117506871512882446049162132300336291101586082849838608082290631277624159010405931022516783585623842399824818280978493034297232415083672564850949175171983916724620449706309428694144808702831985696049931254117323196537945429772536324830987442864433191123089130770577705597531309308943494545880966414897660921539321064114074047174246420987627909541499917612559171625724531056636966800424144515196892134107311840673698257542220221817956437860060817426068840640390939650541525981870315441101255694420757645301890935776749810086283879321351686489823260935263460364743284966425291783130081002059912782525376451920170793840258099491547512937255438693274844944419765901253268361260513083450734821444816888042290305092763989320349051332654476687870682012931432337145767455904139756253975721584911224941983632804984873132552735076307529473659351897004595140558920409244860960319667823076925104694062340931832911343947293783447601697965916459018034533408935150246645496938998254340974074515983676369148602993796604248942104070484994515060521263079749671804237541577514996634318994798591471826487504526742067955154297757710507219381428304915375216453690926370785098881183320189975920864839526923566758210220176102416244957211203785389127405079147921395405692896566468973119141007124508681481282261590893288860312203120960797664060890877451053058614671227145400512793350860130717765172058010590107125543203055363782373120330321216022175104130865993576147426112349336990129330771799818464599887073861627921440410793319599154491769221331024967072020725024587984340415817398726605392039520653112902213754500385294427758245752335623890126947755734885529335132317121140488499842481183756477434172957106668029036529326989901778145905448748204068113891057748996616215903520696713692697491357112007936728844505417382825057104551538218254674863463470479186986545686111719206041860410845311091258496970099393814108989903252327014242924555923798283681317490932287989886559230185626684230864498872109038395541033747124853898833647918210054925249405247439317969084378249169634721205213726873230891441587322907674704860043731741809181839377621987067533977758216107642065652010020824850299890281302048320640684390167939611867166072236863558762908221671208042974192753974754582983144353998958383797319238374003616607508971180474978723396171404462847412090658683539751715341052991339423408503616815880100148171268735667557593001091408860933146896181895009465364873375282090938043445235220513499979426802723195690022269228831482060056042758157940950608787360464915689205469799676757305612127250927003022456802622381158381157318732998844207012619635385607204116242752947907815243234666167272911251492522708471654126145370838085080019075872860367802384762918689626496025470145626672979571899112052219699589331996982585445328806094791523422441178460364754014604133679466500282148598409853606233190746242157855621395067294623121046001759502698973450273587422195225199403237159243102358963915367136565306213810562748258976426800506428548491353620777386306294581649888089072971242060040855609189624402513036058110777972655542658469401073904750444034652371359552084455522938409869056422721742653789570296043829887750649855092448884025875390064258313686490396888680546771116692397359794191218961609256903579671125693878836727932231055207816722101209868666601333183911186006859408021693121836702272482197074654820687023622961636983865732089510509983062795759440772009318340668368270126691428542883526986848217995283371284568514760593436785687459515985047833811547130672393457028669784775751706956477608912552703164696150537293353455781664316871763062713973846105529437742261420769114750209263515045473583626528610503890877354052670302350647124115571558958867167376557518772471383665334439623855916831764578743748329630574168822391419389006368496430360284077433127064307211244779204250199410446647522960846478570363030487524361432320237158288614073961379537426332484080073830523023513042614912104779278758518619294421260382375360309865997807071087421291949468359716857481488305436228850387535598091707314335750899767332374904233536947173675069813130810483784993815360246122696597415178018146770060688915637158998509565883434913656269674351752435186296926218961336067793083730559954633416346958391099313366113787407614969757924582441435580457326170365696460048029984330505409638518318471416378875247940515549772269040586298091976844344311339761039489789316510691421488064553311811756625832965588507816063339857871553564007857904117963969999199614167372897848297683684797787610620241886671369273896552556093242618483132349490707043236091287239287082078181482691730253806780852893238687817979132960913070904611980198248659572566298539537250132884597603794705675422654910980036217366454224916640439050125992023005629077818152131253948269104428627904221400611108592964692545592713618599059372111640060661581004434477195467999425764949553631233371316598398399864248963212601741802474335466054299229952605881574689300100546339977681229135207951367387659771770530789751225853120840068696103153219394304921625216255726619583384458761420032629699290471884091101099030363941572145463133930352399222349892189168122134612794161908273644816682476477951633377983182040685941538892027262128975244799684683868068278944525528935901653732785111279690966524626822245919338775310584826034863410858232326462833706870132948268164129473896341965145559467666319317371360388518787476397062708782212624605882116093991055228778553559450446235042269186898158379670096587670717402950631744400186148734545817427124745400431322269957878399072574282544762360912581982804028254011445403022920252411798751603846106300456664570517500530726440124206283544262985317568393711763647012327695480916448965442756040952642128246874896569596406639511449823133959161171225674731165103542077754304560644721034807085089882095528053011301235809010415331804635531543991661827395044506667108905769100216572267024007324734947193127409318649783638028660066904602977595071665750510629622249837156099194882268028052400305097697425203839067080688996584399953048417271543516537484614118225804976000939102245203093724913154088944151224078248650817156931593793494286371429406361455641945661310653673504986007188228631860630412598140916574661504621791108679071766622817491772862699380702064068369076692895886678829943236425161932575612770832884210397257024541821106318338247548780503073023260433705415552384805395623131112299913255818233165742828320148932795699825759913001556707886462391691849488279941968489910586958909545540212768732734578501125979557235440269712165126896718991462147580004049399365482908659673607572528615630973766606035671441264827668217533757610554376845921401142843279113577513280196245763208431354963038168192630327193473013581933609137773797398268570681616885377218705219874264021421225425358796795034549879568215054950576347489658447762758890658137088039572016146718291344422388125603079440685847678639242567814303113807555109120413675442553637618464282049998138348707427833175158182893387481898174250813951846965052940488043325824397228817666431737236198605917525097253007640582187800237294356821539513263319355106400728585210846446375628784678259162483711690604621375954481738572087488464998058544162934441497045867895265774438041497763273548328554135618074058390446365130690654109818641151513483109993188027004705489463607670049820554814338065108290594783511725880349156104677593189098625786198235239804508444145026994421199939768095879007952164018581332465222382986921680887953055048529466245657950300017659698676789835958552314442883152506102892040578374227144010106744891936041648109970355453821511762359589221508165840408810475935432698621967842875415085698360665709444191386086933477491592621717178000336497897870140079154954585365775538203449627961670588670689965039967931835093745356263515546529024654894866192190351308039110435482400606330281072096212695551690483534778111985322063085918436679779082163783900031498960365838859797128992448614986059973290944353038991158972322530439727911423726736103902399215429537603411820111177032685373084453180938121127204039434212233357164903017170723084574272734670569938526715859916558806563737627546185867583190054629482150459238854615117255628712402948201584982465120514735787787878082037121076206934036278670292108837896059138473738292306915711511263429886883291685690771738168488229930430043291884091831005440762010031224910258580142428306834351383206395781670686213177316809896400918664984869576850152755652053231023047168002562474818728198562258116589749878526145252738817258196912498460491421208252702552695681338520703894937087405442332935467228798810909755105556199914799936903739784376828682223446573671610414343240828350566575587417021647767894361657982416819382492187752501680115586230715395016851043183160935893468425197618834800824372524904447576926783129907210998100378933197602005933060754865955483804570842580066508870176761651202091908447373085157702591527601084186253918122296193551741565665494104408039846417499374949908668619491105289625355998056135541939840189900700121778751976405711173785325293511464221885992730604487067357742935534610337887495706497264086167441662660115888113041803287524849393769625228404276710182301980480895884875516461485381415534004342192230027560270460015515174735285789643977806979230350389451175073540829223491440438256523947560163141705209194123236712653575722494516579306955185506410252457245875262452026615526211668369810996199574891565249276621129857387048291555994746367618316167829464452124437006416987358856999738864899902848636376889451443164099325400635248671889636608133563836603397615007954916166928802675455991092159997862647242429630471827096668716939857827868328429764460053141058469300926821462435852312992660665474955325629597308347105168867338550658658500660658844358634185792173912278518478551360162796723269768033879459185819303507013879933092454151349031435531585239938607163607826525979616552986037384565617587518772468445881938358496495035261438163897133512218015351699968228415846295362028093987094638837100658532505378743266352402883008044794505310581751765035548364543839417604500963545413181219723372146423217512905522256684966735407767787792352196658059802393616739411829361639168344588439103477672127205133830804597696359637807943784043905680782056839501837738116544710715007090107366285790679563853432048617063799780494538528626737478774131055852046411672452014550107405529040700245815136457245098963165023153367585263517973866927045606596221524479064159957557745980717312079820087435037825022438445975299298333015056025692102083060083557302410589951223591193188041972301393882692966550008523941018239129477105879556980643791641696253699833791386976325001021115143893237416426028447536543391725864450054706124357692366079530500911249200386824810876590248892530343228114158662579359463866510604418553419426988385210992974792326627547614103563905441264426184255138428848459602027363547390416811114750191239129820409748297648323153982885250807720401350859097933387743276110271969430494638041138250832613172881820107337947505682519553224852086980075217147701868085562183564354175866156628665996385630681896067681807872095560099744729424974740837105081505135671298795804870929485030830958331054062515791035167888475396803024285215924962952611118456511462136852558840409655750705045355697997161784710013819840673540621905883905744893122870478074633130719497780073516840703611988067111446170061289129770238492554244005233270234465367613927442888985469023065953116716186227818861153654120239662616909002856015691521132262102387475832514213629693296343033743748460423481279781226419809798476503714414157872612074685422443346566868633407552580319198742114959393468989827360382772888727722582720482028823914742688906358703391887248358493769779101850853249761925510728480984436201657147070528016848817283075445065498924328407468883110571110684024641767138184483816855542291966503955496296194089980544694677324800788986674684103079801354509575236655106671482027077397215290804316273266204842337743647237703745217641638666290251964223614883301167996265075121372017934350915173295790383736336447576878941833100099465944479746474408444988543603038442911667852032414226430074695651997382570832222426510658484353302409935267425661450581865354001079396452073550633475099288261925394530181457016151434211475751511220405954792106977054437971786352339562140995258702971937644156641974958644221553414666009924717619360743463150072122335593094024863922493932249726740111354257948998317579624863182227470854350524509879867241183483309807751414586632363452082868702413933631108377679995368775308277058380003084666096033293373038919836111869724424115838795034524865832907657537161457891683091976479896600009883458045905884127608112481004859057373228893715702575282328418119090172285080744803671379573195620561527680113955123396808375702094078640332765724049213032478280327895639412409297297127524600041568442040757127124145916490036671551435474628264464630402309309426711588198803458933126452972786080170273761454474234016175658846112788935157572825689370134340134662274902198439353051268020973335262606165653809034165966521264836642481587564302606171369931079745564397517047584900604794098469935750681780185361098593558939466466615660731094003348961322965987902909186680935257532064121631720821341181542932639208779945721049237580117730424228686634333103746084564364243085136645365319548283661453795342364651193830226025336967621637875308540897595502492576867694397030102540503610196113996678271842593352152449959204905983419624965621828887879795849880377105270647896918113961277319414653727994904024135359483607927135864067086212076889555275789891715455178978658277969846274066160688839193773434321202023404217618032807836397599898464069983600364570911989341377431871433353524969320165380405499805264963679030271067392878187209817211123229750365322501572287026161275937898409157042275770624388688771896536869920206486169674094709894445457538593713038794811201115262177260710009181868046368265407082338329436457799466485138190480599886505829343767551058343580206844022125252947093258798214276157659970705713283778770081738402014042554288986454929097431457159168206011655201188344714812807820191531672131390611029059588880440808369110900800414748255121358078184563856012043551599709527623265155908849113710155061742081014990571667670764716423619346928748670254514670074945627050046441083722925209141031702040806986843358364729308687538757552084539652470496843386837553013771801943533281917669812329652057275669178627271065573251497198846239088962698334162757772396577532240415628400026710955388854964556020092071470552680839281903330733292935429779551179153680241817801553506639816001362135837942206893820345523419329819321668759317465644968305760443150032115364765045416185723934353287718036156706758660373913500876650626450871834026537869206589411598418861258256490871848970432296231494726877226636235713484420816435675315118910437196538299120310346035440946831029378009507781618686599149888279192000607302555737947992330460190043468527205307472475384963010988658863581146701774633615690131718922161637272026255408775619342960405282121398651953979396989459412106338518679004866038593393535058757498476874600289744775040870405899321339298203099242474629532542204475114001579693189180877442330151278006056807713523411279136613909345874057754479686838652779069432422200626554741699233653016576554628012243618477072690607211955708611332541636588819276106723678339752592319797910458545261162109478093420603470622171904443217316694843198220941560918031132496155933051029510297480442660190483359687882830625476533538138161088092195077036984106912262344252379693831611743531765205405376990025453946988901389070155404407902299731023219939546784857687398852197154738697008726665802372070160019521248493591595216931095773621003656469005651193694095800288152868586767282685852929275839596278061774493911749099723024647311821043498905388231671889173723564029776534966063790641949274393383359740253171671720805471799939560561633540950678904486616013142615619942895846903105798116642606647833532334993980039821594152352965678364662912831041140881288461391389602424686158271661095865620849107216516481595183593318730746985670854717559232206304330947322437506877726679410418264160052781974864732120395791674064327238087223258846179016560524050014701353074276583525195317266193201479276143350435909038800363022611970855275415779049501301445177418778455901372218580199896459998371005163299076895132765446707633304266529582602838220512254419617036557098291307072712940562170482598061093949549673515903454230395579358380454135170621005578571389282835505105456134107027963338077292856959767720642126382041600436129988372593913522062058165469264337508030853569510849038989996144328552474657044276805818718625045187469201490053920827683709374088392826020997935636253938456328477394232450132213787712614811346956199245645943545390878689274286827445942514204091651360762163813352385953128898380035083444053284823410427090808962552992587418402286226338101086192051469125253955878079846697351445295552499791797408737432399222450457649120162967428232198547287103132197459612124956293515706688827512733292597746961328493305044562929354062939922368192459542463303841237246088385422398634266095134698782208084780470589894116652397681841536874025919163189334075392400604979995986481745840358329376427872090809248854723318646084897386658614537042332774018837494564611702864353124599546095878685613154766891039104919425556667607840687317050499784701948726326487940773583240732536629512802486275306599916890999094727561186752120271266111941991226775828175025417927707913972990039324898314112049178306273933625467302173580323180159997574876752540335499932565225610354127346694505669223017023634674087895739806642347189550105587927956306253997617291194370404477094357316767741125239016803628708947318847117955319116678574458242332057977419216209612356424612324837109703540094343656488855442474266023555909405003248452099923291190390485633545434980808175611111574883332344391384642286608087405695517549722538729918339228499175711657751667882445267673818359731040055666100086244712741976531805052442631293021098601217671060753731749108977316655863806025542609952689547240744344239968494940179874912526490816621755249530305034570280520353574152751155089823236880446037133075115046314830124458000110837912023243645349719749999476712158823043954672256613463502929531516205308292674366239101561971640556028420222308334382093949896227747432218034926846272096608821864328479425573982736267321588437683457564892301496142517573477170884580330342776792216199796421482811965080948293253827367473864390015109955736953864554825694446518462270036217678877027723341198565087083713790164327914253062829650410521446066582536514525752273037249610624985621552646188614453792632882089199585761614371218625393156702552177677068233295441714856541687337439253073526734053485575677762150597951721252526303220741458083489501540953361175847266208848898686161876155662248345631510661207429387100517670185946802914678958616062450831400017327145727068545259152832908755323118691845355476558182423817707033002206086143492714419595683508675427318359262840801424816563110136445200764699133186826610724349561638984197443161782132203518332145458696665246423864689067745274282757215415499135329259933896694925415192401679744096868433117478692185743360741409444586438709893827970040167622932942764757976935052428643432542112944676354449342365038291104319474025867185101588406440926295959304183561383541803296376360634415897631065750979007478034822126573786256890422132026323335702811717934704305081183329766327097788463028861139413957538103665582725744538946133982543863488696577637302945370935114123561263947658003613308726265507864998405409735937405922436657412484305860359860623161927965217649784459647565973993909271313694675743956854332439718119445254209036101247604498612764441344223450832353125117502063994608286683012488319986773660249000835580015308272676233287139879157408795223945724830092643877648159118440710098675951514020198944980451946733918119461965344639612456724106183019919593491401293742475732559535925562637266029570080598775308015865068072671465479301970412062118989185877707058848651660922107933163324791162984483151988479143122152892726480801504783155357286159245729171336975445545600952240501006894164606983233544828175770721304215258467066298775218502320304184659342741067846675814116513174088185474312622242280132679380495684940352467016908745080212771346127062189031575335974747896389247583644663292697671293805024279328077813371095253807086257239860451045679951226150323688347545987716212437738298300873281307865664190029085345131474986044811490439617302013987163801552090389327702291383252925064364716711199440152499504910765513139170360039884499723823611823123851196107745466171591692051230222767750770121096785409025197904187110322636029655582408240460451985283586846385293103865797742496143443338445263551434977584809269436063161371814500839124355578797682396023656361676995216022419396999688612584887080525785390848712471201244221900987033033366350164752757468645319266624966859977570476219058036072382149747348207219824076561667661984455411870572280813001813887041697017282966919305329519279232190409691108203995159557755636790495186747917733904051047589297873027103558575875514551724257336842943117896417912115014768759403815728477186150086940501614314418297547416414267667504212848542146995420274332648492571449329268472819172207928119719287933496185453670080670648155305372551550132437358130374503814542374258595004218263945856156501587955597287600327159249891845235990372419390711695900130400219352978622499968352206532348586572817399211067566803609276473444984571812949373617883410485228190347682813836318935400856314799946035848320173830418734219000293811579129289871374339158489614304406202499242775125520760581249338662716692262012679903454710645307144065995722163998416854829838180517167649106702523363824829215690635344911872319856384323888811783343578742443272326875949788105361093995466613877266873989224213326599347137580417477423762352444581426739991643755999177618553946194870436141708096033128650466644796580984970713263112132023851391407357414789478001098392006658426476349315544864462081718399242405946127187130239013983432430998796312267002288404746380747089800817066473212188499487322049193948004843206319917192629871738360333689235282342085797792257845527926367223857286580085510972901168344271141787727515152101432305144295022315119781536360359557005139977693240698366842945959920411120370379024309392388159092032315233558729019175563756936983850916875900958029323310325517842190802502530710690768485792167736480309843343183019054318200795835537265789266566850867647244129335669780764885647607750257015521526745138167615309366399952761224757587240971226899362494063638482029440412361524877255175619739597658065744316034890750074096598127514644655933103438642023834879523378271953408030052083433966474949820743043980243214840457071424225493849819224959997928586839369804552277303827815754386822294777864904220387686411995042052059966528918574627817478896637073539962427596656191043307215515816892897904718800083098194703172571681579952288859698573145418882664139997029510676209674676133481193292638834809543737147311644202372537834794119684078508878027988472284482216984857889857262032178992169818425450729264703609385416969284150896388285765956200073510451639446764529983916599036451039708653331926239892769407781051193882290757262767170643398198527759611180331713652007565734159485290258630483521974649121838907709508921395756794308828940219635046476887543210733274971809390798123984064319028486277352937951057495795045932785838458736972562593541873897247796892563158556544568237737690712638618291124999526001774472763768259521468176803228191439175062154799379439787508181668792424248826940900362131219193822839973968278009290528078034421968048097862182379309377853316154196555867510099334355958383882752323343796594203757684678427095381678807601124525151453176363601986983885094873720493818696341694352719367913292314680023451313062181622826205447907938555659208768095962989168772859447733370719889259506231807170930099857220642571334052042695984480124147944520912861667475901026947747645457177892316978398326569640813451251385007936995906965642650616629526726216979905432708012084626729210842035449781487308565485493476770652656640608444860416403408211134685534453186691279005471755024873774785033240543551894020380813938999725266889961248224786938213151397081343318631527095936085285044831163677407238207547478965522137338581961682206844284230970483918846540875827136792523066338588982829805111421253875045896965918501551450338679877552504010084164821533900279932996578705043097823883724375231062021163653193816640317385930074371078119874921027853085754396472978216938321887368910503282743291064673968725897978529901947341238958094816170510174857924161988185149129428729578539646385597629603589243164254919494134205619168191379579404934866747325243600875814844657165488914611266267131457585952380284485773689551136245973896255694627371700647763020416718211173948784046794649122287543495264075463944258965860241593738285377854333710757956064786710293612611222775819095260327793181883198544660125214669083072359057153502015335810369064612837783831477527260798179119910085130367764319189540079835384725614626536428361903813301143396428283518216744034349018079401198355125323181286349091316901876753131184866616321517464047178247613983834359338621685125119924970219749830115269108234987348095223705106137375209665048065228365485955561274973026614935672071922633497216043892509400113948686157097112406736981938512927953950746445026617786837731666678153536711350444229297067429105835042050428993972631457710759357988887518642781664082960172080027945647497694196962248278613573505629157783846378636099260030466687903786343938380089489001637763965215919081516839276282601140079090583138606777043326256066571591315976678291405734484145989006494538446628735271259467230983696244981642153143527348714200031386754584385665098937984508239040647906843650602440426830438841401748392348374744046949552791825381215094249067186230706665996679727895668059583226480372561484398643789741177722101857749084220637062287130171743923742777672645839387561423054329209660158653149702084738272102559590021457257239743907856292662926008469250269139603724063207276974866827830017389128743930966795474604390325462533802223534015692939245978127435374233405734802958446528090552168395594946263622518479662430160493066217395536292019923488489765701226391626145928710572505656994474914590372752296036541239180564226877309476565422095112347620042048935664550164164270357346411576277081872922793533505406986558083098086145607494732836811887480532234640909626168719374521879837202590991068300034338569191881653946491491751670322710639125071048353180012518559577472766168051868778526617769233856936942774465962568650264894707171734402241263755694840371028145810125441792532060164747935061287657520560423453902738896169481717858879325029418813862542338581826273007244657670794461788281389521657089827409050496480063324521416545016651557452308109305890670420931783798453174880573792317734942387490025678621388328649233885205795279320675053344396708905676277102770298012924521834819884191154886963444002225080499206676004836682301593409151211824911045653861176956644761848892658516578685312281008267683974628335949585253253144968241820839128815256823424823901089472745181714097852869137060073075572495946543914864068896557393529429051609945469717944039648184398542495377231901091971313456773372626561729510352734443212609122253023740097695262678713814980327685225153540408841773724842036942615448522383297892000390828237733129932982787000080732430907852692680871665879721599997037199935173157156391795338909060131129262089974669810471429748565175476462431741860581078955105054728512000400630648158311852982129440251077384934611308923005469693093476624021407497957092378591743805683765998286940068186333697216478867887080735286858053661645323709018468346095879355382631975952630665088102908419920959334428783018987364952451544835176587777861732205247975861084956086654921781427259940449240806834244179899943522256929486121621104920355980043329848704540633377765690318388952768868221719959508461022392281263604524164111816968448982847160514396309856476415723566751739852780194684671856477050433379168741259690534279510020735613997376641487867887688049232731793148214915660936204252094184163509375851670272726230055563929773919253514401828910591809522076928116592582686784377538828411151491510807290288306820111015133774324960607676811455798674931732760061114817914805333793632889830234033609001620308480597924694411384855815589348190976286042154475031125679892121489197188026314597894097684462349406159801006652224782221174463079812626948828674299243626719164318005797765654671112370583774374689335248289677728093994540893167856703655355262147683436297723955258507318298589373705442063344304933906471068311019387119646656294826065922682277036040154673742745897952939760212465066800939870454785993229797195284677339227205798976679462136023203947009850405799782471367788089897080697797551476432402844034898148004920812000454780443295552373808866499216310777201624525210120031896152411906057834344620968147840030458021447923555133116387192539561554852842553218544468113813344626830580861337130357121887095461970600505945619172870344072136071000991246502621102270769706102992323225875407675565753628913591261860634430335430977278929264183530034422682051873311714243466370807345734792730998877507289979600192693815495474648228925856808023451342549466952317557175419919543796714049502636867469467645278877709528311861417991778837729454729711193115820440491866079513323495294462332146771969880932117280381821544874289825301663133776086121984831099683787870146760692184795597933346835240695430999198850774736202343767107063504462183352798134621303015979679566508224470697955212840122663801279337567891536642485023190400326440635636226268766856242469103106394888418767434433480680062300688771777548979478950695060348442583058241804901645853966899420002467606390907896365091279717939089171760611294935343048546187938126236914518072391064577527690752063169035800504172098067093149790837898322317936572943279090182126973289374525941990084986029104686721798798433071795143018799598299337164442655364812603595058123029031976784703511157626818596357805496381958066554992636925758133119984636499028797728701417201676274130783898997862118850254907520633015827693412373928838949247005358327060251186761045181537981668262110666026438886586873066230729046151739922358281513051891572285704722161735124126594448981406411284122537650335601593451981603446199772616164250068663219451099906104211284109074191882091752842120301930329121850654936982411128434855264891763395163502441070435432508692993689937425837060064412597398277923857409963657991672641441392380019844950490582099030397038327428310748883490597108228753633021881924040818997852586541481095106327043278158575435365424813188884952118380263728301623370898371597809439267306958705048825935290055721447456149966797289451063747159576406138534677814951264234944821564014370173909414239681482112862003534649279945099174264703385188140976179224153518688764814675955024397370852747922187897958381172045312057437959088397555915122690337561129041690421797245519298814541775732341487630297514930313382208841039822732917266052662356489798648028346460449823366327633479749721351559147666163210690110689265512141487144407004953616179262869252893723489981680291503063152945390621080136913769778366362447615605211568210554305385162446000907893737238918539633034399318055415831854657165625118520864981522608225717498310275895115924020563275350087764465359758453756910784454873020613219647945090343790020261110005989772828396172848110632426743040177996536146027185811953877202185349520161958249130100894448412527086146072585044516177358523062583443065191792058929166821162007860489980232577301236081752330795026941708313560268981367704457281911059232615337122299391662218807636056164724435916340888556346518043916531576240634460357288642946451646824567749617882151118433175050948861975817770218597414822886283518593881492712113890160295165990130753402478141612128887760291911206707436945014189995778309352785965858534133423009630836638368874726571621389193075955758230948750902551000319807602012100594607843684981964791580245841049406464230581240053481530251702951150698277161407238164019924238386693996258835049512379652920101622599737570661497758737447832923685387822383670786870944804928106437213066619990605300429728760775023581565515915426832810822208635173642605897516861624784357391494428723559398033493783897039967958001810094317674089710542516404378033988240839220973229042019291619033538941421617213414983789719303852982183817629806348100700364515834975839621445228444687600186517477299751528794764426266895383111711852508906687484627567786575890003948848753506286670937939210388838264694619679999374061821759991993260112081591852872662428875853787859976611410554955047839166417279585379022015789506500599746512675141666079807465556146762336650001721176548192983628899669969710406122474130039812384801157468135829879063666035226224031680314608031942048790777156890074466736313408260921206412920626344575821738287887098494700949266629496317143143565657933585711821622526414335889639886107770483515297157936484331358937203575339894364301258409753264551820062004826552571292361039179010224198624566344474367497683075880149833256949008933489650964564091052386714950075173547380792655682552391403762199751661754507605558861856045708219888857727173253667093747627646804335977141893574386534740140273912177674696531028375259587131577995070145136687502557071018538949014250340724057613895674042795479340892387355515636505905119448579495161493699765520426766479130655913012592133680495659221856723858545314926061776347690532762800922138868290073039458302303798457098051070024308210165750356294218504023313451906760212626532256840785253771571291432263015812021331393298850566804542041420453118849772078070590521563480020419751638534009599776131154939215629263371680253527397784147475402419948879370351370339648384779658964452466073974470854317958452092285883805446334276438645182789937359690412391653749429938273283974262404273104398662647269859872073598308477655924233924627137988341182116779647154651642117607383647241605452037558480158281444737188974100453979857695234198688663138625696087099086025860554710939040374500593411392692067776063581690296258895867149475269229107561965834250645687523182248763730338183449340040986227800773252326586362384971962665536700494935727416160785824770709225960656871922317979101726968316501639143190422674460352862628480084708019562179744199567445968098311409938701790661912533834159458703846646171559421951911812840026716714812650501561846949207970553467692023462365680547969418194686981540466816812789763566306216967063760255637429722348041544569906029013004943136106299919408246578109120261498800005944867364021526264873834954540122966977897875206105877735241045898202866387192319069010176522630283882404944418972262016049463326300554027999637006253442615155340499019598134362579983482483745533374855363044141636986434127171432534432214976341362588441461160340653647453508906252359804824233645676578811730350390454811465060289610985549299562825456223797854268590371066167978513544695293061946850812747764865422261157904049289511935308688681324148438831852436919053099503116460237577766479781718290674760620955020796634085908478243696568994499588048759297829461925804644416050266848396650612167546560492553720558961786573541414017983143597935832540938329068995761667455164755490046023402263642342724083071124647234679923244695999468016179562821201236861804789097161148830340824163984695884954736850134783373785755244919432507864557827654155583639424214265023501987169064285433843266591373287056106577084820426873782915027771246152527066800192963439392473264959950843070624509099530989531432946900255355053897336652855276844940892799553408477174366862810500696718413011777464847428873753859365238749803786570094914573555104073329552034411628529874866075697142797559827330979666783568799988982799701882328728813120778757882545327672312091410088478927288961078296176584722972396838850536762383202996874208621820734383434717966783377607036580272855973420860313660830965270745743307657300808564278746351267689208433964160430702656421716215106503227386008335937097384022897060552399868743320085997783850703156441527284516018542798977918221415489246887936066932327646038580439866077208452682511137609447131788697069678803562599030520100837686328915545933741803565199921016819608120553888663005585258538237349699955283870079040763558821003611032346492375620459989256224710570050094860810326805936157282463098783510807142368015442270963579469078325370439312036088941773454414117093623089427338117477763756614274603405624861058910794525667612247520765594233198849836894265178654671250240169950603123648193699832473136337191589067403035713055190125200026259891698170167759090842324626106702777714378884746610062513104837165337149060379832614840656845462444636126574608564641738258828953403076608508069943141554978466313627116041689649660457204636529592480894597823301520846759864991204722008303825123213139970420575167496289781579246609191107376802645928676590240741585954337888892116352640157969114650567893837895359242759860306683335808214734316691055133609566869829134972980893451345005417705290886748213457187940401208357218539328595855409893186762028223635126926803358971433464550647903704973215789915164933457430041676131646550864929764742854059639950554795336892419574054446867218384321423889277021213400698218576893952555971577328682430037380445196538403056229583476681024660319979343508013773901255355805879921931560864771842269449923038994645068940044286490069781325266626426575859133019183022350003924273712600901486891677787292310517521406070587034352420954700999149186756073267092530529903261148328125627670095386808740644494938150763407315331481588674531558938379235483893277252658497691545539376234870186557051175006009772861388617287612536278532673081724908563610673123384804646001279647382107543066197401882275281529039951399169009422863384916407299129671229518063556893405559275573752959010338360331195076807554037371879141015202413061668037745284722527630239589691223554026663036713901695917397439233693840201435194484982199312047997301738006711658340326129132174187134077334113056886019770122276944790133756323733923474690175978203357311693040205952571714403591532538717059758782453935734291818362989632793261367827120932763709877904050007266469508836803239124068693347903154797975083931617597672484920514336390780802658608805523107334631560658545554768254862426778594426478300357919296576235749198671511632978902012233851272533760710741063388900472211632673252541669275497611609765095889203624004908469656524703201199386977824356732691821143338982640090445148822706877950674296534234356714468396124267911553032446988277179986827121436225118160978969395142816877816937823349936488897611497146112163633222398049453703800025853145745160275996049839541981157069306620536253056673959626168722826411430023570674974890273717514822548698052671622175743792079749836525826182953570116334237437104769723102291354315694374604883369813345937724167478047220970196753577759986579065905131969703029338778995961593138775844967213342345604120834869982144106877048422130041280590252089663103455268716741874764177560104871767004590002597860468393839259457419248775096274311454556442620067427406849696974934589870403670700287436689735249607089171935487475642442220929615547691657366796510907371618599144803496815978185431758257450782634359613626365885622954804913057712086726737938855273132762568586155017496735047096593837870675512235462990886968780501429159942642011856610000722946167172874660960173886668503344758721428334135459387655475468371659450886124014226931586602208219930741714100109705189828463343244413735416295609608050367889993760095166140987413041730570354938996856636540084980476572779952382264087626386229978298124483102423381832691257056894321215176833024991874233663297923742146123379829846064193290437779956777992637522202320258376614383613182397283199876288302657167374425740532554529926643314364808190284737052197178272894604680837302130247269661850184189128456879865111795486084460835815606568819943121000618119361122159155679436153264426598537966285846854414033288779504438734474884441703122172828651436377524436753204519765915078134811444550068980345843633064032901911655406281958294671422944710025203881387088503272029695319974713774429304828090690927538425464122906383007446413878876352891200861796621231098840378407455445518036115098500848926079271764899056364559940612344016829184061446955867160402545067819935774766224030708396949691728563504248547588193647519255959529890666282319543833030632976913635654597520984321290932340028448449999219960895528032095701566889396970795215442405412297797286429454118523307418525647204893057263374089567203533167334874604124435839397693760835827603195915352807960937615002275449162250254153993211750350038522250460546040903373323644943958300622221891293328579959569944260551402968167020110552967093341483779177601419685455428399806169459096303622736136699500112966096763901400248347296105257846322568633449979565354989041506877546518943861226967349734025792094876336561386318078965521005187137803982188063969302052111530967362235642782890143833299979839056876489607701623478129161989687012000413420597589478022703665896074401428107963758364284652632901778701634190511145891217887909640187957194842203842854961964909351449600768165995409432210046277266740065131262316439096018334050018121169505198181861180057147282702904001879585634231614811386841694619062743116417017216063459992615563253485154549088903031475821897218635989130415772063785686826734263118599646968019436331187248996330295629757270961988127675020448148486853228881915037994862477438633585369324442736052491010008647301727580661565247765576216919009723013388695578752485847678479426935844548478879734216260768700727058803501505081992400259016971819747316842474458303237468802496225877844173643174366649956609496594263490416078557888991180372677596451348909242995097563132601141012855042321374033350019923955742004342049478618371550497350105746783249112615599619590835065886365724311908423490784891188417353035545601226441394038471016241151891661056920261447048294331226995831503002020924281389726319615510323911456270171959401797917432550749815020295139977285072540985098212320805386598749681919733957721446079696838580896775443639705520669706159991725818758292655971338040945122413369454306289291650872204502597333086036604529947742142441419189579478514535433044662807760383890566093204112041387057392749252246534481140008533932831882979204262397491650634294539113353957218098521841110018314742717783394910844174155192740467665664170038217947678549111961999370093873145960577570610027879103345635732578663035684059270054050357336385413930834489627637587248141334248372106830075166837542457724793824230293512108511410617657552890338520306677417231245536888492652527558244447845129132470137626644524848375387410362336710297159429374253672246184380241388241955314199770594355712884809515176323412308922597890945758512482088664665326012785918772536377161410171134986058662083940466574130717318990158173920845360363973325694628690739693296363335672845365606272819762170643056238662448376431478883204083251217089718748996462337553701411012442634050263867903556462671550884094870520102512017195812519683223164006598769788020064250942757784479816939566087137378294358034906202497978535563439754122275337164235131705966078448075198147118969307965584927913203353036722749676013804414906525518626266519952821275644878334269354805001989636252411297176077124214401394141919930535731163408015507610617544037397841562147310426921062816003587883700559607194637814945128023038686542276860454502853232411259265689894067201846737239086605675381338440158459476811639543876661571170120620725035507920343986927512398338633839054095399666880497074153597779984881495683155931365656796134962801339163568710099621005155429646524416395262202859026844497977518336287745642373783259118015139961143248681463412699585659579382656174390228146297760077334595497841534526894680437991678719657661053929580380238308773132888411830419928849140821376695051901330561490794006069349855495471105753488705494782341352550997353188326019241147820406706825036876785003792592776536115227691615524166049365720516157955159350454390948404177706598632692522125242943348784466260246110485578598850464739780788458217084870409983763473857697746173766972709037656130046399796788394546468678504638294444300298657127337348538437440841028320643622622486603171146934750785805294251181874505589374491760477365189525551299458048861067128453404988674136355212454953689675914291674610093937471620282658173170854552922518326974290917648305473148205036817990355137679569517911323595813035758659882380412741516781671356929747030405352124448824660751512165293685880799469250099581858302241251364020151312902171177626383439137988210744696600218336391714318598710563381866796050026737582900726079794412669959804581191567789064893374978595665614312603358220081453559156805611813156026823446577345578929430163926306574816224755430751394996734068453171395833733978733643586076192233890704900451741996236005267576673540080089843491504364071445671533416579822476098692426511639060339447558983514166986180188862387933314440899809548065948126493714495421956294980872109201355673151639815999555849608985625992981269594232765307631505852894021987320121112194824100557955931820124352670339688311992536604533264423890215931488370892502986707721943625252812900752190860427015215495232695149133990529008389232606820001086446660595377589783174157055726434721996663144317967571064701270115167949287537571125324233286365798245529440588438252231405790933222671564176489326520540629388522138336409306524876963458114822049146053119198062369851366646073664553088131480803518824479752771134539076432714961743377033925597289960167023570692053007194108519790431825292574674518998795484007603010766242904350106852941972881254124092096457358636494690023720001701948360212951252972605159691354305615761498488793606010625916831611334384342599302413966789850194559806676799256495728822530886478883122093602892244296375363697538284484800359705393780809819206580696431233061403793301824296192721228986541344114335023472075869875550234754596207339465897741211277347465027793074057564835591161791266924798087354064452940091541656016900233087257224055346656607651369299266949733619441330650767406091105511901986936600323100682602082166638301055843383567483851256724766851412438758844713736413702216718087893847844085796133897582276584951930100806346423741303418107545062356077602136223735018467091248696509732517837560077162646405445624524174154087985217781957409859644215990349684976882885396779921876753720553869093262499735895915875281431336228172620272597303235710002155905116643922654342797232032786613914111932921288686845685527101689296910744012585492990067298449899079065897657111338280630844311592371175451557210387779623838097591940465045528275945525304010455356667810728891221309326143583650799305373039781050130765094474334575749610230244310385319937249479203175064257952791819811123724840131093687215635562202018478971746384078085389907625509073966434459186023714771631859712548237538333304234993224800925580905842793924471214388166498396975683756032414026951504672824607445566361032826077087036717122757320598481513116181130619013513867187474932353878563659343532756928518405931346495117858146141587884513705848529485112424807975299513017954846124234063812171745099141955533706579143404461177949434734672774432614580358024212699827816927922548473841389724786226849096974088678667320940690449963117252479923322506654059260136951727441237416253296301997749678544094590972532911459947512305784359421130687547664616407395379262142037366543292331921548014851583731288753797834767009008086155997981597705914359462345629218809429771346443314383866505167436002292101435359707013176469950456759171944661983965006751089920798094750180557056374876963536919033149135220383626191050082510198462064878008369940616274533624867420130653083862475246146046756437946869055452169079825187982462345100545660922409235670076017307137753210346714207699471805048963744859720993820717224796879952224968707998166888493471736848962902440918517328516682481425096871566965271152714525679684630120659728634400000135673619335537743049238509052795581653615432231317651237015607981418917525665963567245315778910247803515692054237191299489714909427208513156608049166447158100914292618527499869344166144494946057780786211830597198090136991975218083721375295120251920141915422813836880997394806074051232027096409881498179545004585565394994596873966462137723792241896197558453945275635049855955946559952660439220376819407031308934138983321451205916178483161878206492384944172488746737855380902418968510102312612889466701025205138856034343036390434491978529259956485200264911200885685771265990791165987929030111646664662060677336446018664994192188476541642444395343314813776401622777902930618404283800177662845335685099432999074309117330677658664215755773665384960153609446086886926395521349443366577185472881067389941493293002423796543274276573106119806874905793644411530130033049797135233802874946187720378843290280039960465037217295746716526994505291702824239971226227514173876266729469601092762303164362834441909380839938325110898721649273341713067601058860247149255001159317549865835165361629994235197077775063257460741124597652832315134440998350810176622658926620600076375971428864582679081175913500183682285399947596198243777617396106460925063846942464868612683593672009725911810676712994815063827468757507897642874566934147371726722421930406436139750175946547646121540575438973235269910655413398458549403541489598961539486917889795745398555494461827763689966302641547637506820722915249576492221834379837916213739720293087795161304408147682047114335869912292236822335886427726151209082917665413103827660170936499516947665825926878437238001751283701911675905278103534111966227161597516634553729491976272473268444406293592977584917450362055272840557794009186756967953228932292646819059612731498207641008955168920925648570374428872437339194180838109767679798514891441510777743966465110276744563540023192046101461059598875959063336990800733372679139626201601788556868023254649173226015796150609442932142927688278400719872700883023929193018273238891926206450219646358043288201976616813019830616060686009546797269130508026347583376849892132370581011549984834684340954721391344336346871059321172494750852270101207603592656410372209970199964851254139775511038868464336813144691398690244463060292219114195390964159997002272904971947951375283485231479666055091676300230444038691632920924216761059889433059434383815470241876398517397765682118783040483267283492456575602761693107552753857629792826362144185975578933357422946247981701819982842597394860638244458785471735488279345502229347004312496410544716088308861629970757707880442830232290199431601028642128839850331718365140364909732282498752501668369377337878079270645986454336068267223742720232611518191295847644052518783628689326806611203412577406834359461215936896039418914309743577420698216666901669276167875769901157370812234174502160827185134445960201763135197783853516241263904040993887243694386209378622548068513204242792168101410791535246753278746057189113977797317941909821783096961713517646350765169817996922144547708576202042379891833139536694551355593973415310893300852888836291480222358517724018016882399597282859457069009132424048950460688232871947268992104292834417835486989486196688947707467167526541837484361718205727648409849724538552286364909165431136266272906736507459947578697791410235395438024235066266875985249975528221944149670889486176160893675103786062675198611300970546301387741716076771236084280703516962651026318550160483112798471895449643251385729228921370247779123646467133322297711547967783421349551632299613039527216390103071557735524776845907220262587384975590432425857817785330016386351025362323709778594892659432697225504986611480548782924638581307209478870515464277367354415281945162725704330002755200399938599383126330593001383653556631438711286061566640420576589191843902236865802714746306985785548429727265040941782727402263763764665511412392416608045091008146132410164567041524009505280970392442767708588259361416964817761785112798421269516181085781786658460439277837344025162092984770873777336399812731395616159005389705964370194585520450577797594630710416294989305810104244062502003110018409624138541181339783976341886257585375778636651981548944583414318012149798388573645012109197967656750541353771154796193666791420015500484221937567259072184468830398359319408174213234440096464629044925598537832905391690363629963901714341266343605575803250912780596446993201802885362144840213216022128006753231861710101573049220432769997078648426171692329445728616809956592103336002128447715757295576870518593353616947150944845158694714833471001081141385546928662818410015713198808970672397882962504134976957102692415814691354175307946981736996516585822557544193228190565013274490740504335787290369617983697534030897732097105784722736846822348963745635055885890348988295960178275412714235797722099268168052901256700557143020148982640355027148569620745102307565588911765140236332757668485956751321700921900816143277799754376576470218129280365644588858932391200938364801329405009572785050121057880051854354432785041819469766184254426280189447681073700736587697128644648974844262170200324944656378189097851788684497134529515189864370235263692030782223974997518335193461357355749249538227462764994403544922102170132168809712969607838109335838796473915054401678797699244981579823342981056099427303637518659862284287401660499605106371275382847642457065674904958625004204279777332398632300609472234842903250850800941414630695981013939137893034883033136058956286098653888235730136255094115652051243282202379560578695955348442995192299908578021397719830215031565422750603967301296353334637050368568330119437962289095176762919264259257081567887718829446309466749281020283981581810340317932641120667708916509719990134797826337933027612815306033797794894112870251610748907158472496169403809105086813008844860348835161852559365870943649807739404998409707418864073321011297916036823562790313908456363943783533975585245585238047156868454443747746518300044175371549906445626777035714199269206056893510567431157943880196166174652874879985544637269491006226891763463566391613383777295665169273822231388790933465389707597381869669543047723218795254896956186957817443232500805122121966406724317927706569265037291807025346694130738980265387419994240189867109319107146445136367280495337534861940570915587330975893063559423226115709317120755129381179088876641350277133257310350210589009069313163691391232591837967826544022994918071430892372769354107876568030432979559756389722055912019778487920574835340400473553066882409148032424319832878838056023471968844376030922345535701507275654549950257829497970267787167534088692585749827074808141179602377983348214468510538586259460514285778342846916966668666041840359973870319268714519661399244493043659967459959000901971187120402222091908376098299299230250945805372844748703133523725164465794586266956964954048519143080348199633686561104758754673902949893625060479357525058622704433365041911083615860405552715969643286901517604945822961707102019413486510237943678458913177680698410507045554213360317941603008041435069958788602999870039303097262462177662292249013746347563197660001307962781759462351472015497863357849415627172747923306903646876682867492071900595283555216030479151192472184906819803440657917537799145521747348351062024256169972972656126213965330539402009999870256698962741615566989940455518944586009229243171481494234939527554938457386760694609818946205924190764618388281830513716116933652630258021072178749866083708404172281224197499859680711186247029851550295874911248502773015931230305988130374864441253739937987173011791665704349150998724626662751074578431230224261584065497414662514459244924046633603873881282429308201997577267688740492865144056718193819417800217163728514004413438569573019681584216772468730529940430202291255622914223970222768907988677421592637061207642784605045578097597549945505083801246268892768897235808002432930581542638413001403410477977358191233968386940632564084147017969014131497905010094026220227611914470670673308477330205683142364732608876931634422093134222205923231732867529416873610508433660794985506884738001732486242052411223322820390824937420281009930295866550714210242781981600220112638080823907519020581737693735546651615511196207190631958098407420274098407991249357973360726906318039139884738193404510693861816753851395055712164852423519117249020695217383589161178772520302780129586523066094630698345036073639374255715431090845532248071656035977756409457585363992307989240434884446640318153200939502266344627534911324869032778957835407002878989805994436096631680945152707551636325034859447144402227831597987674213502633306117918598240888125845877139650989858681616192710149670757717080497766217742164805543183056013163534633130384357497936155012869681168588430385223535884679277745386967692384565521059159994528752098624778469724441337219501275395421780803187612435752370153913965812228540034026357812587795168758269709928364454826759396969593604044062738411908457894689572717949495800212278731579398551261078102413466276761184912412019282003905948838001465593575172946586464510366562240836454790239265620346302261341217890062597122156992743503937339311173211776030316297843841471809517184994974347358730378872619271362724931597229273877447399382076769098311365998891525234493848231840543591083792211174764270349010554101705372649505199239066257258786944495650023061616195508135675337731758834157535189272607547003157710858990208831709517136191499747932134949155108027939303339892319298969053668916242351950326910534719777021950425026781103908103424307082835486697813861013857199484525688957931363677961419346632368024047432710404557245889815421373131209974074188552185259099999439759299836859442428104727772440013745026074864802391234056045422725556282567075440566258564343576596880109481693759508789945372595869714628101933953755596369185880853926488606160419934439974121960838728959935628458211566050326179882469143250466721172338331095251386248710122892263507686221899079498496467051975788194022315497382271707732630228359521059233993512033967066480601918372397170304614940637330705755597297977613675291502258624801670978209958426059941709650107696012513832270364897996795076938891940171860480199822375023021555145976299411678548727258790690945010360732945847217420087240204757563189405663893483191005688988567526721045383751052589213602434002950517586367999144344670783852626599444420753303196190895350553077996047679190973596414545947173310278618361726525345038617078237868353822087669692496587139862239273020525367376193128759218942843541140004321829661808344999433543930165187591727504082440842376872655277453090801590242407679383612470224725983403632153584253578323276473194184318218057700778685322103711769834036279396829820552159473050515608190883952220487958429704112733388157844951046274571306005462407042232160623217682952227206528751141546995617578135526713944223641094970725877764219038337175057377121365280953319085599727620306998395435007920733568175369893650087868570616348906358552317766653939024079654532168381364306976795733666484894591130454801476703661482314332321537510739312986365136056857256921485429446078114866685143632358274649841344407385832108575240910666523833504000719171043942135022657876890111781696166410661409725372310549415733337705798134927573931426472538727361112923206211590111025367111582943070541597955045010564348528503984273012962284639051472520113245327398602846485419118540965298508287134714207426159456496005083893968380350405688905117718320027794503564659822180273870303262282101948009864662008587892403449064024455412896137230729980113114556619270652882170216132959157189613308246765662659413371210970343123140704235557330729534839397729848229738521192839412617406790553803069310537638930555196867959529073483152120585887087997802081022567251944766394404501179080150871765886514189485648569343404357335718460950095895468679580289559368841686296841323260096833416672224664929392409474144218638829983105185684725911887733358285864319338261046698915243435673222397446324987462141691286654337093100038875993003846714159179332196388480554656779418654076637137949935302076506741060061271811767906102206179999374237888706880856116239289709838097330479576853717208241597872843563638199354803475516064411042769814730621682556381955718357351708889011138447145961612233627752703973250655979990607233682303846894573868254219810979048506139989047716363434050756047286272712963319613730379962691781249636525892683861052025934510750909143541689486609887010568736747351098125104573918518618413118714526151603101094043575810510723281077257451496055515186352064200185728237821310225045077923985427475136974741533865538210405175842590541794066500358431158068884632626705631609912146678679419146521160397502782925321499212362981880941107715933157982370798278886452871012007367145565537457915000454220308984153520797251498013633300151323261468547536335623663886746364065387917964014990849435518577219174040307665730550345750062724265676152244217239989449240954428477408671632373863600613693858341673664873333068781324924102161912329984449230350299005205982608261820563781029738916188199420684420633160355255656869620310227716595241327289270437797394515291554567529984452725856478137749947945420109947079042598634771434233527027599382757449798296612098025651104392650384030081993190230653514692295730069060221065320552999033593872627435436135288710831825888954101309108982936781661807126865440159149651138384872849124109784365319582538948607154337297862315191543311056700468385776939090379510973756067299409981238918039377022097974659794456245296665224983316526380712181902070510904616736192734656564249270745231082530099642426598322988077734869815390801982200707569210892347731840723417725222009343878482038376931102611975822363109865030500535465581525586985980195224442451925983538417267809936142510734974469869546505382016819334341332717617887906283470057779247362837663530452846931114620473340049159647883014788769501292160388938493223525348559416126634359535261346528184306642923289341223162051473133764493080444760689704996204641199421452939667648231530041428023743675166703148353828209506769740226976857437406113051849848210642405032368316054948216344014188707152146888188406578252793239669631518827609242483872773955062162332143395091326159741836704525329279332811526411624553643781677478685103434099784453354102281737146730112208856740097132125671921203718886377102056269893805818065368519088336233537957603298115307842374672372971320779464629144720780887539763659374201669144798524737163612909824596282452428579448861685966534011460895565859797763027892295222837445716342221927971681324734268318111801812325439332002893148474866043599099204593849763506905770378544527272976745153458974806078599428591080964150603775582665270203823592962592377475809448596038444626761410630443835700558500398279013094227142340946364891715867489696936098555176257381972764439556089825988438720545862307937960040164691508066083209270337524734978694187065408461915339041735525161068051912329045534051868821196042129927734458707135766253008646432446437469843196792674866206745586803480866803536832748299376706635344506902797118934700542894678204807854954493542569076483175121146399157382790670773219515324814880777829405950870775012883563077076462113898154105063483171190579958720250043705797490109705939300598508714768379644216424901499260277243014068112075070041144735017164002275240734010805919035111490445153556109036158967496015928786061452386500169180663905758091178105223455623355890056570173300561825749626815809444190273357148191202476490077267177087549845165128616827422404686035219876045855912128312092854062167959413795690778592817606112505331990717400281069586734069924298168547956017952756677809278051030484023912390376078282935263443048892988838548672630424950717012056371977484873831738880311847537141885502344264367365772549892454001738334450311775798150324966791042172453735287290671688620723439798767038954909710757693580748784738658779137496341630376840875666184772288016146953378276614991038665080304831934701376259670267699617380916482111260615138923612561464592746229948178178349526141638685354820444281905524636866896807407895976452131362428545908967942692870512929573041007199177800179694089701841327280176681678116679910467016716742700046593368776119628487152983188306896856549264389490244843975940650221347686321874980674712500501481404070834218273670858345341099546715777238367022730737077571689637705433861117415482677077944031085240470817755304939550379904956248751713648926761564364715054294321648704560516771068417935735455532972250672004400879461192343549859562436475386646275118373313403467670918084422699482897906212224860846695527968803174308419110636675129008330887710631844038737969964690708554600073513220664141842909503664617911200883333025714122222694270044213200403565293644229492432364443544493548878707171415640958101957992730317665791740157853500277643945245704485046110381186667502520033412247619652596292327327361163765131607618477286025660903951388004569683074937372850215686622050575113616651349874963507142132939284273635905268858260687573465023421339854936877463132057241896047523336487628008106179756276369253067744724519437204477641860736944387522919975642824354095068827005422539516118334229211819593458990696036639336392509348493443432936359620693104427765412130158591755718412916301071813858170998840321807637969076456218466638365878688633089949972843015734193184044940568650793397502655794228755542834555533077588612003019282649262764042011753592804093890370155205035992999737976195443934815700258223470610880909916169900863096972635116376127971821128078281855636836417756721031680227386214084440042685458267538834216535903241728888846514967317603329701197061945209097683490098716884227404246941800865723146679176020066973123506477304278501517612942940270056743922659826438641853963615142511294908695715200783463621332301320203517537306959047579102846612495841787626280673900779490734250523884276255408893631886472635415390544971229166779362864214605737579389476457463560218356290955251409490735721976805251531236165493124971894879233414574531588072518456223616769465623171190838224525260379168395206652635224949207365698135876464374518758716760493821307760015634227497980172420196351721093243572787036644269717116250226013342892817702586566907357883630567222539279882266224554951738515460416670743551383720915268829187940243952624351303850654411775301475354913269992728107799561100898682705326548789409364030431252558527462988756795632651086220382552070461073796067839020532629308853353552153264546588096484051965895267333903597331721783706781146487581677800110643255888087685722337209800098552261016705055279094905186634999807374188536808171564125464889639150298527216490969159718737926485279204561283825852813076253149382909347499995235055184363745306449243066468452718967509912358412263169772767256551644684737786628599095112158919956988982392736708355678970431676274644219499014187113226839799063759341176145076215821082167608276969631676040429290910647049082657625345532995006147851711460431072944367250896133221981169226076853418558041914301032685004891738554879553231862236276380236342621203126810459661601018554952271461291783652149764172271531724753981483979788919666532560133982998691483458333825025189373550635448395870821904374645092111566909897954687335142400409209692391079075026182654176103784693229777615428727715883031408574456773824290377661720494661302580711995122633229194040376965534541643293783571434652332651434410988102347046721688636862386769166463058908004756139308302892418876694785833823773653381011835357750478990427001094865245987017008645137391985459821583285042887413673529937325348071737393069820360104972384389109455855691601498773752034374775696916432138354294613642979867511954696972187977603693968331600940763652389403411320280162521905889975104170210814927037099135597425243447705768558105970444598136414178910414398294620669344023193713920511002096271706393121669417522646543597641994130353551507514392571774316558854849903955465007711998386994584639481663893985166949550535439372552815555263521785291153430198344094695607201331389387850958524396790734244898457744495286605846076568419031941005635486857977572315331991930818232164005209178269350319739895377286817855049126656249555342128512866266435849375678259693240701758976211050926706673698227176714484233387034325628708888156023045180406038032825566506962211660412912895259499233381852616649793715286265856881195539555702450169138481937175023723169106179376536706429929447912208300918578022109283352509153474054053548114648391880943242677911927139377088584589927786671835352950472332280711888377631675007553042073706273918547377076520990142619753937012675763605119592094240983257643586813723239214229226532619520414539824357923913002542878364897677124481058384292340536925407469616122354530851096679362888065482502959458434112574891042545147022385119562465298455128470820264225998536013569556400563106640612446255814602497447342375748616375388223424191619795027746937713952139472191243997221234264702749359536153503758523620200690915097577812859286811369831766065684836142635947896494527196382497074597975551402261622739504616113833052739392607415604551727239386651686382821091254793045860646416934179369944470412357448266834493795400292665935941958690621480656400743742215590486198178044983916441747424735283816928139667795656926412622169319565829359577611121242940597768179209974807290565964376490606581086201165723713439443934489349607045062601615970669338719512614509330973085125497888457107263543854118342313617419571880366695679655269642876830814634146090810493992974409173703164217745761904111232517914269775114439850176447268628647795083979121103345528675313258954071295435493335724542642437863697995121769946392476270974601708798705238337521261005735299217027868756926238571864589644382107589065505063730351410074987283990048998209885927928068389558297458835965096484822519553006635238312313174299479719601122081810847402098083239542514907518616629121808339797742371721229301462335221767506350267591348552045261295025712272423744883975876307948805082423788467015598022151184882452907665646707487362598090325184516234636776103060319522153136659221181638061273513121499893981715341449056647353242864269557140872644875720877216937602183408388847917443772158028527919525342724162109334714126022688157699884200315745587759751410729848694483979258013618365548206098301493552824320590866726408085598499266470042293573246254523120000317139998442701886043035237921116407802341235305078607351707901417352989966273859626077122463311908285899834752403997554826759809357497229905659293384190772042824607858624627005814805535024078162845340401386368180703405868881883689466755158701253092416376632713617137583116069249051390931303127879621336492579998689832039650942919768041260931190229899533542202551978690009300520927498955445732276017924651694717965170122133947651297945955034152864786083183858320033513503802573135903515165419991707205809658248517054598621013433633300690363904300268935705703936780645461675914097427015339444635678737884046423925151295254212107883356369141202342168780848441720526554766605731980483880550471358745280280313899892327479514629335665400605942968209993717497317328198617103615510390645698405038952292890392745815771108262850591247729068873195346867959233136606267919855302577894744906737392395132776478120742556785979255151855749067917422317319512729641017166295784916525802221917689640538767972685405022846473189673248527770884091678792046655042105386075847497899933289028120961372759844458000780225193340251412001294881668467016735368753261113982855387400785759419695727354082717393317656322371565269980220590115146493334811031576587322475817246565695022750407557849976993455175122079093519794301830679931066347173969230463159040194568997261950680391403668296211310611121898570588975079619758040121589261194971421152503772784917427677238251793048018095397233322882134677969475785076975822982509819754698880112552452102626627890382601442515316787537762081095340493498543379414542397661448439653206698411563177482710998137763477375290499358251656701783220801656760272923886820928749748724712297349510314341643559045498681056893319142229536374960931407309942339452629917801151556766281964964843580558964044889633477724305632685759303457768248041384009336186394174093267360268523285189732119009001380965745132434369478524817842284473628718735680062973892663161461160701340661816407368594371906472101954736887012927687577036960441571794412442015520774093497140347776294670610503173455818493293172021816657831026490234021495872349780331512175676045425918341101081133215021578771271009294835500125048699133654511343962702322223661761498028522560234785567087773142011098775984460371985349390571206688489261827777398412145283004516740224244630674975150684655103881164027378800575193062854335795538265750143714065204404216031179578795091462982898250624228991053681098658874376911279182719790769533336249112073156948089704136661246086543951908235451575812135021419864729306964075728873999613573961389816363537191897825498198225866356407618993117396340838665204490841274633742409402217554522448961148221607059442653902183518760233152788062089946519603023346653320944781685269825603654194997238025498351147278698671147629470672864021855907870795025988810849901096596015646251747996616668291054383373961843897902084923528691030377664792189012824030667011979097171017097629585255474360157538907528648674056722114468832909128396575208950588723717298115308147436309435615670375122864698255679428894776683082951382407841381525014083590741796718372879420621211488418194559256364219744224863353795011086770305783393393777861669625608718545410246902833850050954106322826808202837414377732130934595157068757050370993037087507933792740005317438385563513488451221100840115206620207520209813564266022017359752218899196089732618221022322487136088400195615221006992586904613580370607099897579561718728091251006515154887465390106496642230678535223344999147096971399634988238555929330084353417996672701880409952278415754913326067470555951809568951639242209298075763594260395831829192967584863460998924402953147965165109873799368331268810231636300429191176905170734558429113429596019689825162848779174541056804858966795353782558385753596985407091942162157542822943401767003015899615332677356768354463950474388333360575381555117387595639977716128953694341692985945899080379485713096039423145518718181702079674728184811649244771545295598430411209524102247388507595886837475498884240827583476894913216390862282561681597052185038277558736198026962026277111326288725145787442181110984102627008823553233339098022245859392606431649824818943221643962740904379215147943469065376143408039661325330104116891844433315432296224248837328128085101220785882083573240016020721421713988443240703218930663435194565290935774472525835286188510050234139896202042462725456895830941274767301097933432403265907357356764797017300032032564783136839991455311262057314932178155224704233775551378971543645234888834545865382346227799362618243946124919355630592143075818262779276563795920790232720177191208902966469074750208660524532022255040869273009612232362466491489744956801261150674559841932545198888211539503777544622647812482333397890611907663432666077003465712596276729995672424808981953991673798528575035631094658225701399841162773735466533279501902144398762819301525452178422924790369451969253360554711923331034489412970421658182141915851722591288450009029065466202446431597495651275233879678898993854561845566047990588245061071598858391515570053063583531801209923773671262568159546528141289242442479911677887532371879231042901785987307686499197956416641165163105786283295280174943930054835256283693962362495852643476261193025444726660206142353957378354768443656575994472732490375686452998708147764104586807581144214674664981240722738228116952734589038823982570304479066262230025275256648355962954743732386133612196014350884050681013344838141647464507302723242991137971283529832656495614767572758548630984623755402494469532190377533814404195502661933287470521151694664659818305882315932649565275301583454381867931618217412429704867468887823184794715109692565615748132119276962452309421823406532951014297452462592768504648272914114629418309260820242407307417700543525605518757355820127253071718176301828586816153846397314761735552161999423598566550891876073474981097835178811322056290282455508096181972374529688639620436665079423209391464451588661835122951618538633493667304338412661635255092988232990972790009265863768422510889841290430104876191046111704284359853180310700011276300105291963287555944568794495089656880185764072699996734003078626529544435610586350826674477500474599860480753908083857165680664252547278838836050976117632075642043221509669802829617022353066897752679133900325299553306623202960828341286113509589265188712714859398231592198864244282462389862967073097698871718690668920851109863209717713242781426228309206534952289544721509925825601564706765140852407974501733649685442673368834305898493146997196559069723659956543562489611667046132066452886659060848616030508735009158775877283913347896165405868939601311579313297728305735977616696300534516031506150358106682392428592441276768014986371120242164257381703147679982327684079893614270673365094983661986457598741173659519522691813975187959828458390621749731274682739757508475368404005480776766124669665002688017459391516163848801745876137180302040482316565145832041731293589073048282956841274715618687519165976452989590298305222793097102114758796666706823087118883116407900004079428182840657199283006484695634764287497855731044216219748153544405268562772026557622609126335814053818721389896940352828698859082796996927294236113481831037573568649349327531570706416217771866038306059217547742175140939024328657084039953673414862819439189084733218506145433839260436621687756580017976949739297620020694472240857653071617599004771857385416473299618839013615172693679244193107228850773384104784305963014833428005738002757156759589886431453974264429029620224602100373167247641438468391134896658413955788757319736718238038854195680930679568507273422525746120766531726532389910833472902465659311299318905983107111057403291962312808814940333065402855849222014778324638694834561420536223615565577314731229028190758719974189332850229525871474615801404825515630163921862810848336884748371252382456399531794981556583533043313130806609357020091997890513637494143577845532991198499178272260891703574630995972567887615577056893039565586133116841489158523664575276720688747067298548691276741788223438277900692990271256595563597397298252858248263510695074324403448405926487854973711942667224003397098970149715788882186876931103977154204242253876219493555092499158425855762439500362524260405517974759344819107646083280357664917745692979991489964657656074976342971893346280455606610019982243045170179991036882422941149279431316437860489452425567874525000824904850264287100245628633704759546571589633587471444081206478037199836091437470902146569729717443274634930880984045252434387501058491218113140072764379499521048468744202593861305815810419493090073501695105605292560518726713324904041459332735037120619872875864511251043557815716373684988827923407656547945441840831486545082454332540914648630508320884250286588588676711467584729485785157842455312152925417933089260838347207604878415360895268513245384974682141275287459589788912463014344471905098218507994241964887284020162837614782393594139740024769015871663937307711941622211647701394948262348692354425201854824031821644451305784641407033033612116085462200807180923437976254583142314082861199346438718835682692622486269375011170346525888370437745949354604164233856617582336355097138872366546894622763905910897278331560250324128995718153623291695378376404517835640407892763345871400032459480911766886589328617525300574224633130959281889612903258814490921031574587828129317944280015328690167676798692240855864713855910227025935948402134413562600329183118634237853180031075427929667964987964691996767908194067148941928492264457371105695035178768784577034062464951666737617228808082726883129448328021452907863014113994790951295727529664098040034364923536198748069432529430526664224541711869761394978633643333894340451742834877995595473943832350256336517273821444951073307687823830895361457568027861189585068844896293379618183895722426713560028099493059171759662579712158772834059819152274879624773361658599978204115335857123358493926417725345057369411755998074139073926210794816478340472174109535979191565976383573745769662636617173021429299033293639375652925687285684153833411029118681330540296534630621663369341409352469605458792976887987370318737131897606846965614378486266211468885026825386289516718697451753272521911774202843790226721575057676457900578684848966444705923308648494954215445364317486592345482695891223063932915824639577476627221904144619074532222826447517740430116817843988200335781124968262395054759678600093220112704984266838867891147241897449284230899400180318825470915477610948248075825296515233794600980770073406492882728575816677526461192447769538656684802615860271180834237714110829905130794785941840793699028471954586867412099782371424257404737672109401240423129623067514696802344929537458066381299318710602026945865541009699068921640300298148932134175718704166605585464548470647179089788224347998657866328505314348083721577749125123957606918387086045277453238605599772930785840211789382324859476931540492411975168534752371764251884483223665785830392361786732501544647771918378431815539500216805764952407265744796254162325884507528636829075703925597746253870908886745042561260552925134953673750812233463487176787842265494241664817226714176954688166026863587748688304655004909660188259968800576585573006633993242616186626893828835808217264948587674970598752140834048216930798191212289881283552509033719634198317859553511463990901479723635590913535057302496385700644583197309945024450463729609611920986392972007879314444155466758347696906321766464012608435746643997595353265251929359565954777853944083699282122180052865376583181119478046635009081183707056059732851741272095944518242674639116370749481954224520132275910060275870452257156256888698034841980012221162426604079307654679424777537312209880142091304054346034596416850780970795264872575873726375926185963273097913174522171055412346692569088263729206244179236801171216362141924701902686435531576067832692573694003416497429927571995451309857043701407284264857133516410283039945763566539880882418230404968943079391054059997426158069761682219884636788885850673059451771330241490681592347944044998370359389943112722170241651278920406705530256009585462687222507862625227274277841926774313334158652867587624957254847899780325212935161078355539580168415993279082846179638527409624437499721018380446666332764496606201245548924010412644291812331286201962081813651843453194606151066377298307912430373384854116980836541825142376833227307290244846295605422972669712348921912141536971732016247645307086781774812670199208728938373035545313166098567242361123300818476035365458199983873081215094340233574547257364783236238650927240372045834517898570501274814837734386859128703096739109354729916832934233967891634688330412713433110805393513720153054109722435062367101220750362183433434101742810552678023843225930642456649496904946591108398866763159325100862961053754710380563412890245358520395756875963166492159157585399025545533120386597204719639437408281687130712591476908469688577801547152438624686105837604065825459507931361112329133652759198822381920846884122215043470340750028024977540763493414954406029804107093709496288538238840546130229524796002576907034310206595805291102304302425445055480039881177844421624854962200086702821204521226216633138825919109344088267871004525153375636510628672149676887316638685166423274760623590929836651051990430213315274259669454895059892495784947322023018570887232190539009464058141765799906610597298266357698165207899807513725940370362651265439812346481228289083293343154142223422238193363164819086100490892223027593397442265726462097830846364275068679004732583823086021349555721857862084316125901304638325252235701200849235126600850859835396860721954504075952787499457649627107406858309994223541762722824737546662799541331517948074863173212306177981271287356791054882230425828605141274847780541645079238638413614465269953323474151371285555137481979541770388618576886906923786737051579535174359166825239456272799332298996241089584526950643550620727465579375956666302652266422009797935821718635405941162518092126126523367881818780864187628712643242003256408813405584924564160278607961591446090830928388216783261358326089604805193167280703276195388780085566193641362693592586955727622793670415485565540576932986554210625670289920291836239472466475420553896697839337628353917848776056489333729416673874181112733349274041245993258858862335249410378558121128494948502595858935595713940100684113939060575511514895204232878450319228853376143459639436720512196427111195768285840106132572975533385475168237096858661458023593702341093417996154237408550603392920159437974970661966563902046822266173917040177499721787363603295661784128837540334644896033209636096207619581699216153389635474746760793494751461648108769375894012268367412189022794883783561418973715330468446659166837734289142209421725733095318700772593107076958147553215189014230634407519260262980699976600744201790785796105184085675656143159724741381728206066567929905253042118178373975276550318354913970747427830941177442670633473132638578908562982423124219974234554553760570758703303868996798220203882314643333214676677790996021639968374249878636044404581986908225071803350620856013932214831926229840971832978557819598604765578147724804621555155018475863734281653483911764905107118426038415793505969341913140597536756148258371070541971241013306168174577929006623416659874960222690806332202171162229709148050410464264076412109703833087707339802075958115699467575287404446643894207559259329922907927454883085160684994956717298907110372033212522058205437690853189197105946677743860913579393852036150555616069665610897260197732495312950508691706604488207675575560832530577124560765669901053735808885473029804217666902069207614557821210237579967559382325274515840395520186797451133056121909743736426958708044002487422262279950183268836264453551395291253130024421452335974449290663564462473651955576412738424878132739235135133013037395581298115212347733577226321781793176305870384529773837640396929089335106894825850066151281627678555861930160117309211515227687531294210594116250556979030049838283504081055479737997528675994877383222946755019133621676211818912665505573209519897478846424945268315870320340884203871979674089230472357452057344973012584712554413059312822588308193888267837332566849667076419125279389830529587915550714587224339317342877161644960790309897670820308466642151761745132246299298372297260435341871660024345782192234078008428902034490455621022932252381561967825894908102442458950678960256529415725743970041320907611851622900247912975281248877907159184638925376255404577804947761993998696392453461625443637743207389476521033078533225268744682849183413787471096495187248396425516681252935354429997081383175166559433680373180795383433434641911011002941247044184273146555449730146016058097739624670201401652290925660096815185990424914065257579505817797168159138250092691629049419259353431475562560338620279306279497282059044210438773148915801934178435093939278659431510019684742993582417998593691049365820759689985852450476834082691764505935458425449999189617442779224200229462369148041987808197113505473385559941407061073643691351126953848327201034310009436211617243583782363222644225266684877254041718248663901946102217246227842444648660829362516987555696786198057319609946090999606955185335247429835317862922813583247521039805423293020702657760876238375474395783361341562109639676365578607161905457248514928564971057045057875768557161868019277840970973866121480614215259581006023639093563158919242698267978074211992244107253962221355642181347128168739035842272436202989006415253366607434052595588914109383135819215588275778835489885602356052671560311828716388864663097189991993342937824715876684648306972021806067369571741631830474339977996216145286575568370811494011400488715375832785593403022082693427505537287298514092824107897857571579793718184547999882045903021282691975648054241512655003487205375763876113237831779744345222716575689824881788671782017985393893011209607448767036982010951924722649699703617576904223067425850007478799085347813202137730180538472517967765908201634501031883604078165377189524603763011036927012129076503046819360064415772524371325286831948648102430150704412190123302700278484279641606345104909458740758589185974490007713687355444179165523814890319075661688111231168233927656796330916109085794288176943174685126911173898140515314981945288841455638747221404805319727080141495733937659277953213359372489852365701453876217108832217356649551320902376795187695453567874349335055003162687025409902544312482939796026873700832809819997979318050992287113797610443424596445063351913673772238091170128645411437955634953378948165524521620913640909955613234368090271911177508029225450224031176210738026091775279364779247783562064175968084411852798331965373669830896857683475722455356037777328970455217594987504376494630606273676786131966323294570928231328015731159449960407342032772640720773777526454074905043310397202238106387687650842186607270372696356659251534915333330186056499372047211808312436127435925531256029232488098436154581420346177897386867979329554806875930147093740348018660559149413282591570839010877286862064992057091971639534121890572276833541035448588512230276689120879016304847871297528681757522945072740710587254011605949332674244106859307706112519749676962633531244034684974737197277345944103416266864175943497753582498064409101952978468013061334495876247344692937757177826163236413053194384892177651973742276427882660320861624745937574702140009032954088843935628018123495177418898917061476370757354341988466558228936485754009253008521087173178986612605509439988615066823369391530502419185746816990499584757487542393520731768088833649527033258656042451482958398937972240702712686379242498680724255702624772773817299044857242902157444813876824781311999773632454399482227844906535924938155004492963586142815587999379705308707142061572625518582404429203120676186657798804141392146782116680517570731039489809345543219836796920028677678708232052504342200021173139232110367505922961660515299335663721220076951494560263885471852978742177754959218344539165320853578172557444436681870199110022200254886995875899143203550371033368350838860100446327495088038028698173854991454246616380397388149400455016964519727361240180519342779706718182941505266581504873769556406703356145348702672666834832392962683044577614059413507907435038080738365663754333078856631199898120940411046560856589840822956151431103503607404788625602655806613639250277240726979524812354431451656004628554419013456674137699180363129731554490353686192245510436310498698593840664392252159228534405497005885402948292749536467452352281444185420942022704144045396670797771241541364740907629095687499066602039279855604744306179159278867303674298839020542442944829039437009554551311529429874460047101413801663848146758557032141546748432795459474016426935197870166212042716650179706443761583352681241076850269474144535650330201400519826879833662095246279092818100513010768773210271079912597718242002611467438312368214074269428476243363619339230565641162870239794924368581564561977679573068291631557238748366197708201059434557570535190753260494216955056451670565629674563997686158319101150274450972712326756923263240738711012842335026065436043601075101511537940622804985507635070081176193355132326308599795616895205875996023133833336050598804617705719362213600216422761851916979713391666725245561205948643743604072705304029345996834315314286124716409244409964388379848496789519996530391393825891511965262178890712709886787638581458419940292419786849805582579217974657669937465014558944492263090956833674318443149137622719080750724453456384438606349525156576566308876155451622468413783778955019072871364806680591659865773696804685731324193300029638423851278053598637219312508439089535365358101796762444368705627327844916373749001117796350842011721896985076540699801460921029066775320970089504757828860709419559790931717689224079358721343681428556783011727953446223997986506148031332768480905858985759164193590723729409718693018843673999948416973696906611655976369507386329058870729260557043109182650052888580585559241647781036551403697488252889622506074962375717937727568910186001317126519261897669106193495749975165616274352283006793318493822598632887407335872169904629941067503124163228348465980508705977148491328296754830419812037449140063982037729224019654853489586982177136317245113144638993872418246849805389964689994783118631970847737451375439041638404852473785329841552279756623986707964507632012283148306508622314954363170432472012897938122537486132187527818857477952307148176767204387407921068715060134401937287051217566832800521284505094025961083291073275370110269884963804460246846853058214474359841275105015654668802388704938425303797489030407145901329448198952130084866197741736343474256613271303598683157651046751111925114763032081267205351759993283658189219790166198876709663270424896578510698605720879026193469572221379818892293864502607581715197306175877254992149217756854558340767170267794384273443776520930946066906329364813214323884516983572567443892605220404357400712942788277393115443757019289068372790039099939082769443777714573343674978319343057784426906173621393290204223232189828437264484001061191162068876881486588946292690561326331596066742708325190848810990187779561241570533064224769440456797669254028523481669591967162932034975908940555244556577642974518179104567644808129460685634684584383171258315116732793306608067954910907142643631839786297402837752250715406594977267112298294220521209079064240260671280045374518502582503818448856745265258531891082972702617585786657526706910032223662084783625807346805544556237689650217704832684844462952413875544828540996393927833626886851789184677025358145998422179659497537683123379318688734326758916318947589476935842411861208116185165307825625636100351066272067060082738664599943628003373382283022576826722800095446358659176027386067749317759658809960330873148934015679063801367104980051519058467899669849124995770120366433304857491798422922560878393495946478411097437556407565254894742447148668464728913135808368784073567566420389804309019209515671829631102026532183836650606064264244829255847699954270743699274715950580624189995193145900993478277361699458986804197358343315543769784004676425630421752110171892601736866977912090285999751389690375886197683126523721565718803299337029205940281255938830130707003044512538244795607047250339657679162782849976104639196154605644822675836396253446152282194607954935606066634071439203666228687866045691952550925706257621957317348052652098466307110578627101400231045912766532890802064731213170942479614090310212470123804411575646620112169852061409970231306419336062270645484818610306505893730076982208770500270151294940003452117240136948430717621191895307472868329804941948307271867923827752373125927832066108620029111995466495134908778082702331515252624694262898506341868634287448005010858322608619787268418864267550727972888116635164390770691604181854762260317211656030057565840399277702144432754707732297176191025973323358191898417895788731039271013460858863138600063127453335818237735947155144367666271620412007331801457212820302513573195648658116041357845327875741113673463410747716514389537366915178698067083748020229349718843999173683065773972375966860277765845285430024913829673357533327716207155777677175447967537222834313206597410567602260405939849307617101862970771227854762184009997165628566231030192871013889228413526298549932926146931559135547141554611382621745344778621389623925225186813902086800718619501355660358718059313610460344927177497693207862735259906774053379102553590473538774183605968269634239037010794256515333387156208356488082498271761245796636751951295499168858500375998792791332452123884242291622229714198882788731026795559238317998085900505557148315091420649522174907237954699060667070951764525299560052058112922237510920374495469175844015648642692416853450358107435466566995438690554300184373687020998451505642726190419500468337854840734031396719125213756378979266929107059835001369048712906117698407940484052783319501374953128844167245625453076251074429801777088613090643600711239353967752369604641508996011620253649874539165812011101680834256467759366570833735141569564828958118833172742724052472052836876947319721319019845866663605947713670452532931017338022294512886738618046343593465229984629521537752492708544399447445538825102364138332799449524809049214603396213390605681112755096797824651345717809735621530870637375625937529645290003050661359545924029626097790053930499483312939345087630436096787689937246773623563673858596922900056817213597540163600426688628688045624444461718984011521405811453405818426022591588126426250549258498000659951542580779652053777933876731435509791083169029936996403088736084414629753253554369188957023953943584605580337688630373355395859935662745944855646530256503385537405420745207888509173430053758921967978830798178956457840271976132747161189305704793862556433263966837661495296361505514116443972864208237090247657418755642789074505206540491252861461269440892697635535964706706842910412086768075538930628768764479055929068983022962757307249012694862921865345553836660995146628849436808676188623404645895667922563805007142030098222643174829703971927075746387522309974280016847640379758321805139515285221281113082708847867281779406428511255535728122954510570557361944634275955400051340805284377391142205003712772533197472467196424822193189622789623817100658166486311240128682744224237401049865775607591354798736486234719696041716310623919107328563718136278200759575735429743931626009849365656849770268089034338574928318541904305190281238062619775290095955302186437149784136047027325772744247519512433356099262987277110117690808405764964032922520963867968758788395478058453903057956130782177780239332417278540074119189078367801831998184645872761377459668829851120759266704498012919971222630929637681942483066704567238999499112571534317956596049406754482539603256299899988649480423032685383297586843327053308551215015506383008079154362916969532210190215972244608146814101097365334131486045285442887127461213496930614596589405758183687760446432049553486256118904038850364935264247680734227523196113364063522877057748452767377989330746936794171623594434357226986818435171936389396074733388014317914604233851342713657679801583574379480374464476360067053480696052976704324058818252151543031004372940329812049274319425841432740272311255595282632515265640456315459229229836625976993382382547605528955468249901899135588377846422324015503692805605500943424457495326875482570380380891356618519314516360341419737615454556616930748534679352452578987050991079277651113105320285154823169654778327849880081320088245162051855849342590919747476377748836116226806460555252738748173264203597971066435059267424355817730165786662471651535514035434163582941146584009960116929290561542132996044223829921409285170669341687831192020921960703307730661500724276170158687894320781169086028565421333284704131300315208583710699797022585860312278061455646499949179609829187755643218189579614221624526760735670200329857026002497088920939142967809847452759669569617714671989831909111692251953439258463866824696003470245452778976630884741193955049000261445763058968561932168769504159285257639739058895570641051739081404917532135600230518681321618641051944163472883682604087328406419955091387662486830416033338566967929512768864921996239568413068421433666021910812230713020367396971412460222623608140314258604682855415956583170164037580117908658428099407233209626008257316514937062812395025828872107478134898590977757000506465472943617394393821946695403815114007266397823699631422849499653558125406620337050871096888328080905317702393579723355624369291861039842006831169356791766117996775236169185532031646959696390215090009368641650693511313417714026060869975715998353073955788708742700551786169734143227181177699754135098334044156879743153455996717252275595513090854391127504810588520301770017468836224239222264453818433360379167628043208902808554093546899737538014617114121265129172780012269655942130505500693406240862224283185792958455393846664020250524775937159743056008341883822755466598683020628278825423327360005809818650960665481748665365571315853347520010565245446534679070852219078084641681204430156297738314679913597389349366984980741004429892823239295697051672876029151088614596199637276154566369950123940827105279255317855785125452548912904985900773995723069628670459371942922093037415312161889693352484285836496406598200777775709124001819184323516436863240616197350121051579201181684012246060506390009888041789958110558901250982609821177363159551371187002604592203833254727711666732670366152073706258145194656355556389833656056429571354049991190055551973155525496355209529939873761013715735005853026176670277544603851191587644128092565228245865544569925887779198705534888955772107868815986407653322726672739108076833563368184887193576757143749467880138423409496103488686437218668264348598910748401596722138962817914077897758454920699874593963923813526788816529052665877237781518155987096732422088090316979824339584727085168449467165577129382647590018974858355803128422516761458145772440455342276253132134476607475510368512519483231709660248750248058941828314436042304527518932273935808225311981710647160269963366245057363755959250717656307683815424583568364291448527290580400455932945458146856603325916229287719804794570707989347369523755422319966830254994551579379170911370187734070080456623283491954025382852215482761995107529607813220415360780166391124506733952548652106980121316699347790840823079568235069760556661243743237718700255965308616861109577954849261005770990064030639734651883973545486897606930154275191262727824712286142558114834851684948609747350392907181584533252915611422270476986441398943116239585765289612129420941863561867378364899715912141055215529420642699801915008941363780414837351151124377905586647625310541548135147413125124511785452650060832099558748314729007811613231991804292887034007070015519975889756443560259050981221382395528610968479718145236453990363816036157989699782353997100899268420020076601903878651360826248497884449642714053820878710901308916515561791670461903816312279141756849719763637154125468998332220664630769541276001046041321375012595603699227132970511202849752492724680811629363028337439041022004171926355499933162058007130003072729182594179608073558980667021215783891663295939363721920113670043924594918439739735553699146191850428916549875872484804028539467186761179168941992309688297035401145455468462722963542163776915566214646985355559772651860806644002956779809434195964114394844479275964953192737206227600715177404136803605726126022679104490583362924289559979202524058686707500964669727704083984787271718464426757235377222259550353993726423053539107597999613066691128294791873848414184502645622657846830175721544487371140485365680995033517993511673140828219635661195898483427278294435724281556064701005558527607075252313999612337488386059093477846346890030995203530103198881850207026975575143215029058782311914658514117209179271281387751075932524361635435463478863181676326540015459719777073289303836165115658567737272166670204411972857213310705071162250698563347169262961387352403573286628047807626321608348440199653972381793032420533331860140712946933915967868395338231074552541192031328233347509361750645233037919129229729351612446096778269058551392777459590885944992359747128752176528557250735268861941019461303055470009206539069811461636592892812590487376264103577726322689164291479654217279830156698415472046877592703292551949034976187611803148408596791079702866035068789085191350341858545418805703237120940694867997033947414218739217041740036763237031229718436999668916093537617270115227225237647521938293163719312343465225806830326069489366947736293908819563476032771506981856230555688640902866424967715998549821086969080979329868133880206386211742103049684202778329621318962842719276717730858057593461291908451443047777154769395690570728799355320621733869267540782471710425944201624202757017804236001739704201151958604148954669240662922293684192060420175245358901898853916551915437364320115802398686721161233041333452014616584130115936234772816544746986677934340987230861167496914788543654996176215540188296144957850508246489210849083420427845118460175163102129647037180070302669188252759028589073902866677834795106254392489554790324716110500025144836539187989826802787106450440865579411765348990523817020247535946504151906706755758361370843202032626576185471123342684234855175157853792884829712525791475479941814552885006850072680284715187897242398383265048422195408897562556465776661399005132724127111790730769881010334999838291596106152255028642614862375845267945010644164830873690697702792052321237431919659922791594836331976422758054368309133458704041414631801990143937595280156384368499251997704341419715177071600413776193658577808904427844998530348460787052190202381399471914199154600328088847079446125127157767339064207649637561934822063639772231560990340718133060481651504890215576275418833348352490819470111365426615441761381245285011571647725927330966486302375146134694280559601835675461164027611597106554509318741947718560019318750625488028286774158654603270460413908354793845333654060505870881692402846910421996494250291001699143145471158781921247541184937312902243723133012058132442912662192884078386741087927445187749110744287637056668430624979723021352191683869016199497723321407178920295295947090318857977272511136704932430107378392853436128077816559150899308375484285608109331296440315300369445965026012356152334211994753428911930097982584954562493382575047040651695517086482009048667957475003854088485219900165105107737645746002569868202894110467124998436667097768943486527686066461239407051784899542234838198377357539530066395784537445582439508407120253134586856111895765046748144169097395409203545230716715548994113687166696412109747266279011331408483321423922468106462535210589120087302313480067637270946205020241028022432656514633900555063254892288151251949299633893094300538039256178757337169992216169953777499477737023456984791954865136516921736896759914330903231473882843071651886143886879718990020174312431947498037292277333475371837049274018795351674631334019890177461133093010825345528872660976205903095631470197497841423315038650116796702032944487349037846950967509300354088933411497382657344660456121972365613462295300343485683810829889690590089863533436512531672654672556024789786202435083519168362342064190573918776771047842282504951885267735925287547338932494788322116473672884374766578403995150351710771081276820823765044528587295712377497915476530339425000998376405487977627429251386770745970391750739793707680920407275940113968091044987886070974436575480764285125011869813641228630537633106529769076715933768262408100032233655982778144794999308893646729222467747986517381412488911102739021247217886921828969181792263416424344072675286843818240431875958372180619970043613856753158600137078648473898961310261141085210004872358272001381394956767744610770922980420197862480889818512174317792361567949497914789211229225585317682421684985115629146082113639405128600525013358260188887198509504871521958319392660357332705017923078521841827934606223100103959399749470014335654672538654358091573971598550082244527807810654713349958162598284405063733617065900802838409491116769642724575178571962992725744600718767768373902221486131070189388873553185108822251065784257048773657333097132121811853141453279667867673257088697418686720797222693449854076226452943143227911202436825566365498515601978030035645409731904817014308696148025087518662855609723775547970699293417840359432071288107489713841179624675397167178646756944535081913560482885895357904815957220939940294084012901885296985829770273755362083392999063605034119624196091090467776767622462028749573777404169507596715888847770462163123719043314059236634103473290323542961204710592798942157225289758832439287223263614518785366107107900142243821422623924264140540372932303626654185104245606695151146939257606958003531933812872811153504843131086138612817359746751100657781350110483332554097868915163028418748776956512157489504859110753883948829188495763627179193807400706363631634977013680180429218751104626583915179163541222984542824827531893744895294030839976602918073956520131020889514443257442144141435827046098951598480103309549566124711192581390004704948017526018189313269584679630054790218989773863425084075010034884059928719006293949400204023303656810697755209246947653206248777359053441405386350308878069946378718323801327970522662429486340826931641397052140282729031676448384874311586137055570842122482303899852764285729030097783859082530106613534273117662716369902606110700357571553887484924237778604120591920500604117316145517718170136825885647510057462602629091416682818257316868866669930164890063938753026383105082088745526470854884155414248127490182833007420848610716681781020087237039125621320457282345176412753805487688723901142118975273816340737437499668080954761605480623671352875232485900142515771965096847831392576954674950730992681330574416547921264716540345108370744461313185738654020271762152912706277135277931088637934202092270103905965396165973131005922624824168727816892752480289567170410108317999631500601834926481009399840471453876246874294123719863959072843978321151486221974311931340487101798361954104459534123196589597462037431999071142775054837827155329003973208161688730035407243196813238060335101839810929623729160643377603042514626671335014124824236993930817646946849598924584524207114771022439380072507951497814909291558161813390262643246367656115674225839773043570904750403279581844598472453848188047509974012007155640042523396068375836368008508904909975078508727722184982204356708855072863467731834224112643022767215776778650840881262258971784346892246429687532127405524350361625590977608956878967320309932477798304616167591303826297726596062380495011920889943282789385218590492988620917651456843351322807272594611446171806332947343397003432212176191484494192301053145787926201666960082293406034704937895832904194866480339127216482906884957567132045217009314409116969892526923778475374757618585389629641825253308408822979766101482575711434981857177590033243018605575701580268139209775145726069390417228134799843979680407047800210638347965597385168894386283205068822477701633455537630216700587193438574611307943184551792119713276215424308734003650601469028270939207158074753184558135188284904768720021699116330886064988621551957811079171139032782068814053231168584474566114706443679911808406638225990655217356771977575028449276118135237666723616452945920908805300784562823374148121310843809847962390293673432558494607848172429384980756465319348246763131532057647398841904897728355515985919245436336800976450041868489459856596715525651532075338373919267522847770508276592724942223454416043240387320012142596437402198959719011938205476966964159922340489137440343585832841120713125098294160187262277244074320489180755005094155653595695687616316531125458417815900635520502118945846091844935859622453742720072894870257572646738987998401777846858096293250754342020390965484932955351413075810087249160162985727094888233698882927719274831285507162831428207866037412385471564056064944076153101413565147010607646746073651353585693313404380689712445793160652643915499589247345019636200961239394050585282560942424011653720363694531049286290754291884458480021920014455910669257075443453316488457627910827206001211257630915331095118644425546777370758348018419838327989873098392381207357536597734555868204925965557465636631931764625131222214172847605101455194892590438542142814748840488495753188433676701121471246353458822042075354633770767216942621753351270015413055140650495717990347841112429823224863084249984277998058509111819279019612541223781936051909964475253938903180904318617484786390768184331506987618956441521040902225032639409328667502727806033167381277558091002515367566845364095626387541171290534262081268202248407266387275962999481860709630695124819456061211392551915019418605843078534266474230118167489577342470015781088946583291754048114672277816846480645251971705092549438660260318078867510327255224896392825234085826413380076540437910090117719453791166851482303929084010018621646658825616373832421058202027845427698042368771379344052452925028039000012899855662710912463083844397772646786800168317423277755690311264371002445884142412392902257302135120136139612559413546813594035055326428224204623219384703514521272318654060061489636104928926584698679895019142505572804512241416178105047176592542769384996899661380734819061868531397686276258420215315568716298700036964395657025082543155689008754372936402419354751866598509140879361021301350270687727481276249591882997446013047107056877157980202067153132462676334864660655572985415975862810919174759880045552804713673206664118919972465609716130500336313586862930946506321481579314226706842984131180158815147877249963083787754338893339972262545846124737481065273651201571648350686080969833150898029797937214826770922959638120162229702739653638024774163603090730613291322470442902439654917005591086617510905139142499568332077296313325364279747815173782352264908378977920220557416078994574329417782224030531685878424495124287493613804142209305407128116700581981480527192751794048410290341337378153577893634412818732374182257351238481414840714009902194907962090432323491314691155569202656298647147557916249731890909216988875709065582848665795558626347712857090890634699976861050162007404589306320708356449371096088073673514410763305133528151596744129675799909422825164233678988880555523508593232111298585725009398971639362391804818647718930432796445193161524625295924407434028003755552207576872917752024181979292820271709405127724759056695312972986563015270743229343149322702210915258738072850642175551274498099870189104925889747540746266779906460318321424316403185091222254787755375249479266249483558168986116086763492666569784809757346580680569619678666243684861618607850718417154843858700553676413649439900740738183824517113853498729935628289748210838915193265222891355978712549507437481783159217925906455280082401218446922767681883012737497956621726184984075670362030905688867068983497035968439705549699955822734277287365450159828293369639029670301799933257905827106715022919137956126249893425242061319072595523400762963067995760142015232137090820344504263487441660053256503257947998115660391119731665934529625199255842895318032154637314678523680740413561411111084538973826943658378331653846416537901236152876927804638576519217018103028822070691368543255136894814990036602121020806060378071837718672926147730992849282341285119468292506244428985085747662995894695721308903689417342493179681184401005265709737489983973910680891577320548816896993295199861765176802799587943863882769633214171099510003179422360911539747724581562666307891883367013730057604663419430573340515131172537160001391822732647581141255338593597092144461653612321417327983752102955850632055493748404640147665187865885929205473643776230050017658070733641824780361199414910682274061857883943913112897491088834263124830044488631726215108922068672106160510561393496813236079795643496777276072786806391963728376185566476019853906433918194358659243623287059363411468430362230361592203811042992302343574297387828070479896855836668707408018366018026298777902536848569745635339165132733881410338582115713090773562474006710611360086339286337191207442410902660803940952001255951233392822166379014048857718994182969828445514490839663479114930627548913759884174659866401488984359479289643759134074940053164440457338090385324450086834920500637920848683146956168872151384443738719190388778145327100600770561237989289422135378221476890954651778739942720730952735001571599287808147451697785367491583352157657859485841524293506737994674882507868538196468724245878297611065873072546923464988049906089138829141278607578096187492400225505163560751057528507417505375624311800039208778251743887539221264066734339592897550463089343416298002952713307654966944891465943423908560193923179554955803468501465524606690378619708689189072728535312840533416968568633105517795321905552331074431140955205488618991120534989407043532145036354884420551689283666922662623923221437481399356425897425563904570197061082553246384288566871251418490678509042819240717912752481510922002002726795858746534686362299899566320386222304710176476644553933384262429404041772850536561349484608481081081218950898289464544001830351359201499901344454984479671116803068939150365819041183507022926563801123435274342693771678158840825664176269024857058365759082684665017219385869644186717223986118308587159784331507299713597128972826529920975497790688996735745721896503660139605701799855250700558056105335092083227459507526987533307589570711830896653887553760797811768107913371104063325591977582731317576097182878290921102944513686073148541687964099842816087336102277189105469887145343313692090140562067866327540061639038302024929945455694653145422047053760609321321173335227395572902190958973495590656329492806624144656470382490079582532473245516419646030129863217674202552510991784546413229435511251242824452154992936038369009194167069221416012629807670757056306048903156305465099085015358237078974444427535504030795929811262606844345316678103067085712906524634459651109964175334168307453418256201975272346672151891088776919261803701513109549706013272581918366356377673519985509003397249002079848265114820152556239365700807955518113432333758648069631187253271539268974184678004309404176288876519337772006984340837704439299153918903766304535648770642068810983635865402888641923397694576678757582776742478448490163512613698780069023564420791506512656376532045147853967883871136869273722825907556479895657611384609000287731148530299645237069208098102698232790547109347403043710599439608478727688076746351074043849409095890800625451944853554310422247641242617625715765178255652177731586595998561594440359296898870447180702713995086627798993329146634737036603651275386960530299540724277474658056607115493529327520102732119878730923031591694202671219105402827581225820957735303796187071305925859059473339874283274666289151648232269186356073018049250129346838886853405121952027407351803704572890325494010520620820964140524108146039976613114935765110706168161160100566053909746111863293346239468156851092372679349070118295017938878959373813166083862189191889595861969997964052328131687026758424964675152458725887813415245337841372184410965611718394687818549839451360477465175449845019905752587458122376369645184471100073424119382108205099117043884553578424255600358731714483577318027669094208364837339203907576650254911842908626490190183529061132248065143656344900226630936958590189834738385976957056857409819484263714101933111321780947377215467863976235953602336157480170669034603392283370364762287391065136453945513615010485974236416177670991398432625184467776296870439678117553732599250595727099827006240056914683732516681705391397665564737371162448414704086763624735770056591706404473292787606111217392487193469230889655020252359332583116995333787682290591518329452589037759372512979244468192330412223158107301893252213986681301518879193823524675312666676838745913197987310927211239362173949737565031010930567121660673216047247528879583167524305503938076031297202759476981559463536670236269615105942739914254880495991392843610454221397051720703731278252364741641705299172249051355327048982475896321030017440582791322834375626475864301793047650658548396738040932811918216423866512858381038259022866739255767704213816301676723872777399690948644664807756334610511347138313591979262616814756166655917649586739917779646962221389743916662884837298990026613648772540157428870771016581482120788369305846645268863597756429334190426468133072073643236981336267211046317019543632918997957581679655760441981894424227845005745356079815632788172286754451975546978214894952278714163034844508822966811809430083648686972177005868991709585729477115730152561338590253388978352644143498050462924799823321895715185767309944369917300453717033909100543842323769925799654298768483085663002445607317540512082814588556643976258602623144647201996392635387642582515001181891778781570920689311045819983876907948259838957154709275764149752861715480621593073102898010864012790427411017612934235540239431213859677824195521687956280339155431496409054874041052097422970217863192986708003823908277800929204155778644022370008583259498702932271575776354572472065314417066650822562620873755367135976143034526601269578217304321279175970275890697564264108934925450851550092487106454578975566705474629989795709902409254497045757453120655408066275058534028638651067299920797252868281329614106716420078972423212860305723450322331139847922312013587168074292343486133564864382754735501646794500173297233981363471696903988834225580516755094119283458473784274845187960801735874513354600014387413573467259233590902027723639352671034224319469039308786812786816846217810466637918424715603081850566103811027817285717480849923804747534683962757144069247071490974174765314764008924466003208090236757505926845924361953276951684220409709346111585976757070256085856063978683985218587693833112824681838319186145735677199039996488669456034465697583901029948924180139514863023003347156040211173848878301085351853184905992210937335199718103565081311539284657105654017322441821487670489579498513042215961718353019305309143909464369761099401728130216151779081133715754983636895638416943183146370217769485399620266323553740557491562679770062945226522438277389611099639828184203384911210188768348198053840102528558473117178769620233775171461484428117020308284383883121095339840862238631310526233351698767475662324569381573200777822099637299017403777698718532662749005874386272684010353182479850827634437224282961599857277127743534298861329810929993992198400255857259377261351076598491893102450632776243298006975747792607814499170967442268214629110265547339897551078753917007999652554151161174579215486160197181496377598002377263904841286322673329778180781028172468466948003475995396416530396755540140493514336375825029723418336657445066124399066169651464710827895038399297234054522901681281650255925404816331464175859395791867285090898449415787046550289196013277260329030690476862226678999599909003276937031234236087480126342770308027392723785473073260984757293306710579947966568789769740147966661903386723455309284038973217695779298915226128313094308075529681987903328793311534167793263307587184032864890134802560610555845784269605503373394339552702297058075997043852978634045095496952755225660088460432664438431374614743348308987263051171915059932479859768938319316785274516835387664427166128105164395590411496953391898946281030658627612264479787462830396713902600610736174114291101505570933785668248852746368549858502311415453604226659942663187894911700329243994016570596018940504373367563865726991558617545491590582022043538148505332017418070795763971352731694889288869125252387169634822114348408703428546975116531186898317390655000668027294564078564724209384586053094259690686065522061126007099388749143151661820273230058398805984394942675963505512642571354017728821344683066929875518719956868314719430725630935390180004227980411784922523821014332817234049332755701112154417631585176944240191349979421574099748250252131382693760502721967757724800908570570061785785753593337819041457145729173864084624021216374605422354841381658724946915753238799261829782935867579587192839663164230460590306080109489660097317157616151954795493862625849762563840389524639389714806154669894327815168631522198628602075594232092752404983869989019495684021615379390483486174645373332725384607437278860953936644203047440616771142532755861669962874933937631474898298755242429389017510085429176239682763396292076426124001744932992298616306507626617660514122145591691819330398081211204900686281180613092902197944763156177039900194256156127440621876104035115154001304806530413489236776704107535923184339384245277131657027530368785059242821074088884262312536242991350291147879950582099566963629510328764506247523276009077780740771492615773442938920943891390461204516246529220419379692251429174572696014549098381483918839368139887907563941817747858506334562989872596641538612995852700612837184845821628261320981897936348998458545303474832312985239211272346236665490989447951260807800204330992035003154281963130806050951836184078248025614569522818252409732681439337370165705112532862820030705893502926034655023508632262106648381718502576121672173835550565865787727404144618938556330682000267477814608297159024497813598892706180988474500679659647499623557864906347027340477291345992444905361867218292180676799490220944258929518280859613082324327162992651298248404416047534732032570336721881934500737284544257251313191335799608300574543270934404516335852166859104841572487582881785905335034275198946502959055207503179419405484684415849887197721406669850688431054992014400685161616806193874747542231080058146887414368436241407732110694439684497249773393065948892370168670014613745019622110181583791783101984203796280068771239438166419627509441305227709309363145441974343207320577377880603161842072623109863829621045612971290781030568174127052799752512173147008693800991837068024496528421462390972720961161698963341089195911628866660159162321325240211262917820706752724801282235686161128877389449084149669995350850626533080286109221765476904131866752710929577867239144498173723731703554524409290405889351946547099192493330771155851990528027206733532693179815591876580956126072218756788697072860900608515959242917410714621037997793772763125324555692138861891254785558306910832865177507917165562699533914501166601165682299825959845152356373161775214645836138339571277089244600648066283094642228857028740800821547738534730842834825523818181867988713243856600055180409980060477936251228929919449212136673625346756300204488081452731038021961241185891994122945992375878499968190688891070027220219599033020858488760147014756137662700941675195283184249471928201992425393876945941167142829780627174077029588902760734542795660201832317216414503926581140799944308922330562328174313473643565396919525665585769046938591277606111210961559885710701928342350211033488142046113911828226598320961053681144207133599834801900361717697839206200373058061299561901269117237243569206234685703995889851378602151678906089809079450206554191336161771708848801216387710731329165613256534700947016500179679446855743473802983212729277162520847528631085376618728967115839637341245497894347519454177751129337512181033600665708982536301352051951160595332996773799512789589800641096755632692995930751847264855267795864903473829183137837594851906860842796765581956952447652307751245267036645239286311588188624859688816006055251872921896385443623967369286271933797582971642063681378341116416624977486101585364290821809388709245033721745573699892027833093877862807017631699451421100425087280799037883495180298997890297607142362927172131992441597146732868970902761593247599118684151646403101144747349377635447519081340091394553763416070547392540874491588421551550795840958416786859741889870831966844860187199997422773243348748439261795682863320317604487078606238253067937395073191142995679647811247457683962828807938301502883119513771312012400994918948194306829431618722952071317769696141983501253391610502057593405267346168152749474877007099679396646338016319449979152307151297556036315095257886886779580443530402076379873394689320393499948978767853933541177133772994150946673477640700531066144121345469913479237166420720540398435295564949065001319569203494083295361366024500606161290258706864612451487604383465209362116253047034814854978100340775757364704454402238994248959922543501458715419151875848370081911279571037991900983475192981371741749586439693141109162067557690296751841002871051642750229434343400264987539365898605088341835857730961024259012562135570986286564052328541095717718049031958622181687598430253251868327058927227686789014136869463181096299970506767546677568196143457003778453945277103071814627156107970873488847573763863442829373371686132480700784653031175919027433204777362422590353923575717441828396755674235728709451814380625996093151867887210336176389606108856474702063820013097903535605451633784575377966332275676420906382533198335258971081880637870178144375964883298532506029131075433208334626120812106679447859983498314562556637031913165503508170959256302640728632638446860483345664222669165905086442731652525343045450599729991060588054124153153356072386195014746786361865241364116261458515130367987725208706395620091013170661054532747849259232228036694563624210498232449404880527675062725393358897938158647373275082341282695858259104635332104854947673759366731487626190298854095164212132604793768226928994739082166671977065002463527756873508253880261508930412092584958151897292623325071270650673752993116127377196879823011947330246175100217753759509854637944959607478018038273670056039784102866310980543013139089058749761136014776752786235955416550895338469253231342104507135960536100705847279413785747881107726692204574041624162239603757803931304274248937675561699596075355145575543335755708728059221764782325716043363890196231747120795856606561051010183225012586377445322508849045386719004991195894964072346441025449156048840027386811978374975045743515336497899318848631943667167454776726348273048702138094935513020586246163729574542613664978978633736754422414419330708381164381324893790629392386594480591905170232767420148085765758936983301872036083532169728632282247113591385983266929388515013044551329933127897002039339042048858363097477781908987781602562202626320234734065882037591209866799131432558534975044256515250523246141467512013029009579136503310656930358131813121669237455719286548537206586120429211325766007109005712597231139886379005689167279589487615573766971096853263133963581268605547916540908695799016465232254091748930161768502091980560579843214604394422150530318182995462235098930371024806791120975844073242597397690758574878720543363394769172457544893643174922826834494488337135391034881974636057720907335647394413869573840626023179407152270001093542210730282883956783761368875259820696266807504938749505728477738120956004030803584340836158631136973348817206919564783541148901500896428850359038867731575959698646112912863493057544059651760326161493810008913745912767269798838396734588989701345404638404731423405241256126125388361559507899453364666337974723599696932990530767906105652749749187421287906662611644810859696061063307638391804186579070398363357828964989600374126468968320902015280492281589843706068920872728257384304508837283286731337856772513619495624528392966349954507128208148412253397904690505690615487074141622592984223792308541341258983678762236056845921116376277774358847905596615520780382628701529227680639444172844109212511889898724836352642411909429767654262285917628283132559683237828699576235193713419328526064411581415276407615655436689932886603478838959752494791076927699937551086830641004808574949131940697953885295655455171720692805123306272909158461372105292907442722866052559192332340312987416135235078242855520078928918878782886882205549280044401199655130055179506114103737683046046442704866891037824418682632576304147567531653953975575813674928070555835950530478621613343236626775737764777738630932662046208824149042499993980313198949102372381710586734419991827870698508501012050215042897034820593377291810350022790009979203002322990469108540915728584551019181358302426812911396412881109572368748016234995556142638199476390253613093752824950593882583549909244979312334247506521543033684144091189396077967508041902342588527870427585126443571759418961839620486153900452952094388155529012275195467972115419394014645681521733091175144933555720452029761249433466690773990673869606318655719828386251144526189128564604172565290958209943400354382894737296572509598578787211087471225769666112737644327199376974017814809197484298228097906832003867896764930726151041657162401507710269816489143272012504364579420896815039934677829410665286181727452763943027702448390797398521905252472557169361442479555103498071109038186387200762917646581048672435277562503355934820084932993413381654476680417947751306784627615639481363875328212439360473489732715458400852909556943570377434558234234967710940537496261787821818196670125783986044450563840728562970476038916364341755706300729937837795850340907930182147399174326929510711586587811590546389071620258554366973498557556810383251911391351522833860601195611836161120791840688889318667777238622104366844110843222936351566778554134674563581202572170127785855433308853772957774442329030647442752097796378149910663807825278560084121466089043737931363479065723250868612086734879231261923109580840998880813192492335470377579286094529431916626301289639028962715730311913506598501398768342303153613471965100898731081106792158148246471365186311883628727427277109770611906152006148646935162712180171202333671658722892596179142038920734211711436343820510078086969965356488245903627279522107958533548846905084579552380067643117972031045482825714981583307859084491222466553722534155605318157608320566056043991303522714711849725722735221528244030545826196183162269490421061255579531775597406193714701053813474530709676658215554739642257502599515337346589614235178625817159933228032974622430017577678776794444601695032435995467947878801502751454772035692177208453337150442051006307000056529724818656970287733264807611865467541057736879212429294156199517728932672295257376007285696592600378946152575200575232819965909006056874236620417669695765674352551943511041972717819853860513812500708255500368433553235005170554487507247463512605412080995117412032875655122607281001577052709652517643218374589372499913089332154764958987491908409660125722679539529844620489916079360312203554878053654270372416157575658495786947529765956892306404498226218044519914670710816045451706968471506212068039088898071461037808460617435131791271433693852531536289421761899779635568867092422846970884439799486516400801242972704668161092396381274838045967466834758174169454388203667043087153465673333346325741274334457565835165880590358175826245387448964751394665854999852689121651060077390167949817809052914368540757011947944198311182754086552872380217205873608674890672284593659436318297817850676340046090284071618131605327528211634069988823572884912493339332786364286884519975734236083663476191900143233927461587878419219994070417174603360881889728269670620760040605175946970625353781860886907561718086892915650459583881526106653115473558395553983878626603371260606199287458749258560149399069443277513720334512434115109736992186247388456622667237489831698859586960846990751062208068264189997081638130144566379018759882807941986040671728013030727707679537659581294578887658529607010843553979483895983987475381401541079587168815735316516056999755131532925993612624770664518938256724248798150485005595995543466274466153752744068801501122573095703786327547088941879197484947883004745858050771076737717989028893352603072902998294816385469978097351680416430285185895596216641261158929218881800227239865620638843859188270422667810912977450363466478063973421317167909597176225251820403568287087134388241680135674890831402584240604181271480913891882328572809234038823450311685887849001673838090077941302830217417940558875887764700022733152343928008993359630195955658952784836045714424229893202926557905148615192483871496999042437513529386754473439848082506956724584178800301978398050099541641470419898049039146082437257120179420328633475836197113423564870642876213207788326015912671387630941721603941216782984437065750106832680916232315645189166454991198283503152522259686651092091404150885232752147968050478146732272247832280052416817107695124241516086058570909646294067131724045535726445213029888122482712992755561888644578368443414180217981308648863680021405449625447426381735663337043599871275552110268858583785051999239431187514371757438855263184358283977229428991520360155326368423410778827727269646582120463878670370348275810888360428774574742992985731583536077973340498896765353358334186903832792468884428885428377044003864900630594130985667150425281449538853442539310350047305804992169538633706435580711236117514140122248246671560975447485437919854512807447760205102532721040635577667248809123838257733478852366229448043368002483089734823091364598854925547287793670262465968203914014453252132542727788829297174792983996116418336676787579938315629947176960584318345736979176286724616035720675218542131027058341702750645681521560782606327363876644148226272434484037823913214008430063722507389664460006246836455396621225964402241007967824940285978875927179404600934902031487523434927402213420871586491457940474591359957431327063963366319316441320643070468247174229940043489658198264003915328378929981456085262815674622147943352671644826360818048869956520179102069011453053341055343805500464452497444003426077505070812246911184079652625086440677432909786483887597746025670617327884811525040344590014340327340816513755201668112123534203858647953187735666669894273720103168211130000137253460543671613108159856545424421579447942512850618111196972143604451609355684563150108197481180551125635515479811424336746233020206346439002922285854307981483112548666559693564251648057258533134001326499171707755887325070623489101697390656867908203346243753597251661735369287463087493916842038664580626138953675215549417485163106841089966679502935668820717402524037587956283315883000246320755538268156485666877902003229004530874961927040430021729631438671512933142815059733333989419388613370399994189974452604997287501156621893688258026149560298668832153596521863891052060132125603360955252245425925319941635209071484225525332191425840938423152088265013467691104319705097623122647490245374748040962266306164235180163066544860334490312809558406439249534595586160631879233359542465963429334402333864691869136847559845476393366469951605139405819511018004366405111551386952046885282845087685774651219649414363630612899730890806750403277434904378423685753738546209631212687994858908363055419019570756172498441734135461220216639914366622901250662192429742215769818415907170772347934935594556017477226539447155440254934398306294878155219863291550914723765730193435720287905902313746960016686266537718973236992452954787645220656510822435607701305454390079764518026893403405268369148646849354478776650195339428079400424246486645691476533652886524490172796834454507132312329831800442429945594066272567236398828254986712879250367715927350237363720990575552323908775866004342129376195747374706943866321239346731561747975412027889662944350052799616781386152033138458345076701767561882120925700193514073464328310459267683654396537657846671370241461697287721817470346799208451249716803047227660155581376275528012922756800760656997692598577788983125186272510539547560936307252059485991291726532606175808905589754851727719974998659936764228571639411266490059369245410556703991151906486624817888346289521468822562627366231273658848551647488434448905216198389072598276052700763298956113110743311592009048184922204025217199342471400467954925101116522523768147293212155568334334843950095718619608978592637757725831773875286976646528833346331197525524265230618758471216148239537563169254983160695206785148991247703260055855848771793475513348590354970169525725838488895413106016460084892961502228154058677404271389442133836887117574265490790877120766139964297432181629823958262876196016521624776647510213135192355575609598599070045874386821915656458277318073481800394638410231272195720010495801492841500287116366189071137509573004884448610815700042594395413549734466963645120547631204275759302075261530666575581074802008427533956179812496503442985213834889332104447081455593337236778056092629295261346156524085273773227464482663781497178182584956285520697401719892276026123370677614671858388783903822090354804435447334038967648879260588219794349525331364452088301467526685291110745100220370511266761997277088454865183211691772205646181523882937390954218165818531722948770606291902385113234740711233417720045315151393289534135133293255385704209775379808044216954988150634146757723089308738161683919705070666323042665746252705151508378013757246500338648342755420400511335308700339129988751200658060667635919674886047049247983360123421940943697324459266689281978856473409320339455178230883576006172165524443756520734435532923359672041357231694454219497377335123382183877524647188553633578162845497038039346381638363728725048884988644052275071496632374051385901475073824826285933191629655577809796782897616898499858986498957662934816180869989479609207823882474678152538873151682894201223633183279996565069031884655846302596748110540631370552050396264030958010509800120704401628257025630507473363598044856090904366335826729825384928164197566209548053373238100556424587251769468372048808629757366798019002806510662829700360120025734206508097499765483058708468076164639182309410530362333004478476451121072345972726570711929430218285278635247311584398811498597675697417313583084404181109196306266548713329899433080982965276759992993505056709673024919052724334761981793629236365330880831185120239555211996762807686348597867430854173638386965080751916174466860725881321623140003426400538474084985184913928962687562512636301650186388335750305203552804904810363136070510474855787710958264795935544327711258303453266704123855825964609425925735087965208298318415961798774821638491987332753139265247455212275237283784583025388144568998400874043454629711307444589895969792360788749394669373399904568038763053659664149776811132778408493602910322567962665069454242297096237701368130766283835279500132096665767333128860116623701176104449008340458894282919466956616835910154738957060282329555479870736012987182794495043297842777487976989015453104128814465921332450166111665331831555049582814647671721012475902258688662495263306729481233158241023249998943151041317941503197799722078054746976370177207132052032072376180253159261139134965565385201449526865826153989601383625376199593170985452639612913294328022817061053089712009558505871696750491542673183517935856910356320241425125162309968139346611842768922240371057105365442832138804719850570623113276624213699585440883213758599141690625145617538899076998839131904024610560683673787356723865700707480431420083461851487482701008412562551597117609283319051933842029404886438898576571353662265956634664410842147207787697582558108560395896491806130873851164787297244034047240305026937992924691931005042268168517289724666205930815761576060618559339533096504152027133041715448568226583989552612785295294003376005671933795897134167027578478736083078694603700145693039803292323770407263985585638650001208157987889751202943435123786147964213027652601623379687073363239127041394578535669468381736633612069087416056261266109301237153627918243137055899839377640537744411196618428341246697331579330666144176403217008691393324379279946462845834077647772115004551712349978377273414019763581984847849381916432015962741736127834698779571954184823927430819860013673655038604627240462539770986802546286615682816381378895866458018578795792071950727272172253481333656100281881907706640226134885818180827053723615880226114561305604634106188063812275684243889936731609033974885590909036395861725640578003652478004855413723481944964798195846132527754789012027594533899567616223665163879085149672216948258451985113300281113054028003025867832639343298155970658918974424660869644782822674171351286200055341705518040926174953945778268134520565846489321551472060072926159942046092140683328273326737164563470733705362281171178035580252496426588759089807918813536992283466949148023602713847384933230862448230221068145056545936251441895246088196134818250615680503782047198460478731927959932937108095696983151921104539809937697920935948418500377676520462850949528515146269304199225687906920335983406281576196428298278682640929350772650185689438619528167641409739613368624547368224530687315576142454868597854321707572627081215036107414472931461109104929196954019087953397682095254466353434909722631235580435470187939363791554697562378706840764899030665081483441025735702831440628231753805123319242447627451488547434473872970121734046722777956174700820270846127358859819812396191545495649220038972030831699825516486981143625387237835728696265303832352696466874242559758720355093017973963922924676923270415998875628529557026174314571954463392377602367532044039532035544496551961601628991884026263871453739035076403180371837991418480705923317399555045597686543119515163009217066513933903935670774372640313358995576124325741221748636297412105011986351680888515476677128538831375861770434083023385328182489366096809110499173691791533814428949570275379948533266469488877162074159098398278540680810198646019571136301927037049197062562570427841425444410171493467904785089948136417061562834872004196145897593806081428625134489007228032734997204502670490601597706418307065388866857301111940073398044284814728441329664351238917909416959759212825304781356773056868028628180362488454307843648454938943845955163894553600041197667385690268450747592408793447080669455284631737494088345917351678151505851914485393544698558380313759759517422546271034479219354824443438084864586977992175625246555317813789209241712517327436680468037557155714091012239880133270661799182311452945281723490275529090880163823450207162109957782323379029660448500637909884477841016492561897913827191042655949229825211281626581731253065591633933763465009849967209304385210068672444433036979959685054701367848769594884008986597604953223231689622412839964042329698059990836219654637847489731706485519957639088695210286604847973772151459376108106378415159547291680373189151001278630757396215578468773215131541483446556038014351832027198353215280636042167426739198483153834953027470819685229815879318064170480005941179524446758202363315535648440084940747948569096554365541360528747012011796200329787396437545703459245447400809393833215945449474214250991341577243014772008946554934994592509805285942460339258178230131359749479178296296691471902530065663397103395901294081773781635764845093606918432295990577601669854237771312363580695726932680596576300984238055067427049549591481785532491409094900197255116333616688209155411340866427702361416821372278017339273998959795832190329015128111931131430378385417556687604335262128411841090694753668734540854052662186888518512276350828367024501914367753428801548557205141162030410675991661177314107491949592450852511843289851179276515232144810645205046793451066974718576997172687745198992547006373328047121772791696366495475705284095306593859996930844493157642358407008318439906800036352806427862116209716264053690603056202493665607141465668909522766335746847680447297511582226644094796090090131042949553305302705952394473484273390040106350682924426214048514026980479927090456279654692461723028225371021347374018194894398061456698484155714697846269090652160025904657484364596069793507342006600270316181041812997541445582368809688539195362009640427748597460295796790139281480207686629329945856138003490276976606437839111881460746866422441044603866448610068154133697544541485968277735233737480103511645283826474277206309479602704761128379861177774718434792768782736907720592788544610215915668183982704664576097318334813099725793636055180146694018010575172007447202438973164079898052655282943080252657412743685418885829942204969228165560308611634511659990597775047182224843858654984128209523034621256311164797043858639224260948080891909194037843760991414084570355359871689839370424176272530169523914020193402048665391337372831155395701977488025224794277503517371606776520168111713092113010811770624050776455914253268812121109545822113246570580058985615951970444822877677961670588870191787865249728086128151776855969793539613342230802163144973352147830833535920556557391996853886815409715333162105775781744146196978830777175243699683952215250527327619766041827712898725018989711897357213177288672580192610190102951975427512125579106548547642962974709435929178934570795116487887684851194252529356551262661818844890322097871450098138918709641001995508546083830272184107252822387204344550475762424022941073910307858954260637926749754839470073526365974610980728436974039162582657099258829780219866169670594453839762660277655296520734407050008274050370143159115636171716958466216740559707694678200731994784575622219352932582111261574600587839972049628349926893768386445592122930411491992126249187426303282435573479494331112884156781559775249944879797966288111930540479602407981377135879218957930942177410368430018117290771405602040055678927745582192766082297161694921320378172881716155040865641613234361510214084428450315328960946662833199667258444002558330510918971013261791544856693026412511082053729142353256827986536086886890906522315950087999868095828037660754221790924663789661828747966195436826494285524699018125343367839661926997002970988298994803089114018482055487542920963715691443519017224660331355701754812211715080310814759087222836088957217935640076033256659478733902022070451497896295155058249572234756424136980791162062082899171680747827162366767612552691203322561894341698597215845577144246938292848768066982624420858408063715586970186404412442394255827960640398799006276438393354317160582407930092617899772524411736411943473336586925773483440879064864042084696250006340593747902806480636348462254885473708239439649947412288287390433279287587099729031868438182226050364576763992970064838359656292608563357912992984919004409254563884614642221991981404121749361480496833703178690705017600740681387276957997682750851180996517771036208056968825240655144985656138988431034015414353254819667329692814115154196210018009627212394533460355215891887777503661210009622316774514845108671279935324319988978236966082305070967602523424933356743190776773284098597821273084111893327703862534693565383105440374374784077384059330228354679580052978482517788554394089764845809761991679371691530433922104715903108423413523443056500874494667583966323427223106291301979784708956086655786610466932185707146595049193158344732046708590762130956467116569034884084999794565268053523783505246438140657304672736363901776317089521763552268233471184164666793984281829994888735372834224984121775488298383731970294145121698678155392682637071137980440158697294835823351459062893978165636129618050052485627487357728347442860503876207833046484820328862431417912626382633916925367898270482789737687076665780385468611273782417115391383023893489317877147902489092964999559795493010480702529722157792357106866394878374728841335143892388915192918266607270516016147860615187792387395542374239370347178551382545752999276943146462286525722628181734907902681430117812164074146977071691206190127358450479892522650395537150873584503389196054232534466856866420928386965401772932789941034462860639318165138621811702173277228175271291268134605659164442547126005921610766444041865391156751722524865002562968030892911333685669534047794698195085050766528829588389971330030773678120631284135896876706982697344530389846695947686066758442243964666486195178411201070355649450900694058135223219411474456721438386555408128068654478960301007349075994953235849555969159265649050092828189209720053159639003821652567698236006051848703907449237268373051748694606903308512183334542212069092511578073835896654451700210521168010061195809083092367339563181221095836981163622581906710897986582499843007838748293650663240975195266372711458913485227689025705413750260472844108867675932826860894089442565842287954328952787594147381381152173187854583840940867221564765030166017794063142623428858382765545814931296255604684765114381282132454535967618841264970604269050985247456628565268212667530582432113710097022183705636954706004108667998785465466026420681958962528637889022477442328971036100583204984328877485655988622287437542487189140210618487887542583956526408660520857970056890745967660440084033394430183697013904057190213988622985646079207282771504578739795704548098404789016304219385804703063680013049987795397620801494122852291274069590254014304609527661791269409969867301906610631700549854558108949155767258777529097077960058703189045696082058114472592941572182226478927415702693209743085958651973338984124735474388823898167248313373320985230610744977230679807602238817927671496861175394994403149140103585871280692785887884240597221090460674005470645180614431204643153428263936550540749028725651432227382044916696163074387336989669159350268980383360374038877572334512164335138582272924701633780583878393752265920043986345138724202706453507836075053295264613877549258341983894269318942570704415996044671144705834000299573719994607098296267043916412415971854302657289313468108367817390942042433691019686729515628005777563540052705014922347672523986044508620189415400027818747298834927889562700226404204100754194411490526539348849993451252743575375843879190321208331870206449261608079686970903757289762019382687477674655556966318576255880204304584289841341357756094752996371302130904271550283948467230061500347370822811779283319230601525191046189861149075328282902160272283390834258516523279697488311660133107486209017932243154246491133808436064662441282008111451375093902582420654505263073124237001208937986077526257245657072178762850078533307820846487683253382822000497694167310373095411641024660217543408776854818236908117294516868415925579464268674999974848647527976973841283753626649679983968727632951682204473210187971608977720844768422882593901744753031638355445334233828222125222990378490524376166347830956998344339317996627552099362994688317455125668180244954501420655105547452916716804999239970555197349151613032050239787578631118161707329034653571562481628953758465217543372438764456569568909315458914557577063526331913165113296541264866120894497913013099189530465647065116299335096329656224637115858905519809289008839559261505464114604151565936504287892320865473732402391183621690640906231086406491079283824205893686578213487031083529611386070981671785104836004398772144566672642988677082788069101980636103582238419380110304720175264851461577149563766763542882428523587894536425098071306335906447663812525026824402607011728218436263840971898221457747610482337974791126595580494750883669613619642328740623799613521741909553760016384809322033716376405869248958705745865788592738749771752127089664203207547944415529256222557648260052801026666533382669648859559430030925994157953698736819621214494148329064587339815620748247993728363138943411626282480650823807457818677377517419025103983644865743865397040471934790511678690196370312972121366013665911146810199461403178266994668255401457531968318664597104637183818374125499601802154660185131728022261257696702356668104378440147829447561137044843860699892930001950637652149574351282269044604328717878785011454074996059364889500359814975388937494194316154894149049974207896765247999375148275961064910898704427181555407389420764511509199166306261537357888944054997732116662407312468901678494013538594291996077460995847052297250861022774568478960246540818545164328913290082617115879896183579734426096576140518142429579596317461803991109029001469576181081512995854593676666844761160486597130652725681851353715588050442860776334400801261423421816384601027063313401560349440252470758740090096785549117241812345608968063299709149210942759400287445824482612842796509313490037056943996675237273486379973851165761870393381279906565223491991249612212986231067826449296152865539886251341884500253721750067753238986449283799214260681536829300097795498684178591824797469672040913358950924785604858533419407125949994591241462407359260603019901377945615844387437113197026134102610436580390687750132926629716956727299970196083069870406863995927887618408553725478709918657475905214643134224058009138206853174803241997261146417082606981751300398796705301452029913745438179032798434752929785891540721450808874342271314442955519405280795977217094774329879758683971949983394622921849499956897504539870170860867541303121305620374052559828330291920856868577575915948327268105091362381441528739972640163850962816017088171281656192567701214060474708720460843583648847889781220067197407805347997951622953954243836617401464864734435147795504058775095551647232316990992716241943552556259071688068263106090188433915751953790065246375032471167451484949645777775224697890084465124336413552492951797310221524536436620550029072675274371713456637658756490758815462378873230608254032904299871312474289091247377102798237387667119911360571604317343379425816075571487771226954474101854703135229175397842805763720466890995699954275122187266611515931256495434005608132746205063854968486405261410803968506944175745724764233161357013310619717089398170433792053150955652350807025198312484530968271172498732325559863234990227005844072038627736298613632624827750977520111740452595709092709251876793609572506702414850781856587428445919778437234346241956576845005472841556855027758860099981773514733933004468285442212784815052284847332610361264278682494162837808726450761631927091682633510362173174389213258639355229402227391652752487751993112412836884028941518389193129568428277220834655116129185531822106633413608846297399599677707182000524086304789694960760111395341110661426127575809182009290493410885573941398112668084125930238843160104178189980251090146777138513443642426767867954454980763594773773137795053494987603796043962337927579302123785244391662672112456746807224589590214999821356029748541236726337038125263015526943143333646621957587605376857418839384094999383518861458043991818051527303231028390451235096596288403720637592989128978382676112966037805556939106343409975453391296051302386787228639024325031668047548168799598188447537500946867299655163364917797071037637818754970286041511431453249002606631835513228420033375084428902717185515245896684332445292412925836566032160977705564963929784112819243202244888047644128361677951587392693926810145809258536625389597079590103595256083558142759825837111300620710078392505232720948613847091932459017570801234313915997165940569332699618157080952190867563770955354415443398613429949126117248167535740066209240962516551670337536949283124677367096675392782125582395914582717215982664734669433880457822605533596940897282560028625382865304930660774499170857478685041710549027400039947969546353370635172606514753447706005787952155149706867128591646486244245715464801655545534202228251539453100539984166576505669293167655335675362617471606697499672673993160125603858190563443772525686829147771899624353464339361977256456123742061295853855271890713052116360637590829868700879000742270160451831422488108426701627818661257821438457133347636487567067443690714660021250499338932287387442660648296285530774476627785788785391564186893972390443588867083092066741487837543643886772784084258644493980427856745716499046415589757216461323877522647386235637117608857108693346274382488955061191286165067511411275232413727390828208335101892456232167354105907517396465704593224902031618594580231016208073466114458789404352337591559802724812702970737753956472122557464524626932918800347540942674383641426839842583660931305713683029349229357796066123954590299460851746149691767481810264248297020944859799730731181238956545300728679539141786672781212399318329271607785369058884350168123967468246237150107836231884375225217078422997466009756948088090752466497976110158868768417457462283349406423694685691024226555497916367203845812264011793819131021449023755145412017586928161575170213652860194089567815042748878217792911797150600069535645127016878832107691989902186716886624471471782368991490587485314543764768998672297351479620666319445121772038045078398869446599081205153546745911006464078385584805468612965485941586850643988236114160027186692392986284551696049369740144258192731668050114250457812336095601066769986607812830487371113378373215360010782013417629424333351174691175521897068757330931988392885482363620088166496120666784920411287835500208846942747955399354437424181786042445551783992835175968386181693516627383243686917458744294877034042196935965008282921980161402710507955808226322700227184506612785273834512020292605879883517873978313470908302324747842911540741731229864719957305289315800357461430016577065302933735866508225912461316406754443082125710144320609176369488951416398354164792135477376167062372609781596542561111254999481459131029020766138231874765308549808015921991949224850092513098991137559536652885026031917950900445170122097093873311062723444308597432436243130238790037437499449943787379809569752479821931793987162690857086849966585115021567448085934637514857804195176559404334159751054897448742443797048611512527880492947944163273738016454386134161696389389424419607040554523371506683680785708425907250471955905665652358614565360205724023291953766592330697351652076220533204994348011062232325077406934305815828388486010904104191899709185757022584431199828752758646944096543727132851345043632304589359503077244843088400205050666857889147338026770803575644185119214955994606745134302300412422616506244636773409729706710254864784794364139851192607859622397576594737247179415126764211707522547212188212415570374389920327606582672233390427229055306287237995079892241019471378385425359213430833215433024762552705064884298087735208120096713469894316506688943948774683519520817285735910252000251328485525728563359344753977270728462039152823847669194444538116390481433546510528837345638945039971105263897478940099352512577850499595557162853843627295387392387416285694251272274990183135536906325372320186610777652979887859949494367294040655454652384493070587382009334290632989325179483944940841131744160002904598613967346619813238904596373423865647107862527619299974943453635554242921231421950734861948912083647791757653389858423119111557774128061390369684362701111450745945743467462133792703357674309335541264063646620723987478613860332874616947390463107817505238497787982145342916784944710222376802920956310344270590417308487073334182801382971952430213313916335433371500958070694914319191411675840163985167318167622779948361186391704552454315927659245160101524855732071281973513995363200052206138901834418474915184646323176551364458492122569438552829261433335239011863018692076155432353276724263199343300782752034184114816356061449668033189611557390222104401932115748685028918935934986048448198982538423622906521912926469718448526605002110452870170713149510024735125034131931565171998891571297723821241531335917684904681928202110656276919926335598453742621469857363539743185196833543103393135443360522137084689912937923631936057579031023995020034865512486145262347557172756119836277688578606987181879564539501619921150469677108762555035978292544189100307871090815882317636667017269897614822893531784067819704572056965965607299744847385673338054173411360920835160453920680552017388270321182488492580494858011160885284747015357469250645206195440274722660355437149427454945145227766262067775262125197072310923665242227444881819599301435335858274493349950292693797995362297367513587120319240997487260320345559098135742838147257095143640991453932432180410124665331633641775467242999330738794918509723191924028601685389638686972506095289691356078400406988899568758893700616449105056623044960486313996007784849457708499463891866373040079763757338637240903869990755050703830224933538963997422335939427583174077270612399975448966858511482230313826012744004763038223810459444200340965174313059827417519842181103828772014682143440355611902686537796090573292984929678234947643393505276275265860022326118242982526178759342698988686619712972950615587145248614610933532497591960065976676667562013436728201666309071550426275385850190080747860385554512385891564970828726551042711478485344411590814782578063845194429328011150948335845014804260185743417265127415824304853926649539324767510566180722373317371044869525610064194074630675658615961006898205107753442825150477529495850541683057949644900538140592998692332304540219325293041076681465491057996063226223073607291177051196314479690611420722917419797500212114205368830651937948983377847545520746088553277391563680070597755113233538071177821407724168256352332613152456130121906610606527589390584047153998540085497478592307358508625907796126186563830949711298995679660258979553116370957029770853036197341920188015334970853425663460444276790959679531072676213808120045707757935683442988811757379441428480008710088085462932815491632075358630240422021202204704429485610047392008334399738196948028242996510095238695950785563550029693388979310388270708072075318217335794195106031082608211133708311153119910809479707378075524188119708171001845385376139813923817470520104244694310497549420915644678227729290406322807386506798335442939200441923857184464060242014828402120613279141976111354897993362148176150625670520013549334867563189152646223229844129433806153165540380299530865132079283235297991361525994693858753042302625496224869561633575567347372251380568646556973432468242983208106300955726876904339862838209192625707298941908945177869720969020521895528071820836458951037019270739361415427266781247828411339352615947478399705303867101002571610802833481118604428156928829547722732317955221306802935271313368223582475187696202490940821659067594374938604715831388044186311951173680398593599600810610397298864396819769561434957252361330240252392106443257411632949317262907135150203327359085985704005945374143883533610497850855281606627020727252952633391111402168204356515820438290837279558672228351374932389965864151342735551106556426850388252465290053513805867503373616579856661800550916073753316935381217516746174899413406040202479251452847701914555833802065763477490459677640947967642012873025128464146060134185936172806441400984376959076797603519155609655255125358979577174357310754180869893890639354390132098659702662982564276979881872768310038052462766909405325348588198958791126390786914041227253796493126978879978506380602570988762799738939007938167955106488714894628978385103404974760208832737647553262053416876983681551795706152993434929699989682235025734533003814264729105935060908781950559399543893933484590812273169360064180950901894968642446215704334114034611890655501796098837117539032806243858446454435852276826751207291940620284717643188600287425043237249364151932772403917268362435932576933189261434793956623643881039907331654658016067974398897092535537723863728891763332110376270552644832089367558862166955384863285597878066878996925775913165208369457929970692536307693331459633555323406094286465470305900826845198202117321324798621968844458082900361849153895810312891474231640691716866184186232595775348442812645482509840080856756180018379971565703706889123768961424538777375719750136849873833328935935861451930309366322397193410862812340236659627559660771894579900474091111200488035494471100088437397628225192876204032386292092852710895099304644695993364367649174727011467591708971098384323145813528168592307275907216709160436549892217597148078805442746261676238117932064674918882137961247225415802925756882503884070650360587342400109792186203986901913427155785368366088437535224218645708995154839183370267058373775977936129682036141754227114491082101460564708929701582264148836621949868120882863900481496636268830097422479677853733889269522668044548042024539142149852409871920501916897812458659804118765996873263371310332132994178228152250649384831354023507136382195494237888131603813962602054972204438526704423411313896509813158040996644713451549642962126040806463106947981127185680637149012742516390544973522581448830306138284399115324712175864638397567796061119095495934709985801543273227702395213477484338964014552072297813391909538879535008965385958581926908927025455745712045759160547150377580970552342909446390447359465136749590582913894615248760359890920364493653153082058734826258517195921342003340707424930769487486344009226482046342965546874309585857391755125585596640491438655818009543315357302883902019680928129826649489907521559257121163941842066270117063568687558600583588281203165416813705210948074674427087473339497638018743333586998664982507601344606862049017546998580088024542073811010512778552374627975331569755487654192015407989343366404494804332820922224003600615299335371805874083944954978774310612741580281896062458032461373065286350837211439293465390192272067539787184510236086564838227418821480151265569533205717810218794960898299887280526273006640298118569601993736961674691722549587437002296876117084427367368164590772760693791130357980960495767683213024833132369882555691962541920763935521430964004793090608542767933432989436087390917992988237050802835785565073872104688007202450511889162106948834355495615675597936520258893039781548616359737878861771592735560728362831584983118746919338282650436727742135602169644802335944905596576089522883830441885033556732444241776491161170622934111383219499179407196652343216638248347957602284711328632115249009848143008934075544571640469044468090128023803121148328555334885925429256310411135291733152349395620012719362363391847768031041319828262876398984106774758176808827338886701523545129586870408070382273803738006380821599349623113460125267818929530559354557055098235046958967261719829053464702698941636291471508610446929782022024511806613055957575071970842390797221652336620524686071517827255620573260686177132541843491396175342544571573541211227195468470527931355211472853077922786468286291344409654747415649337235356681321871124873549391184967703811107011583342113649849802044631641616732700334966341787337615474399977080633592504694809092770843760878049474424126767776700111904529793032311025833896731454720891739765094279550014163921046317436039239534442676584333551108184482747882816319036298973728324623888366097758902574487596320593728839946267178604843183934269687624039100589726109185367740656341685823755614963704969133404226404772364660512459929998030083867172180821888713653745414765943993018463086585483661131997621175638113691230102531904440942375163723154644537729909476620364694382244536746327500692646935592426706770738674167967235262947929516163751107999570877883835886466141353648064195902318031836682383716571138574093302104620106039918989615804597689652557076755696448225987444443895572125789181797183527998745491702096514279399419657013987925260855006722640574525867311840315587423405065011943840765951494195702686234603982751510419467755759358573974367425695445415524770255733815581273169227626376606656480725526025792943057180998137273250560697812120844409919752667141919835889293805998379303745962896812035618488720403143305416958138818638789560237999397442169131510239653412574933406898278586203871137361376562903307765931478623482405194079095330983740957867466212688467749260385134725826247667409398055788766788928927852250381055546314314460121228048303715814233648905782200464420744950235884244688500125499315737701678928715063889278965458566957410458979363997943379841160214822477525857841292520629925011621053245869340036367276537742980784452646180155586038400946504439148136553810603755232690175084286820804094392129276218675027203820310777473578054754029094421747218345728195703249367297908633272750626507031236328517268845290892955185389714286014128611467680262793029815172667943654328382465851725940993577102879300303213119993398816389720091668058667910800841972859019163627165302719639277628701421953935368749756122665560362694718675942166695007146527277513712138449517835665932272078339140315412542228015456228645801482498724870096520347807618189984067764106715463697506846642528630750299986288001021312981998064723990249688929367493806725679213253557858759250576658306041250546389461176286132234822895702013194572933547173681630307872702279945666338868566374009660494959978925402804771455303282446224746558737864365252356913971293629967449080034803859212439499582084869217344039964988761623888493266999638106019192209275714721906325198247933506840840355688483668767501379395013740600848960919086252645275242778900061800590845998535737108606272327406112301080447197147475865497851719378924655676093276938271492278981866820196795091885354410845250197191446978365977176763061176609276735324001656354195998667457911814499859835658988996616219594632386886879881104040222615786566928066998795105709930358248971517857142738534594572720422860269802963052109811369113308798495217670547419651820843696414718230440625453263755475112861728257292403766934927217463509861033664144872242023262825267525930552265607710984221777360568258368020935553611917125367234268911261956751048670231486445235612676119089853457968683873915988046041512908547579622176009226651545388183032915850326711564143829479627791507040375712085074952921583391016549482922528600510100665481869259384189991034514698436821601467964588533325321837973200814864529943298624242529555540386776557293217355555911338862201149353446659744269086290526527471991553152740308109652008995165792073104857183203511116340997277931407630355116657400477711168471477413310225771999107231828548229614121065815877838759584567724052647625626856539143543258155271429291419733496229961922022063817623252828974065376511352824521851766095014131938628054139239761594516847590912486427621509328796701314747260955335222755122177308466649475251073321137326370867504309752675271420994905535110298114058627442205165773280030591766614525286638683492273500394238649711143079681125929563855623023209928157015082601559246258173686082710752346747678314299209586320555911304280032241254270540730952427263097417275358419612186782105623514108812025930575777131272925312733369614210717829443611381365376101398228544266002931835544406797741878108315309724300562745301329182558436523582891530762836051060121922546789866743305724317574880928410401214729251067529654800397106587184123568659098181233203409946531428940226197841014228110989195560217269088313172179241997238757562396421206716610601048429749346914497682034872603278730375408198068107684894558691492251951697307616413217641925360924427458184891492167046423418023287624875042887775328610785609444543964511034469825092810424726978700814100807648132163922534185943533345756349275234132066277936920159117062774407756419320212184716654990034872801215282570080136631751145702134975765713995326363976062323084620829822192769628366667233267591185137844245419166925279627624814778682402611085787329879973839521080691487485749131885908956378614316164609381272587417290103673608588616621723477512204495456264334351574878353386375375504337381406241351966726556749338458381008801448299026435818650172854906729525347244012357028672961284885607156176722312495257533123772554857006909280292167614359522056438842753265509324430402580725951925872398976318229797575813682349656226505748274717810601838152612147184977573456836332222119365631928303300961464482469343928096390286419187480783939599531631718280704941699793618704596048093476203496320866166784451413038862918936608543115615656443165113372213532080482496652481264155627340470939649614461597188173951417506862710224386195014332646017293218139880310999809989956380393441741306849981465913825249798826297951083234086551979240715715289034601346488941152221339066077826762160577745529073539103714354953742256403551728050414694269686998310949196729158355631989174350335716012473081360797322398172472872201064519757533057345511692218311005032927352472978318771971930746647274754136801382644038867863327086086508513494281752102092645695365407157759769387177889666955119895324301877733170086924941597462857255952765972250634403354733884364348319787037727171262656148313859144268326844248379285736642728105116555990688385310778316903651092795239010296792309546885293332363485876178941963118582938452562848286977264575546910287471462568018045372420192092828601357566704554041432431456347269501994813083593733491248632840186642943355307841565992112952912888379584033211650507974447048964187541414812128079353029837709751977150645225765831126495788719181528344465480715091136979351288035166564414609826832041205398236263645977138803045929843376712377322851286379131496456688403836661420939264718348749360187869008321446356988701275488998684068545698095977036667278672873511539588633048954135173488238321988007035051342938696062826769773809236828968866784715941271255568593709559820449692413991978179590387740547638920519508684561599254728758897558484185961778692748558196500595273245955745211378702271838497421965276871403514004399155851386789479180499498447305613374870294098199152109066564690412829983363576406558794519355008022827359120261961973126958535399814374661216020868979526627150228282245424972031821826351706084248856687179835825488732099530406668186843515321245742085186716700760523946424330493972152281508718269343344632326204485070810013641297348936542484892834370903044716692307167849210709461725788613083852792614675783290731280155907931347309138380437279411512704731706001744915587700371418566731139140306638156438915189772334538003832977758202527916047779491963331635014040916206486087154227202736979346109027218036668009810686206246738426621639033215991791365037733737341417950691726427103968465689452621439797003783088322322668044809163731721112735999791593010789744774654230539117228626592926481045885587567876168204540053158475784960480723959281443656950894496249366249523193340917463210348075824011329615851554074212147611774093738292730239772471520733937306719636483597345514276691824899615203067790524002202176629385909001868920444540518480233705946726386436471757041099698524836308020754328374144642246210415969300729697946939612047074699862759965583385312988993146147520195926386399032706162975360159922086602097326349026960858976235957659060461368436823096694835624660174870623360691591639017095183834277472859363995717935248807316647855147459982643713469179858228278364866650180637845056981860160779475120068839852372212875032052247607092740399804457136553498852883000939449649530767432237455323246345545233920438932656048333874973998943213064712949967613973180666188632869456931281934579677175711773753707971256397252222367729576057809385077277089961479649506319482929341533002770528037799218220346488728895335534626460537769648879634928526652364305063658457301514967300949436262924274628666118125627058753186745362420441045139970819159811161375326337799230077308758176381688975182696774698875345451173086729836431992593238081746300396695116370737467790685311450381456578928888268654259601597372169939392005339959283997814793818978480285585248626701319961609572090544409552039268161678154063585882631954933802801135370243731673813528015463886290885944270151126165679355213659859607072762224355023103012714103119802242697287329512298337986791841610041765053647512863371635289922886715396470628733117332339179995776367989827911295142291580086481311506636997209623730667557311318995229197463664970620375703870696201458225362303656451946443891388256100596362066596358021299206374721302059029978750414719702040223796458810716108851997699737776911809007305516425273677177271100603850882211489653740131018250894123784257429578811697464144474069809140964944602058766234256764572514656740204501688717759403098625541399473036333639225063174390903576258896084550246093315391813860470820871477066306974980898401778052890228665117012987445878924531056868924809088657861624844035355684358271810250822403376963745016297084113124958294450094600829098094800097956374812813111794976902809765789308090637904242500431492113857848478641286061726840525518423007813314363182922028248046669591881083131247284744877041175842446529331078238506832172981325838685335072440911195789639782106660750900313373112476912481730475074485707216908175026684923267743427320758113482965945019023432600364337577076946372192036937620283717285367022634597977345571722717131229534444392799285077799590254077042139819103729766478777713497156066644430655249117895235866530719739476492705891532613064161036219908124583842311725165147348640753281304532579815604713971030266485957864780506535617302875644113702946751484281246625336941716044582796750970836889739623182997326015184073214325553946807595556535361868183445438797146092159794824233631981221333001019777819798014752209419039345714677558014328037314612280987791096640392539253227620736449499849055478313212180163891048026680442426826789738903425767398221617844444957505324649698663754567937207130684429763501469266153505498002250400475470661802473467860716326367045570338290640968979786560045428889887595475028867542056679491787313949851399177248134886497041674897350229639249270526568280875486152310531636442137257949476570429739800861850514718630915149275771097202688725153584195659901735015795810772046952677631766856354504736187759076994357319796535945073138408385779939315593922545378995218169992089844528733063308511391367633563880154632979095851655604333478924856625591135853544128925027639776212266279763638210844892063977520375871192923197197446928223423390265259862204001199174781812944536428476170509468778457185500461208924810970795319372631427939758130961581604948347560279213212586579025303552101735938437504688878692850886276915693960969149241883490764464474599798101182858445540018889962053760381836322674172688640674347386634990253037573563865862632478702126950630188042949513970564049129081751171168934846319111423962737531333356736800650139397279080000401930527135735701759864447970717097643501530327732004369803047505162356140835875826581316825828539566701843380841602147600019922470831250006630940756000730955801697657673303579492088578055705113164441765209055021853750173432056587073354530559210898872923104420765652551459361780152648860249413662092965088178297494976761758166197740287158799212763360926733743541524765008590433384969458844273192276091570076763328008135165361937376708727637573996365931692361587207596223879536933758997494869440972116650918747234244433418853509280139809695709653590477202472464645685965990258018575647213951180872114217111129689952811056160498739730356208578371550579501576808145964397679344217269463739285757497545671560169305131899522657051357951552947904862677888659734381038376748338674448290450410760342795450014144788387006591375634045032356179319107309207409101379424724251890553560999068632768291461511557052380709439130493644409282643572220555614987794661013484715477366136919093666827460548741589314676837116316718602814977912901306663390223946597861091394094609694654672917069029122323221404650582758796607418054878280326992323426148175610659448273179445530154648142087091504392770006500959368877946463745098575503166148267358127633163614179220820173748732327829211162754633772867005983504977989801814952278421214101981600207010712219015199510713116121318256885808021698735105086625965186426081007024268617247746016710659853615853380476915714534102872044228402317849329786574371724058130805358996949410923717270090008040896906706650775483820782242345495593395766453837736121360363329719697642612617704454084961132527702376497221884538266737670238140946842128456516135558045764020736670389410535533729020360213416427356361624704841094827531974324817524720363110520155293367003301655839007012404037324634872308470862459788221051181631756977339107942576192222807529160067228666310890542752765214852941980417274408769428242864929503988685572291753782201006282803762231218995555279471327373863029259151251126633496625841793444863250834523914667497841833086467221016293805966902149164313539088722794405490624173023154825015766753557201932930478226368780457368180357635447821258646343535277478303100055128948094739085532997682065792287063879599486025272408748767986146121476221036605194317588526530950648716296061440275909376037020069450657475828712515497549294481409998756573038877129409887557038807055393438804335129388284381429945547138660603874252801620407284269639711099699811653251021001975626742732771048774853442598244529649965198021187384492973382086993300439325325443109950844825282083752857809249044061733345282064482027796034831302626159257751347164210913037289147425386438054142639069862104956381847419776342185257028262899751485891263429546014600555779772909755849669861153176032756691470765453617105222602824235578657248002650334948975414987003421452108214215040952725950960627320657874581954974653284505616953848243711168731075779231843697315375517331994438739819504390605555830945620618266780286551507219724345221397955189680283553592202483396172379839580385634393718803960520374167441028882632851785098684944666832320655692403926609812994121575081455263329536503278685272021078621340243592358273278212637906476680135409196160296424773847628983608036597182530068506381767150980322557363939578227138677981805154708631620357091344258606512988154628635885408318089702411813584810033786136557980907842209632898535491812086313059587533488025554037420324827946448860803044555426223103295675097574473230292042350222715565901853515803355296987256524843158333984288663093402711337266253734347363486284431919449459720892624849428207083918285353587874891695034582134970697396232600592600084600693604650328113131568057868920018285636824200477479270758621008442381710762992136105474468072683477180906037080710007496004313872895166789514788024814365607578849925468641135886446812863202393500644964054981879506031723652434671285323432025640312142725228591692542274516601020686626014324982835198552726031259378461272844693400346348388921095205585757996868673799452562698664795765436714839383875967421613493907737625433310419186433306894651332510097874969081746227009046835967496621073881375332779681301322146415039754989478847923773150519512406306772841048289970513012767769132894152738650169042781708944890451305630037177496945624599629804433878779674440003860119200072413377941144772916333307413774022234770439941345777957530099663810510174757150043600639971691053584410692438268171997051464258592738272053482103005433812564246845391623722991376778450919319894273516819183423591036166763273278614622429140093342246938895507778982485132965937999646956918460252529038751134461771866204644166492693158463287951042682004612767638827388354333501513638579318322639326781628315332199818233352857417119948629918567107022371552864407252657074271100010689701204782425113049751879884084015682536458215589040508037217038571841886870447270030251766418494355659217269218510340213912266523371952171407739395571284004979741101491870394150869979734479010754892975718026370849155210188990321126771253834007464398862530664946588776802981413038785125161384207076583428915251460714601993384461421093039018397812401485044376361400167952928529890223974118203612809873282764349995190318990067586995192302015137137475642109089659799188720199068854949489931851519720148054831866016771312717699601395587073766990633185719383540964516326008386008489153482828829648876320204004519871648216915487445685783358498069255364229160347988629200146790592718525430264328190371862921684698614683972910300738246116017900530128531819536076693881773515312703326425396701911015801127535980961355235313987079362604100775233329551556984394518872260301778423567131772126596695243617797058686000116735413630520205685059799043677210192393290288492987490003152895868518356169137585075053831987585497612608445737987091569104925070961882482854115868989383048561063052646717914733062483725630214295284957939052155325554421767789250772148630925886427343951840137708209469921081057734153699287098591574499536019381746757596213765631279078669841011290824014134225560114816359013319229057243356153323888808550744797717302699618589148806333472143771427980212305171163497014501568238467874710860875080549224744369769614150678557832488505911567024713481474045421872420090082444823620587777046083719501248941250996496025998411826181393662780006265675350733176096500737628111884120920675223183607448736010737724808110600519824635115195426452919516018406072840802636119817895383075224944926960506571032018078347685985589762450945658860531244094501641501451767725926816964497431948271674692326579890862717659669537117915753806512596809900135265891154422795228586614347425890763752566839216929795345151253666792313217887541077378778179019415929297323391528779338776752274681472239377021099215989828253363989477880022072163421808110386089614949921793955508466660281431108780088831600518794421822536086290454546671554392054482331225706729621935892245932944263905279401117211380484971102810986216620980432297168052431700555058956671278955489630410716004623952905629432831803896070407749144627781729165239116445317489058082065611901779958317618928125549273421104864009779092039493021621592023112159004281077243112350379356461960890124153651058641309638522221492534013482397523491737040910112248164318421542153722547553660231483437370591681954519410835118643309486676703999232764742577466246053788338144978995090518069797901709759780260070065231328445526532595092862129093111421612240852429525253119554756871170019923660560959592978705339123870385109967273669413284610425205628554172166672067149544146188007092080964930378448643606397373578986688728568203300398855517587527888322364518073815255200719610789747799053042201037032988889193435135171157963455733644712219877632465229691530985429380044729785060426660054923007953446614187097805676694752248719840293726286186278826484051508625835906560461537062496032415686786902289312806115059096803535946870616932074159230145398711864916843350209226015146477169390125703105280305151158808721607507229966168441076464368929279678314816890629339130364243861558799123445383330738084524175353224217708441382882995261183449109289118830454586278928035217051341601857550414365982909953892378172003160032801444287005142531722289320501089903772752461258361147851427458827505316291759853351160160580500933320433546096929643111170613208187176598098540778991119954962077892690521601677949998026747961599263988749854841578978038296166138724971490527272562269626896863401533874070400210860850241918594642065645734385315964341333625147754502637967198689357205043389020796082930981865225669397559905596292766067384518174933787166810169283608606013278326563930707495954883335463538407379385326319904732209863217673716985125582943206259442691593277639563260587585951079351893261731658600510159890107420935998800012516864667241110849497992555637904985209186171298921992220818398866466327994026987937446499855069637886450719521355707429385986363453332084650526285241025630939882817145437657150007067706047627236962884598453983086931239014158590254286502191950137900520569805398331876996415439339297406179885657677501764180738415248364547024809505776464278119189155888105996795233975556403872590245670021889358007281366843679333556570760372715817060241018089823335407906841585312901165479464278324058411286403042836850872065909691843574756656652153470685650841716575818856282646256991118848568838647284532033546524101500439723714826766218384280451425311106220450014379256324068443564037178621428326937234613522453591341425044692114201406170719117731812898789645132023476332406609552028362746444318590516882262021603311726217972728220792586447969945661015485796522162142013733417375626990914815361307845433345501857393031735428627096700137496742652078138265008818982887679336692626439265406434322112548885202458293821830548527778678887604714012473704962257975316393442964476341032455695467449718594653549089844335472970700171111010337683376446872928446744455311901767946054573716985360215232299686038570692763777291672560683455315454819782079106859350317290404164115471915251417017154491262368614961377315630892768254293909570362129278015496404392440818499241499253436770327271826902254742615012883526014160826881857542929556491937024424652856871113088968057424360227133440498162867018064584035961581358850259976319240039839352459525529466536491635972564748048323621731169185919093988308504805520374107205689929344849540489621367978377700385210743327621232507479384670277027042192760490859787868615380886529239447534308941907210778127835903610433065522635550545645298020407887270411286408393921011251312513320577331187936075278546919585687885929071047781306544143523948970366453358767253027184704835846006875217474545846454023109103240506320453409148825565206395415817142093856664766164881112971194974241007716810386445189785629739218109931790570318757762767283358145376117032295606321054088845950486533777095568828025652430997479421423408146944308749789798082743670986883346697397340329695317810632912159135621694158064340998880515868249926947347307592149692284671281967633667572594154732673668280042541046984112764244781813300390001268391893227510143681922115280809318105420913010967828524078291882066201037389145187992323927946280013317452309180847140468139589858959761816096263135226755746896308286046403320587744248135088218834023856981517763698776420651471864250133759105737158275872514523723620651225294361816618687360894894472538930382019732644628561787181236850625675311647529911608699065479320222256250651036326093797216663666748212460067477570881419711019958289593017798790778742947410648502790405267062137547395523006579357740589258573556123774554890489601412529165867641583870388605983281267844682571834363887558554290407856795058451885637063040900023584996108055629093925131929431233891411493781474239738838437078867818019217234692151523013412639429690855355556113230791922120420857941245998751253495194936783999932347200505688182008644017320897437118454794258867042971722502982575463651406568839208898625568797012422407872216347201137956691338929620573511812815341617546889729641728428808669873806680990546199599730253555065818670401854559262116044427597472297643985047811528515539677917677199898104870219199454485610834693423380261478813304232114539802702482474901537431702187682417468042980672581265757266539877790008494926065453440864148039867560579591315771970532117205985474769937865728321602669085754430584168833343616242748628117821714044007470313675202662517718677571404118572585675887044778953004791165283343942511519454876199882696772891595580051397542737548730009024914364277459079939131419724570070672889808131155326633256369905810917664565351892360557720564022522049279491277248253448077217820858685014459301280019668795930595720945070645105182990066347489585028978074983541274984259997228408378241218818788812625753539578085468789763003038815667967357514552664807192731980142818796902698414169758906929718892160796049632589638843630910013502781164844533173821036360236874925369532032869994371939361298579245437438872369109865012293256257731444173893360423095391726448968528750758223932874679354205955493510713482977868608376166200704369462379203155619830475564560073385807371750307945722061414681974446357657303443419105299469197268106734451429864842196478943644718871392225842891369500337807611386765724860268519450198035693653643527294348281688604369676669504532584540690818643000456618145080196053294962482939405496915502946274365039928105304943607941763164800888910472535094523389034990863376168460496345862937810394398754508149272379870595130701534780821399082447634095598002316810975504656735625016185516105533443466363177079323158471083672118637615016985398502933187224099837210062893948911154977668456603386786086358924527169741176621084854573982038950735728769550678904487646350198566958938410734058196969576052240559678246200173864422410042767083183196620141497512651382130892751268641472402151461924385463561562229771566791974338479046813016966465347922661083506874026071406492741564103334971790449166971706342139464788220861094741728170033436585564040474535529589102299627504187152794894097911141490465998049248814723180945782248359072606265013923928061404617618069692938730901381575149271405123414903861814471628290496283516083443692607068974466164383457095567844510919733586108890442098644756847963039238844182753255001297214379038509317429753054971584782669737855220680212254747052160597304635205330655265925737159246531764060387104666007974118391196186755523151215485764780846014963695429874328756498881994333272951133577745711830258756299671804890045534904157574371077089109779975900016850719961486239057278151829629832501811985522368523581626315987421971039118697340256018880549284277332255534295803315170846500977136682077089238506684060212443829214200452829868711466654470803631059367210157432833444078699532581943311669362345777481002895081157228865650904778420815963779458686801057475223238866157597238638668195926637808838559346258446619910019147686558349324124952627087909398667172334953009611589584950425135500278497213675802612620700356126650657219150187911006363584556181249660811101045595020128397141758090816482030305564635759514847714533144518476546799221108068909962991826527455938886690850647446208953934913739766408339061082220097721583166054275849312910565902980066728436695481439226223091687448097848643995241407757894674470941484163182096882106019001503349347632377470912758068736420623744946202575632152732722737656414999949075539243642928262690276786320668406314526458300484885131529951165870537544826904372775017928141942130339330314468748816984307431489258391189828190093287983033491997546664185771430300035367538373975082085444739245101518144125919792478361630861340019505711119099716121580700968175813242168312952613169762749713589439241045168987103596435814516421689364097177777465209844198464668473005073613840538259321272910321962734921971534028752302418513122240856004394686826232022720309322993132700418920762622478678372059854675835699990845465219884698133711753497765309343692916648406947672276655434234751131344130938913527155845743883611874576156419838452075221286609301961595989249546192815095142510922748128710054069349449681660300279833031675934459335136353061279193298692032280043746739082710805510526882340370845722414048060675793022447667836779315364224686939505366658889781818563078635241746408629189258981592329038459784523529920541813828653098841943086620603368812693442031339373006843657812018211633657873281380396943033551686535288626269330882691238986202299304422083885543772960487391693457078721890082876963280366400201848404676440065620694004611793864601186960124184205460718184891944597927549092297048309897588549399392253616717679624394968703062786122000314571279951661758528107829954163127969356234429177087750029156065683586348805144293596178905264230682586819557157394220321921913118599886922339572879401286275664497046116903051570592535089451771380979692901198543455009040883758961498324404242905502248022731787716280087257866636211866483947638848228472953357134365006937480533386775540293618135540298842225720804246087581742946520891081855834063462871500565561706488257774275578927565686199221926116437414729923883320656007194899908202054362836777426569344978074984065266501371585158383618008768691775879245005942778818958020388016132769306735790664161923768029279928803849507381642976146076186775711332560804723838031301600459080259056345115346354021680500953451159611304789856014370960075949082796024133488045211361130926710061061495606620392736516539660433087114722062421700795949127874812108653531761692822637800832046321148306002638134154783508059726016417265190124672814995846925575798902785193962085861780601178930019564882242689795030317406284096923307521628382917893975564006442569134357745026075192765880037512143231665695694268665284832797582587585078535644899043422413897405583263163605063280836939142179025977374162147995034076788221641818382508112897238671071736503026430733450434563212423562069002870599746157549938392477760459233069590088651188765352004143964275931743617955235088854001924529723913320572130536872977974827686372956803401281541770434287947473751354186065630797210905959418935187447593575633389114276962301335598936987532549659164047392558857549021351132301176499716333150576954469447570650264788544981218946843651679029272393236161914881165460695185512023455948843520124406965161286628810559308461884289261287375746134165616266652243240152353055179601745844839319875583704461154066941180580643780588575763410365936739971258097992898101009659545971634159760849325290569712028515746134474176318242719709783733136242145016360688584824858117950939846880313167167072872929595959601239623226052059939966365682371880081724080185843446083287657104484474541086573269929493414350436375546874445119814908290392861063571496615704255373149596619974391866880564882434989918473055573084935129766582519288087487290542293509977453934962507103175812866275925760579956034203624917449499256738589530438401472034888640146067259469807692702362436779153252451982530457451424689559879572180963264152531586030644841027532916790574460726766183974695807590074433085078152287678963910414818625246399056193496373778536678865075353763837439243795869084397408573586797126627802706339761557876512135760772251343429848309537465248741614568367534369261207862097671683078732326243832493639058635000563447598286675881721873114450832968757727162593299431253991923087471653072009577789857280707030349560580511795824181796464540908266964789551340847099773283735151922451542073635308023937311256551535093482364120251646203658975049828979508579814893585847741012469176375483081427704862401319938116604817362036109713426294833124731660456296712963076642229629230849116749797022251542937541529154175505355861355887566780861819672432497677911390499826475991204215870309879211356510745627241711651394156874854861580544832978718100904652766850473087794666834120663164972260953265848423159930921981283114096780377245973444507756104050875427740743686005252583609416138551230817346734822798812726831105713724758031802570630000584758816118804151661440388971498371206832256633653901939362482657261761325700982841704993576256104919684788779881337404086585737111579413958304290398441827915617594174552251797725551483622363156398356238266257380044061638944722625929560350380414494003504566432665087049719612315445374678206179362053909027100568378262721729256412438734253579414975795087528173253530329066554370321151112258406911879664119765534124449312731679129396770759455964638626136466504204361749921544321142163287057491949276510680254347849886427987001412692715824894651989112155182759579730209038524396328727676342254018627428614341866516448230901157619407535131951605269404008404013224539367601976531772978561858376726650755437117639799113037403206173309252209886772908453235662804081257393746333008958503096104354938426114259450617486658891795850066075314514080287656809204305266052306973646039653032771933912253650463361686970675900855820064020301279410811784337505852538122003671580428468946623314260905226756060827273493762291510195204082781635070264457314353639109239505477737317686469367518031430625331960691239313787327958052251162042787890234913687608373016253738127969237598289149158171469474678183915154398381094976541456001219662843807297745435281945908777172419993831007619517075365288913646574449947388829136067096526631330843239575004728350416946074169727232694641049613942304652383112929148928516344046072981962411595966207773780715339109518654457899782398341899516333451090810560461491308870157311680901796873164544944400052349767304919535257832849208262311533772277256544028174505324246971796684738824769155089243096634479489958538107782043069864975025221497229480165433897065058375417665344136930485744841035230370470207017611240192971884189099757276459843084213037830399134438613218201912492041859794496503949666028879898880561627908338139179868082790801006537317869064682673082412991254419211747089578266612580228842002809986974907574147978316299178150326939821841336567261612135385696341826639009618564022298132467644301855124191875967884899258756704811597955103205138959318265029134191293737367995350187334238236256687026202111202982723442563205397061209254756718962638560910756009837835346494495536310935182224998747730841303500126831290586579301718263170783058105523463002752604209423783328517197608026571614318807147540348650907362994047470043452688039935508081623474280520703450059597985914101207730443469721235554879398344309474612037668351812935437764043251992191440388385626190491279276689954795281088732593269518681046653684575799038086212293825560019074628686646014159474449535287484516862822349818141792987208631479781534324851965343077802517117544633730789960032541230191558456713497380132636368217212743625169652561713369594151956631240724732226819578987385298745078698450206906091261310251135434578862700183038850229832345183693288111443905263406698311753000560571168653104531293879720504950725096169599170935956223550195013929423933629087070158414913797673225524315325376371920521486531395773601480322985053157718983422576810145464889573782733286853236812668446716241594389006091667207452735286734823821640043473629630149829934265016869945576809330723164718875283655087766420246758379349445926656598629020083931490291986721035442303998068509365389712697499897152736916405485292888103676441431557429283080122971985434602125214614904834266399626244035600587339525023034209208097272822540763672376226084302767630730047507549883141558393025540250915376004692131979496011619534934157452584160025520207078092795157971711860460830036049315610223710863918800482357219027690380610047610885928379934361611742289468962280105202431589559374995053830391475396419425898069804885027568780563894312815491289066301685329866675876581420424834143912024780856864545310075485853099391718617131312532336718075751959149607814771351894117603482673430127591876966393745077749868731204794683144001600809097473639357139160670679058286835038303286951369184244518180844050516325860802397714158798459015739135423924998727750868239044046690684247678602090409255365222914658295396725223134860911655474822662261997901991350108228695939658464117121011542483771592055872035094071722871440714412132156591601321767853510124389526297630478231805606174502540765914218113971870306816919723573130934524502193275272465580291524321410831471501995072224703826497239888338818900999337277715850182604205728231601726513456939116752869210123515002075474034025543618146087215601442373316449006551383098059489374882163628460327708089035579704081249456839306619563505640366811261759892877700022311214568317480862727837518031924716227269453486496852060239000622331602966836614940795817782100200569577169835073368656562891008870350361568946020387646062275600421443826922853132946151353652985234730910470595078323452451240146838855119974225142224646345841779545400655469186455072467641504739349859212445882604652639101703800001600456996373868679549956164184805584370460763586766711800991783335869877921698713642844940823842618556032746546405306908162309031974427767472179436686813607791205358262950775486196721998341627828549000215439168698747242230601207864003574492327558943914215930560906574985763339399473640994603979774784206781285407586051402530014730668209759249424806464214887623578352468233494803929808618349425755871578864590651694998454257171353235467711234918831029718044093106011306213221892290012098182500994034720492268417990845595462049622307850607067192797429319113714845778521013905408090761619324864282180190709613794775827622747538871002593138729696902592299402103959917403470639131137366280575964367102110197590708770862153353219649099184444948508297122943163769890093943470093967617591835154265033158151343050134764782439288742108037950603133981847945237641345875962855150505441667628582178364880181932890402242267962270405988677377110029640075238282455285639886149023234126464552426750583941887619169120837715526447746295097142721695776028367312332751515334341773616962386674155218047226336988369908958016683968933031944227453663978920050428216258147303052305045267529202246166560313856732698734848218609475738926836353849731474635444386395470633329175860371816012342165035343844264145867248599714609777072116756922709737511076966979652761618058747898871216848611186636260119515593367185348059662145769040053442297075728853308273340961334690090102280196208192294596335741217858428829692540771482202754134843722542002552744593682411906576169116538536332360374726859690509981709102158141997411342356848564270952358294412824395957771528512462441025154692663229597831518093458083506838522487974581874803037862744588014201530041538238556639158728768908168509847716764689446594843957370406546237185546978291178255343840719214511783292980654998497131586789089392138917695118611338607640449260647172950695543400886206272403040339945106527849988765447506398872370402234072320372954567872695501678780487849452060208049277666003756693165639043067590217310553031521887799650294745811208047707580446447814921395601022518157455796144082077783548127376181093996860341771330625724573038379859537322583357445590325451835597983190175769443344593458658124314138066452774308755473848052836704700596523421802038765509002951663972108679748296858520399345420617243484700861048627366040819398707834669661244954515653957644896631518179931383974673857102448138577230216514503552944569631360061183594475403753444306606889839159723694851955037384766893874951401075997722304311536388194057753058410879632769453609492980431093023161278398474569519206785416760473260092136865115599200596481461844553630902697848207251912768363331596696770261215090922230640965199100873158306416570182252912444814617769467308087759364887340494524276676384123791137871638169063709348254667260361478838439809440914032590276928965393350891441708244148936773924472302554301249238955224232887644745454884214647291138336202342154238502997509709020362300388858584345074692161959514022686015304844557362660726070941993081475210030183391694748080631194747788477036418533352700380635419663151434818765231529865338397434861138257462309139747070886703497515721249589697601934730232991993637827391417122680305853369695841653912745867600126893949223710654739231497612810379463196912110880784249361548862346052980716841783405217480674393961057323334655499976443187120143516719058933133374662132541245484754083835711295551429842098080616055365041973008384660503329007555700630887172334626192948574441821555879051431201281672654599338271701470497246647290115196836142424103081265463598144040534777131155364443804254548426684394661059294871589103561156776782498185324543846508188941603554727695642664206396078348216497260217913341714534595064926616259161829983015756260983120833332133712304064856426117716199204854789667837799752494197900311603727519825764183789928132834165659432527385454605895825665386340905201583305872974839217245611078804650619753246751616329767745765312661683815360167833934123071462838804095792977415315045946504449835153308567405381611616668535270148420501761304214191156959634397191995169440755194789199212147673034130899523234090608955225570332459997334506710708843137616595786948675213700987207881064567186933835383959018960655804921912609242345431769703944303009394576090943189487581113993553947918945483784549828532864800859988211066397070257298564987919383755746702914740399903582117470406334522244828418871312970409383069223619792599116688069519694146727288109156148086612921368913763195369431232020211394044362923546184636236527497378502978721485167043377134731600258599717708042635413096621590482549759747517998339435488125724544662232196598491465533635120423366259056673711042380824470105641135391043951232046004097157744187980697288618099837925118168277847834243216209711969705421205677981408001130770483477451540582264344705121859975882045769064805648193657812858028754609088279342153106798912858062926907999652160012704169028152543576419667251304159070489808854444486543074320100017204841741340271391251782975043653893035152142223237826578293204434074963329504146765816602165277335081934488680898170958525228620675196415577696229306577693386100626717866781797022560931186504928589368441472012415216534690906547091724118256821775182143583411547260168397831973246653888216267235195831536561223396951529944453682016119942857691114386777718563857431301971376490128656096227761702427069884494373622625385483112017063353021215335065982804932213633486466799847818007281234788069301153705189869836026213783453718038429234334159305338587678552912511573250937173306488070086713645121476331313350910884916223867780854428868240184445626483916882876316844664453098127883489591705352724675230076912159867838814977308050845041253517688984024831775467673432188650442010404909658073420382710056361530314415233561413266403846565572179759580531674714531173278507122532008247891758195511756632854366153435043749566664142910805360187453583973486648710313253186761073001066932070919788850253305902201278204341258187110625830395451130115136356361241436164986684849254764488388757877673781683292751012019012550629133940255159909255551079530069485448957456230675545401195962919776757521617964891658600540118478565708991376310804821969292252485609547189512078736134667139524713019285710028561001242196077316129088133881874601725730314289669857997485309838536479861777732189858951884816906226399433632641665172222076136814992308320703343328831126068931937658523028943182126153353925899194365522149988711381266634913185084004459525301559296279189453571497447322662237975845494326054214190473084262178923914927808604887297297658859314243751896442929404478112593965104587614943925310857951003932415998404774354250280005076952006504775240225882429255351793145844038515445741565656951761335356198353873501340666122258632182631579945313593265409807579534879797549164506785024580896555278447795650286591278277033429926908484460115759769748128461063233967998296689079435086151594949954729484478947616160904912892403534567694493556784958559182812426218652020317793853445935549039256656623593817379325875323015804525753895472241459945157038665541073153101332887373660496530051294053527095415612369874812092584265295350639865138591670241456832016177660280393592298053243088985558509243324684082690092620468742219197911970559409714705383487944074643901043188530683997288104302006566373337148222321259801798783600044074621432952912646750225621290721739900316112718242493797950567160126454962612609757322956704704231419563317419579482651618832643045478696481610667236320779971635994807688714364758685535735971194586042570095156822228282068903988919388300361155415147177545657186888260380415869782094795296108867674763953437177829533401889794395953075420000953938767327637928495810160470912146820059552082246375152242664220419922704890931661213671040781651558030339306339417102509372086306762815671943752803117344579751264751056326510836281704818212504992738860152986420391143235501227405437496302172711158020192950398617373423268674828545511852160681424736687648532546940731303913706033132357682755288509184336298899304966182656982533808597774104721316003796004225490335997696669099950993288226663562893401051848820978994317550837903906288458836698108356348620106144800350517840407712863469275587315319835141046002456542546663451990537869779943058292307794439964315364192899967300259820213418122910311390374463820178943903772364394871302669642589928184592818107074039606394717959958172225067496609851320275025501030747987490224952614736660050241432679660575667683573231191951807263770900593239364014085774459707111084657291284784419631597242541892594339874462480866256678398793757983345981920557859474801633039460712890276562197134565873735735758088595640662795835011354336354547664097800990492384537251654401318543616153346224183736010848065538380250601954920762629135829363529423553539612911879586635387854431592245221548276499635587476168982154446537129639752053084245246614813065284893968510772903823460741683217050942449611348587054791619012729589695209380059619674611677185635582288330117471693506658957909143171001083276586063455962106248628863543092060545817323229761937059187215794737779382370885765257803049330153229985852940710217760789466125808692136246474893464648457538167982175943383145945332936126345494265008311763679729365039414809877897182845002020973128779739156031432717372273761335069903591523260808938689088530347340070963566427967759857089960921551058587345720653527605533458668165404228942609769494748308684480181716199980413309105569898185838182929068966637494727540007500221698415368350292617195747856278312656186806794155982054025529673313343024744590337332908744021833202193926108998132923128204348410281504775700778283151327121013051218876680614841294392187746339209547083707704822696071601046373535729226453712981109788614353203234957024396410685944753409594231841383213836562057848377853632161047842510343145267610806059607011407472506160913563150418819031376788852562540468192156187099858718304389828817728052198366768527149586743122571930928475417524133353521109293446551705527265478435497339611361214263049835245556467166465108711993911794909306581472419777833911266221927890404310073270300210713260486774556095430048125402712587979110452461095040974100277430556324451611062201891105540208127164982547915481093560947715196381258220965103749196790072567576172987077627205402521896683358800767777027692858791026883388821455009062212689649927695538215489984838442954816381923570796490105971423204511667445365343869478450424286330462807809138786123334160458591903139140565185201951481946993536633036618489321354679983352460848122308738248525169726661809065033992040859748300402525347200521024460178266232275173167871882331394509214666757083564238815510472241334139917571122195785723365672986969031117192235161918523164344734105069292671344776210817725937933579926880185205417344282897311831990248277735379458147862356929622997177634152094429018949802738828376550175848885696351888228862902349542611854861927334036162781571289794179427278155904392767906699510188410459700389915598165550313354021242041866213751639475427302464808742932876305018987764383234934724520536327321677777687898452206178172099019123473943690315864085076557390808817239292073594184009500529388065678640699818266226556637043531481492129523157864810822798059957891279961441363060634965178658616104617252912960030542658480157094136245089480591001748623149262011863203316592597502848559386536955393664834901377399864887187438188462070379500422353434528740252428432073072499662271634728714446631511439797233060854756322226710538761552028200999083671247331349942181572676590227921773152281700087188060487921294288468636690835562078146643694522264685304822266968747346157333666498706409967803676009118119881794202260165590370531923088677484600876988690827599341865536419819522588088345302653663566285596129127188576078695413582525007792666158978380545073944883492023691422432852318050334905626455659829818376060623749662521760058698238461013804601027704294058448866137615543899558233824619046824878313103307873731233029321671139215967750440537779847052140303645069828235988914958153351568207103798556265456347623225932552991353238898497458476518214372539702540187462613507398104819712289945081013230572780817838101749198782561186002455456789063508912577515342861726706323463215170022369116565080264911060102259613191814320194032277064201186601719792905972646015866376782666617723121889132865900644036446268811863201244795511400466814152242986642468265673031782794714031634283653210954665639439828841761293303379678315136188029717005443485361604926167835879726236837739626770508212898272484259823729231488571844764597275307048346475672417487320626249468208749392690982673946290358505268838942773495190508610678942924748437279398887260115039521813575667674555249554708603708162803049560052447195800007973504969698465135644331060438794058795675409171695012706284805858413345143923322673094784390837489374114876058614873119220577729763609839425652580350034770404346280087128130303677851570846702148472794513097387116106621174240360636496937020208302516071174497585481218478689360796300328873141945163976825337072089582080356911776293512486744214250715098775384825987831537762714101367646973658844784471672091013398059029281748078025957933143087365945385088936178086998059846738407939869071465649242739781572556994335020619200496178922094299227135561421020836465623210342054924291219029944742945316882682717501009285784735299129136175835177867159021553787535020457714056908636702225183755125079854846843640842086537152905833645866325536467619734112541322486864594682178328714784332943334290551782269781105414521451535848693890816870970401837996474734906423162123363843372191052816886219161149999908550824683160897813800631875112507389426843511562691283506559380550746930265733229370410811409027685340189326427804481125471688677515881836073656737715204298724670033260714415294461164175821677133753915735608454661824207482324431418566973544042511527300380815641770034098054571438759705938209662893663576841604906035638356519782142930944095865636453270301759518541897658347318458726044245993916157365839348917526715424050062315241820871249996757748620824182735572075550114400909758118849688372653331860856562930243463591923226378930183321195694623417725309119762822764837880989316600649609640230057190850870582166154285566390894727472044973703588154253909676026686571285545215049855639252336784413524054111286514179035707057079368045236465756927126451683098523974666924704674246673817121855155745579693048168505723407370345579000533653178133695495001501399714675385247777379669486024535689498797044879423792050472043009700775957298362436231917834653592470595561071572011888264282981090458804473054855714646254038747068811360275837624822674504616457095090702992578350267465681794980973241746468492049098922820268544487557707380603317316294815303769947275614396835464007741372862541231196327353841899091721081295567594857741575417715892778803614567409523935248641356601692994455522944518605984447195610579900720355043440543342263950387634053587749333145759299112619391396430427534004505640455798538619581730779961838921569332547924141701905092625758436016156247892993178386830957736898457449860626679124253864845043055773904506158710776257865718412326373879610123074684910429943066679925387763618768602165257758335044626064453366270303886249346190944586994495059519092333711031672046426419998458237872029644968527378682637099049871691117212212268880736245890797938038310309441456680073464738295791431668794057005805242472434100270055267376255974598184351868688776392071015854596975526028889614489841273553152995676829800243622837118395386856958612415567292583766830771542584017834236303355343193781938744892280247914971025779549061501600346378308480877582545461687640572939648398191586047875272740177330100159465066053699549380245804927588980354325979577445413012850282351257929786188399492525734793459752722021384174699135442980390510019749875502229981572401447999117575629996258757738125090239474470652107583838062898875084007453294524190627957468001094275347418882421639967816548941821903720762613813743295318399624514939120848133578598590153171238299967543504972517226063970482619298706580406084520692009899598230528713986025429863250338195667061831273569547677525198563757627577014870335528264226004309716687676106423981657065498457758270660585581334661957816771786078704718164484256754277117569564039371740494946690416479838188828220879178926792239374432105364682670596932391231797940716784651311798455295770770358369368985333967248831997436187315727039040967423118657822629647265139288865914438038139955929568811499907305405807185360666990716271768148046405716508521214982110467232064867372234454460146916175914478592980082243317517708366176537254455531523387560255141787435554000992466677903621246087191460447346355223216169139313179149437925891626442999907673296711607440631705889121302645528247496378820038768959974642221159030983150820098243977355528017634262082796027528202567744522871696181531828936317287148956625592986990330313937320410726646910093304940299911880232104148683328330468785453581521637568745698894536728484193891025226699948663271536034753008471180304052469111395277441368453687115393871219509803735955981360734771394925873103426131014888031944216342967457017846055021052123555388437122602076233774142835759306244943868301498860270685555939252683902707398603762487992320121984569876730828566817281578065873327768164264283652631024556761243615348197995888912698397586585198484630893304283372686841581497154557513010629190224875309866784603587716708530334612017593478794841454506699596931767640512163068451880033602612283663931791767614646202510036553244628757121648251583910254562497969412952102812988959922311860362532471307409766713524300924655759650608502352439915828302237428360438268672584506260745557081615545272530124101983461907514107876218441318728017600304137823724243834845314559412801512117078864064426487287511469018839677477870081289763848591322071839977892616570871088086571505785098566261690960007008887420643423155344554302090060531333450888807750544253900114647671847702044618723399460970604488095101303401075922648428364811329804576896999445510849234989399332942536944804021309227909084541299987887427340394410552271482850505266183805903403903674999131290270634858313995775810138382144407612961210723298728184678938872035875495033566799803652396068450923207001914687971701962259254429214113872764315872038556893308080087296325108431192381609824959997978172342947303511232797945810438349646048822893205304895573236279082924723543336050197272943889932468919719060339699687514214220238562333331194800346533777599627814068035488682433856777521704571353325094359111044842055291110172454407492096085440015847567014683025559964414176157714006077825206828066130507562842197401258215576960397715305573870620803453852645615944344874540474196442559899600494656344652931038873499755690347398587743856692837436166450339507957943417956886268991421182595361693528848518003827285875215713892529210613637306095093946322603126058685813464941021892129151934786716521854938640994131440707446617583086945026325116729292890593463100823087262111403217943739549683250511742575509762754361261085633205616875088446091697024457823945380297349659112432695265594167595856967102088263421452160160075554097419424919952395857087704649130723100069321014650793385889805220341145949493353746239626939561877123453177132318970468965165693274573714390580078595476493540499388629032231777289243103532870027313806078881806729499565201047092158681566328477207149886040966458186214417436682102559667736208040872948691124517277621001264624000527239053346755009961343839803678473119026973382628754910238589008514829710425805522219297275470080897460727886883447072436498106809877783662823002849669575634404428376953318535961306638964453315673064774810079630167593284129295869810825577744823746056017347153913996218657269497536449935076794844344255269806200359565167173826757998169017195993153067160606162644036147806462486608887531810604316280586841870312017671591164888886086508684332523609287241001963754152743733406218461565865750896419002840926565849764211468670726119395862021061739550613453006297351745392873527331810176338850326002650333470340937680739943625895177816197968949166155510683903894586278591816606583527808851767061770836803363643063033862990859995781245153199251265273867606232507185032837098380939840767105247874098436836136467039920707455594319564070885002333608074768331431271511948267635984272395623917057813225335644749677663895496361365887614887272545934962432296119140340751535578540060586400738942722766309336967557005191747999764923636144153606191296073445484356785532564832632594754249250842460407485013749113373449199620652454098329055033761997409853454827163753444118482282838695398355638449487833497426806717792540664974838826604452168977262298636485917545494058440272622690047065248761837068590670940434424009970199277248152699851299085403658217147135529049962447225957350286489550576787146688756431339985663990326396762967599124316824958042371491962476588375748854858989658768728684733506882891438454820927207788471219638152520674359676409677692264367135221493187913321509696026592340834734599641231767775288506499443366547327172323522037801904277205117400533633719372392064041175916695283356094253360924067809754687446066786281524813249115641302319171857525204626746768098435569744831960522336676059875719511829332454787239982619152635051475539984303495883953751414062220197317668334328574101435571274978773996507888491906591355820527446069445025076685026335271928849981709607584506041753429219431705710494714111586451999493556936800566501803800261913485276964593480544983117539154841565906131587971926368936269131461355389315630818072115185470891615957505948706543436708325223828804847217048665380098380334174635782145841503118684246718568757011382569710928000353797050726469981958787835672821005043103410278630285607168915656034903287022540796579470029130520871905319586243517778267404554851795643303788965544408392846291787313693950538342597128201352796122356035796372245675431263163279911420330739242152503150384469010485903167235294260235467507576013025631078045049392144626460211156325387525799262327003215031756936523519955001680351144896721671664197718060868474883992856247470659284390945618147767757009757913301144749455777212669831813815625738566604815505715193315230214857653451855264551654059018356352945906609064975930451865751492826718253319958275485973369958490379768531554533580789213947736007997692180159235064117379934567989540023219170237015563905115000377589856704396327452156262693924864039643749651950271183907614665362128514677697464076191981507144339680209010084185267205721434173472195595758386983293346848319499189882819944049692849596255578646862040196414946392335438670368485050217529912080163480890032412816751708098809167222746848684861556035362451249108875152020998357910503581831068071030726094627855218047030688579742857782756628563101409752621559210452700302889548607476961585233941839779242512798516157332463910302664817510172102485020713048933729537845601021221373233750462926592608968419245968998688608214968484593531889751183633580771676338880004229120851159735110499823360542525165110464325989870345076167982103790065176765667154550604660880561439301207746057215570121255062330453245666678083343758491575106114918185319060670224487896931145475098480433339917564562047700654231988191177241549606100819920272223079306579166842456040235880319297538142330378527980242306470951235822799302599917010220430385098640983162432335684395930375565775862728728633266142545124315367869180430853589753058258626009620402127091273250337681511812330579345918276452065605609943480486503156614785265626323144988132450330935639469530427520658708928700932363432612345053559009212736184850455763887893444301330674638589692443979440810188195462314813375490815167694512187232996097861504332220981225957762369999969999357435354910710092225468029252497164416155110653265079773618648128723565905796338233861185936854668211250872392829510690979757952929009095926401108905573796407884265717198940014370286034789984129937319816834588597167055422462223927960747777116992889105503234207393250573045575688971970780877758056047332054918193026594658490776454814177237168603351879664040863767370561153889403849208196805600631994507238150002288510536429485796975820094396004154434290213587696701228566485871306504739691015642845103356448749241919143151463668822957302975905369879220983386711856057140357300810604551382970772291362994283590806694652012524504814215528251158302105619580605349162975823570403871937875033998758124667214557693925074136111103761893890063944887760587061598927704918141523591397515935220637213036933646739356156523036816963454584141167606558395630341934182315830434336933312300570016484693511159812678865152365422367648089211607316849905452659352616376152832893377635172358141405940574702424786115500485143037584659553514108934436104096282522203296119021888218774073456167770030959624815706650076855634928331233449072967416041465989499115598126090544778758105347610208601719912751081021397222152683562935676377161585943886165086758850795663225891074794932519733703317179663853222185620531913153871917863628824896058549083527335073803765933795976992975282299611718728384299162977247850487948258838218653660553243304265091434921190103612824784181140882684794790919117819250962235511572696477051207530087870518974677804198648829885800487725914270441767989963640142159775206147648191848187746515437785196162483211998800788283442054712284481002567538841172177070710681860611696248549295913067904392651275419140754280473102678057788581153554959494532454147321812943737716605983545477119342982290391744059032267279439419445277323607879363348839322642221980511883794948822809566397693754995807698224371637341738657788869118435498892516757184028188377877539770824218663539726276078675043296792444218292477677345508309154485298678306957205185787929732290926343469171282833034251159229745700318193612098451641413306076614844918655266536207731739143067988236529316316913191657324243254962863540146246370795662797279035357071456359145875045709511439738959392365427664493823669670463745364878647014048164182174007419657409978992751563950086757803852151891903659659891435669129958732243513130346773059147637689002012248311989939886243512681399965777167382143708333171124956022276657991233544620398219711810040136259430941427184156266602876746899505571232830681232155435035058973971226923551705188263661424316210791871720028418981004843506109411076720472513321230674666851744778183142523469372337427819366268168827313589176068188907630224344124053313125378045407804226848887626850472645014044743282036894976371411314608658843870658626496919405902452932801545978170121656427317287546872297062714855534769535367793058513236753783244111754271661534012770591605039377830603966268336974918258926668742825670134813950473806426830983231307876624081902207874783753429894735005549719326556266559193655231822355146756040724315165311054086319281812736576168920004666393960245973419505272428915213016336397057935418253150976350949910776935925810835042982466158810155616316372469963112868884168083927355927002252089998032337648532266208267528791013439120323450209104122340679119051315414227491488659156185449313935428212526055288906979141017747180542265421668402505722770315648148332187694736212667807931254886889829557206404861567837483525574840101695654630406984740155213943247799043349598143983676789363331378497956960304091494247251490733715102960268372642745486399577510979256588457235548170276460572034674226878454281245184031349360188332108985808273508100927721978305014690880894367400776816791318361081165168209431289627082165014843776360520692455426581777945961297292100046091558316643998863227214037078604693448085416500948572155904062525905837903518991331732842467844736591946198059443467533386776361730518903054816504670916738757432414109536291244134698976692757595434213353674346068739881182108003231348131306171361487977776767607685326044361141916427563719943483087713307998850088296520375123016426841344648132065978294173143679054769857814851347447331775636902643040489515173186174812717953768401716184007173047092547302047788033439762161697463549567372092399305974703893792767829214198642960435383268334410074375891363686428914489164475662551244394253008653249084082539249503351246367278231942607039673018489177825201502589304790406011260557622487063222170937148917384047314909110466440398981812423340232953970376102926303000788830773657406296455267577047071669788131129735533974673504793221614023292664864850100633160430158617701223730421373578400569507896536425089044369531458299453531115078421328195962203101896737361612169846766306740240393857417787885855374171963303376583883797459453692845968239142796481765235691669141922595623557958786165700142844938831259523807313826116839407918817982739104394146305154371072866566544509217352591049651055176046597509384408870557951714524498972084201042902401649138888669309345592830332044184197667752893589469795829789292501296690192215165406640652190442722334320423715386124491993358342833077905917400055879561310834069233743783627958615458463939173710989074005504541122084117647703243330215879923663549439572391887581034048054862024410745584229473626201191075597771987437573044782254794285750564523936215608798469353757150892803336962516112062690149864197868830544863418789099834931771560158803829793902306265951513235584044525464490545995446952871037863219608832986366238266155998979115270302273301387801306478666847055752577049693166610141645158414052099680751682543598986485609468366688276601765843049053782832649731533419063896803793992645162732779562283269985253528754126022287833216378873849185253545306550200498873805759968332729011146670786802392327472043365673397637331949491299255095371965437250136894762092194519749264673569016670838721778383423336349527830075903231306331892560909134406983148101553848034509159303849754975020227868040125329110666570194186366452672530960540936897727743402922061082065562409178077024988754038371589982233620947972946916949609344654650528503384932168051929640215406331481761509258705645212116078903130213687805010352373063419912306161801608782881851827498551600185320547258035777585246616271354478885277463479451433341251927599139862450408415201474739205562802837252538014449602554526533048529831055104478284255625086458565000269687298460793727265905702147682911993338638771062071049159264394272865909841343801496769964276463790952010188202319767179146523135761391040316244153720221376050274681111418132518321198677641125636319493595806042000777694969148405188175596180314962557334270128213612100168308487314842478635640827335906058837375107751140444564557643661384792549818966714683157049763354173411684113670405248183673097816758768439925411492006531457028555907846424484645719945856477990318488837338249433077525924126991880950706023850795150166264656932904392528807478983126407376094444283957844456817463104742044793288246409294906000354317095985245550172726617613362848149817101035052069492431432812527061504768737276829093158444545561659665250063935543244767604278796677385444912416913263026058209231931429117047375287822748504247936395704450679481510474060550366469797160717810532886626328238132639167147594805337480485047697135455807066418692388722609966829208095789717171691536609648169851065323508525902424448948211781891684352747910352963324636429382322286340992936942458959286505170813598842994436448570391255619832680602659174460608602417276405967745298409529649337210486862493647826410352835084642872092062025246030753874973912129107106583834545846267680703560694285381099108691533882082948442823455697876401564628075312585504840009155947087758853695836532261278987354507319415128604524858966744864518199919719476442672533891281762173765892086859976738193667049674377034869578331055712088739383494325446003199151119934039928180208457944446589939428540333278362017486708495304442542775405077992398046285444786686100502348553949981323539999339880655840330666248826223190142114176246742620583330568362199595217558399851981494191565576241615988291077962434586069897398946396737407256704050506525741553107953541396683080237646551876924391056841841968019770070179479933599721301839380853589617952230278948680538161991551629802853522739895380042600526945574601246135267722689808911467804046511467490717352611796100959950999132137417279438676664755596958435987947476931183392292800674964907991434236747988866073369513163111299402416177336184927088564763474555350478967180070469259050855325267676562126952574449104543156013117942699107274360425841595292468464573511791953393212939034774926400331110319266031971127057967574607619338253660825815019041253283624204211313016946174838020291160042854266831127290582442873176987453492844231703402318865743852458249304640509384505064411435077542196960157206701106676699429894466193523022804538307604591436389166852879073286471460401483570482552745136249526791021271022445620557892261628144097275012407671528272401723998493813117240978611644057803368896355245617535257561649600214318140469243211885564934588346251203680462113627820268093352794600863967576611492114981518435060166085347752790933920482313263864245798282868278052790882672887562742384764747354991859633962618860617334456259792686811177015137535958761197880814110175956478444016869748681184302820829261225184252135168552736956366642555043883005759248875946470851098822272066610094152406456765997169568140762890885401720538035885668046906598143578521884555285315829128750806947220716191595462191285947948840436982959212765293295005778021845492496663595647859175979610396429506739568976700524885291837063473531734743216497686627007786882982405408032267432404847147539241637805726261265105031222863538154785298117492015566282896090570309213108205937346431866156293636445719273733013450045547555008979545145864580254678424011434584909781915750885501257974137875430825537991129781920909158618246318668161162239905612576321368237927289310047326126547433819636623202795084204617895306406287065804051518656029931240945330763816793381826438188407968188396009957807547868489895895179706016812261819715103705463862386353610884591265233696547849198989460648887312540052325389137280367404782847785942044543592532299548380546333205878818476979484420440164018006406621446301188769320082318501641040889893477730441272016330897103758970575698180659895982644614462282752402058495774954056238555413123868308654133473251011039509227261701955932291221558637401538261378443485772912490168092118595849397266001071148793850033893852909980561432950884692724213448042724908569891500339541699880701011970326735962290833569223313348765805629392670920116826673665846379007206034423785398860592826273844992807196930121225773233467884026344814368583901310098086589017840002815935232609633316293542715589267606983278258162203934298636842525331418093986129305226016350557636877362375892431831308002913487327010828316707627192344854959887988570236071639591034986706374704905970324765397086798746254103951505754590326729819308089508790683401054736081542018001236643566670976152282887209451058706814617915606586202602378472186525296138689297041091753994821152669968931851821782832711855532769351286787348872794562967650482287283209271060685214941353022808835469289149221964854845207138772701744820328679103580678075475170425115295063912566730437766074776447018651565193035480642650951635134756794129204878597756860113816979276077299934727595863952646953089086613050243736131572023733092025562032257879895727040282062554367857032262083208892336944989199593155291153981334897193206452098822753144004697407131585210182826743240486365930139348232877129155962891791167875161421759329615020901149980582050330751809381710622648062990680040094008810351686962271082380241269157498616920317387966964739794336076541390545768606449216943532089482844228008389539636847085522532708200246421329606064086900481309853369414360268735046316299304094460342154012747221964604589473011115103505683547082664920439041932160088135970275564883540075548207226006080339798638180918033002805549009802151349870760449508058969360114664709650513604255901525224821221138146377404301182949314418917440981278522215218383751764136035518581188839440604697373426230511320144347884253975770109996682809691111193882652841296000050104630756023497958621835037608433245808611953267123534343846868632153867125112088314572740740269058061520302954954073122901873057431447972571304710103897631509489297193470694012899768038576217072889617156788636453326778280255836539293687589640821038605759001860724719894174762698452886315559238729523738060716862461914531130340676703081293024218477030009176647458067474918080229054017133453397708855031815378737656237579915660561710162680510425757847057228564453336277229968299841802715509538404398042135709023541406637405043927337396878800795893139745299110188800445252546539372880626092004245098723910621438149384028883715921494558761913873348731076247934583201816255891161716424374025367274412890659592820506491599125769749876659628626333799693981361382743092136818358709969211176931771342921360998509724842482999125115167837265604344901815609774942508572913902449997697105616653528583488791871101210999951873357883357555321006319486652303279236442071211343145278215832979126244276974918086798485772260439404401373603868452546583271793016115835391123220952200851887525766519342603340795502057048109656789480444689460895037448579227195163649201923601983359632833577003959096470956249784235545267476441165057040257693103259108325015682888742124216973294390513019382747878162781251904835680746144989695846143038855910463639291969212911455297813594205142078530840620787174235025845326456534050755590753451239128731503095902872847315535117297476006789880492276517234607716822921977908422536058851484482662861503189124224356044109681265908539333664380116457516096099450719923750731569389878969126134863488292331234160009242502115506348347970752888673457671684731990717521217490818505786395694456284901459370634368062160574892213319534315691393469429200732331390618286284189390698093803978855690432883619665566393133476398902335044917780473270336763400871324511896818259371033814304670457949902478471015795866468792250722291020372908605474504583531017952478984620576588891148854229717162338941428987136857781871137153834401509928969243795527386323377363013946173292114096923987846706147959847059165084110795678868204347419979069028501493557381530479864885883672692338043345135584523022487560660997206271730320150898402983980778740000570494502051938012402718859345345330227235617711656389806517937952830814473920645402844350999312908429967990849429930901791703440364065017268700770496074338040024473754802441756809882199726771598871633616342469952733578386574249735085223691441398021417065657424212613411237762492982852592372498795299426129768604182217389300413592112095561370099790377644986105126484674731846702846728193041716894378799712399912675652976696977031068386278157068448725343537197025251770346756712218943783571126076745660687592112984230722112593179386393999922153935513233528423460935484914088361804976284284198224580061867654273125476057630291315058478130738614989246678020862987598455106696267183665039965129447205020790481454197524819403632957541457197902218531178199117285217950849333410746398926814906286043943601954325322875267505215052605279970619534332858550682051299855060949868971275755591353815511325712470568189651379246883155780787165048967901796966061297075361395776719686234358886954076634503971586620033664899525506852306228062895575802941328123230244699613088730065534060550862804942629228786878746626559454597793280707011621072774428075320744151005597103242520427427901493667523115059774338542000111521644941637643512633684388117447486409365556140830912098011592178669014548640404940125731198535745434223582044086618830464237298811863698101573818837433387196488874822882411647620939151976613231750158530764186604471433250742265620226760962286891691664594126287957772885076390506707599429974348887865816693020481489014440003090987835321876553045601079139307207956984279968863702718598504686024865263561180479448192802377187642988183724102711082978122821471595826762783420221019386493946144414103282248203252790652720782411301365377415895019709278780398817629177476070232486702533891385134193260039298718424236541084309870445297384414175879590954872434193333155942838335907028120342584445047206175913311683215829064358565854693710816303653277926055792624458463816250340481103784348661311126799288922691336961860005589045328075433353196168212135868517513942570677686965287537267485698719350477608555564852888767350295676848095248790008117871324184828105756528801784150047263718580662242475883384643578398842858653975847918009342586704016376686795613393275335214252993016763507523391024393315006437852332366832104566747732077228173624525645670658026487065945112685268286968010408137123740733448597337508953063135243694209854776482490100872110675541460934545900423236262755468339730885048895483892642843630476974090622576374580799263117261545454977363874541274578165007981954684354068302338186601341112058085774591661532591616475070607424216975963048263591551777144142652445968459653554263431464935772587011859457171536910210533982118015624406620407282384461028780485548142693887808036518577713662057004713927141436881433218432296734105812520363484943218888007064334716453119578716589803683176634339369601696270960950507523331180049909055978053112376442414005580937748775714252436493078628678680423936196345880795174727573122634721971180274908163166869256370968377714356091234247589238775087480256986583673696374319194328572618771072697343900128808093470979302831769805292615526829943656777011250316949857187066047767519805336277498321788888962511153967401375969248909336758040645320689839665575175000466628112419348340887411422133023648246191956454635409331824364806841133780854981858091389557505215455569930610456100414041023957060411788518283205672095004007954573798759056076170873428543238883290406332621688569689294601759725089000452951951741676758620459278490288469875941674758843124624727153081390695774096193083866206866280891083834402506229194988181785568158299232555594689389858121011470026352484844889302472064063998555993127812061037231900293665202561867179379329404139189190504225182733985258652773745317044984976496259362941806214041190091304247104858905002005750623304230580307851831090300825273482737156814683339912221212397510267303359134731174102733046878179201283418071767566934151846861920443832634863736061185342878018435980254511619546087409434997134992171313176706182860010373471622517912872664392493538675129073111790272759100177926682003612509899693849426022907153174437876945890648483732868378935172500991558366949293177312506168513524374045811217433654019705019030792401022913399333174578668227343392216507392304534967791585712625655540087753296247789452177247919603537255550057084598214295395524306260626508173395429282726894286798425450440066152011320528116029459166427401335801932180493403206927356926473732702053057336967226553374829645659371843360915073462788448065710949940416006028832043732299391833379584066859838930242431580904094178697569350873956607155109026886218673004865466971280332915827245700240133805292040816235303608221320101618437981665901797348870746803008961352709120448916064050648425334399809704137738923760327737985185026217454593145849427119659674009970446570931855365258087736683430533553067631079116487243369373315232862731485123701586375094283265932777260209912841734695313060153642028064752515847611647790261987696968691127778062595813161694227197076043737109500250807417312551462738544060331493054375045260065994760966648334779592869001191173107366753295559746117833537953108907740573833109716038635903015577783181042962656666656731188897859553773825278085395190268668828420135524646655557088407784786298917344709811024631409311931817725093399292951697855799264888666196332636917439395758337112700211840386743658691578929072403587602155486103035945521223551621448611217219294994080162582187652461225632016282781230492110049451757754434454746463249534775922639919285646063472627116586294310148495596330412491918213796541577541792403441445422381867137069172027777867783259584082116206255472310903881490856675662627447388576361727496078655772561852013386765830875103764052019373484583368661450430136408017449362964434481185005900897282630592671612429427799476923654775423632279104831391104098954041313113884355353207034140339799271254650748488900134745581386781802230442462666262942456237946425732373016247060441203505828199813806851346806187119806150449771206878446652774198732391091039403411482868555846224006118970697947090791877059653847888088892888824376652634306158005432975569681789873419666688923163253038356071813825658215084623518813150234829613838764394359822299864959908548073273203360183763949034457176164402018992184854872548897683559740675675834566533150165124350284320287462052871177807398560487958392929465280416492141278943764920981135358197503870235828035467640338860577307054663677672927934880332915954294376780823336392345174399902115930438527914113849731552689810161873117957727125585140418223748141080808866162525932246825786042253451168308960402528775323784941355439303075962486393797150365644597932070617916450452321486005871360181215279549826693698185365992811155004862506993098667494850814470049642802092577442699198324416631740520102092725583004342999275530369113328710703131271615048248107858336448010106721384135515036800390853479449234949739572239893480443664157821424455561988478038002124858600454684815717561259934865442703060578541151259897664888971143170781379455110346249248063760105836800684561025027367939755251225476101512613007016041414490709917846487954664973586154585900359498195088525447237684386223815105745587189532830453815674470649842381430764836651239894203791992045852040133316648103563313593099251815014964327392390678672034135571190398099268177235139166276750894838809437436432397741338883463315372424919488109932982691854530580284061704155652924376284677939078810377815059135319991410118300892082898236006680977341055606530155046684034239911459502685834578058913170001111355522573705002756363836944195724590188918745164075193662036883812598098617899254815247614779271889632132864800925468823552624854860929852743788016164686144675354436693240342225164262910947551404029317859250327387515257419135801982738059936136021526382792534890207253237104380515888684084683483542721782536652189564277273884204054982187388431824669661305736424130433436642468045537315649044890448597401868754790925458852451549076635845127674722309477795850390797687779146454052057891784651717095974916876591524428615687906565814887712624616053224692093498097180244252615536010209002829661988163549855467246661393736702441373373160741022191006220519451755972581537895673953834363809905239072802695492783682484639613413633242837507606188324962888841709010370679209152216023972944054113411295943371749216206992033002649697956688586768906154037744088095818739864391731752381481863521338846770550967374000369610155828718802198817059459629493719523618318984989792163292223619041358880838051333892839706469674093473065362567177341845147887871068206891020853801134361082162863757269949300232660750653884440670199726849728965044082486735158307737089332824452138770918012097255197158959358348187591264450613041516345676251809785949204674297453316847947552493011426949340944305901509914905056295855357713327784263395191809678750834192480367758604426945085671013296436652333168998021972641921416733358718718733718086556624112240926334148457243145931695402557949936016931608126381727017917131308153435408522826580691674080286496012012456666502897441877737314322841288213075428554920494606962713711380577814221045908087490846610755455814234192266758328666482572037966236070642032236622448941408862084028449268010272085919724775242088340397521835356845302472802695207352656021842057404775711626967231120661037197829698423055148747548738823808296954049597223807317062211182834414504340380311629758703416534808218205115546776790994893499967918934045027879553915199353754997807769541597200982205991564183616067009015832203474962689947269518236141537366438226091743898858891317037154618179284569203339088239151442424176617016445542133189066626617798318999128558631779051991856373540397653867591490652316145263786071504880563298446975098103349711210601301376719679775643376044834289092655415579956810929703760036608023588436707338292133145128119194624240089016174027809975608015364792420913767524334144963341572985381224264381103712149008747712129905619314951426303228894055079238550213144377408441931777868614497414138870026676686238489435173148584889913298000203755439826428095779461821914992859387798468061938968805378702351685000147451705648970253509198880531437825823791851118735118821656495157175037117521026511152488500191161962766196492524993657169616245516243316681095435933503272964838770006302808865648323077019737104044099071523721487150712334238692117944942484870317889766937017783902243289914932598121030493690351082513357648617309942050442934518921209482526907932193358794225458912252680013613355311824198929943035200650906284923538416122413066379428588839265201827443185895648438856462449400670888769226580675200021595840282279746751894361658196968618946491208342077000727713791786597303083410889317105596022558990439172126406623214514619320842954153331094959102298049415792524303589839712090441561542174345188619498662735147062277877098482599778833291734736808346102749991239765600109997155352669866955631317324162648432039249037834751607044729921867953201091957299062883878932266744391763193450095872922936546095814403576843110217084583832850541546785108873016703792969321381103381451454393190682338028332686367190228059685718632158357634638356434693021303720868249984400223855918693158721315893960261417281858617566088793648453655338110758869986657456775574561679001800855505602682377490260418077505376924127110922837164161051442810513130427806546077182252667014146225598927440083932367099534043839747632626275131683079548513781028608921834286057792619826933638934564066870985875008231884141659175808505921586278232922261156325974192396578002508242537033354703938069113677867710657134061321238455089273360299184073476753989269187295277886228749309781394825842319087272695079718810199976815513530598022785474514758781526528366650592951066270157181840873001554608620689956563956492059732795832737815093829709444435349256281856635153964758606428942257649654803504999773276378224910298591704677313677649887023270858794044100310201297790024966840071847428895739172918598426182171281445763970248555636977380756036407502009640117513620096908047652412116588568278455806508702311353370143151029095288293386658686358597276035929815291042218152725558071035020799019634054660919266484942500782378808318729308649860427183463823957186471625239810488518038312087442163444668961819770732409368514282978116613184798092952146425033123047882504979619323102413279062052536914370585368238277213035399739614939432155499495520452113849146193522408504436440136370967562917209386347721087870889543258675571271532048686833811430847023623206456998070272019962344762806023570986981328410106214640796693183075446550819822640189673840468200434988783876389581385369647428808142336625749000330756279940802569209023761736811622124659623237967838084231882801298532198069061023699001583642252052792860489537800042772724194957405890216294905915066924401876581774779450726782040697226280372494344140099228927661937148799232844432939711859220195611521009728993602472146952178801132483756682100975585754133627645233116468900634282343530044798854126880480917011952868783616496004950675336769984407632489622223663074249533638891823130188207856305327000962591593498369693300576068864768957012321575094401733811278274926699734156374193039414886504622279619542584964978563794389073919398480831820158115755044003436255284379668987771932870232324871738371167480705123956797306932029373199230461475677688958800446153295200827053433561657836924885190557352792071121090944541369932417624597432255053599873881893282272798631193246012925500506865400088782828761055119227718406628638196827755304964425521412519758479809375502667695871232049114659909225042390947510972961606206003556196805607183128260134104853219091015070707938312331127285087965682831996592074633103758365637220406696367746079904873778782423418205059694950123176688036261116519185177127369215566857130355085805524098946538091158515553693042456107296728495735179034406645049646408554352967441683370341337564111176907862311032196677404703801627489679453043196526229327222994929156282907245991761033768162937866358252214465435163947056873771353673088588879644628629951495905282901766516526485332579034254190034061427206211446587646761268936282743302420773498771930454805648077242736509305653339970296947677383264237129847752012196674389541011134306689778043542559677877262489495878690538846996229001344142150546459643050872141295932906281057228329129071804327902591600119792693264519436398431710121095915908197097653517097190749418246312331936083211116945811190983156171696547940102889989625513826191579627278896188774182703578603473573702740881511608313466757349795968530710170517191369964216607511852645342481687868738567044685355178837658406565229781210757628032160014809635888535864825369006188016320786569835972322835488973066207847678472239622535323949008398170923793791218693018990404335014028780458768640224134220545437100751483878591135819763983754963315360656131093859966781743948745717113759918077519476507469819603442185633837383287553151823447189612407069729518646874647644288429823087144165748566585469877210963879653196402790276098337860028731827886226982216753221173557618795053920164375277696701099625129839720808527054485265075218910863593139905754262901931591911963040113217220832606781663855993418876120334012803361010292561995373957367457786802489982458214731944800731284599310994668935115537308215977044175252353353754335988149647266610387721231632763220126216866046634803358565783544331541350683910421396715682299868969129343147670576354419760782189619424566537602984570275367233029605874808258249524386084335194755569636360147367875189094166400313123191631484118345511366770267309078770447877079866272050678059016251815105940578490110388508194238296451589843526526507723021608818961199130586463407738467735213479881351678452924958864530246936463698656253034935249532298750158832295563342710877763210724194154680190634853774879317890133460839583135691279907917583893186338040162995798495761729090045160175359794239902621554504419083467252964744554158625451980430010447644324358327616663533691222064617398718696965012044684813317704770882869622468799846961140738843968232263325595135688682145249041280595732288546429038441482590439338800226477588938538084259044205353799485121708171536023427339973774385720451048689258309107812650898617075432009911057925342420364171193114762203985055985425425078214866489693881994413528887648176502712614821749727036517018975384702833603066070258945770568454450509907080271552572666263418445490567708576301278329332491597548783912954875462958597172125442396670332479424527859179242225104560732497244280258844753913447874340296671048597678943868350105792317008359586884921317246501908663128453853602346977708247710004798171278594348099012976113430009578575181917452968745395864384487094344832200318123366075467882124454183891973507687465240818578201933498854622924125399360024051861808300782437584375501378605498229507661484970324898366993259480226305834326242178465595484946787318148563972555907279657383505545185862561416201786365127832779706610718639374844204643639356827828367701406157920460957349580717670448801893764400614867997809880402320929827817122828416389202646173600398792166310802730103579463895420918810037069239814373621214148648967059922748856632448096283928862675574093750640670286204230578586506809734609425420098270050489020672339067602544709403692536519961551439135100006346342256949781556562776964202894322245400260797666793585737535681814826309464571228864044736784431325479154632364284688937222299683599264672172726815032979384784252772384518962102353365544155745945557857474834710045137797307487782089718352395868151319865243750621647428889036893352325266460009786462312024882024889513859377916680632102381327577073772284820371584989388970864020862715985057515488767042339289552662115749426112136309493728027189879023293550206577488434198359184213398182301714175119470849246450048151358676603765110631762362271572327980032291573618801460898141035579529215180683055033285917670174636592160818429157554355097113888845728992526904123002788379430207276325119022517681698912712201466032890082644234920729697811423070451349640640023791211065480583069124029052365080182183761878897044790771524118115632742625928254784217647502167708117526025927897493295334941148469317123652164821115397213729850496114011117183851785099107540437994711907413372660626606286813018654012268570675390247666332983677037415551406594315340545074723846358051302418708312257903419502761716463402850971524485716303129306293559131298677002928185290694753403077059719423227412170253670409695188760800450956125775428296830543008820362979348180136250142672321636477386534760162130250495129515204677830759478680482204327903322444587205606901333207083346870840495994145558909856738887489814759470972110826624759182390604898352339788581541520513380517629717988256481487690043302532931801888091511994935268219664120581941593211888716359036106116383451625664918816451190781233306540397192713222055823831846536795736007856269775444707795347703272468346721912843184149962380378403420458635286726840901136217347442815810725324563228253859350103523730925589025485995294918465409727415200423755817292937344252208252796031747658480854147066308814803119609157229703163676271879145031348193458541121034455230407244875041230285205692544570755915075751987808534839590210538027431451199671421928218067795910524859331430667739422871805474309201878916299951451041461860664715266752362024224662649521942884128873709067583534546458012859827111368618453034569518066107286653963942442658570542351803921620069558910268126541271331258337752182676313086342773470610184234193312713213419451618258856137016766287036489452268445734937224409303698954396023327938458780492669189047331771522994544371605170368937509233684159123292457679995926290516740415738927785916834100094135597524124348890654769398171351095380355615290858779559714194351781471452692632931923171756318069861042143472601308984455565218328526231129306211400264261538444151490182291711161428140890556778787877758571914882295535448509906932934903372114433742753265049262685274583251313646843001848463741698524851212713374214769200907090249152262794451762165540665166334369518922027703570185921410464894714832186540137117495989956318063482023999357006321125073533484733891726505277154107739508679933205984536598644266009381177956641069632963910307777302863888426290014362808698386595096784447472470885269866333554974237331319037228798839841287804008731964600517887667676908521058781040672200520600270571465620655985842260460192116120948835910362339977232615215870613494071047034059986858587200627621556047508605065971181364670357271051714747271025504955394749603034615256249984740507239507093709731117694955587973012289240267477604822341914731107114904881441567670738966855212656967027560729297091162467400667493036405186910013138958473618949767541940344478875326753181642945757727094676290481065703262301529848861004816865224110396616944943875268151250074454334469296295520023535441878132035134519645086196108683166690267478690932431958507461999079985602514759759651843263335677664179372251430266653747269667479552583857365410775854689597857769852900797469601155152212263787125027824237705473971480737710318014930368744804931755420790474719289478274310820262256538914450163000497447219944972471164052881899859411250586328476341255517813123084195048228167021409187086361969779719642203768500933401269997998544136357425429912899644545025156574292724079970188449787101082840520198696010481415502134785532887704716052986988517381679972010186487535979291779913235944177983614369707226916763839808889787080900746276064906286169582150282221582308631069400839813796608543218828344655863732231373126132300885235124461743673991952522076787746476942131856538291336888312303636659108554925969853563871688041064323761809566708560547604889638576185003225301923597847930102367994501055525747707390140570294872215628396674362603876245255122968510991599685706524875588995786980787935724741544565545356764844324552053249625603998103723524166163512161560076628014729701115502888753851536024055425386895286177529692282899547469610430122518784143239490380153127537815115309866576966090578258669234522975604516421455240534818357275087811790577777167013089572436089643733487272191223662829860275985023597494055209844444106952197582661497842502891250397851414253189590399259867929622608027059462009517257790871599903715658832940240158341117929539519867696195215250590459997912829198045695400317339967258420709446111796600248940560929858971851422860335335787760967760770061352727187755190763150136569049207987237882732596076083003223985132400026570534536477591305556875241576653450180160290520182150562115568704139788259058258233653507844551851365705117223033143936209871949910167594551155243007456503382959533063973675501888691836571987205649283558887783359883978530245750756467626590251684534941904705233915285318868685872973556791065345890577353354893630499268046874590191558291187607364412361589250879839888140538142259633845761565108772888514379038484293340239877061233174886584543720055513542158173581694881480361484706823570505363159111138410999707774989184641671374282596737961599229956645855513222478637543422514037148993123022379018678554791055940063884829046571561197039778856954272497169487774138828346039280218128136155526807583615884581512203628996548714118350247352311764670258174804417896422481670195687581361613867101457854824831332505186863638415349308905670636208639939651138767225700362446266799778112451126225233415818729148269045962057545189761416313655139249676537710542274150000870534252976313744774918899017399456004336084976567470662420753441435587438442579070055033730267530912358375357611529970324948878378095891922523023572006318139080512992245292581092246684270689606580952699108391568400097631790396834290946233364559757947055150323799592842026175775858990171277340202956677751855091457198864928655378262085983448184788246486811091129570706030214003567048811858623981429306230278832130788340822262261311388636655046043834927093200295951725459073917834845562285918175763025954381880365487050989653548223425108909783994753358856645547892452766964974244454889868918961237537884060328413729042153847093512116619853046359640475296799296631135721448051577683567361134631510052856171556081175462404077077704914409512200392313315057432404208281368748639898275661270648994980836219264255138852106596848196446038905929548931656349027958808852255101377080277503890651701255850344560245895779179205688546386354532165494647961675654352188861410793966434303276619231837686200324825530859141873309972396236518507064855277446807234361955851242963480753868299007314177030990103753549722178822520253293608462629484158642946759127044574500972327064529779449270092065877263725743160005808411469728152727567373142656380813703447718951651024187226204988873068562795734235903848761715735419884092332726226331523829649308329684036689485899523227013892245068912514861384337022639584015869304258911580667281100762380801091537431976579622486884990313989694548619788804077814151620364475122719779756321647006443608771705223786819075966764306557154207155939811326095360063767823060137572703875448588211330910076710114357047885936099727572329705330032722620536248887540848379243014740021461654527939696433745063755251496851990410725129319031480252740985664836845226348789390818673491409770998473991628669397684452079919005722903981704415617140311872719190291960005385332081104482784229750475698440150216321547337570390945319101658963472315170654014723306729108165584831453227522046236078336618812833032293953083018700787902210506796494319387211688165617816325578845925293632694379244375763408128297271412724120226292819001692813355492607061641567007725041984799802380427966004216326243257113395245591620361571882980103795350369785458670965950680939910200575310433765088169240730799722099159671884586067585048309907521294964595617528639536032196156102710145001723446464530051343388955303865299218340846197783422787319621812713466512179214391620032863661157358495151710288431262806876258594328634190728385784589157303566512950204480180898628265276093969393890284705352875195759560133100118339478706069872731423138866991791831397439404254495289903128047061976826904425248269097347627320224703143818369893913482400826799563293499473871225634315573345614443541810313887135285597283118469174826614497753611189317471759705192152240149617046918788272287421375556676261010742287612066980793436998110689870042732452637568531669156290352719801019744030603396297205037127647309191180243985392788304696700684430241789059056547152708301272710502571169904751567841099450063563344829098474291167532099724547003497655839194663365635388097814902542142251769396719595807981891848210657944682827861598577522004289216477270327684043043705402222857044069216939814735523367117076263482425938876998754133177917021770383611798985626306529475348357894928685103458375566267982830154596784906458657580847861198322929354759405827149130648220569719788061335785033111781183669902983377845841410507046354612274260137047735122234150001449078448791639205099357200353871504895972549894503936892463346831452967091656668898175275593852481817946307962511542301209011762714519625558629142345711210067688006722417200189979234681130157823688394659540260562584827026771150419954763203309598077842982691025396829838882191525181510330803171144730007825415929368491797926880019777392423326313963115899842211446861140125416458034023031806673695862023793724997728854023631892510502328617848458676258923783369740121518272273556452174965113114201736813829599809128793913775664269740057083318637780940234661607031415474711682172715416570007262828979378632538466139767150205749070022899078082060576470368273865925827991759610646219965979920088985643896964917730702521402663150241624850279339124773765001783246220057609950529217281857801251654907823471062109921075102289973987671211310837671102295962674847702330240133602999558361073079007381457786049371916646298379577838378442016233559266538173120889977461122627327961734137953676649604517847582681346632056875909684995329834087333935789647927811043521161416783082006243883879304185268906814204616342934266288393516005063709840176505524521385032211777856872905553972398268429319166642858302979247159945538578970789978952289846242501891098065321562868710292523571008468702355514905424736404132441308926587858972411446625803314775043970049943304653990216062029068438851068664850831391751162133169498596070927874635253053038169716568396251755846628963781728586416826687069693310065347711298588329852952302659795683747511166031757557835158929641965670017388240858980210964207659288415787085960448013549167161641385406804748234415955755269406986134695837487036754415824934534753863646611711195590826612445060542961149071582263142640415283749953103902047332646860847419030566346515159165132736234818402046783841516872666163867691257802173521900024319155705489117762315221931777922099802490777555220100433079373045692025516552998751967407961144447144471383359300785627290927756980552271141272256529429603180590819202749910006320854642506708820530145719986485955337054597123587086791728096116565740685508086124609669780166462153694048166632899972131813768621507421746776808246761749593177490240312629346166901755675312967835707332421715601444251775363759378029277797685646125293672002792374778700684195398379443863373177489806879996587247175603660182128233413078011394791928942370217518193093404733504391556768610894755995953683345278357237781084207297915490462563166151875184807202384639385703734729676247583040619231788330272893123906684078550389575223759340319045942892210911722232846152764888009253358936421559396956545200565026381224111350789054169787267753813350663590280008800352939412903789538073244313510923520004704412327292717610081335463657189595343500926267204992150573573459448994907995498250459676669941849635810166612267613571555994903514992680216773975321678551161196558887165386262996668634861810405971089464771829034645012057320315792210112168931049385008263429900736622100590849498120263999730158140032787657278038182458680330746260085990136615501817351704608702962021921467077668294738380603379229111620000646558009561264921873835823333642750190530739868838321139616548836805766501893343891929916787803886156689785958175850963482221406174245783364857316574066398881512317634734908110757395519396838545278332924111615963714762140722658895801722739542993444470934094760145571548532758533455223825721963018651076548105444763534584877688407108564899518318241955958863222162012796067882286697571192548934769207689203591815950141197997081710525667010089075787229384701911137636344070737841286859174244457586437888415709623157815173900281179962742937073239296278052623867683873521751977080342535272649786069943771505370643393017206336090723599811608945658744988240327253768628372793256219566654993017756205168182211357299501607394948040951850704590485524242314176182554283434370277680163484585993706327343280527465553491439831598992017737535799457699283906217622425384011993594779493338585328566977349891356742929461475080493248547225954294158433210400638514357714350250958579452265312475477307434807250052147237274381134492574941085376681971922266887757820475840611767923440123204703580578021930052842142676175274003158163791177556132326366244795795959377277905588418054595842526249693602061461990300797007998233827794175933472053230763876350699790389411112275240445830043159125655665916125176345127993010085857750678942699065912011774530327820821289061071204853302171084297187338484308210397755985821502262378144721453655381187970723469264123297207705610713870761959147784843939107767949440652496307438894565360403722411814291967393102513639111073962285552037574206722490992501404726740136487058956508261740817122329381728467907886153603058688514557686813885242377547884520544878271517867929203262545569759208993610513937344529381587044578386571026729993207297497557811592071645399915690227652501284294816543223317208990518439007183329550313649796513147676631804986598753292261270677397159489114982284540100884638859676335108115145724888979943294866850587912855972336504003125257713555713142050451500766933949531170685253629705162903845239045772359338796186402504008500607421463964495628734081607275409801718081902416433287388153039421993543165321918666156552491614365638566150914509271858100913012995753134363215439840712496863736259621184909976764272946362687835030524866149119627045905834011678009493486106140847483536557220602833687540818135695994528851575359915279376857144937275311168414689669594834581967883571005707270709161394483151442663795374250338931864754957443294572957379089885471994606890999363933520592127297904824387021659594133094848801051123223720087282675572313035952310029937981684777968394518887987221883717872358872507681213913994691678453110251473920469008963861143281006064447259043673175338839341753629548521272861037978258885738476164970346792540792993236892082507012443354737235576267789569232953908465296843106829586469441444671112746124986513038192215358565318800754081584852759360172065037828189090886168704933406027961069796466750993910411285561149130482595446831040498250723685379021688594008762439632865084377342357803438964444962656069242524367956881008774775516194460250398749270945769270617271598193252032171550836574595406666501719816560521411541735753818343375502318102043180166909411261191205980687995051049022850529373858167437776095133232660680607225666610179253833627703909015326897744317305004370944252280612055339210748134959690572178716239329970181141169909208328209485684748204943198645070311027847661243302655148268121628302572834570922830804909613186432874890285015242473664367920725491868664775510227780472313460995144536718508681629113169158730386774057880728574446646212473622522783275200166439905827171485501630750069525271829490389286149699491987634846189660102340465797827565974025821530772991207463244117047406521235422442894777925923070852324015589703217706774423497700657470030542992260092474934705014882281690901916469253550516739360346488480808943736962050325710791081745586727420879360322943436097273276726620161579417513492401957037086994269264581191309649897165325750832065101170189223994553017640847261756936243221142971575027298890579712080315966158472329344574064232426672053953323300403228755889352965460683698321247786659836398016622798232530875735887480793286794904784561887482780476158040633698715538567053286228824964944188299032844365050449523743847014437444973194651948814609770177044227861381618939790871896684521162907862895184672134584081846965625435400252186903825538384901461412616582596404742173921956376937751824801297847830616617204746271944819446960862859691508901175103403600644022164046627798981645172323057903695625887199631234118752807428953528759746065525543620133322163451679603837367200299420071380207279765640885613966630044789573296204858373020157006475178507420396901042961652628931218098835402498130636550048552916231320242540790292173793930354782996202056289718173169894310255665437091382660310359318424624435877790537525853900481782284043292512571644775172338749253493152144339521947655483658266278896369592881458698991027718083303890048160932541007469167367211952907878211495199883952862596234321327366904062519845800738750741186706071492763138061471663216638261928019170036326872435012624302018518899715589354434470043616300047251398823563929835343933459646297487326772190423715872270071465473624858745325184018666766979990156438642207369238341487985528011859699935519860835261117857929344043171335279993549940082679526147426053556694873317314745382045870871826627250664574043799058554942400668673824650129675122892711930192220346412525607704178253123838098208280516203227436118945769847985101179680069661703005505941134879681081363692178545352039457419725643879570329861183350702087035904077079119966281876718020515643349686664665045165257009310306644363931712168733930141617603321758010392900071258393888568147747360621379241367322561103679788144081575272080361579660842625214454036778705381126680049279195805976059308764156973554271991724453022413905756122471963443329363822996067635330998927600710422593464406053027583313877046163605937524214563592595240537958503999938214289712639531667754440671765499877011290523967246179138818956488882331328749724114281206833997406294340944271426082210382573145017556499556536239874114292626229105130840977107886033025097125706330654150361770609020448081583443372177299013305131558892187839305321345574403346239667246066661033256225815283310589290268981670355827003064611171029972619488192697328986242255885742242639159083082771344005174109297837100818874230796717115404838009762118927719863307190799806198311381169759132507217522086086046148885961347040675421875122405335833639965563621016371226560663633224157762262527663631886615068464432331604208468060243558011289549339383160073282566575067150021157791365244827293185026251489382328793569276659289721834626290288712796963632406260014738112844733370178585148603995574395268280949283073468599591929760945124948718324980316077776743427843621660932621662159664532019883878536178264857629803805958615070754246804863433137772874581437139686408636088123111133447298846719834738495461911225774719381526578974808609081844089193019964636441398230098039846715141826056573495033815291323772846842192671577510706400605410431036198237135835211634782925519528241743848164553372960890073699718617033180983285281215403577361169835933246352124363328907886492691478142704585427379900921771600015356574928894698307197377485356736089563985354253485633045043041502538868932511922119910741864123764083439802355500114952033648298925938067452201984662122777548617908269461544795027039493078811358853138068334742798681878402309094359436504291030123343589181918131914639259338591160372247394592403934240321691660158171053886247951053538185065230655480983472157896624556018074180473720167340816805889470382904433590738159509475751145905965471882430960538359942500329641343800278271439515498947553926732826608798024535114337973105840270147716112712851861396372143932618932282716966347650344347544548112320311454111689549367482273965941360474716702274080629406749212345880193406123719325456796687875576543175984760128012681343616614141982665231601726082019766937299323972899906177384565896698533218565348925591624870170013896606224815038842973370981202234989672117588810187574242636296509599051206026212896033461422467671561616517982179416369220136841296932204086244574458640514325379365488013232086014252857782954807615291415369555107405126485659244857523926471926485401351422505154826070648029281234601287314820092575138636773141375224561017036909763503611086974431622725344739583037675948406562372831546738814263549105987749010336680003932836876135691481021937783399147547479246069053253285224904221632945958068575255000855721428427534423623329555812539443475785820830163729156014703764361448036041707442169205749647664260543549019189715216826127034959173948344353655594004385229028103652424440980360219731834930940752934903998468290201382373805320069038025120180389203638841342858674090919230512161693912617070368226684022839745917800036123766396657660034796409133422832366490603511487613407167130255682050124092640347187757645154987271202210620345603061925339137956415154981920613997802964641412983226849135306201869301506670846761562581025004503738920374019374576081354227178969175786824627333640422969528941904066908513013049454702133139576931181363104076955974323610045980864489853007440610821287008916858530119247045222236617713159792091357471288930393190426680136525076908729542010534554202595145954845365211531944383670969219562610890694163655762846206437428531858175337984269662578201409437488733750057984392432454087513871350122826438009160537406479656252841250494298531570733102826167545378785446078272909891111734734971831857535204246099285152556426173302072071814467134930541314057610670636672745606690237787375317848428113915778676038251271691253348775806547138419609294332421486335880384516365445204593581142021228303666113070495838771202714476676519909683804951587755937964200594559566704698591966132152160875067743735784361160498998096154644829712762937163935823427905333907512688249767259098890679215961725225223772528332571412857298147690305767710728070773725890267996202304185847328938704512907339056312346229023631597811826165707234517489796916661897717576968927069154413767530061072149567072549825684545204534051564462423603556906525375158598966506770920928503872241530440902497422182326309820415585756330613712111526568629013317832456012538436233306401542780577272450194388320696533915632803515660422174613155439782929894050033793910543715415553321991509519514065060952971549102376391536351426762404115072708650269330594062229936164579262624478892817427813133634026008209430674739776539597316663795658837667389366161062338009568160281800980897095713093197749694421789301845474945326950053397789260923251788421726144470872949437603439093702136457700121543020850623022769429601840520029392545481759547058902326971587811713930562520629872159033295260135670964527516591730792326149526049414995064298047848910194030345808369696615450099176874999504588085843007041430230982427120302282760630326412845455290385256026782264212084387349305340926450129965074846035748325190673986260487176618056793779873734520113900233178445909075575418268891406499274472299430286767160664414346492891339212043493915483033753750314608799420514219262881915847316722814420372814287030181332227104436913846823080286565404128658480554268722113948526020991211186144425689634675969264933797920368672392423907153575232155425784721465036150675652291309853012007287427720151204379276519095001118054386426734909051131032257699631365350103476196828726725944053756500834878837930898693891358279014840886595537601656299085343446498233744715822191525205894523294389949466212680448379572931415148109125845047906949395774280815504855875546813268660092816340589134158065601931006409615215669985974869337458449538462054272567148686802874452015100426453475042352218856611214916142415365468305225406729364241498019201614619208093656766950611392959823782316858633257247685777238028708523486624862822961181635695449867862210795432435063546322509816029513095878576896400941250448216840417839988216170817787785719781336038332192451671086307829274389312321161397805302000007938610558662855571988075572784735219070435751824171035145827207331001388264939692975663445218102238034822111527999093606003402342711963135685072351724554975937353597712526841204381223045705877368270688886963045936683220917115564971974244150375306310142665623529819543837625512459980507474043598421015608557418413800457826673190536905418422696450827611145944820182126473854651099937193192290183290124111854475001718224749039470011403368948761136236545191751138447024396569998606682581965121474654476764710769847747794179777805888599034912154961463593766655966411738260021257443584453247815125356707746866450041679361165805872925183302426927476040476831456252664722291341252527445560750004099016968565293323858672074462512853652721742257720259266471856847551267799925183317857699709934026897886099254863486194136574122411948245218086947529881633800364626307503049450013959801169255246067288883820481562091503971808749097041014227084521487047641265625254315306497231759001002244540319516112034639924107019001461070435666640652671919025674304603144362642499695683156351044111519549964252366635627892340057399447558578589084699125338082069504904056007658257332027426077349204622158532584594737061272341534282043176336262674716665579030731612735658088620910682733114609815381311911589508602273694953352309177025529724529723640489518607977089131503277519872776771393572071071879871570283570309452791010558577081620042254946740871673850273319174617175009601784075586250144916015177724782167579751884383008967650935981279268883118191422789501842489634655664495554581941566890547767944440315428820382100344110508753682558066446086118002212238644191729687808827963831359332354184428728057161922546620118578498745634988796682187683820488420742430474452179501040596447652435561125273016765441111053495654416477708868558824310621566659935864896381948538148582371291852909221135647530844033388243277965847565337465347372898249412892764110676543512656161143831353285633565877038715535770449535742699319453176679704285651467921938670284577509384548372859306581038213515337954245867105114963411110079720277148879862551700702450112005203108933578802468655700163222721818476650633563141718932604464242477119532527123944688190555621992440254224682393074860567070027826067308482212223158093652758464847653201449655788624511785384335334443099341328258373787623420568826442828395845085931958606056061792196938548124959493959122576172890090568574697439626058214488988421999597813463740882367284025989596027588361355920246010434244598459107137193637910196090096097229873881578777277541238191461061860645021782834794126103011088175423987933923483649921070014872400700915220197260017059175805887160630536323241535634550658656764938026856469580278298637243608695583021773430320654861246471756182510996349327095576115384652740483136098141101893968911331275999388829102605653553056926206603126742551359998929119159679465485997372347830328016162274929627342784683708250930763081816815669631004190032449062165877461774527162744177095020592637315547045320372103262460839572275494458453031613309201571927501484629385183475480609625888876992084326580628687751199833362650733064840306114874439208492322876423621863088955008997912778727483251365004673697499275286107706374378894067099460745655763598638751282406735075708639273352815237088287916246296296282097042129567588820410215699225922618856278860033143170932736708772195589851713976221769063723601455199298628210123276527627959972898856716735889479079333098177840479528651703360074442636460361158558029519805619554169665873579039839246679059911019990171386465001487874994969392213154211905706165664838967688738781926973685135574010369238084347711302071870679798100190677396064031712834691004690781125600185523440835114229079356883637647528011210355328107504052472124222821710188181987522274070490199651270889361250944181252968397191987666772308189750239920937589534387873993120685549237155933930652007157322464065358640658252500094136700077459254319023351535606682991006994777045328203605395461600037418171034688835983400320698272813680580690231285059497550990307555435487276340273133870166773095308453282291670886763483752344197293737453014691638215914353277303138010452710607548859533279047037092554547477104243609833934967549746419863121765222890463184322108814617652751526190514444858154889146867032142983840181674643867150194181386548583090820043540500412577596930385988763577774989665144092379808219651265992952495274926539361776988694986934508702568088069040103843926413852683514036165039694773294774990585922373432106828665756343074953604519826424471893313134708780804401987558625668553761382925531572130387958554762584796464439356067280553936832986305466062318248522317044953968016175920772965429255851146043926982440495919962802806303333654034808223873592109428218756074122970874008457632221546225710167860690261859961671775644608449059579577244698166915853968440954006430509414043806032092927921333378731452352310370020119034912045406809005940476630606509522324615672319730306754871855009493444299913391996736946512347146417503748626219210897914609992807788100715253802200065762460696774655854062543294083213691598030626547126608282428293281892883701793383358085665464241010439309007375703878048993677536366722967457944404448019039153602284843368415429641710977144747209689694116575123216029917008133536592525930302965436508723867573844306555042271392262034281452203534050737321224149475822027899508292107004026180454121607881429326222540616748659676937702301776419788096858114091114074021550004386020889705276957996125865553068151215000523578987180419566399019267621298114646732595062650999836313461623755084503337847625875954381444933209526023795815564092654421755939033001747559387708262067354771340718226457040164766581079246144344205617627663087746207137030536049843396244417355746499546522105629135640112085565193538282527280763526919457310998985173598865638449461738466882250371401887276905303198552493257327678864600827050009847905378694161962128636898791826387346619996034318029541973732515226713914941470692979595117695332337328914002417164782319789443745741839564395183120516706970915634536217944824377428102581756995489017340056032900248589911038398618064122247346930270270239905741677449167869032846672149193984330815672933370304132951510450414327618833135748533618741118993178607048824184594195532330434709581064701628653043094191277262253555357054168594608540921705002480540185438314185503130522801901961553427107311939382051687531378050676566948004837506360655918259381444836154556377952736154172484265060529267695545595705994075610833566391284649408410238553470794967172816795130105363034580373631236023919505774719445895663230182152523736543154769501057298366377497011406445537222292548644989092424300356911010580236151331548646189211273990443282684100644496117203654288644088326336316350594083652326088436782815683818114183361916531944279447168318871551943681333219018047872817561033097170463460196182604481334000580224264685070427308337400865574323084890650149578536468968352963594747467315032036142599417087399179323348285742575495921669847191815463976022335937918623962513723847220545482047300016985190781712181482068776770255556899220914261542323842083988628440282157948185029686163806837528657546849318194586037092309930404866222574987215701584626484633949316634589936492589380867828196428782178659082806261449867031440059529199069670375876114898387098502899560085140634960799825513966406922118381944757477875581863125689355096760112232656562390832357924457053634414240578514636964151800227448492558505419286517236340660798252437691899026496420667014508053017568651455451141330384048475315760486300633283484122997196120655852756841174831654658459591457564245706427852959239764359254905839897295720481266044749493761872761949862233545695835407144777016820241819179952476501579323088327615005659579873462196516430004730452952224672816382658866008951703293617699132584415974375658622047337263753260864514575333560868167796393249729986420798948738350198218025272422127570610286006653635564817926370980759694385226289583149629290622883730175338630195999569549248356146164582849090124636968303971945092146044070674653000925885441336691588801609414622839890191152986579855539907019685813774303439549728072239461394655466948992913539003920905520692437066300011539343395325563674817568284943712592286629500792630995669697240877859234670665580562015009012572573759013052751389674575807243378502986024532118286868635520204051981636595072471563654110936002430931841197899252729961576090896359191058543668075048873737874171697886191151262912911555762400610121404639089046262757321434853457686672465997989089157828549518263796243942932401766606075180061560543377285059392834448997517532199745765174484532678229555789030479058964797274308727597669209744370440820691891530053554905621309967162116716638365073559140751297988574663077071625170019235018813199436576864241668718903146445411420073791071766047652986061831891170182278211780089342150603698127202735264423758890333726435985856576049444361977537026883231878283833706546290534534999551429095283038695148319797108874167404499399991306371051850791619980239928242428858562625839848271862784581256718086903704657677233716290841808882218636217652868608063320020129024938151586133676953034453414172777454143176021968082198381719584153173386280633471861261128396674888275634013502065135118239786313621827625707461789556583503426231978957537963956486483113300317469229208743746175081039533121832284186935061306254839051132294103677943064694945965297217738182245716109346511776880308608093607491837806996028455968611937743870502893444250166059957587233864261405308720793199680484680272478033967329405528480283584961676191599578058944682609541690019469744710826283842508486520338555209617184902178376919568026343605590476222713547699480231895251276303372886309754280785789517508659661820975411805095448501885841714442149973686651348678219501043653955396848669033232543764381068023799794775328103836983965872863483990072809921704181695104217230959351742305955657724759821907073925738626839726206663564948113445196737008544184121538554240506543182919029166776742716871349420921580552173808999954539498924671620927357541501917522256505837531448817278335800008380872731964351792815265059911534594876394757329633277118869461447240445294708188663544269684163049155620199642135617251368621273545806201865188946546257082141299739191292064866021186406551638843203264480960583738540658330655907815166078382625605615207114503260727920249628077440773055777943631681195338655186395289151551661100350195908651948816246219946201121025861358077488866170436662960180965215817482287153659519256392392131309912968508200816730588126974168923317133875431760612562959714680549672119517450783307010106443115388936711818462678716844626278483331325763320649456319164060323953927062000969480145660347432700010799871266801201747575561859819022957767467665081166246206097290354842132063577483048806284322250505855749581977836141720215033237114053756714497191351129294675031359660488251564985484668300673320547241710345334023103931058231535035661747322448839543842459519978913116655184171399992988101713839270305772843930155049010009953742278091827220830355330280238290256786837105862606136281567054641614896887803851681444499192801617941290548624822869300185449774939469867000511486516744781643275663414778078458318399377532338896492693078505082007122349928823309946844171811292233549367470973273662723901563464273133639427796324571978968218755247612193837226599121374840920945093187929137167335250863744609588178812102544521588423278652823012576914939012469697657999779388955693136490834157102288447441319909423328028005369472123122347287006930872652800310891223537200265532679844420179778343552703645625543912808213890999287983270168190668106029689441996594077402693082284745577105834861314743869306145695556104458276781683283560914067632032623443062009658647613457715321673865707142628705113809093004449296487615558263497175157207600696090925647593943818895045105709863543933668657536516997652703488781987398587121212415422637446514311407343735359617387977823902251184352997433536525742099070362038712994744133409107415976806513755925217634043166564887289124774131562555765141989692808437885094169718873246509023277585719692271591826566799500110119409260438454912760652105198407454732726488865200754193568945495939586240670196731608153760906478020520920083094986687200965277307652011559434333150639186173988909338989937406985421178041355111868934798847908838909151324086835163259271546980611647832725715651962188778600185465410899081099759005773610828728561467466668782532222129866700649724313391372938452770092922400710718603180273042613770169588179633496503838168365535247747500269763422270923268718971486178405478214774349813063208003284274853835281446832324808281732958985909764984693153629531985776295397557228146190739833089178924830122396609194305776126386372268383635808757121415817007759111502091761926152398981909322656821205402890880467110279976516136295687667247116920006086703808301219285609114375796181767893721523084519755084624005816434925534057646116240846515169435501809821061164934892404862284251408306161388056157962784942977143592049935054834635610405473540609300622240699581638354393537836905674427408264961456028278009903054095115674444542549678901585675617808961929442073068832452179136477905230942180418876969346476854973328439113570676590132831006695813779006908151585302628182228775565247492846549726590849722264301344202991646522835949890035908736926269022216672675936024391433123603275529058528703207248716426194301633781824676487122510826979500011899023211487164087064245982375526900141487388432171668564788144353838517888659000491095967015406721744055121054270591395144466755916797412823106950721161048681019865560641230258868215309899744088369693307606786390740958511215198220516003304305923139035390853038968596362473931458353329099489583103518433914383368934356043727078961992440600005094914431733634772144098918302165148974637637313522383940977229368976922986594706619242938023724532217201929988317995787577843104294346900069781107305162737940232711586575880110817054740868284629315216641889519545499238523006203172801943265064938625879473132971573401691707095484990461889409414614039822281814166161507009226432587179279701104734320383255473753042851475190511672203938368533426049764771551172995476835563518782880490608220759110607066320729645437723233653640585139155337742110930657421064542777394855363168275748865516308941102772702034198081830300469599537246628573592205657622463036218131963038146015077760344455297886371703368368511570723948662720208439665857197311720792793780447351415191640263919522399140342328342564887020526543459985840236950978088795534837609376539708338195914147944094130273693442502653875526923041397534180296025595372013038692161829935182606365143265667282563903289029381357886544885120982558144001111989420468296238835729357208792189410656251669658369920153474228065219910286590032836096367202158633979883405857986200855229121651783130373270626228549219655455142710943572589850093571549198223520956000397702718442119210533220279191606733984970107238466913100423083880225032247350493849562509053570789684270071672987404319467294782204361144539297661928942030129898593897881816557734576258692447714221011708074819063226645478218229716523417502799513227518299027786517500031737720952285800598092311030766180882375450152242469025985270207100063731462552971276164593650316326978494353785898687133757298261039206105737291217582184410219570157742494419525798128361737480097567314294741144209535076379203146649585618830654582661810385359792276829109278870788037871220353333113822962338697810879185122598877806205513264556980544173583202301617391758171278693446210303972495861263399591346243657508157640548172047674398622890900161120615417182860556512405848206072780693185063117791558957456594632924594024844832051522393331968379054881234670220377504095135879081871582223568819009620053840452354340039188341044600642598380788406706647274493738115460285514978704703230788141607030249595127311115470348689561133415517294236810009450016599847247572306668794218024369258181811041949517984377216153528427816715283303475874406430107536042414400084917983106021643386571195493759794444540765663771054754712580810405248269395617014559722414290233996281440575552690115254921526867281231418868389189697718880926866382695176399161840634229768390729852256229475843180394422355047340709802515671214324533581598733367055122906095719247433200758331614398937379074266921599819696584340038831044282147376516933275397785533068017322926456224164534785470531029297725555658959289951960573561634457840703008695143963570197419475308070409722029821892484241539192660984221385383227229136872020664858067133920293874553321678951075053862060049138035054834508726971479363904202151281702295606212795007941447567581850241337903282044969324094739784969344593433565645996852870861524078354328563107984112840964324018855739764614996376456347872612836916462781313088823625689756859560615582635010213693438861194278212247049796007440092636840352602148652651425345153572423539403427880644268472404715231676279237422883805283151309400607489376720153200874539567442499068489145334737368622195033805073272029634062205329423268264244916363170250579054282632640548415823679891173684567016291711661711161942729862156074377746728650885860899389623519541080405769687745632896408718320557470958273539003173094241902570865289753269059940322756841521028443263819877695515651689093218532659492004575373194904973185334901738931187719946067929079985066473495863998828595567967261410835356986580616560522858052609730951596092328406977535371249094386890046367222600737415524644710444783887832839490169565153705507213637719459576473647884420387911275017226804843524129043567295184930772707515761066071988085997696283126851516162356642279945006548633451292681222414218622894587120731610607782831312294242003275319804114268458366829817827471413895201570316646740776915289684232266494255021773323578045708043441039613321974417488471985529107480259308244058013045765564064530240712984324611833856157743222237734557888764607500115578882108077497747223315608161310686179777722984309866293940017594033630757194938772313449637668796881599658586562888418724289201856526162756235987096803278223146340680918884134121141054175465359850811031200804746701030003658598621174500833600323222152893040834693966826853287097289861800057796585598568172071125250200778066068098576940414111952549930269326658656975920868586316500882951854877710482253548995390835837249126004346792899784676659476479587006072149364513723609430683147098601170918910306456425891600604134285928246278607106250148950227171708580595657704078287149076547981355207431279497166232675649221837112108415555021859397586358834424322821329870879211263798631448911997980421530126655528220973606953105363051794073317991121771608485964079838330607201947300603886052601320721145228053748376481066115633350869744397520770417343187766922581553939110127825813487539838177493918791991289078639372387103121473868419687726458307111039190753092266179273729027425969221179610306245745302528789936154191734669549017384058463082632967355622281896723094838930441045900099198314199929320781339324223920549100335476024209482434220561987478117534606527876021226989959284693363921914763482132824712463211229191006142787468211946667637491749522582375165521480183039794746728585636431073854159440225239472979784569496153486140985342289052870059020032332606223708975221849823320357549405724002899990227743624238231846077520243601950667508256445852387519397055622671967791263014338079106441510766364362588565838972260964695538732759733804681811473181936807712884610076782419002355709754276124171108284524519627385712736292771416274476539519300503747945717411042604538181168286685220031605512682291170290734188653493511817898309063762029337318537239290206997449524956681999390186050898728164615157172257997876230924286152870603045060487762732942673557353636186649623823584565214586064593444967702807841104574157465800960672251544859101803141723087818337169141997344283324701080634678561684226218220584875803876753996561440889361431030810612845177169327370670214309295496976796048376508981627438386481124339521809943620121472708713255957591590507470928576746088861015473889415483658865097269422667216550603266961298548255063623270968767398350207518193828694437134719833497574594535058011478900637661936939812548394057437956200837033901982739314610594803086127950498421857264920689304977110743686000746046749996982670491101185365109692339005184606622431660351680960426535693084529091950508780784814496925867833918904452001535613576936780116983860124853634219109551800009222997387129739738939231724177198890320276311056008522328283643930694633915307373131221704818346526525675116506180471007888970692511902603872763440969754274351565427852642153041228170844230061129466739581343467757877616549949034710701496787390056069594017326083590383591846246224477441151645507496066112926140178391160474789906609823801345488254901718183850907797745191960988555489161969390831163418170950689484726574607610341919930644778345909993577247882617705463836768691422839962912701550452634685868686186993770602251689652138589253414549352158284120326961882298556727834889082702220752926047706880172033176651348881289932214604004313649617141994526966135354818808804121951791567451680719527701274812527803533122986035027004229381505540616570322664992205168793273293353191785593818237146665539106526290114454180464370873693107845507635055812198062827103172217933384861516242963352511111382089227157362985905796196246442372621094086557362859269825302313680292532952051740568110535467072369334301040035634441002995448363946009121316637141283124187549286220175950042867542651642604132196797731776944616362516040171048185869025853596352523409038675128111356586424076658036576510964733471404336014113413873735323034931321696312424804476625979554940163731130311060657109341421958875373382767097874430628384961813101395447554085897569481415648158210227858450977493833673020142065684801002645461214498639192691685569295831524963799994944208685417966256489403026145034084162584339662619489220924381735626546219882748747467327662347583484647028957734330131880300326653361921095427522763024324475145095178881276073715071837363910611633531480677907007496663462069672681772023582042895024407754154115690566315807979010507045070911839683369781390692690694319050273425428240476006766151541360260341874394252600615732323163379119385241496108236584104770216211255545800957877670106842582056329441350840573944179092936129321176238686473496434329371903683874817638184239201317983731884060148221461390621298425317868332666873776298720750800174942661108760154461458554845959091170946440718054231535479435143728670604765988911052262119717471178260467955444468982756597000940097289876686328633293015116054990464989008609854389450020182150079281690921608198561079466769745463045962642128229508322292011554029383641486618986548610109458478543342762493623672039951896370479729305503116046712591444248457906941573071838415584802960152364788120586532587224310386114447052057977950089447795348098870806441600614793256652065023858305974861930284343206297036180981785036442107900607918710863394735022545612157903130565490062825236977277821284922149774339042291243222645752720324610704036232118322771498788502952036703826343477161966167832996975490156278883259957281830031979695519972432404477287130692451127067850632523591500524682429339586720560650759627592508516090394125754197587351409189663107510337458128209152843656340541807454245041203454270475581698829747733961063933475950685805456988267388571205282692959106219690068547019641335988255185153562196839705585871702917404202819037542436356558188918108538527216437044180197641840341257715455049448098170758785052479374608849882568976761590042205999673487110353869429736459981208635452992986846177427552494467811955277253870674632354375719012296799756001595908971251131107846477213547778534245205903204472826408931456691692973741242678180198970475945653305867009230282459049624326882300062990294558751437850080717352842962223371149998518357706356801208701172331690061504425795724566971796283080898659485418883114890199088799473289432076692509668506879759973027393970811327249665379105307103642236231358384752752945189913570129592642288576364222791003995574927634720775925671539496003456206168497180088486189722243040603975073190186951826480437310856030623389308740221379638394986212797265882325325851022191009799400131997270247650628191722324524207763607506545892475939971231911431923115161720313382723142056667555831770039231995498200058555167672886226903651747451012848403872164181417190444706020626383528884694090301100178558981146330252217394210054110570980182591976544591423538751495487354594648095973775946020543010702098721461025270021586866183493129114153725172783101103806953204679597015808323016815774589650057021750880246096604959539928072243658312761224452036941851854045060684009218857764418937081822839588475324419824222005955933013982401907632119698167200636180290201558585961969757022178229194285019827323410904283979647394302528263733576686609037678045166410458819500803282636342862525839785072553030598109397203804319362721918552116408265207204681497397665653367004035979438286124103024439395092357021845532111008228541179535707886058305007995806129477152430343307653961346770148886775259291278026206867548095605685132298419843321089368200878327988915232333975171773899480492651370278174305871152986602172646105444688793848632481681685882230736738202746882873717602131682550793845104442291705353600357077100756627027960517033503026051993946479319194429964653369495922804430230105459300427788940957157937855160776436833656835006295687490958053720479297074279926969289397632594945203914499553995600345752844955015132216972782784246641626283965499160991633007064286143379037473244378150809621788618674128139043430162941934469557777397072601555963287298128119631055374628208457502992432196574927452653553378330040025429609848475099903202608978212027389579705278826686703442733951243299793001654803538447201440109417566433085278879917540557636276397464755295188946987429727735904363874141514200978877388728465487202491265272116100845307251899434332836049074431482615034188561476653930572408894039680746585437851639224889297274020825520582219301566718139240326049651316718972273868320068595168012163841964054563245679927798154891484554790673324827550533215894800636258606677629789269347065910707950820938555958285936474136481344749482609346399423189658281835603522060493076291436452210539211997017562864424699955031885883540884152458008709196083407134604684674629834282879208860102276086651905428633482873169723904694046798646674548808078050436399247829814993814204357385969380975131235580037320619742018468820894153097267869167948767205330248073713625627579899407871458665993183504214534893031791593638472396389096232513083317849076132191199695008924028381015937612920125763927695990653908210837630370418001093043100734195599469701523262547848812375148636227009706119667565669290652055036711042015804489752656045701671496208250083045508393815450841050544490603085082481114701967441337614119057287506888965986774633499480764511151024513326321175442674583945422902183940115391420749764574343136590837711971230517494325832244208029197124857887657985083085993161908448308183779025064588321390301941994825488970608759944940594125185426333498393779706997323890168026944078432573175765139825165232522782137296704342078275009714366492429779110876649064126985594163873454939484057202372579185407842664449343950531695131204442810405229026351159375509710395568052842241269496989994273668080333510978639924309683646405589552493912807329197367071648757114971260928357776252326829568452920889809673499771579066431345215068302027175194080750509959903328269800390989078902173099184631655302278195572784413003307706599864143948938995467278836274963092664851045060593255725029503519915677771214278572376260524091422094987078657809791955788637386712878766798186409244455353432571915773987989813759122322734636937920762238903541463439123623268455374510307635752364529744000850782831291592989484114572325012006219552851073768852650978942798723821555867841616288209284627250682475615987979145887092351381834770737051155156836873268335459259538238859732934800630319712544376421082914567543570336502173692458280707519542435283493800493538087726225538274708866307739124338772127228350710301453915024341775773831192623345895143443273494658762030151844860898466598666590019254823826955210985987431293124180863114897637940229840420907292492004116902382483813177549970569044346808799503537074870093302385182070105627824893638184309913578496107816021370720883631250281502040454600828005784173700551546242976349598468374818307682496622227182774357273428992451785704307404460924261070554345948136611931584322268706967245019148649178799462191336267888718706509085556655336788790043159535269616701773470513318484859920979059212743719621273546728922821907764375569512792694320231493464485017942843173748021055510325066749517285589844776009806998897492011239354689993620289866356466275247076311770032468210072068428627942499447676511041304851120131828167093061163555338192778254408871889145571873333980920022182823469806110011641496448544657512379483021102102174749860721721008047997813011757630180418969373899957104840335563928673160502823271587329868002788979272051642459321123860825508931608525071731480537605978170306079172800864598015826825182343186781652887073806489703566036452513238145720545072811829132032488048788801469435372165314100607059546915084798855387837534254780391514144493894470885986989273518072737283102546265269006465472256859764505120206468269881019738377782590332936966472863901826866079302593871162161714260884088622138297426771607744663784740965156004169285173795771919526010120339446043990127424540768775325953394315034220576323988111799235750372351863254506411083165705100902139668929757720210821182789763357709516262121459624563735167071367577264937042790766584059451963694643723775947443299563185820731359275603062142362969848663366849018456304568700406466706317651491873132017196053046437629516135148024989547154675492249249393423065693661868919951406747714410479270248818860778260330353640111309728019564106757394476029015512211630112076328456196920470365634107441455570059002084456136760906661858166220934836150479302595504773710377775627488933676360623690268146518238107399694455483678107860240203173728316805377705150235327409317420936491207065205857903634488135919159572195015637155743137836745186688538131103324460278006778752916310474039886329798188271326552304416567511541093984551552823815615530341630772469175980354650841726095916492375836858380361151485647842437629599392069640278697602673282138081699336724668372141436844339570823078106307293591842431628304294908209256099551979265731152024651776856322912421262569315872596913751841611931088918357171046362704398554393822111119697560309200854474164427230436109201587395499042720967961929600060201280811743315826595898136794144117145265495083560274207644936304716159029708336569736477736471540121288632445121587030267534447471608313950094532480906829005480340837463410940076847697836335402488360778799766338857861973213081985758811260115834171501678975096039210201367040955874074948926634999103517218532934901935747352492485327720605490978411292204552586994872611347611154908327830561116025168864434894244348786206713774075581789812993719982214631778088445823902485324804747323741949353972959522728219017174322068777393582284283754158644874709476523302127554407276101080029218322070253139679414414304681142151771162082919557908411532067086173085046480401914807477294009166303146058363235059214440944329973401879674309121147331414190190821486555715114118804677521743684454363967830488206450695687576418062629623582586099149605432767081670341948903855841773672509286213137327099460179235448054044998738680152712405415830201845396616048483875774159402085286849621039600435566371154967867327221830925326165353533186732125040839658210235972147405299049133175791815290424453591910377006239704328723016743936405096860969610221148010705354856806073515360409196617163397064878119271496945941887143472651632080454800214301696048302150249767091277583075225541518742113316838666052245439182212385217666267456850905347586814798485433691079050541940398986512867926792502231724019217907650486613227603545335731229905420582139765615643472322448196713039126159660393914907172520572009733998659419013715888234506148319124303839340010773146780147577796428955318818465248045526164372688069130945174378249165469697520696520304321392108375279481467594985324795567516361433702051242523732060492813316689905807023325261624800634053026239486273147532469064051990907123651308478202801467023464975615124995672676348747123708048678583883751799050932692442974968047517061957847219343943323169044417750400227777293970316944045647783796484960705143943058378965254746648444128480916538886668830186684884414460804000436597878881712085147048040744859596465568291329873820700769751038240785593171586800301876062090813248745328366852848339906776347950914858440666042649727456147122628759796589686964836706646704942762734429430839241041958036401107338184859464071246235814549374065295759262008323799008213288156363758387666525694506414412160264736758802940568765893649061469948258454476405437667455452370329903409482552878590374670478331988935169541764149951715973550993699380517653727275923375685875459190484506889340762738993855829373702696659280833476002847343849482420974386064170713043656320844890151625304502130826583767408662796222462737478654904131829853076010360846620910654584681487915552673878891612267869046172225821595023318735986740750579777289871810351358488289422015827236047364188269932123679400140304220038477323260644110579222994382813259501609710723265580091191407220327395079680861552593957633085678601735929125770579537870192156589993590802353593124803963665468163164323218394092385989230636099873146261198857245455269495551174978877638428284674611105393798256727045616574389301501180950048759583761538208791338628007475509753956465936319794593012809766752239996004296080630596763617909882213875655210385646976912490389138782320346815994961411345716991615786961248726554128717275046628777490216100329084480644467284227843881533252864792601676904936327526358601694458165138161696321786080201435430102819568530006297064285466859910544100389581410768532101881230726824539290547204484847070106258655453971796164602321289564444777218919701505105939692950861257064123657439529351607746978016593190912515298642398085005252589715829516873192593542635787143787602942665610246485232720800924848427489562482032371705919604092313833866929707645781747706516412786534859179479873543785982392526046392830940262697366034422899930941579146516766721767537047735614310542506268561484773621908312299742424706176462012509224387074688959419484086028228792468053932573185385521308784735681784110525022463989257454221149585734325635439068543794353738272260013336667384925430216129896379645690241617469868554023482084234615206271939160936062950333662145271166994494335893464662778446925166761641072830320049341485987676358534236474297693236604341742029839244317943259833508186839272855690136529779991609238468725699395900569551266371662110801170622458816164396529066949560499573165456742630991678450272450736711455902367079316510699973380296794306066736723643002332286773521971842843469054557239399141510042836615494900778357719263267226099747432952431446871780289263610199437436867851906901622939400560769086819642305012191786978878169472504024200242017832836746390954252205514773926676133472063009539497347818100781106395788145859693314618198929109910247706128076997990150013135500170750551885797280802141877588290389449663397863478502012987019187207625583643834263159148437364278068092569469356712164479661938430518046003776354781710430522251004247906013687722387153073899576702189645019941692501653642855180898154332195643739972984141195481033423455045607363618586682421020347584946433312013985244036838616311418590302893952726694496646824869752362716685959474846920085918819118037775020298525195447674110709794612404162458863187662995300585787207070858012304693010988746640066742209194864346400946733265106910237599227182086438878331294999279826978992496963910264544664507567026968401750638776275394330531724128736796521200226299928118141542593758859454172533347653748678762841393806323080420516098867398637907834566269664493687186784040801931670564413679234113192590063068769676175707009021881989810136620510069529456921086408778141890825514624050616588229993700815999271779385359514114645298679273355262095832792174926603008705024787054603715538865672836086112106898526809590871694027557909626101824040780183452229867469549443457537921543980678790283302224904445462034341195329893227752452446457457327905971603058474327357893885579908176705613245024596144050616762235199702205865232056541393393055800691387093068896246004994835835010956787273401240708336512107722250848928705239798183934310857859986541508743767281565888123039307205552605801680380880098141042028552232044096635688755089530609341137887768210766385714423022015945184328105146032408963497099941003532378677049362518451393673564988339926723584196768263861128112522595659554444494355041557251572458838169455231644632632544424894979214061563842307172526356676773980488441606601972411640733965433841905057162824008169427972622334793878756007329889921325341792523235744175777008382484267075262015531803714026604518227421319625752335048439374974009919516476514633463416949154240359873346322666568428217690812263771630091903726328171190688489017867932592406909458726748461174460849651740899554661360101319823072963316847130912970413822788356905006978916403894533335504500701756468807533343486960529809699667117959187323946641973878366474016822879203591977050610059994325686220804777659662302932797860065260144880643598598097777862661653240275589948740193499063996053328875339265351724336913844125085208701117518833881743572259939508770070422632495213676193661794878769024209327074237280675637058184933771383946501154810462167885820964607582437945282538586207305099180685150939189542346345219569940747734988533354989946086056991422666930671116375036862341022846891306495645123674176657670388025173188006913312671261046406609672229670215566828980696621789687907106650289647071776759327371673692293045327671901217100060028929235229181829075611977327036151737451395945889795976215197536308276383476713335584712373515611026637947665625836080813959376014160013530036642972312644543872777135611511044717193616177001890400347866500796696306821109767557939969465041489979409072327364471935762206074142285080704960540123964888803442835202082295937855131404320496508322955741106009143979273591017853525798690892002414179155297827235833609797062953043976810910763274028503444943222375704799679794256230813473446908149846290101647867131352550254428366666768016664665531205624630129047561687943102372510588418551242717184193343362623299819547091702183622397450310991361711509681908094733408951351816047240814531029163553173419402505555937406342862927978253615596599089754035447878523182222718059813634785954247059463058117390157117828687220111090722734460617206413052715758292033252907394016217174919207892233359323494229106420590835455606884698839870469690035169862008634274818228962150848263304445413656310312580411534811614511211062385889767725041441651101766192342739578353964023251266795490587296855465174774100463268699311371955840881589602254629309032629972181936468528847882527539662526771154821039413480145631897586827938921248076063878167283178149882446210543261712025040682118840159190214715930627880313291406580276238947715201256373508681949210946741079124874015861237582353017775786381682108153846614524571528241531675900317969099244615003392919168313453967835462718521080334903910399989119545845936218312996780311382872664803170115749981692077400604353625065385855698479626507277566826661485382840996004183153348943645013073686651350551002375890598107790345268980576180071074222909195675756069406567223425587274940957712412533597681046116622283395589867557848951204055814681244631837217124521514036637381305407157946383740793628091693871392466325597554249062939234984315073388762771286627898563450035235557827781688940027855043501694727391744685474194424976213756011500535460996716297870083224978694493279818519592803336671381748884897664687378969561533526513039076705286076915131871778970365917878386254352748058841330830176864935719533287094227288327258184685319823964616860155958997620578694952785032641678947264704491979352078877430712354412466529231338616959138263153380276586326211475032166149102670951313968735170610513774699494946006554540767881321455915685515700551007546035485666325506572146206908011198964979398432126084663611455953571304334408314619299139449239055261690430751606969707653219773454924716413330788073244784131192527038577554867218603866330013938542705616420024240415277859782609109976178841090786322045262239965084434694192330977407726837492934347349331056378446103414370945805844130190461430969036209732183199454693170922387017037444192313318824282716774095793526032683621270182817369790003577063442392974328736325682823005698890482217655271277201812860645963819089093069764860541198168271534603280828668897259941135725622917660477157483752979288548124207261691867888462173917859505422806180602473891815636723206027455654168196193390068300139480276409526964793740009536969612123492021581191324381559020302591028417841904332523711790291824326325954973454351269410137525272534843963322058240152297022756333624315426697436084280472129367386141104452061116670452404833341756282716925938755129287494907174311980029633414306919639050888153654530040115425037062396468165002282974526009789748468124163490813388805574139338296762781613164179014484569271867122340294593351450990484521806405949473870302148032040873988887320419697724441623846088589611921367667972665776971941551198784885538886651088135720336725867707044688094879465406829434430605046737029741574138009419606220273613636140110470069415263750226412334819397043368657269419670295923659946481477524053913300444093053347813116488182483433771200640922148932876511900784970790130771746457750473181894323434352144318183599644354859807016692767004711268522932173910711531243706728230393345020341440349544531283816682232706146326598373983504801507588569688236284450238300514131362272068383704415558063234499840574434222465341303201019730340039151650548357898543596723323486938821479345057120410799547368929194327763574169868713568789263608468571563370326129965534263697789901629495195343268038618230257369509968678807887893216554560256798911449733433770791158996166679967415987329813889366758652277179735533416601259145968620834654794290154140398782550290356429519797879460260433536851277886062563036200461284992114551082964163904991626442099065284725760844084424958647325385749808882263315069489150565224903824249669192097889031492802088053036659618426986598549788963131607904592877650338985501371441137705695408821360854233504275700601268885618718549180904906130954115757973853168929769907654389759735044787364279751099499433912422623187277689124175467514244663711823964784210753989267730916741186390496901121258181055358028476259096367522690822393137159012936493314052508294532625838622618967217729357625730763499802780176233866745341947179930787586858041327886195734209187059353095175581950934027462805588095987195875222515775049598832214358283643417971941307381088580751376765490018787492821510860932061821869775324972802171771950450834752547135246716431413074121211150242586736045215085923674001911369603443301636483498533703626924025190179863396733320860202496358912928563124036033380248109227449377272977377333770955177101451900374210850989830401332762343453442330657379108168309528924121466543085887296891678966564249941364518639945225816241705942358553404270766404755957216709467140859356698282069528630255247489283174303645552654533386103277380332068776910848329781280458294105587713641342845566202755899654407282155089942221505282429240956549051261354783247561756445295471437399611976779462448125294231087857481260450462193514538670737645410400265999677352305306384809982404410390460771184539485718099176018281402983443077752456308585477377482203257006984533064399603877544794736381701754451901964610238912889423506692190414782363113631708889729525738842221630067809396204041160191587078153798851364534500271863097351489073626034551408459911188793165978268143536486046085351568621026488985639591874115803305269003180813523720365079524622512284946819302108243440777779259174454597429109103494681972939347868781712669077668566762846688524974107428681593344563756428120506739519864702963416181275258810690468277261078801140336683456825924046543010178718154085859359835974755937979073347741950499865790818962943301257906518474364987440813287408981335926671075113379277062117961710504902825860277432568456727079489858088439588713040824013559664357096196670196157076368225541950885019779361194580660512021779277178882215856691569157825741301463279131171357402898546839889409391783326885085483154690972028253005627509830678828472140476702527265553136144817066874120319426150134221000515764223677547031354927563675989545045404625152278982005347341707714690316831498898972950031415030157709355970949466798315253372978487839895255570237139893081770849294300613165595806187820240923280824582019710995312074497392158713880887356363944688231336550924904728440125609649548447302605911549314330438269181195642257604354201435968469199590330205664312911306536718889090268941457920073957629538162102349032127614750003207741485783666952835856633367747315627336332095355831259609498639263136001303382274154952329152513974714461264927134211254676589361740577304351907267184631407832228353337450986414815922969131345799793674685659548177403955021007716121264671273478592907578843359733262543793836066916301467791330625134820951999706746549339916579326436247353301088082309313386024567741610733893981342667957214862359103066368220868179107626830611375147906543689969698654424534816098025956480711680753207339028147537266011017364488218191190890425298536382201580240977685079941297146316960815786246335752876095180108908844958211811211061477156737039651537803123051770365921027037605906150356595954631372729433853381809686079885037073121596752482866102448707105197660073143283767541957335543917126885739016216320115250440952449033269912265842769943244657990611949077181492160920839573412543532908793429537402821817434351474752562249886356024998933021076468561524763186626034828685125696137639676531254195295727832524187736207258766945729316623396103112372338510614494733335153741317437863487033581315873550527936181404141780848709672070364857846162879403106972210139248545300005613110682629552116765787762751448670038931652645345231777306590268508218831859047439900721627985742426252847697850510630351581455062329272947170655220861246839508654426037824981284350749736789791417479854348353199887064032615522466780614401146291920438097902305764338481668719538312816632663261997684566037339401055590403827213291590281836599320104818712925550592237409291280579508128648938936044588968982718204634037058087877415079362950369635586157463955207630661416861248049139400930194564322865839450115887311148949945154513764532209969781122171218002040653811567963099425070343991532727047312172324796075677382032810168222140730459786790160924092440405258167214566401262594336262736047714202291866784660350693722065558730882017219754897663276044082264085022174992970655913763362994382866989407436621101955262887911403549083887682344870789578161538122904942275834669607497149044515729981081923222662939560620432332924831140608755640813509600028454127928586133697578783646855205667417997476870627672541849245141555773366983869075951780746558146977824307480286990429217706732806387257111559144670162814739671549478774096537475355961311625822420404705214334742562610185451847166370961135421265559082059537667083375639256691261712646404763385232166939337074419356428807429457564889838754810656216368999618859442068394505196974951365149238292687295537764824046266037093194088105354464766599345412728601262706795194964035026664642386457262345960528795122341356426590744688799617864142091078368778479345182228332345325198408900733587384140775047756417325676099470914305463544288085456083123649243544292236977911474514375364893224761877138065949593672367709793860158328150967248789426929344482556542493617325218946157819772795311480805044216071254914727660977878565486995868297421759131624793256587861117032984937765562845280191433121310572218990659258383677388431578957339907183827538476848865669310482463336273010942740105938331445353591522438168014958887451708064388723142489674679974314341595808642470201664470067600187059995985981153863262817604557399082157033839271754297061690450145486060882751939764714785942141320796265164319771829728184909614043115150116826799656017080142732869148217174590910106713341082836191927453097724264546122078454394163728548074744623557720314397956483590095333908400437114180029576621348170118588871302441666393599306800210389481710388545528685265393031017564296227766753789777673261197781707267598644155967194351432900524897355616487725067489294609099943259081074651178444953410611188329111945593448347354381337067577284421386111198725229258064714404702573271510199805369337620386163345395103984407508286455543162147303582426545278506328198987511870920475952230624552659796524190801613438183949160108138118710335702661632681062019427037673111384297581737342387332006302475038184817115335840333471424075567029007149671717702339711353105476148301458101118959750710503172609328880961681343331729488886689344089275793257803705728300514320319444731442174918356722654713063417016727972106423367931280248265256330559907928827618732267766025620943850655515570911678346101660079978408976612480981371670957272532214410820459628025669473271326704504820516175044493021064842563937742388295552220351421432154514495635386363437724598523927792951090289330591860645726839793606498438727025939645704467732260562185540502814573067298947257766220956320589037456016550191904280466112587068182660589078989257859649349065475099227074279913754422814487126047404482369809191509859536005181353016146277199068248104165803267114152987102613833759780090221903911079217882752826641255247871231636888396679877454443199747299320760929395826313325532396947435349143996241672889984279636081340053413986677833579351240072527097380213347513321369752920213648535286459511943925572327246090798221479838831471845223879501553424637780093459992313250040523578615791116048981899154941508016715304574866387969033413637500581358606487942930059790436027212642412726788559229722609887322401372443037923788126670679641292903363340829848411007940508966976857415836578879344884753933485667384326813346931765577081217142781987787212528032434399051092222568193498971837897105579727792842048494782359212880951895112001004365650757760183575380074425116462987090219332364764731360951656011603993314450652074055065215027561446982779967706989856574421408194848120541072727629166361607809372298254935781704583670210284111606003802545953630755266553089653218397506112402274607648806043184726967940201410794719940062997125383152887555188490112784678348178780214292243071430035066765050939608914515175321494084001922871968510237697986920988329569646121316496781031114597704407676536843588911487580001640200324764276497795246817139489709246567867147777042025818926109222682764141799764615125175270492429900296930983812538704293127842666572739527672604051691434558712072734480841450143850874542238409760964770740627014492963146628894226924474175602874496866514759252489735423775025688696576135692912613605351448938173243098711554053194814911877013226107052422707716131251266752358862023168372452036783256436155964939439634501872185673682755680229038651988631276328444916269912812722377408848159831085172539472385522572857135797019371883803209952439301181050398353579330910559051648130194815983279181941244423769781418663599554169277349515854270935779384615455919802179482715014874084880444738014293547457042899033720607068436773034404516460424004758764491412858425844552693370228474128410150679423548212982131812914644483570078329296079126840320670103490836306127137435166215988903369034021312685170241990194495629809270609178529322361190010518379210705423836968012195796202698211147705486307241928312772263363648621387376945109991341197333473265284179993448635261882013873481172293541334050310327211640010940978575631176378763941375728669559609282975685696622238725859154332469933082248020790220246971149781973414908628918201118969441205888827711550663978178926645030545803562673364769414034771367065733743971243471673052123605172034797631382614240314183426642380803447470074038842815522392527756048413588602682008327186663848034122927801512797405869471175242190558948585956778727545870908204290361475077224040328983355083471617254180581545424362308388714523322746553563553456699661911952047541325043866651225483590283128282290091763778662550935135249722567119803431506244976804218950729976389395940759120536198010639461746658086222842307718791793975418087706003181195268762973858703761338527429789095377154266050156326083995802308729264504536886431516235005561111037768382012463530354735190399927499718945989316422883261971118861271074779471475342048740543341137244272799700855034647530337075512041761510856461418694179045500302811069835772865782122024165511411082940762487544426358706927114727820063679676255756379944207757457518480605075657926268994607604660560512082788655120390171743617976749550979406518858650875338615797142678308831699233594163711410320187105165431659979762313668005141791774395102758726344752974026880933975596950208577679552720178813517264985595864978916071434013215691643064863629823118682807767882049867633379255477552390448482963241656785076433002621169893577196849979704773744022164886605119113058036945530496906905348105960456326612716836436191671567445110060265508884745340255421296376197299180433663674287925179398938199384195266151407129286916525982402001255540049584649950849741933570786483450758511700881723526612870779860616849534358764500647959903608141189408443825380016206886971572862708987956469866693632674227093890657333572503747229047663386993116854215957392008812029155486559855461639782075651266249718519609228032896251269116773696657430093139095032499385309431649422717703070023345666142650506572637252234235394873945534554301420076964502684925983282428470787991890658599484569171532410345078901202079991869612495797929973016886182636284121676195724402498050895810018307468564578045083724731894285535518997064972941512828335264666484057867388001853804717433750240867943357452873147890769050470318612724250313319807706944961023538486176849661168779129153301880760115290205062834424402608979603694522589159070746215326154881707418019068207635959315798787419447041119480616067489888013626938413481807043768456737029692142277443877862960131080978448338206345271003314255266845962536576083123704595516895569128268794697784766241261485323933496469148516172037084077282877320788577670698781619417259619275055334340452867728044697408774530032642705707710771069276041879682942882926110317666574028382474685251161289728780632986561709191490275316623095244570363118125863806718117596677458308828853738367406013117695478386226297904905661609807745859622415450721106268910508431057084312692664172349975008880805679812549254742241131286262078015681814079799153580706279570170762703931759977285534425380511411606647536636789118877792503011371659562932247177546939450936786283985173974491089681480926019758437829403695397586838136687335099131575416952269132250523548598375002843967291426915524995490315269129417111641712946109119867823049341218649434407942648534324053450831724350405840671744352168748195482514651934321380301169462312711883387470679666095895213132884670574836844236788550234736046390943820722687270134440161493379918450562204112513917544696822599419192456867080775541534734686063740063947606685275939921949431269330246953034833483024567070473328601804405613097386327129273014220826806667135953115572666595698503446030718422227819401121388197969143878868518151195783256005368099460954423508152326243279493287645047570503451083705759303904784730384848926773357607853981449420686932087501385456543382175883765551037288373112526012582056889326096513787584523577953316660466206472844971758434584556637355709902012436363347243612472829263112782395851571081580760392442013863976059746512464948334110992117225698492769137297717689731483640495915335919081889816156428594862336705627624740045574115304427357511280993540700925105282872360856426456624567917132849461091090267731086487902531645226963086602264664503455431948921473526174305565041175613790052547239542980232290808363114456000967296930800094465830569259521832571214124432780157093469232690780069534586058202525233075749958709229009065376429963846543088405713699468731553768848988629691971813254362839866232269830385274757300094237858152881636039404196416653711632181029204566423682070662013960586122207934544547213650331293697937520617456341975208202492331468630694510280377601707610074236740371757067812063098362628905745619248609885984125259563255607166570437164923805890959183676019755290478665893219469214258256959254710793518586376382035499432723308573717750008024541250636430918706462720438690640265096353730622809734288331560496413469123603501197309398526153767995643832589330964452407058795085416093756779951494052708286958565363303230775542843654180138884776229685182420960017487354600656959272663535492545245516011383954807742283305924319507697173682188930080181099200721098611527005006041676452525112908281543889896229152369675884252655227830579781960230771658621172469485313865425761040246672340917143717701160822745934332980276129986210089533517953842031350355762810618624996155243789835833725970202168775560595931042514347602961524590938599904045682449508280559314165179652638150765433052285740638686767864385787932662528429148959066866659792687176177201657805032219107496781666228443829334678929561244082727906824989530500158584563512902381271448259832405057435564626105085537308910885478395661697529170143319247991959008958842550523841966450242102281583460211513867740698446791519205666818803843149299474087445572527498253638168597418522724161535305564797578460067384009571689544478910806618793038859092315878099703481011173678963494928917749407601265326847515370574840496720889097334784349694185024203681555416104046901121360581443279886566108538247545682095138350201486135591550888004977826418269456626599531114237846927161297494126049010047608394773749661592804827906649165164995759351315054517707752545585784186536716002331916194159519392344193618126835572265546098154490152596709012391429705751322203439820850869976419241895573600976981326753176872057723917531133813364822038913614489270733617332758207698634692774605283855940629298323720861549969777979615248466090730439048978127101732960006861995948590879384552161361134096431551062426225653293734523059672456065283381159455558272984566223043593315926247523336033009965623308883748825284576870009929926585298189607990819110795550528605459246486530180290198830920751988362815171068063837833219415261553451820533582020369643294962227358705524691929114741789593614385939159649805859791827516328671798516665439647370509613093693685576860006496682262233514665877832667624972620645164993415154151296052679622305675854987077079801660329123834565146094072184891682104504983371957847822141400594035490815517535017859270703934341562697112125218557524276525395765251492873668912646401667182270672595589102112430146730485298391598757452425113726063840783393667818481434203765029883950831119060973163155878265796814480631657063637276655435724636878213756630790366073865875544431589140165399685351876608377943594658264647195938833826570750634123098279360619245331712203941986946479173015041688732874010085823418621649674050746768986936417673207445091361695175109061057701757829645103629409855642841351320589443605565727365390571767926728194807062384126654813127856884120147066729420243077958520000916494518507130858691581725307142444410277894356565750180616843668336555409935002925204909978419171872829016557802811414447692772897679500378473241719504308863410619061563869737567067928566447956801514947638264569184021143144806610677998569161351772831506413828776435040934621696056784368626055796508947053009697026405736867918850020799517505919933643288656460223666587238831642879566220329281256727872238998823526983203200532354971669660882062591120328521037352280640580703127848720097508904426135225285141428210725554212392612705821518279893032407001076409837026626715783171269170076814685979053436740950208818563771850468237770096406787943061079751629304018683442331620813214600666709081428163883369108387289468776065881468676349658348604909943406620321006931139728652216074508762433394294179154168979478347275277489788444518293296423772777896532073339218945970574896589911276301489697844571750677864490939879866204550777747981215805380487623663258432870656039452762589102241390410593148299106485448866356447369860005759490533745389658213541495387644391728193721270641184283253984038827342222407091161812309386953949951020639596073601747032016858296926351291570443864670147582103816046049828947544964961713076611484037581661696938882435958505261118793652512471884703264050004441122069778256867329179093711696259199673841985801215076648927464653977660585411797824757375484351915232426623715172060327692879816014141824966444897303098240318738135453496073695861163369232631311157214481612325806854461915130694729843457288949392619553727273668726182128906153440142323123656140096432022210122806197376978434965718938716358367215033517907588955750923626261309498866129753369337504269402775854071219660473620178702476830889251911533161929400452428982228340660197801791338395941388701706821980451114142905174209681774626063530186481236447867097734572442981592982476446417028230496120581134615364789729999253816112455681059049881314666034271806097015628907873381145574783987308402491172147023748226608669527997812041180362930311930876681066609652551231218680189851942310110565666373113675210636864744382020661231166324647177679364339863870544977245405009090840947705750354994660963454633135559064223738497618193690318621451681102837756862511941642031275292243706282871797900469269018293614755413333144734190753961289027028317584934289935905279763625951268315932067378060616118399564874728850112537604055886490299856134363966741561745409911513489040778897518658476795858125797614926064741510695489935115188823841671348529662856161296753218100416281849060242906652337963398000049509746552941680339856509648369961757180003575413126044541682506403415548423936667803260670885281962819574918829233371049160435141728021460328318481994117666860848854503896765177240684247084222588943537406335861135617189920490502480619917272286389841223557991162303722624309445574509621044626654748045388050327289964242490106429774377143485304458511333576124032553664545890596965782242265431206015362051494785636253254581623649653011075952324194399912092420646600921481462981547141117231634624444224547253146305057487552505155916979077311333917642203528639281260486396114128857035719219895235933223180748495252280459910907879998790315121492738965919701667610572239983578510553553624958096860046350655682561508552102945263818794526509485278885341566302302576909866983475230611763692873086668189101392914373517002402732296179797084339976537057645997365016816576259456992306536910472512051519073036279244479089593725203445604975703387467739206172757944318407023034938274970508959838882402211176808058747469222279164645716686796416661562742818174408281202909079941396807920373532950163886377127145556352535960041486294303299532195838554489468943413191103466360659345717659952288738453173378894605358212043461563863618557206729817068251137768573138758506259957066119957395556176453565681386026993651793349299397052083883480554894371457240607217340968545060328987154354625753810234653760873658446668292529317661003358255215679405308374885099545635363899476169464386889004626290794968254336849973098305216890317092441586300508930294710413575692643622719510702739407418855236766903989217100981059963335799283725437644398569991086896271662844332722958040500449012757301680941775212081499264459348277572006894512630623194424923238687514963824257265221704006493992813981831578699312771857638987397275784192064331792741927989264829787998047108059243044629818666478765084506123207978895938279667915386005062716045385976106508017975286123120372277152848117079028873779845343904933665708447533271697737666289419034032210668927298626178548609488047860925335939446308739416769983438474883344356522805692871132515639677163003152576107098414542790214988814712078277096010541364824684558377346746532363430964085317087214105888371473899241672632522627879806373207455996656158580450981932986768013942048080956018535909117692932716562304458904716661045802400803265212145417780155801059608303656051883052711382978786406406890338101104887879567639395617643186549185431133273020157316425078457109640583941360033153309768850299942278414386588443637032698990470369866917682719727660155691469066774644179202982285509025785645062838170046494417241193978952569758745870552355337914839808953175293480172687051740780836157266001742567356625420760873792595283285270849901313463589685806791338979881358190849739416483065644719506132976226304374062151483763919412099724300865859968423218255972684624149956049171434245294364997958576584445546729262307470881135232258420270423427808024289767288623604377552546832203403612834701848599469761299586746775422396603260597829745836360235000483791339653879950275916894143763270209266034296095607264569066331948283097971911312949146225940269801692783494412857819357575944423349017709413092247327317737791639289373400252279684612425844005829372450130488582381699420340781246624097889526702278325298548447376687719821456751699188228770989979225300745684846423710811411398576411267602199249102999618328458708488005773391129680964202223905021483169898002207438936517605834198511562853771501733791225936041731005536387090830349007787787758430595025607515206189384164158957667708533072033045945536743553970537963920000110749090060999622099806574454454335463429021086285522498674193287511130162894210402100098864829834131616769260136484755463435152953926816148040972723223336010137408336731932421352419902448865678641045340082624878042557329495815421239829021387672704292915181863753002974345125422185043793432217942288665246987542059063574269986578482729835011462711946941102116603319470885887079957889584951418431387881409499425261388665907650928718420553193862766292727803917862767549180691055433085008931131535911150400710210103474625981244098301056501322066717382000412113247067803870828685137016451682387816370013401701179419756170759919563019298712913351723073731730554526310847791290266721972339599872737249879204850129986022368025909386551773329202682491576288918096170705532923892239194401331182444130375580049570810976824823789397984849488745746357644493621124300454533150617808024321971104939701987821075052238874601277300392573459747925068807635606961287609864193615586688720461833137817789478527349464131222913201326497633905629929589833018509170326933230342734851956239051133161987017997452120750308424514356833058719118786355626708724048262179853256249252815288924167601075099611929288785405963789605778032805254307109762080108452775442759318003577461607749781138576156814799663457952535189264912456132898379990727340967695568595047736489516991249293314087535819864645562686031367354712813499232537968085983448782672677624934611455556791976351352714408797575487207879313628091025184453102629861435270013539003183613772775140026763419054856821359195764283213578572696435209995064274993289381329266888788873483849641588184787008950913890853661585701206841815423567318179863748772768852753788931559999167177177513243512343456352285944356193700949195691069045230422413114807320047190560120281753050621259973045144747956018689965185833814792421652198015168326256983841794908030867644286188235825817058908596839856360839667680346827958619949147985775340191282771767076249810936450676228272056373265374587735686889357097152793199268968042352314659307536525199020730133667185679951173873994175442991842514182134169999014149449863890085599699208197106816375189427558725544077996018934309698315731966487607210096393103707672247147357593838019263563136862658698333898303735246699344704278444365769158870576163308526171965501568092039897162616631301884281575101373748474785778962962948915507744061957991414911976664001708515613211501814906655286132878149954533267248861385438913610975749989134702615487745117891143455850818249736422844708112378885215857372559310635160349158976980761397654651038719486617768580410399751693658474424988151162400847799143937852715979000087170558466466401778659591115498563315168851572750573184999163307826798507156862606240466134223426967740666679873204189027587673947084757698464919839785905235376063503379129097742158297150138830132937765294635281291353379495088633781954873788354751452412057151644915572381939860267064785925268228136058435731359410033397971668596198146269787331292740124422752104372999912166450108549927478801818459113883653679655733141778678920020959814843606553915663908183169220055003165149342414749862358121245708126752246285240655615741698033058097579447817136688038899711529159955169339291926461447723968351444508048158882313155904529021719432706083469117301369775616892076407684802926024281471783137676533045134703052016326785634263763202702064374600221088139604081961668780461568087544170268257437778291956841829120680069233901351408859224753339183334637747338048025034080265061507893930671821736068283189426829355977925935978000302241370097724991532258879902060388438711091145118678993586385171798708759876190728866920543974631031259407057641036980430023209359320090747220345601847094390516314643341237951833920970677865872141989749176038472710347218371712383662090685054234799090948785604207533017899531823756641536020742742236694594824835999195544821241429815173019516372193629612898767115312051808711201938963451514674867860538853598361878384144026302723012318693021229883848993403362579769425121795639327363204752268860983756035586460596875028929414953117614075690878431001785633943830027363921115787352596811457435146975410322302915434891805379306752015346190137526912590840945271571599508010161603094182034242149977899511374237480723517488672673279722406869259064504460113890822701859267418450173033365586807438576932533560741989876265544990133169593966781828620095866129335442712274140467006606669080520713313316169246483008657291130576612124245482401174154582715152661015662065518877027358676054340788030193830904064530136760304781680067718587386191578076655889666476609157857624673029816682731815987121703165350906685775616676972571546134800275349411916126509907864460657013746023213482896911057931640585076093096364404096269948039790979365754584119811267530691574581344802720196635846415897786052221342634099457178614024204482004249107448095934572523878194747605766753908609637605635273160977285404617162927042007927615121338117623496916986284558053263381716845296006937016763469724232623370798165312878175364836828826112211768997231878272612749190632348252213693448528891752844282367299537761413879779869860999761663311904111826740831189595130761609174824868412496727327538730316441729661730900886871427224248476694351525647079207529354101166004938838304046990095851136239565133244031160220231717930087715970081883995395845309641334279217796939191240135988199295432390209201818190091805666045484529364249155262517204537029838073892279973899286730849727675662617880438766058121947528169378250130160063348375228880035640391377899638839841404563707422136766710553165597288288656468868715325136654484855030494698986762009612175668443094584895204608016290415700184050392204687790795995852197091273642067753297499137487778504308629366979960985130291590230437449801177328499931607404234882514791950325861685463590815863646155637840445842318366856310123011556743060192668029717739582764639780582250010645051304662892948640347443074167139879094929182042859017920420252399146966298717334848081463542647919533738708694485226416396184164693924041549841906248781859311352486340537236096009445090263101556789548782707872859160613010524359628805615456317983114740656746890406142616700972438064830647146743992588303343944956103094431962464309593470031151682002625151223152951760165575517821875230641863499118586969642816974470672877779194491458164636188069170458605377303677473401046180043793221849595407977979169312269902252315850313567971181297314792269954006032227826298079442264789797182426313285896790843629268036567739907321994235942277872789292377191361718555838976884093363301580444059220754039169732888692940544080756070016112504804469472155564695692025041124992451418669948205366178258308910796407819342883829653478811560857653955804532008148685212781662846858929296855437637950882476463417722694784493984086605351253474722706937007040249621097905773781064266405646704714006402313377780895449286280142506805650760263921033656227165686781821980072745509112907378050825097850748598222959649230917002804283351184216858432476271669716837301154602397010123357649882617156572598332611139876446751851560760743034195522340530563247035063474236903242853940221845808007667323528196289477010997164352580031880340843832203406565850230717660363342514796039420444863389564058096591415736574386973617303638470500008345686292192916279436342231734246636431445234164315837853986902992344987533023084750394561659094076936653854865988037864859493224733312791905886869413595044537175080765213461542906550475892946626629541323397370581065973552570091687650299363585715042267086432465337068470619120693302981200194186504272944552363449651620537725793326571812973667631462597348679616524349872511862431305456554276980617728313275310780046939028967364560597027302548615046443381355576687034310599100128536921667289581797737393181120949049466140079327416603131012432743529974091097506647771308019850705747418301776269470702241509524176632361745656779989809804278927751491321428199445902266251291919622007039082370651150674278719290497878758095979783674660660777486008900871614791119613944508578457766318864317964564195392105419843883965606273689339665491814792779282361601191916892891414369606115238142506633069412116906430955028171256003656487964149920658797553069035437417295025889911077000173202209196954851960660776001066868261474360942637670142127999423492846404551684614490210054788364504762620882790788390488636477933408052879105948348345179675009113193797249620197875267054235806443316536626295629931211491571015542605790467589758820915634272745771414649868846509170268693249169311423892747928950883923632618116293756069767031854027033824509913179240459196196498554590675031486168363447317510727378170998531932369479035471170391420673021824250487195310906763243732971892936740909240941011091254734737767007227133983815905432496701952342033098756684306865414877949080599516864811320334390690517277589314276821200061381266578993648686579840876517323897250634888505666892649142352812640354758835981002851375988677394704786838654359295201750844924199069316660579576437717605475258639781014225168042033005327610909581521820182300540538565357343974233519239404811406728668457915757451902030329390830835264603800743785425710599967888252667853487693480173768244915509058611208874617986160556892987286291041225319437247884417939438764473986785466026993994917861867834841655938967956167697547583055930368761101106619086428704810589721333658612524016125917884862945572305582807405628769649976151686368678754964186797307665418041825939243949889436853422172818828745549865760816172432933913108886260782480528149705374852193363526164639727408707477805132556280752033309359616837759766940890415861970509277104989680687707698251357163368652621715853245234125463672128091453974611164944092825183853237208158600305671832400283804348365129287963529909400843804251618328857598357145631803576572844639040006130417828594207877024041642714871663309277167845637314928900869970821652503663347185658050487508428220981441218035683244704715626193312737500018864442753148264258446365585688899355444303343852208873981184096541851798327239845113791654789797375676463775142945040835393554675222770817266506760106804541820035039422129238381687872903764776326584026066525069869915725024030775351708477313786264985537788103971568945939077430092553860755461870433739196532855886506512851926463889390170713838326280377608743080885532938232323872459423072752950787549053991901934951440380331681247373041915225932092539541492173720426586006580022747658316354381564910940932037089062661770310203226525650126793287385556182091937764046134895589448280340768122080268074035775272261951043605958419034370334628302588430890361811305011779037203035812867049162393281214166823660217495664859892170429985953771839603606422506082919586185636871516364700972546303684188567526115108942172263456358401246238682479793663392925800942096814759120483304879116735771727237238700630275502911511121553110891742132918082132913739594144098517839270248618332087641558511270746050450948270772228577552479000608478405995348041218948021282081223724490538785542204783427653403839794333835519817234177920909327583464776293099234501924328291185755660722704195353351644063510545893585505756429347739250829404403064160175212894369569250573690176986633620088372051065630207787167775317270843371381591828574540096940065662143745521297345309099927874736222804477462725901927301768319408339027876471162569998403479551116476847957178374478816854654484130006968106333853740954976184283295503127437684591958048863944889587433837893071972441760773912751401998217434048858095319856583398327455850676409155348604536583157961032015720249885552094562992109511049980586975740525668027013742129185187951410339356456006587830383629143655181382152774888029450135802300815160634070188377910976456700090291979753803736683399079624384630314489171874444108370577273925625604045298207010542388679262461605444363836630424569044505989805792684550095345460346605404578491844448999777074459801761286779146606834175459951829468913641215786829221345968829434588380314693180092107830663986583379052181874249595801195800478275299159227652077584725720535240538474811579991263339280802606212838716249124746156573567613357506364866920040599698860655994973989204028227010566428783929836853564819182645104961647993134272183785810718023448160979041076535008418346349680771964916395026032607513418372720758750843084101403381065729410568225479133912743094883146166500333700037437592361666715819516384180117731779708645295961071786012675485628900359805403273687848717379485187320378341099905156983986330934425142227982021626482097704976014798634959005884204505277477034488421681437436975567529452884918207971350248690851362929033975935129220765608519341807313353522309088434677747978014428841225263728694440050593176919513378950484042041890497820312762896502708194078898511232779646292237943260558573792296080639257256460870866859661425343576495370851883842668118676364001046285891125891990770874169443701573738801677085064744947059814174653590676548065635672601853327644084117130446808343231986490787654603783659864191290279890109500771027715123620730849624059655341912102386526005276327199650613007069891151042769004377735068506437537969980915972765130203579755050579831347661806375812183437344603556977102975058857881244373327739705862148291648214783092922056430500670510935866331236612827542661504392970892837766004812708755426760477707044740879960171538714903861320112488632548582022998258682087589587587200445979464116535752568517039406969008630012273985693300087988164677764982274108231884243622503029963089682358331182988996655383055478453069377887298158645942954837915850856178692389285726746216933749462894040375907095270285342091576925404682035399534445569547203440207868307991238888155901513396228574130002202990472177506768607042579058336458868561135119446903927214056000416256414321861700382899397477010254784311953303328658327739394285066543230553053284596459409868655898667036066002765810442558944247911184225642268368596060590199279981026608836338766292232784767888715020604337573943748776121969714608183309475222086304696055141217330714395847228297537631101592979620095182704014343087026178753307407304042283844668321389032875591862503420062481019984702828493960452562241891577714248434303807043576233833007433221055846791611283626096420272296418771443914025303778554880719922316223623009757763462900222939086700310077090072098262146206895772798870076246789252180127593454240072833584820638432691100648912268848308754125016773210135401780495715130589192679975715033970473538210128496458024589301708185471922346478873908229488927018284703117712880079465225642547136688063765059874820907581178016509645732365396933867364001014441469173550467769589276001461122258226944451475734427544530118907088278517144714689499355351039736552462311528328681248690834385224152569694688361343529142188379074934578470516668814223605041638000056149271273772412629384848093139679918897733848930118673209468680285713353602335358890649280376068698024822683661520906977180990151660838299870924286369675162521069688803310167762987678530123444096340170852079170785927847264901847530184761793707340545830401826443587112933703671776183324845330863173661663203432721980199242697064564543319583789630651600659752005945375110050067036811217915501558387491854743093561859395834707884452326752676751511809041184664435244580516233566889950771513599357691884420612294168635958369967320725825416256030969233900663245511783779561459559890709240923106948189796285656897683399564305758904015214237332444108983082352098465854709641387456394400460292649335271953648904273787381503441994436218067716704616767852067220298588709861314276494583990061483014414690646270816327849105525351790371463860207166153260143688429833313063878574003308796771344522378184864994323874826462683791181053534490955514404513414244168268742741752700117358086669039260321242733908565875024564883776596688983087081602982051451181594150424307151371434427986705771874041961695869755552135104388880342668183226895655089788946735423658437730645787804781981439376914682730462257256336249751026274980710401488654409907187573981324816514152138925147338112317902135084386715837656229643504611661147420253888814040701393384940213426976359462870672496108504524927165676498845148457065552332742505197543980334177661102338300000432873134535887683440740286883782916437459506012912862502012150356025125322173594368571283916934695067264334563435815735927036263894980344140919783423444874706015060132608200406425347569611596794481453115611560526604028107891415751655018897839963602436126526998579270818386568613787161844171919268816500429164084674181005407859533995679254304320532846751362385419871396579612232220143864323218914310441425606103743957243257063022935223842065094643960497759583750237411011168869836486617436668701745231479516432152379076240837230708676507802118830225417215330907950131916773565738358836918933668999565493663238439339895973957217616933240004977529275574573465531585011720620468611092978724797141161324951778576352792723868563288889451103726411345153001116328413946169411076980059534278596719032438900943146762075054267882662943970356749130215647689070052568055176023038864300235621782584708912549298707518261097755983383124720236262104782180832476947015682356258165543399415822649732488463819841395865210349803111429345566365682068719745263547372749565403377417788115744362287594291188493362458639557846181959268736513489799814462393315151397893036089008227209591894185648062390338895862923943608802108882760286995623946462306383832058511759084142636018903373826182122182899035007119098686875604714277841669201648933459458105557361908744928253306465942840944896081295359751349106438234261143919739720633397631204860207916082339816664804767842719780341536336982637099785236789484320715606387183390032779409242496992537216555235685489064712472344225821929207417108898789261342989037901961255311038711697927662489731346556887517166199435537777704788692664229461996941273743767749996775465587366181465766878778737745538100542173167759468951779804243676356081293017536199489614144045763236320528726285832145984513991728106501345711487060986376577535061699124521564770441459853564579078364607150816976611601529220040128636215965758543002707491052155501668583727723757644987762803845022686898368890786387300764971506721073696788245789263957640716054931185926968981365657778325355936657981534903637447891649978056668398486304090479064576135335068681410067778005987791606800349554081768263385741847472976941985118500146301949997950524316404473836948263395307920638179697345079373610415660259571873609821097406719815884764462542325402368257633873353274501143419662719527398906416472490070786783897644086264494009077506191922907586788308116365108626155163326746991462624705546420083556937417549653788980459052323031726171845042290918100761007254053448673920898878385989611664476748454054634936555272498712411267864759204329908622965081920383483719197667604078391501831079675230199536522600159066756027789096413085707868010153441930269395977604831428758764143379221693856167773254159687931447938973738245235893296460890486848862430069826634243383263998328501032485761454622163193468564827994280526869641329159164281525894321736557751060269361656245349878108045555291091026751433457085346930128091655792839793875618473739300546853931520218749910994611139883001264968888552118075320136145240950422639998105693709810396569550157998374577098976800928278363556179007718489577693943296891330117310874905647996326448962550772130548598731379914913916876254731777878601746824244579367819177109790173186510538599415277274025843778040177947891490848904134464757396167825473020982814685496838373600890488045572849369808233224682303932509345585855632688539652981318519285415630511823014221971980289474632913019308081263446335116854097731590745104807963421298177035404410655097225888606541893432112554819962256519852327023096949821882500350148535033440311152379828532566931583612919921889826276350069263768415962397530718195601049075805793199523170505784236713200530091320756621785550289029973567178383413925193136650475335707317876042663506861058337703368671697567793965791678504068025800659403861731488688970982426232420947843587427971592780147871222843007763238431756641135042290673395878468103683190497274360343276660404774824869895168931815615593875882143705069798327783940470542497474807247730712233108119154026388409852624919032127505890204669974486606153178708788784320629268640207812813674332929450630900131042801835521436167356419179243375241119416374794030717937558072553987970954330625094584829466862408108665543384533992099885783246601896663335765384916230236339971229148631605110598991735502576351992527453795449831236840333204334212762582485987989755676926781545369826684829540110354623786904344520720068244542099300751548331560451459394307431286047833382485725260353976425776741900797727583277901737390351476787647910396079140416080252807533937374686974931337070346801053802155479007658072628029458963153183439433810656104011323085409783584943063059883477784110755292426229449815151386589180762350751578208435498495530142545224236442863605523678706835044819626889139051583354533583864703241759270355085517472065776225064576299288457461812487821958861372633420703869120252614585109723249964801375086778497901536328544297288089405636625223849227987193933281667390030568519579429979489254678817048635598936932616388628991713021505336060901579776084921720875912480999181267583171393998332447703714464555681442107895023977580171042259114828143514747099458772913338086278572455097755688665434700905736886568196595424251964149026471735288164410041022259840227339248017113880496786291738168818808113278686114026727266578482398834318252665848317426544694906517541107384815233669812260215681939773989302400373769808987062823280146528842708269400857669209435268630242837879262960599511005063847852143440002308382112463740639313321392044227766544890840960200171111415942071099598605393192932607468708426383935123654061682751174483562623390283787919084196910652589879291047003080195649483447853937408029351994909019312929021831339446349738342437181409132257052212063127751468545904946790818127293066368699709765524017649035223626301533826031073398727829679703641496246510945045457214081211585112571099793020126170327948181242371471882007062201973622095426935346563621771579664622447938910338000789808888366177540128096079085073783456293611351335324788851333267020379731450737463725854138666862628396958129398863452349995500050059972849442571529652741634737312507866473771400007239660559631944656494764962012974638221040984629844623209739309865769847184433375598322542070769430276760760812388119954652765152178445774156136472963184611434703415022744923661002248709041826229030054268792332198785888993279239023962098133379197426285090673093466593693784455618000904034269908933528472307383604393676028867466336024495166643247334451258169638814537243889817542857811354403546227506826587513568464281939141184014981333236865325209683057436270609655059978402564109557182144889201952566541407271101238098882796869157887006966961499444287635412286355104082635956005773647280955452316133782531449156383113063956635097876991366425618692863478353775434432619302104290141931192274732553218392837440404988736372921116508539159466287359487694990637999329971172802236211966496334683937876945535138876282121646783053599948462072630416197235638039415167920147605172716762089494116702894286862888516238930648539482353321184527975009365455409410675344777748914072690367156778386137622451937099973180934302254318541248664126528964510994420329045372868066031593579799149248035372610618040551076993802451126849260959332031320184719527667188124795121671216949863372261082417413411459311808035806517178008488574157756829227707123576314006379888352138306715620261685947117860977187584116601614356267971357447749575966480287735521051011663294752628395073155721225828835836519725636659054538078568053684448489495521081506997368244083013208328908952784160387102509735083602771661836983397085775621911621700635116204528112491071020886347286864716792401561261867977358221992637344065712260396623052370370583223996388110431440138671030462162756873844405904237260705616621749161922473974388164569627353575226427391801910792147962170774400356902680320745133876174925792383835772064940670884134113742958201741819979792972053851617715824251898230678138324054775955305767430053478309138700814845492019578623130131851038522634408026268227089531842280668860768616636198879604102315546633297924582025209402723278149286271180059219665638832742270547086536661253610508879905361793544155866375140014942609916600275767363569458823910736083234222097732046636368428838188244896971983604115410158754092919920088733201366574850567495613856332380116419113098539059512048812350716540146332799509219401638915869913547656263301682336890665040121184661753999228272382533773238450703892372984698461426281405691949398806695571392707734443161862951090917721926262352940306945535329582409253393131173579550302347401582144179344548385567938451364599484247990339123059912594003729084255551226322249263172617662777750379324731485465833976011556636987927744716468042588170590019036385123802244847034995795103759110635629147805532104548950807243309854407104197302790132874919036919022801821045304660681632232524992336157100403350679855355572699170745238150130431448295924421931884424009857623049983652881969160853262936814014823434389190817169138384536819750851364395562004701169386003786085625233032408382049305065465879588232527202086915529350660995166557536080650562340937223437325600141849878624975851563745868288750343374824096287786529275002287523169895949650161601248689079469179764609668775983906495163758845530788366652374304824970510669410590704262820387753289271358800882838893724743584981927589697420423427283857988101650311126733249462979515987724665012296382208558647502486077771274791889378252657806012964992438426779750628828330423397029826542708213842598950074351365434687688587740998571295015365985807953309182165838921295516603730244625408771562624547597880373614989356664731614814850671459048629882107982897727876012925684346801341339649521364349649082567512563794735402107442873718070366470020809139435620401930885571669208775215865792522384321786550404975778042600627498394770212208265847608693624004451969121430558641145397053372341253311061986875110108330466470030663537841307651346157279136708728290047080013976589712936936668281058871747218410950756351661451082992686961634483594522701900337860189071943345420197691382009725976309339162410690508490818705938877482941518858533258885287787759335273669866306443200944535568224086212003307764427904000891950121255469454430568168500854908657618739681632980732113768249731272459721987288676437551606699171177843365818851220801866976014389628067672390303313142912027768584701424169113575741205471901086324008419829608672487216178604908497184430498152720476046198603041369737649683073127077468955851611219220619105842399552922709026179188680363526185212308729798175955633350572936306758720531227227217190162167414086378985218831229533803676761486599633372171517622133693841525238732550976986177360218868405908801090660966436668962823505899791996840305463381408372801685575094509666999374203162323031308781586929638589162045594087285364201768041519961473974300909285595234114827801419003794486370593248762462622826112321332978367593954290102748955950191317818954742007135600442155096213507284315156335876437057966610906643941212078097790960853556321507901279562431954220236699764622412524410742986619262149919778463301203092560128688498963174483926786617325710764260277248790288664123080483569625635590111720169107443659568672649889636126594766070242789929347792568894436296563845704019777545421663587958365052161154698196512047962049423344284576347554011483599603232350171030969545082666636037818305129546954073601847246105895818113802153952457490682588920298699753073143353169685392550985916693912191123437320701694934130583622716407998785237167549325818788599193292842049753976785254885584466138729793783104357650420725540394109727945704640452305927314322430309994004614278667489257386607885153395143660850763007202284101743905940315100233060463942478412631681865870493732246303724839189565516752235862042355468828321172979578526235626962538161495571620701514194838483835316297676948993806427658740978528961592193730654012040719398730168475697977606254226215237555591866189037519360133794011469801122683700502309171788261783344187471211393143966949444134323269117299980282628826946140042389278211858342630860854566040193296634198091111410889918882474322436622925941778077806540450338806934417668298398292213893996105684905190263963291473281978765416912293364954358043835206422897578090095758543500206314239283823617356454179019921839124985987595285099341543082934184087212882292977957539469206150855629170432201018569076048614413737394357304635116114216704577325713412473764569979862368937364392348846514715967736549913368612193291977717412950177600921772444762769314030815745726475612143920388230262282918616835913559211265029187432600318343459744289157974178253394731028380094961335015374353797939871696660591867555475894200366866371424262206043903846467100128358346240663312609410720139465087138291725751893818879179128748541233870021215981336620549486998904524559438410571364115781490420387094189884058140637832315586817606721800747087981306612573922153372247764722924266672874348060912427599889346436655179181095440052584613314065430468924299396634438922062823179773891505063996007238836405279621723276758853591014658688890135236207439377696004703639911294327788026529117309249159807483265392137169411786717620429117777763461470509915394578444123265844930856886665454227398436965213497055712030026043454750293251055481156820189677905803717218254013733989633777795297531336747932302624604825978515117368812920407389571498742339889493418222287792699607087061455312805320479800566041624837309737656455711509674559220311430634781186707086721505626661589637548769172999167147385606441444227303347028813839375861952787572217567092054842869719527855155904256097613745164129342187016149240678538229024426537041056696581731599291544286762136431440355108245019551191581937069115843202235785837701586719943644356961444185211365195699808914449817144770121450233502660856511291960133915256167949792893992139820527413070808322057357525143161273425921049552455262593527122432890936984986341299316587243573234237269410068324307518482043023592571681026017396888437202443925248530122428009599885020368124291038220537646908134504249066265131363704669908907360521554175313809872398364999946748100870435799790155109612257242570401856941189007455796954819243621239401231510827296988776343559554869468127718128577780642653202456456520067877248385038484665284976176643019594187253131763519833893561183077315083237904478608498379276379649564924338466071640304404271887135693125150045962405253075471307627332612521339011487845526936678858631253457673385806421891948949361971392236618668023684491695129814681784335972171934426676705229864997507262636941274411281050519770511418990494064962839893360959922333848179012891108267390891603651057725988020170424277902086287578257049340518858979018214383626526950040318628633059531138165768054318651486930919486941450608166670046996284989634536570775298308453183187844787299089613437267068779654856114596926278504391028766291601917931254764472945142870120559398440689998705029799403376244705392109010325897901938995457844244270814338982471812643427938545674635562126092610557769355760441466444056255088744648213199809743445277393643656806109715900991199744844348780679341220525779199511572778280058014130314644098277485222981865500942926520330329009660205033957566412321055964926378218557260990619906332746139152396800708338283282351281707655015380713960676346281449757615109861863724785259138502193401727382098737540404653370581664250632576802689484708574445599119104763415524408297194933762591633288132402564947876951497390543408870943967940774230417891997468735597206280196833746866902957336211283613617974066689251364304703764431414428015377908807863488034212567978462677060509410598560369050137013961755701315440706750746111685719685461433890371882375107960388660262858920514502187157935077435351022618145556628702028299711801012624355191842354804149281286420866081822914676488219184336030825761821459007571426614522758788472839847575529464684167278600324709082186029071453759384339300926119314359732894768229159305303432354371438525055702543970835635279956599885993069441081546049785513012011924404394968923905295878769306282022856073072885156248395935637930148918203733226831086537508744609637585664838122622028737678559506312923386238841086427747664373881482899681054751415033035475032426760560062113583855117669670996560202395443043520521707349925664725470799866351970397881944280463660219450081540966824124668624803767954818375053940453688481916259966507630539551350568198374272677261771265126753958139024462262746624303567920340521774352960256546504680660476441522108788794253057035051352360108820634455780927152079737892028962833645245545083084681180806711935582220960812527503773840698068867363366731539712293590160421639803957145678474808886016332074006730401106731806322130245086603538022083280531638536945043239477943052113531184710285698024214323460051308040121924511354257053977314320184555007909864684679444212650812805203410486416735795861104665590917978046014083514055503995153022297991756410305957733188357125297198094731960140444255357911787783304606389602384246139383184373466794512315510121018554280809687949933340859555359137949744341023781766679784075229183167980305129619254219429101490723565835564897620502145353309484087221626296385743169670337107971682860118022183820620619956204597311723918849160584998276147252085062457518603801207979226379864102131343200811741757213536600014532625713952521562312047892842906708413232769255298068728659782383006731388055126399140070803111764527467323081708489330200791950967254434815231933231292574744857522610290511599425211610626557628292557891835600396081107820690209387912793702470885785215125439819790079476352062332135333754686483899025717476819952753093412935167145217349050972376786175333912078715902929641415480131744764515214194322287677622721437873586520449996522623994674497349127923049060404590246897484184427100282676081078259798426902166346334092258359816770341558540231785656280313187910404257118999989141069886647374641672737708113756653558923978771044697153289590512714127857547225354177567631607545056430744709989107878078652101271972895433110074950593995140919511038225515216741445163131406971996374912211147231993877502160249759491414547921477360742966276483297323414534559586359026894976964715477887838541055615094030551913035833449063333321172883306585804938241682197283252046134068008019539985974728165235600666602912166097864744943841006134976273249103705001019957562136273035427111863955088688597111231801858369569185917531246363350783753027903321301745822258536014639647290776958019324707159184558250730933245925781448910101320384407128594466137669458775614707712980109454532678233076748053816876134844665269253725400155175668457290567468667797186328193540007081756262594404287965704315467938458148931411736951674997303926087898632347899267321087011307483602065470864346648290481560421249491239124333557039599500785624463891489348781881159954048597921567982209162494370752086109678753016290873069928381843317885369059379857040036087254425454197163192856684495023796512384786735551637855179819085868409999898530089809610375697384886488298655770183166420882236101438956087830162593655750882875542739296973868649006276300570910007044608085408369849892601540561642807068512658584449352378269548044145059439651465419205746968368376043079868328232807273698731313468156708584227072849629988148692872016668696047309127763867062101332118911497414921364381446236273520375568276425938311686290785429899454340468207707810682541001631955104625440602952273795914135023577086260314695663551823404553813836081942682604973514130730879844022784093705126232675567492457486200513866419264531009206525923664238965194273670882595574556815032846327990993069853500702604551676828875192354127557838149716853916587356556243759949683324469053310082208220368311648853860253268393521933161304396151963560680992796357852345887791421196955679856834427540063459571455601297423447603869635483560312715439028810628923470418248445387090611696243293770693102743278540034152077945203830578302115264582559852825727416826083080507431918089536944332206211166124039625459000937598044071631277899693596131897827549787442761490267059483424927268083304958289598445026579546954805515040899449923600102526059361417983328594582791013298541921181553532420951227590906646301988237358434968634832390018436548240481325056075693607561138369738855072655772745627725740184443770575992745418592045784337948201456174710135925780158646909352847437785795987370844812281265339193985344308346746855547207019429790510138525364912403445479438907856162102068601901992640989493233575175199277931633470509425804727734520735778529921350004653742238307951053214485035118707548405154064897888900602129821547945274447933251029937011215745769325273535223046190963740253390459110700639910485075753801606093264357757386976033638864857774261427019812500102836696300829784020973784442558452688012104203686736447094178047904480466522416313032107763762580162234702098673571063087218985652904984545006311156603819001007074719262024562353485894263434094283161670002250018951302762100690835436154431898003385874454148526514887035057199040642687063502065865591337158786636215203229657613237190913326721720314411515918151970266680616691422538364743558784577685480983114555142523713086170480315305746350112924859696033885047097062827215160375314000170801122849070243328048814620223184236802777513148137579782165609696231986335432664830556900361376578789771452852091346330107571113997975864365450150224733689835770261287214650045673639465848617372713285429571193389808445977983348000538237963925462880327336312811872270247073254599332152619897894494564306471751910010060784815879602253676881122475972285494630624078028964821855766758073061073232691312979664306423800433309023371268351796899270578541531377923021300227925505310262011472446980026071384631032200201066720175262504622956625910068272408638316623191658164396911086869788075141810483527498855662259729866090466365493551061675898563021427672174501283749434068099456242401439005059472286717825499865296984354531821760905917929743856293343263477354968414347991953971994487456409306788602830566083593561917505612595461839401382303473497947866403947478448244844953239919059187572122395959780828318088896412154732584124124182734801020558488555895767758364195676167201624414645428901762590783738720199980175659996526830270252317754678138888558926442370565210355246243270829838001813430434754056946909573338089332317588334228069445479441362673708141004669511240833075199219323147056723954152802099618389220204055247924109343250155938658375495019228533463053262801043108952359981227811159091025140168749022826716404605518732285339589802218042443551278365405639846987016475235010623796961602907704902320519990545694438300403166805199791427545595988100736132796168456213339535865726015043005874175567033344390234624857223164402388510237757012902106825348541723730681553659577258712155865716348521351279245484120704115924910147384928462527706596004172098623170169340216972585074207918249930562694065945298040240119120396930644426739482901996846579934960249436659370827372901158537996281268628341978008165224228198177872269100318590852688434951815922882621691954197420037436709168290762519315874846327359536092154099971008517115253491426656139079179746234383739898957101489036613365902242213344860315442815039421349724460130551213216468583275330192941484713160706951555280671667972738234897860597949822498193298251616111161720123972613192241955988104454224890237341352490011854165968961849490421256255556950548284380987042611468540391835954523796603803542021669566761082335325735957493641298547604957207236596720084709125153517609125277448791375055216772719700544784123527299034705508014950759703699144012304018256347516994983800460208994083507145113499169516247127479413645647534295890214800043121913461810373457001917485476583646309132051544524336393814427799688185824284089574752133522316320305414452626656626726032879777718488748184926985155200174005356262379940599528392639433620352814018685815109124361382057357306377780779051005601520727655507159729421775873692370388776801119266165920976886371224305039668364515082130460547701494646165196961159438212389917380022394168292012767881228792985082951550750654911703353450371755050519882088329436541483565760200680214733643399823925617534085337826319381722004543414376693841342267737958887583025605839258968573642266736712804598164796988416377299846832417565960090205059146243834586743255518811634386851259908896921381009314140959251267493290663728448318005415366547621394765333737531107596771775039680187527956237129872222452928452814264289864831728914116197492907314726835911591835577237131059743774104728503339819551776050309026446788436085816163778883605432142916081481229332913668739041820377388076785388505204361215851870248438728233645423973828696368706169823192836314999440760009416606447643938141645695017527572857634415950456818102800169320444413862036668007347164429970456303404350666114861124268948493373185167645280462480257455956260580674391199208396580095124039714711055645400285135128158615604417011444211972994442442617763217252609743784787950725608948546118152707295204089307493976249572335876664245899248063855263642865405368869229174917707717726259558605365103448541185262989069612774559199772121289922147147464519115399286748029873317835477086063399558082772435299681941268676751998667132917790403335721482577045472101720430779377661663045984847433441333438888868675339223507576704611893580682603297077359972477588742838391917644637826447834323664907930201562350499981489989875137920124848287391016973284839536449698605545103017487654476294897051364461544837046105770028535370889434127117571848849991575984850106997299903630069865949502750571830711289175076894504518465011445276910921878947453474978640633182762494184857976745456131271313646333844615342045330603374884558423924794288200343882623174533519549381686087254564426443239400599540304736667367053709428342275959065606606880985290838045328033872031738374172722891727464618887725327898301095629891825273547498191819229278771397968544080173102277911206762615159572823409467108948701675266783804471812059936151554217925115319760824443883237017961918376757802061570171795152624030770590541566746750589080149339431563380241699427568335170523474315230613424055797617814913692652053802291072148794082135344831372875482610625114352828115018100893225310529863225081888780380763708456931049417772605999257367470291273763750187402084480409991085628251054101328489481107128185096104065439506621113189721335568040981445483582063522762997360755368664191341287137079058995023151140819261641712182000536007044174035285078498884656969983743090915172183275444323489190414319539168285714820622646262416920882596717525221259814588223477697579878039742239272540826721384198027909997658345884621627351197361140913302492355427521247682011462946634862931725747702630013492093508748817595592301951616743745313359263837415057811013873345459886956197045968164793126515367774579582215234541551777847350281107845667522571159448076618846165906750721705053150144621335284393702386999386059675711921571430676802960453941786556709491188459654781741250824891622582692449361314199600695343420300159694890932499653703896039070238241708821797903948384128466736318486486127984751338821892592349954546858560590172096184943831020891704908351101835577257132780229126733952087963177469791891186257622176209554353157085604548714548047624455547434548805187930492781336988973146017840323269957635011199675715038432740826343714747360583910527340908950752294608506177530263784086119214106549659397446944210440223740821976593163745651299177462730861216871139067435120366983902558145534630431701845306872844750612754772122210448432605055341890275052751030185040933395630931110921778419291664780904059882663846413481085250329479279715229482011677857809352896017348452853290745187413453662267216081906630173406148825610229532865137787325856927710233287300735433440029430787734484811001077492438401183177291812198388748436273323373492560403292100029644298722827111358138304349793199094108061242011164203740430115585187276953151384645459546457548062083878454851580596251127322331454377129382421891842741222752694366538790419986161381420510669663270333155870746466919574396717881511113398185019839082931875567663843732506241317614460491672294691078942179590975409035014690186254170686032439467064093129941095165813592591540760210860365699674635393262034441350684758922864812305039669752469429945870568369796213259826714814121312443344088006167616986839322743885995104398780197246648549932583324124297199043062377988182242520408440998931674758569963116806691782475654379797714695444034991705127890898943621417843285271784577490848565511259570156979910121831140840066393512849644423730767683180723768061356622205829617395559921820137235501183062535560468888208769726406169858540799491819487548051967186968072833242408302387626911493236076553253776838316310857722933578138867015233838229767191339114683960968940297264476331551942299553166734509158931538242550106497015430979776261124045396655631624713827964884358220319905740847403415181331167820670384130713329077647403506046791041637284351571331935930917409086672470637704643747844356010182479653209020553114417387381812851956719995738362135101113580336961098649539586151630689053650797295917222927692863482676311089754886167298149934057058379027375965576811749195146287957436493980000826646611983646540689322168687220478229564203705906803021823966381751341543607457642223493282771137541076402913801311860512212279785380041766680473110589377952754806613750431878546446956330290109324029316047240386310766733577936712581871756285210572101789581669970473191845218445136507607302349794459348807404932598239680871550949819372859132450512772150814814839756175527924565066412787824991672258951158561961199594092537343511238887953889896105578015022566145553541983162493016452505218403842831586073380155218542313833939603407783365572844707730571112614142938613048897150073940866537893264830011375101789066863553088692266863031331211121366528039360038673035110193831138453056238613181633348860075554202073042328566132998237917248051174923823992850407205201667912473766404985822216802918342608644683659076693901193728032123254745602545234286576699592719087259917450931929369315887321631865850987077218494359204505672014436883666521490620989566979097010897708344194274222779677086088625509727383271499451349603986860007923242493100447173498206885894525145328802035011607129179656546438250482518037468065707943900458500147241090665694854119397186151339186180979625404019142925718073013244339976472014856725167135703706367692246926779242449361754464558472813661733369949019165427521234507073449208086460709639138719190581068008117895145365586040571582063785684428208488459869255458018374127348884012255725967919397952048809920678971646392065481494463808728735120268675385537498889742880740711606520775129062550396982896028215453541087195087811948893310368269660355108291064429696226943408204811319645609536007624234135823094063253418732253843254492603278416050048845296845441361901183557435885135107778873261777256335205002719964453910387890071832976845833457769038140236410889204359400659488702854981078158062723963331265857652079418553515392018340147961902519567688869037310543205337134007117110121672862507876185517479162259535285863386763072125637229171037184721359205341188651341766986420895348206315010616922770993227099401427147578336901314905556762419046266022998263290105217970663208397172839115982480646522277156299187782153956492099228836671125714200896424849525409613300644063451001315031918589153935629689389858025613239995466599102436983820558094663601682095852336030678694815004695711954719063421791909690246345845195532805042609385714148229820270405059280115920249525482206869753461302311157825120503374128271795545764800354647883195313826666652008728558464371458367564417910226273788671563307834824955931065101247962770204729003757628883473088939474736456075030523002135496580582790199364772982757858002911157791538009197439230695042471050978186389452778000311492589164463643869873696983505171017266394480184064126233622798902235783973413098461978124712554351930812745567107086513149282123461866654319839286742860206738198784614198880561739489085111956563990656391915490541907287457447228996771649901152909607822613105219285470053211547990861080745332797829978341698169884025643209258459097999578966117703177456902926029527906640504881158052323861030517753624241431574015493056092702568844555770819985118641693623584169452928134171244790340612935949813625971649235364720770094553586721616346362845276679546757207342522668250140046235053616602972002929137970680875700134478566105035930839357978160690561327286391754739192863480723739566918200314062056364425691183445603625556971069585022140745554721842552971584005299441969885185605268886994586223372536054966507745769808407462745908161906294421861027545335488957747824630190540684964377927603637096855350723374144566710139021296085772659632929531460515941804315125417110973214528238606554855196027218177942930055952840164757176109612559670764099978380231077041557106269784531034196819537616761806460362288515903138375049907835927613851955767817557441218279848884225893372076843935068725252155708607347180915304143677380715053317057390438179674820880816791216501860705302891917611553047117326011178613571263897330541390075034084330500954014386236304643313949571144739649087044607016574517922264357494583664498930220863968051285926325621428255186756389149509497411030820000609677587064941758501574873168948950659855075281084187168359867102325142683775036248907725546779604285669172560979260553328051979192438235886722369404131588949980791267439607172031114516802465592396859610483553767306018814385326213354941142639327984981518117686431767063206821748974723774291654839948133840338575005858732644878092888308928415472455079151788926611891003167080517099005322542892549690011182079685063562956126760075724284973859826145558274560356666507573953054909556718132509891908771683374737554722590459309424577709991117318069186620838887891841824746926367095370750452618430519496884519582326485913931092771963594616225484818360217388198411614060674298234797000368333589826785512188581118764743168695576033521844916849591667221986615939383305106920428911614734221288357200601295367624861537872830494481669738994084428541346178909083521524020174544775574834590729123370824544876731149289201866536652857233224379560279545922465852786856220601692172224450016622737441377290172784830328598023942772682792793964245157778667622188563306450513999280310445114936594964148125886901017395533461329769979137832943659873529797168654624934688072739007969905016737612389778634368480140692132324562996144702681034079753081335769790528982749221183249120257746116071624776795777720708035187659790814866147071292309782350599241165475444695128310495241902126354109461765042086974088284378605461909539832193494617652093347148654336689208507702233289188475748534520268772673593381004475263868843961369118760172732095560860880493285333556081452290230810945098325650452980374252500923198236114158467845892646796823007238038895626847113941224054884425253543968550443174509424509019931700164944994015901222275436020348329671424759070935462059939257470291463095029507349965461966252470268421202309511187740282029141243592747543656584755502910257298803063032682512396024903488143177345649437512251586386276661932873442966855826576020581109478329033704659747898805162551500301981923186020675051916975195682599881226387313405961495964606648364137179945509277671034054302288014226378243654247665174624147764477021635982321800097869272748017518229438856521112479637994229334876815943932637372444866512667217575799866723652680502773019281974806832258026035851373417099101987432454258066316369322366325829304608095354330581695745503386805391798008452307821533771758281661985080871337843538181454205237489727899302561652830894603263244550895037722043797682798265801008046050980174236379421640083089864491023499892593594281375720938557248607397961099278699966306579936085547493938438223698116966281676013619366874924392386277150495226956456470443102080087019508795911678309824155772811857671746744933050583905281027194243359922717954671878298697925639349208810879995883191713916013417020854803347862150484648897834777157707571969575789334270389091187175178444616567965717628388131860086593864639370175331529756142473403600098021886818157353856842882600223996929556061465513424313056776463146609085765788285701592109428329920859779464364900044944894303365522554400471729679312212054452218079790842356435180896131107550163989803244951864676689885196311543339954001150980849462686011910875140817992554610425657501588364050420652259332811554342727214147820795584115429336531406538948715152679475043580306867540697486127385070058489492067280656058328674204404565835949579730614595491052123814669075759596797282773846370026483408987305776054032119531508136607040999578789468665385646103162985206096499596503041515152039202674893016137680688535135438147223971877683145315155228050543418283038080399017262597135038407360592276374631686557212772246628218506770302261436350299414687308993787612703823091287282060400451494802199989753341571090892493948696932012310191187114221389836131725325510005341522692743048531917144795597300769714026728094312792068839223535891520617467658876407230830005858110505025820097419467651596260699186765018583363881262253836164657858184885917461012338990819473001017121900829722574807797425543087688630470328533182029590893857023918585983516418939006836592096346559093531037069659616932321790243132781845398051373275850049855484455175528260541235721324168379992819185270098727487315713579619050987251019796206436690006502753533013612899393533826681275174835025608890407108961722762581950995172440508896351852258284354482755248670007804569002265833320120908777924161856050638543314543460640753116163304358285597289249496067182504430777231945808926419922531793706818728225780537806449662483701378053948743691999087299858847645396563387102497870120642068515195619408712111894309285366152527748815372631617684660608047364054677742804220743363931820674805782890312273304253237494761692586520710210668025463268161279929697060173132436705167882157954288999918314609649128525028954605214215380675154341134060922832755650917898994409308713210634028934640215948264899030292886235318696318301922101453536227599526891909454285382219022742205709701202339095088371802763197142729413714769866307693085089215932924910463954859930531890715210436364565178739308860988713274162217827447409040855619258869038524924203961021263131091044297243081148381315975830988432946422366410311308527531907755922925860283654680061565186918388528822963663459896986357928178062779623393739638375307280276848979129047412095749747632370400137404369365702420863504355922537274798147754691225828079389941332838244774527463897602163271404622522373602295753662615076876583191182937814140183729872217441325336211002791425008281661177305121216228608299677052380926012921294043014811995327452157716134991864627817849992016205649164170605781290401702945259723989303788885540117895395020697140704068209880220876035813990759942289519378083173095070357900117632035931845718735321826571677023497349494206458141874588788558819086826943254944388437838634315351989295113973296127990456664689980186111164282551124858143846450424396566584501090108669205251736164254304406381237787793851813297347509613397702378638005171730297913661287547395494941120921191484595557464543098607500719982480775716037044069214396807160719486509277904835856034064282492982281599033331324867628192278218034904204372807980797273292050806864285168348201670700813555521733329973896314789938039105678591373297062471739176500733118252232491882054341597319319456818802695752722275429015593872894544483460482919178752159246894246182568925323427103755803984014940025758854806308140429754552097748385188752920568132844165266155036225298209099329939875721211835222302525184617290023108443989998341317567018506918947379004463085237615516483978792023381853954498676035945553780549324671560163782049733892023767295572771684881461328502940964649152786734900209065110129451691585727052801100483982531999024709348416540853201004795569312772546848689669491316360272517189460536502095245546220298275644419163497794432648550988449369447437174944415484489389693935303699169815578997468624136304182965838371583264847664574707281658090764138858600987649097712631436864109929800727940426375697732338551829883386587328079553891805621142179977376523107896348606033436526278993928114907483893347836111696781319675853108832240064966284050989477580555663287210099309340243982802752216400841474230411493128589023868242742079294403314551271561410500410052727204687202556528319062801999394479022786040078591205436080371837344193875147874865011583947301476705694788786434916871661266775238569647547140327737276900986058729339056676636763457213880165306550919369983585559199991600702666630984820779246759704581925079782007826576306137692396775874852766231937404216884213892354476992751097864341142878183871842477978982632191812162411705847332672098021930743288209819783880482617585508798072510378684406717610854852642678064776492083320734039852415868054956726395040774538147841136236332549776389700739686902045851299671503819120877432895310929729450682393937779366283287820014850622823658947423531287408240004800806122723197614721634814039035637996831785336337643323415464320916632975026452287501260473445111873388959401601767557814360774440321507501018166080415867787637860718744328314159676933666272441679446308381833260290609032275957191140591951039709166820093053793352489826431684335669058555028768691532850547138516672218913284083053868245958817972096484979597242275297152026167027312803258643047951373941288707136778427463795834913913169673120618516395436121109678247625437219245839569945334011028875697280807412802006806448100395294052363305169297021071629027872063713656961305348799859467602177334058988509048989783893365130740642353527807836354572907847749244948775350982365693447949386637307170990159202027575223833169282065578747027611448732629803334545155448022086511913390324663674193374565114033475262517076617223896353037375971335752661323560228101603216246582824305100058425653545811009280372936678257565774639516107245593955018455189066555179786722910462483539329720606184961758332384681283031886716802747908040963691445341223299018836381842479129050540130285011408132372586971400262057106674275011090687729797516132639233492339119489575629544616375387686111971883929367187181049071004008083811683687387545893231721269784069707457338157377918246033582180837897968253700865237893652734545904265622604242393101710428830082609948349028143959634506470251830820281787532732625491160857355567865562174174333479377733780182206916527060671025171829053394948322960492508475996706439099623733564319540450127810082872388143314650086504839892957133944312641518396638633130918314296582274950695992592151863070693714083660741215675189735401244130107072768967936005536455359912450039681841230977453485852600251623087994264999047464399226094296586439365319977071426613123376372351336398745871701433082207421459874941039813256809703644694094459000740220922818040094781417650681135569348193646303270158964847271990981271137062066280716411076586623504218583715152052623126722957721464435777073300115397037305547887027473102037039760824954977191360058578056223176790431863129977427515984852308839328624061666833377367782402202675423703909912422434023166539052713672841607088232550530323355761294777198117394336938805704965139502673371157137554835971429678514957754281126686538853177336180385205527825258790456665658714464172812459014078513046815561325649522687850782041997439876799584779887640614514647630932150651526770846223721650766259876298111637487356153602262787006948526721932159843534877568568109658165433488255452321945110663541550954709587480142025936066305992770004570610458351137157226719502563287539378074340621874731061337151835018977228968602635336336212349626476942360858521310452855089430232114279382582913171652145651113744282361043497242587815644029263677174556852684343787553393444551154717108637073723533412494412389703839982269646021462005494028995987487435876200990947234177434368171330562195995353298172440166517574844116841376574378318618616632132086031002953880863423254343410240183911727956499433644841732318109882948321047427959554522063311255532169253228574231635155029630621372267458696865173858328176952332811654070096596716837735320454456024599076081506756207680133995111922619685288352159946908620700925563252434052023637528513785793348552414120450119492719464740638418470701660531431559284632871342059802042720560473637754409112272892789442329080800035950608600283564991501220225515444018895662200572472166188248952566593587089093222168019277470189699357445649749701935847763769944794018505500976599827614398343253976296985762210195671945068246380859548887472770740300948251475214603424548202614711935905172200941255822243386061401176658301641017135146227354445469211292191519488834934654303747740629159219066243671677238854424494996265809023051258197731019063337397620566717380627285467075895960970855623051477597309499134423040411620727096587928200257217292154220287575218940483609793545046859194352614515044949063960480965645226100303906064771327192021781794187479809828378418206525642916460296498709824786008098393978940490922819300624270593981214468558685012263935973292593105229732581928118365655405544894080640993960449121849312294821337538949563508875253227569879360015445096526559777293222698817861224205799491755116477720733671223811695402146354931881566954931824994951881757615333093670239258387364341089735246769866473713385454206457108717219395571465459618814221855470028087111670437291375459039773641743857756473584485312641429131714441374232532776772307912138547875534018211025387784500906220726003332806511842234538553749175161265423446042916542834726531064707081336781568697908214134523471992431633505593222013952639932108871288500095363677273646338203793489663523404247238762413514905434834195434585157102059496753973381630385023716439284323093790393658380191378122419670611654946391314378478239366603297264388802766540826438080605481664246462128540310249259860546281627294310481908982010644505509162567960411864397656243557731124243851816741189263904500573797048591768638096231320539417341905095895293950287116419571240054510055606393604147382952590018520549253680489614167164888034262194026182493028265070461712290953481758342494089407575267810872792438234781472307772321226515826870093110565366762565117018354127537462016700802354493000981108989435620636868652812795957446414117969561918034689846964917094286366541450987254607635025877085406844600544254008972651363922393302437840096452992803583963658404934684012751194337120845033749868204463720627286988103950097823540605206533807998595997593236374464280912371488457709770750651116307404685907052991389475889788235748263585598183963457954652179681150713806302560732640300437050491495929277511285840316832055380307771872954130846275564918809885400360020977850576442622750170059262476067446437518316325558473870524039000867760445241634095498041307154268631810997874942358243178422064688176564987522877614244310280039908421672883516781287673836975418735133757208289384565779295465786729092827650141539478710838173331994799799177867558182030463199162404408328387693452673588528930597663416860985774189417621634880273165001662286407295545217453906969275560727194416486210324026217089081603100906857005773790410267499874484871470409253444882037206090948452584913361702653712067444859310746082129807832603549792098759382343616240493698855299912498720078595096340279068991596748686864750235055209427561269212510888454917575021282956010661891346286256494035302125463912529855538625842670919972034784988465904877573992513879910247896879199448471413079435390189562769797276106651421349028738436967059099745620752032596409252337657751195739014976150023237886801385327442554874766997757189850787001770897566329085911227803994242578316333478228073816179645270465377359663561556376808148520162829116802498654099528675875890630941140288555328244223748350769206071447103117157312081730157934146453072365474358415441978415367580560619210532614677954984204455611097716871173005472704732025003515937772976824301290120238012442531596330632527065292633066839390825012316035962112300987010336149273579906002326426933817702149035570672052067934773678419386455510965928673391506636322311320906254801059272772334781057248935585985282408287302135827726405598869401577625925397142346888281249530824608386566126600613808342565149002029899392964801997813624988058336727976769671052674173734845332277425307139200513402006089416126682527418013226476848087935197962295560491054675199003874400422920487611381559464304271954606980290357559247771913037112857803722008496820385949264760139635886533130036013403628544394173733238078257469228711330439730498353066578033955946735855274347885753537374771794168150593851625563460003906193854000439551724033592519130039735744470331694279226578652539603770472186610985551924394937189742298677125314420328278224311320171077585619295046326556503241353298140862007869115923074031929846544317769077378293841262735093532426988822577054599970884709579704917061240877642622971713741822299666838085928297383837408903020135437801205376827606584900951259268799421947310644464401213469825256441020828221397918207850004831326086606341449003838829978614926337101442654950592648626851554220173551356791044157510264195700112920808760938293902056110586968576106653385280332301278357273483445885635758905955154311353725115053213908127582279943410503129237865633809415987956668030867915630677262838907740589360477991619578466770267365987126242733877636705054859746715855390235123553048432583287375148056261714450840183003423935340293162808416808198208427574244977205618229798635251409127458659503747064094204028217136056037913015862607777802436116632871414400866450954157029400030984875972582957693647710317190749262421605064650232570457598868190615798833822262013696085714422032859651966667202684665607396979842845192726842542954942037942297289892234180151357459201408590743847634567826756326686017951682558080946704239407357895661524494431256046815214319844714951819850281404632021096758541721332876381813411900231308702377599554241618031641025565298086918076907862641423707673889715542469371506259884379646857831557133473572652919610252274275802278244825069379270477761288304556537286449524738778268858560252510787619655493755926737599109966075336403252001447139794743538956083752213346370124630956239357730044311729267950208667272225660040887154916549593451410690284462690510578815518311885355716813832528184624841014839111447685838507798414733181444292901083181105793505804070154349973354631490439193705662208462273181879116340179586362836740026008029067838672717468004455393410095294518331360713640420923723790683545482917698612993575481587669713927775248587814057072325060155009578703513552389084237229227005643475769050792447346570908262433609169375271058312203030440024659370636504149766292434504505388419063327521485227777453431145281250766056876843129867398306397883208681567585350690434655718075802327888745458357830973472522993050740135380292285534367888280814332597013992314783628618409905282018410221612814441049986872568616676533238875550630286827596444500175518298965706257153795315057513611891807532246255167815026036376035665433880367850067825861710162439577120086478061291670961138600346658204857183259621843299636032941162039996022409500253796073821379823348963216779645556775259500153581810600009977893472939061126228634161437584284926674624553074672155627583093180000553700487082368734127505444879308656661800525929673152450483176817642964403875322425158208220997085538417522070132520624807531040256854959627462235143775970235744345392895168524198140410857567328456403377770964128539554345600870745048906061557351089645329120470727354489357452864068645437917804426388456518815269879534099825715437121134543935704819274687364519390254641870714643522435489520459143755378632481969577955735732920616168126070838679366667220592379325360889855604542778001135858883779993645785530749249002620513323131498179102073739185571900320590892377331954024024851469581378420559004598477570964642676583816108051446154055889020821590299554103928628656495997187810526274838889954344436964904755166867761883046531687310536334878596826274003915938331622583555694674816864246807681375863609258881957419558702313767372122732823099803444290098150593826726003832149692438120133537775868001543888387262371831774129551916330346289290299624993751637382022301389154852893926070228387142435113047437039670330526985738497069858660350786132273939609792996750659111362106787972495824376459719909204106951834254142070591129151334983430097670354713462660265730821520993914995687276044719426630530871489939851168059922000319658470589514111629801696653448194076877909480769373524327125273561228670051562490609189348444806366113411620135885773099983566789844555560200278548697525549684085994167437412102022114226742845172494009329651503918319331009946898333257238855890781822565756625846435051047812717207784467887567883839879833144402291115838968251112324494743920618126260385080118185395068262676922770927592541185446109667779063742605795332308513886290019883459803647831479188457945981200875688034595379192331433643723957757479471014864742408592126062440268700073527212152179606970597271114764584737622840462565791362746664316788472139143178507627586934769207656511822485301031669138454246152570407703262140472836467618421731077742238242105085277489220436192384853774786705220544762596442699391501258846697399682888472921903694758763960695217821245919743062853167092897623116527069598371653374486866350240543811128060525053767020378217208531581370697534044227505372939362476163599674178727238663891117099477276826439878208736982318483877674643329732325496488594522817042114491870153712223234343865767303351289314128244916377037488372379978265927633271755377778602627232092445705672354811680301534092096177684834164411130553649135981312006014324502189113767237127367429462936009008214413955259531315039395157038560123754443450031663058735316140983000224098908655384029646386668799591714583529389691560009156202391094304954914893597917941648731359054704326782746999646978983913802434489774200055672195359597860670642562201999904952118352861025997777255855293681102151039173993718400280413895887516491537729077294355602377537957114477672791265619645844007439965732029853439470679885207270996249466445141010332181427175234575742109203658912143374871018582303449111917701051012603867487119712034511197322602689262509174884244589614748039884768251348549251150094434117087064340099055586027712309541531395260725453140384618655771144633582591830311466438563686706855524796577559946572770232857931561738105098977409124189757283961488134723447857064804632589733503443729679876139122229918349253021306016475062423893061629562954950814365415235698396973742825093696628647018651040226962619185346346975335146530042362319656231823841633188947157571848931222334349319789065470911926362866936704690007421522492012265327775877382036568450767209352748774236214182134074009682267102448619780892066472277967857102560157700832750597938668952065853292825803607142317816962204383925860067100322626146420880620586774691605846533194738831655695609224217889293554374053978605470791511220392807260179742301216793357731889360561335671883868525807724035439675078663929578988023766579335677480361071722410726886474717761865782837945581858992841088974411978179286644040531206038967736299101557674464338271040956465164757357182067101754349726395525705042776284270022612853487941137969700978988886980484952120094224315874197677688689310598230019714967252654551378051192214123041194896667479152691801361470186754601333560626881792505900013799801537269688409018890044498781261028042379402081258780821041717137908917930484245781387873888609386970056100424395343051874377451289517455638823324363985758760893925679795962996524361891134953622128909271792932829096202573324640634800879410760721349700914981916719333201001303695286701920026464119391835486752279886517286339195140901625909696742433592651431399711282064076441309676571553780761264600168411788487856133249617650218050328729394346103997193918931811785944487890838314217724178659704647445941094470027587991017819304625011502474996047593089851488396388312108561944709570349998613651671478567104139868183792736525915952702343303977762974523698369771714605819154930339014005282143377813774016157828579500134145321004675614198780503100373320565847789056279986132087177710493548875975880322115815906011534168996713464985753573488283210657546731153175522733782337042184958964762957091718350907871331232625476629396903583444524067954601840965692208130633970336176647218345274539559524327517020082470784435435113805864290302659782582491630838860632547805196740319827076696235532096111867916529873085743078374732526218362351487430456864406127925528638989063455557857921132079038745838265715903367026292225624094467243690493366962853504395611702915453376754533110498826228826137861014250389242540222465271635938569166841265109475052298068275954478793339441778177191578416460592467390766953580635825287981298515275184150854907614329471364403349298271297445425022080950007661491329898167369767641439603872839735469798371361215033798531648474162739037619551288673404833766277468124837280620611491050183175034955096217407937362032290411609965720987626211979305135815912892368768464037360900250283656154238011291100122144205727532831043236346978445315757727362359078515793978026356045545911470095026161831971712990215254601856874778393729804240071625590259001864415490056150462517967685244722039322447006099216336840391347220322922114884215023695194201305646925185689276753114377078978934647753764272308357578798117223161629097350616908699789200264867007151445595041735036060275062318522129693848862432357539604766733061511061322939643718606505468346348636842773363248206553663166180075634992389295438966746464486967221432850460896246758019179801728397660918629417550666314473366986438828482502595545886642903575912203234530850910095369865750632279811784754612394116294488907555065583700297574088548066650804473624444797248483061842616562912855319684338399873716391701210272833128855952608569560851714576125702836064832374725152563891097231775672332504627345033669451368746988571051303767541973997727110005855982274517422642968845670786656488277260789086762870491291844498733181259312698103325670951296422264432059923240074662576595819810835592061216594096400428946191198400802724843872098875147693496412074938166739594909480687094639160154129796905388852841738166307767045799503662852717819051258587300282228294736646993140193743215617872474853571421228819848239072715608620867717794478715071924458580438583415691441376106035000891958344782192711670328506105532979514579507286787441224117671310422929490422230609567072692682396197876113534705293370203004225168273163566492320719578225700671866319079169373379046734805481194652944124065813128699321376333269453469126703497280944859352004471694760475361689624051901121462943875757724973083050204675773334960917268217022012429103079025011564507906515749588742236798813580789355275970779670317923371157009878475081785308398610715240563426276171132314802790146883307356468645013773729010923272871832701419512060364042603478867607481726501313740787959549755597762091798130250800475370213838884567705163286646429764837594980432577998602807789022103596306377746034158137041424378134893698151382256686406462942584063742976240112355364716239638733312933506617355280176979393392480231036447970029038547647638802142030883102291007112518247918164164664504555145886043253951688063989045505075375191282277102919455149023750536629703081069881897846029883421251523615393808596663787060568685599840558029073973447501147503315154125934533077327282550242274990336719785251961621873951915561372920670503565194770078648898430312813872445047523620387763920552855884665402984625343682352569316876705252027328242536347646752213099094118017951269481969041493517165493861182543701402593159520685984669052850586789748332893182773597545552484135364080223574982994976063548086284171910248260516835023709992788635014110731487712764741094053899552345990889063358410067608408455529415655058142297843251544760202635205902628101932835662947736668897385813422528593405469668877476364714833842987884176778453586697644036005653583202511391540691043605608996569158617116707979056837456817263964176784451713268880691405422208352333067414044422207094151191733698092355872659785859902246926111550997378865813252872443373298544668710749503518536398605514375611336444862131030470788478726579033885791853654153343136700127702650845196538944846936874034345940563902161347734978144076801888592263937156528349033526585646574124692019370577880102175141714728603193334019395800085773018651043469934128963596829126828730272140966752502360637750546960783522721924313963181788488915248334393653066339482920987463245396986371385700582905351629155404836682371431191408600350991750232734789806106744864822366512011952219125911678352020713016124132132593018547749802375169645837967512338308993714970643315141716509269556622925124466802409687925700932525572636473269769709417947235268465148022868403847236212165016289375003148794083787853813211079387657529977350867151503686896102488425243008630482671589660834338420195743614904263394169833344489034274514046914082142936765287081707058440664969755417938296641917155959767208137666133922743426233287436443604638455695486610211502660817529572569339206403432977256519847951989721785496938319325649662324224676609599702675960918308422323160713358083866772409140207136217004016806687802734935368631139999079512346338519810328025148217087035898037751170237676967724234601765623748124627398244524008378697796977531021813643788563940280751763133576537356342397729083360431756858019714115567288412785274717478684014053051147846526314658329346307314948169175068203318721653459548136140035776817753112079051840140928749622115918822308622221066754599555995615525758715260368410417608809165794774072221477042820612220208760779891386713280957189440830571911411717108966863659433341664144787283043410362142298664621476043650886145022442287549170777189264694838077839208414102698136569559334495586516459805190847991510396495741103776757256485126513288388230046131096442690071361912150915152604814747117568737709016017196585415298465719353780848127999350354976208035789275001245057286712720295656167975390894748375937555589459544350730896169488821766386776543464897035803733115936480086820351855670870072742894054642683408260745989152937898198208832670085590679857747436388198133837318065304812703858275902918382178648385923045015610405090243654820805678816420635087721088923818628684200540670337464774520933810143269587148835108391783837794488215926938927087690906313838932656768063054151696249574125541019622116881793912156708722565408385840653865616483986767436207214513983985022443690858397400208969760644528461497858156814313733566145274197657046199293834738485169234926159201548765431577162055767606056220696399520543309907729767145503878076421528896157902744575405866025638182514352296838061216722666041683840424874729518499621464946827584201983014911637756459463300858162247071259287820706424408842044992870510447234198246341098818020186888783965923942318074876285561559815078355599511792108312536869837100098315376442199694600200224585161273452549112807916907698016363820846417932353777744684496501432668807516029156465718619889076365613221534052041500906891273703071162840293333707397072276018801082414407348734694269429105020315417171079870622815947659888309183965556671818820226558729438645575203460316370344902954664968779864033692445236783672097195832288863081135866086033135580797237659737136729852551406133080441360037185429859800851618252920630720248201120074593062844783213494235028819468511933553299595133959460020335454576792642344631929286534068338657682167439802656701735820875602832950850634613667825240909269009409668959259937503788491620265893270604444813483948084318476709268943040809152351061105625470865928376209666938466656498147551425611319917036947303421555040419614259000517218377083112574475204372041816778580061396504756966339198422712449800195866009679768752317922349842982355927403740116277372694176521774445463120425734456192563991175576878826055048636107097223694770550963863358985121810255972924577708499432362449562310896545119204476650747359059080544112415837094604739265858188960896100751725241552737602240051889043484955489769629073904585988724412901646385137093334140827152739238782033019497473575935093037016565426149347998999061317270955242458308358733238594846916630357469579637990254995572696699596477855731707620358957553692595064600951424810668951700838087690047806626539900353969777547018124134188996375421887704908939764025647908609250449641869900465244000231413199623410471407544882953846611531123196223724817399733355273582541442154233079382128550035661444070824808465817658124721637765590993666405947064230660958399179153022079950022562193575098766465608840385630567822118574713559508016859524879916515140607131774785769008441109349859661491897424310199963390147033215912059520098324529554056290731131620330762205609208238685506360415596865345761598699700402866275970186950062464323721981843989623610082714347348016993941201913703105575406525422988341476737031994862610695647831083794843438609175409535468821532607929387916453300714403493511963232098035024594039208546647790928975453302795479810803345411613844156757623522333886173895824746529275698600918998741567397510292407153007901491785926463572668185695237971142524316667481232485215503668761235091423791218925323726321055629366739307391236899729167238134784762402241427951141937212911441177207941962006467175554456070785449303454872601455236229549413244337195929373442965671920553463658010056440293801400841907685605870711200796757914243092144795988929616633495398146821629045633733945232711627024346314545730478916190778788191029410725569388337359049489483230029141948382747910555849191777276644505746006124885023737204394306637496491568052658438695085763104144790308672522633158551667619475019138680613281812598913601345940977521835559563494870951427995375007321865970662940533458606879542597472875247677206790369722995031902634794098325022295584747024983345714906735072607702686057425430779832984712523291926150653479983737018162288696708945403536731331948246099237574895906633390912167841372756528522717677318167454946907668280722586613609064542187825997068448236843296947182869044732709120928052910372774230461772526383732897183443130352685729815817786313337272554756879395958103699640227312069750427777442252291333364504320624511641323004665466016931855245916259111809730765871143604734566768391002875803731341551238671070275582264181287691132327181885854891780891043386502700868480127558740165189220963777489088821778227344076597185228367084677823358024001892177601362540183829994250171365882097909952109665626410207597903912691084896787690683749643138751556596606026029868897371434365912219002701888254703463630104722142227668227931749833422382432014495185983903049429847392716504193384989726838453021512289568548600660022652357611613940062518016094376839165124401202776890278427621851078579769821505785996560769269330217631018365720218872475440437610854242470781937946103205823731264900884654936631893194283913177900268700165430121859756866544885134214605591649502032016226486411461586094870444571420247483318189979850196330735367593763788422620831908992687450502370561659034760076385148207545751508722466958022055845991801837853267475302656643264540722438298011956392549837393855005161454111522419309679101621980694767404054464154641510790303648439762819058364333276231272067601817457391646136541005073599970004221770437597211038812678537698553690153889490896465158847018738859151603443983786862318897938671620850602592437267736196242801305245250039191750152306797530624758901563835590460403396822624561006825133672869987563633608484366364659012577318096983021999904347394554502294105618514863838017140133357481702782825745856147030367435686260573256359864870549821701222033425263547931712857891886536273584913013151027591469102467633693152814981904588666903721976002853632272676438979751169134870638775814952933534032551709573896270216506173001010665245134221716258059270126002214170357099853249327534361459099075746534729430469420834956705899818515767270838468804461603721884468007388651529708656484146900412868474726032432627471140401169116636647244887499513681651243440404721078054640810104468650450143597607077336520016734736575578138213927685210162708016013089295890257673251023689371046466632527416341814806506671800322160062769397989368284039261880070861130634132239080193976577345794044919434766298555244068738460724791721516821345334326066184804406851328454162632643160534218735470456294554089696163487302524044730966898786384131731801532533115205942179120511090490672404861409376369045782424196512063104495278405467943979730747302226857363664549836596740844709320180758822105229836383371430662806267711429799220636811879530903024163466210149064437547789376936982466156277188303749567064650357813855542974423577224832208259596715667058294119913779471173505832400246141149676540685292116650659482714084529960073222704390098170703744566332732549681784408463146961524194564450123275161354514647057145042187396548112327317565798413550670603409991817677357313736234896899693734171562710786986248465420366059019425581126948827739291347811910236172302646197088947927969365363728142790413449071631168065396404696734698759434596003219086467406798047196660392705274836825806734055773815049680741113544097885702290995377655036990894316170308651632623575793112097594985462035472305215899816450284487779274691103753976729973124888124331883744804940082695065324935191630312010213309017095580676908259877632842430406843059169451568602031646006064493613772748428627380358499845346952405520471792349185941604118494727001654028503525057549453556561364283737035831684024860638413427654423994862548013553700209576209205118930659536448002104230676375291018889652937018789182508667330195685087910931303085403189457339105289094557576456050537437509465159478518562057148602410108842247017356222532757378183492312462040892699014318779156076183690942703271262477560818769735590666118521886313288640195166871068839867302711857614610148931343243076788970558887694307521940810456000964733485791408850694322918381843159576159382595598636811021782056058992293002827524064839483098122399735109900071427388578602615059010179817024830908427386039422586556703598429266750804527452335085114092965742998935098201485680415479698810455615371580787265831775204872627653426825922520981681417915310410732342606652651808858785532983826183455140397108989445642572953275131136623016829262651818922054729419035104629113435943285419992564858217494446871849860398191150584684285497153022869809827121226165672123085909173493304997350249100134471331451385310508142631768339215622618861694236520778212130201167667727365366793751786809583294412753334152871185030390507025997292223347004381483667580010227184280855433083956744319983926355790126076734942357246765513754319149112100217003209080832327323407858713686654597426382659082994806321047499527293372332239118467666890604274725780036663481102141597300983573078510037189168136672656190316816013441321947066942857414245246838917982273450814145323994127549652851388351037612750331806549936048182593401930729772953543354855493514350177426499392876948625269378495080267643478950564714942205330897575763332865722760089372295974985839053033379655950772560322232031763469066399807938636958544484507036998791637534397966795297343605864922611812296577527145960742779395956955507070956504811571623834300327087457480673657565181825965167103038905721449840253450009637349082188379279854714905281598046082391680161058320955682076494128979297451597381901873170408349829104780489183454475769253642536250007668297743140583798036951960659753107796125099104353052021946231631633407353466147327929236968578149513548028865198647190467743764230148327420968771205904719327884509086791113494963897307559729869071526562975911645730609721677383702546005507035317854845922250043927994754594562826272929760431106656917052747342699304928627933669513455358763002466084539976326667498733047231980609713557813201044822081215152191828584862605232070149021460015184278309608884971827554136877401357336998028212275364033740650867830822021582290890510871619103339067560541803837065900933561320696560934949278373805624873118437981608108457684734157928271756161746620284824370429218966000103050154679389016102100117569542665135412181757078455258217088365527202581532115669702999896201910768985029140092460181609297330597319710424781061628099983472593456918338286206841895950954280832245783586847454878106110109534617869393734765509840815914271847607700327704376503403428492163189264753169262387448134353018493484739781575038833476070413156111802410760591949747823230157749232181528206870121340399763144515451087070755875045998877948473996541882552670193437795421408840796346329855952708408577230772846407813241913454669546467671529575728983162099689980439022980645824629887065800184828102989454925295850776326389528815318013534519182376999852344411000310744781237817523930534482467046788791244946642978154037995369721927530947615451003027880070104670511371489168623504065870680358116380016546983399990369500100743767620562264128934211649653492373807323501626821475163280961521218698365391235524126046553789645210039651594515545127703642203998600222049004620921186730460900055650150097158693802117600832871540316101107146336968318112127925729331969597988947907235341052299212890014317538814109111802314822578219791213906627154110843325198924986009911314875721313078966690296236428357503787088119595619776490211532468925545884924463283956731020976335824288065705866046854728518999493954828362584711487721640526392424610329017132731183619304719590434747253938665392398454609769009080291976601007967611390779979386972288468363448642936920510946605351227598345280902414501922531678546220260694775504126799651039030678460064245844415881554158799641316066094931887802386376813916561879747078490735876069266837360306904904660403976511402467754273038307944414270756757394456106010255345737675149043686733606122898967371782619984558806303222127217560225828878186094090247520298492189681687047957811929343000513916106629274712958266734247332581953375555402212797171172783985087491134807034968520851128940271669923036135302378981096039220725977183688074556242015110813086069357763465583071324371304958273234395787461732429013647526295073317676434299452429183247282615049578613856702399278549634561603523091455131218831068360513768800685068352030739684238427358959519603261413390173651657326639949767414296213669433512564726912474146588357887362835307947129153197693426475022171658710870809562949754700003190019143249617009968961023281367073915850028922242433101652098228883553241823325691063740963742707737227139271550938981319911740908870875825929229382700805636207304231298636224573321051835550794061202790911319019471802008543847296413056426031680904354994891627630217889060972851640824228749752591431844962478975462929429897330954460172367780149305074795814339980975335639461221872061964409001358367950216214286433495300907032352454536706717042682226066639993914095435107556703647704054247583446257170890665026575858310023620371932599719462932075797802453019869354559206670983943141668376264738028816027905115142107004911948379167335765016188507190824324067861304653576122431532903108935342172231405625368595397957185853735009475645712059203165391740038541352944904725785695410226608646515111715031988658030852972507543757368522821976778933733115746008312375939631978680306714804305986376062408233871421834520043993188140172205912609886924654594241745532656782999679995212380764040027356949659149948203698124026507284067704919643165502873776358490374514305482436620317634754863805840097093269976936352890919747062409442052620463318320819932340078064383437596337442646723936476080967993191605256202134849827320178579974215167915195546284680639240677913041196525492102816021508120873796809257420337306767866156144355744751698912085574166526745378398296489733895164434864584627925426673570194052160652526885922506985758992626057231939259903311554884059367628256275071506766218735731865256871531748535935043305096840453365818486979821409454386915246778215478003529100949071787453859294960807315358750118331708072202588789772603492596254705131657115021133671351261367158395799933406842884835699982295674648600641694274341650621129954551200011202248525833665856064623264982748617486672431454246623217239470315561036680285118430079503153181331582780082966359609161928688989689185495865626897327104411422575145381284464702115369872624864240005417687496036535170144445766894207087244435976673379800627744360308123911536332031664163229407773679959992252182363957610201430156533839398637816517147863126350208315684997535539991775355263953096391203889637748470368148429371017646749526858776155243503372524180413860210747794414716375912727226980295171246475531836188862212058375800822624907662263400028503604825289440175499686307240952869820159055611385448733920251044287552093750438075691714412908204114035781208873610957907795713139179836731813808545316351449709094332403556021805895858983664128670398633506929496988624792570567713143769689310640362146864051366206376506157950741929884903174388055519088456062498422831448492506754731051904122088804751004701501804884070556087036749246265482232600475821762029586202279007891219436641419452459415585227805213128084592777604127810883433168672002486589386209706836649645151505516288958480965094440186138782202459319472437984307356553800831394468332877721808558228527614853500812415949514119204467532051829535667334073596540686735732324607258807437281628553526148084370889876107164466355022299561756264599810698106268361473843788297596346801059073113378576665902793981088149112317623409816289639151211783983945436896568510802045186575343233147414513023327630602598946637649418827713790115069704966898148264583841110659140203741981031049798351950225146646362586347341462595647299692861141038660297591230907168316115681656534727977140192934667903857472385821134780988664043606833885447438102458940797039801085169032316873427936443703264047188619418186793371878073554682068865116253348290720622778426004695597376801421895278257617399985072284547899227364714704452505448757375553030925601914331667045738237827549011978052896346244222151575847211184586254715823860990469760027278536517724716989185358346234588284890449322651635410933755831664408058551350521215134325221539329432230169986544273456239018105003163907130316437970045172804431772866993892585933004221991383141171686446923021338841633383479289106888785011718707386719989475467779175901966836484350044297606359550256673543359936646631065908160837640929340580476235181074518460299774275075224797369337243281431422973666087711861459042339800967748975171589090937412573686023248470267365935541641994686941303309962055581611645597893190702414454242179029213368942591568148528927033016280463608644714151090136502762631100395267028789803434516469660455924579584415917254506656806634575526264080145721641634200827585783939123543261827925114270048186994092449293874601005840200077777049300813360329164437723718875318063426042941677505169746564782659208435757590283427067233738653008470496748345095853706097226715040545008019719390163389936328721173277858003484997610209679556947830295366248332673547882781773239404817256910950992497719322434029082930307732273838548917961695933859928556772760541963610246784014919215895695822789726731328690498692057280759787176029063651936055426595721144664437440433537919969854809113223981043367706673741112000940785048529125117717098397915190475510490110350623664897124387848433539058698683991199391663796521112914516118229446093530245892946810866912670959964119708423585184620079208908526363886125651925688171570660730548417621002451753201987813716388820217650264749819283127669563227205843323561192588759447315019372450577639278485133568000822710800032890895943465289317659519751042474562864757241082333086171167181558379445576403237159566984376438549516836183938553476116269953032571556290828023956816780095314886036752534654370487050365015817139673857669639231018920726874271002858396016490395405662934141805450363731932539137378464182129485841699679408568641558382667435746972330547441588029948365022640648401715306801104582352672820718916240743584783421290779717117914684365401757119903614614438418406462757101160938795635974571250966260754175594987632108068844686216309083986793080290968283993936292146663563052022296435838013423666293618432405510731851644702108690974549267643127625776033551844582148298704633809111520627314272032938828918752708679049219422246001877832017997022608476542249976681345033237900297172858737839133781579807683941282000334725032561048832322000611140680107042975481765626375551014596767916704868972190485148192568142253435104237915168054854298225389908653141871459825587776321183339597450649966735810243024048400160777745274380395820242148627500426859037600241814963948549748395183302667332904767714179081584382926126970243567910029165569510059278962145717805460188919815644579671080039107467360968863917564826457510819495414660602346429260702570144955493182779417995307270345718874692874890029428641617308135423468777431803636228733509007412157888951109559776955915062675648698417393111781247249531564861192699111769876983914535872691356278077774889607884674161429912624986389748983639647913315123221508727500904025327361780620512196454018212015298198069663510807352193162374105482360539370213554237748398377939573225575689554007931796024807879225971513485383945268356805293590076332379215259642513003429668742420122679719673515326770189557311201744997490302684039880175909081779750446182685191033714640492307963732083670603108345740512270360913765925121146341945444362297134939104009216158677292339555448960715283655867833584133288908273443970779103636706659095529057208667034277836901412449882321626019816916076349012196061991596030317422256392888184856159776299211748549574636915209825065524816839610008348345844560779592407539433967350423136455615453950334027672744252554795421324992758099581292943947397134389626935103662319349762018354842237605308390249874535328644677656645262478723237438318296794043587388614091547815850935034843666011898061560319494878634720293546240289443900465486785891703019194229893572379308687799473700274379581876806134928313401752285235346181102824775161189495766801393002173114330374636365411234446491702627167938607237903547559901524168128729814348897831904163382914115675847776750087770323055529228480019723702369463516788554460347842867015705534082140706560651871894624895697711945739520024916974338935255540195899388571351944921570074846671986735774809871135990432446361859053092750013647149436211271943963555578439738263463907821719637496986591967518888900941868788972210081573575211664294840986461433781402124500183809795954943002380420003348344459761504597542486360040588139548114380632951400185884846651685986970298105827778627079503189898394066977475607001167910154618782476581348159423813864545779765995595957811811955410923055157747336095015918515704024358615021406187237054288550714478756982922239653794372482854643489335295773945057730862573762848728269569966355536150850578170146996233888902290764705978504307276413919003656441042675524631233504596943624712515368284454664194097570788568016693225180847102039480406476155840708318225723804471803378575874654442177612048059576219509771058314604010617362786895874348522250466346793592321401548301661009530711100813520616538903324190686570044220733751454738682817045268674537141263753288919594118663315205828982508671280509376339765186468057761691650246776161966986375188835268832590818142135093781246184264210152906566805440770152796274302042413551010620642932606541184623271570649243954533054904716526300081737306099538196816418530274361476960844397344529781117701806923087937170607344303377130951855922953723798952197228190171285388604939408957472882539783734336231403940474629013461252179925051365326030818203572793035252332137150857555526282829227304243613916501540366253811383993971518742768561619428598669184655079203120897344389169855207930030968242806912415060472606026369567644228447177407258163125980364371096760763717176835892212274962977265995982118008359671323501325978683159156132396550255563190091767043274667548115854018357920354467014646001093986042803035476767226336547018319565824467245863477092550559663918767164153199878635790619074479958276845310545951763526766701869431409491964721444919837524702550222083931514977715045070773311342156528625177907092258636742301374801221842493237638001670109797523617391864243518513237956392227796310784035085378224774499854165259938672172993205816419022306794810639036249633358814182762193562762722824344641558885768450671606594396433164874260489906793247807820972445921052098321257284707919593210398987627040890146052877059446053799902805158600732232088766907588705345992960710279785719428801652488088665490955606993792886417304127173320937029498784170669531177453920616091873458485346940552480384398173269458864860303471284408423478719353979762054334919174190387182022830422227381975964614743782568746028772789705731164266846180582999174150598209051156778492722795232866902186426226786850897970239689032483234827311209337831799591924013151717944053076121052006102601146715864525000726726132700969032214936143623245508257935458178064032171711710833770437049010736906232322491411864943135932726383284664929192442482432110220563284630159647989173136044764990795880759246290419631382078650354385537245407420807982594057656121829625990566097473504136752382905417109067750573612493244923693596706644696341223107125088097779383678365049700842083309558905062813388454235891027625459519631204575830982657142559222586828256204820638598535718642789820067396266704568524412740408959092112051859279626205283849165336769057595770673569937444688776233169017251183771318169166505697377657106565672370685536962568911062623216066261672092742468900097165219973185689998917917628750240766029878355029555262875547785856735037218313681052565793955498593160825569847192773977859888738013883416355919970052417224181566477327574794363616768496018475025452920626304803712817106536046550125314054001569765703735592270769849823039228722637851592875103953897390804111902955353811202187770318799950529642290883450453506993999763995054330456901080694243931582675222434248885968011804432608432025455045292734613080847005892468093529071351982969655948884910017606155131530252020575188483500754832901664346529090470127289340147661750793682758146660937396031813366759543559143638104776762925731158397915653877633611491214903734680650447419751693779140436132182628158289757620823807319717381371016922546251088267673631542385907132996028777883447507510347795020671361466890268229707974974709458092500606195399090030752287705524905304620897290930621212009190328139296574044469330168145827499940306906468099396557807169322639233415030285847900471018463654109757838009981613066637032165062726675252709151928020592026018529105778922611007679462275616771088423463548986505773175327473212290062954036262672613258769473391437460292296069090554664940665523974708044424344433914307028980624309882911253732369521772472126439148834217701180485695212530557710169670465139042501536567019006153533390151952649685400658923811833267134381972916573723159855733528887698320494935063643730218863350504520417081022463693223653379700711640051113719630130756411305322387366710887042970151606311764495278650088275960050884712808818947330609951070227509396661431495771803993619637290817737425957053110097741369257790177157474905607131734229957394342582536499710477659253967827565424506143823941028801437052061007733434723005275454113379320182303844297955576177517367077658962420564538777241903967916470429416983444630948117992374463132892218334766061334673358391084270151918608874639176208720714006889936076555979998608954766764167452155868896618761984578845495120519966212919578537647254298600147044752931102804981911933330418606386265062664710659990354040464213769787448992218003328233894963405183824135818473422540515010388421557755160233876419453547060087946876267608887962471960711724499496838313879925471106649509419370473710843277773542292725568546120511609825468588059886785013197448823790119357944215980139088415841480348160094022860027914584636984896265747663083982825589357685680712313813855343951384219442655989548813870353207534107698184882677688783489540676483004939846982079173967820167462160941645638813494116344244545882126012937761498828008235704913498073347858011663382004876653289558565372556803001284126999281570808178250305624311686736900985118369799562322009361620371708147677732552821470052467123239331220976902044152771962252846898976994979947794841448405669713221423275125142902536431100295842286539835849588672347385547393929213227037662196525638985445539944601878500965031665673299110836573409766034911032819368888924341554014016257709074336182492967686440412842052665686145794523505937051318759227721639227301618807987105019045857628820305411029722162046424271554278978712717430172142928282620423991606822402414293112461863063865792495165697184241872753451636965698217171749148779110786626248419116022634322212216799784638760640908171711135056138135433987471326129228451160459850736146502842607612399413631685776580605865934027438243752838989992676056744144412244923247717172019351916014636643577581375290572236194006793488966308705634523491744232233106746386217279115380211097307150178750224740307755747385925413798475228512428636409536073684940910569203309437366747634955964146927912831879968156219194363682912729430092363917183298004979756116131845116223837091412978560852351169213623281324783236906555284721016219465137304090462243037529114708278275375674624577604426388843388892977852961771266676881216867196758260421811235223459090840321453599233964663983585637245163898965621613281023277777100634980349876126310104422720657491144946502832884612277917711692967097622221324425851940078857310790394818855011982390647855554769989740870866766145432631496241903144844153155416915758473981317885102630920119013370582594109397479493987493626317616581111865036004943351871419983604083339949562434672130045191303782019345906166467760156557199401848123185143763759618346420674070548331775655585965809361854456277497261878191460434358000577755231450833736959368532757251298904972612943131539360329096139312295902540470065543156731140241425896944222927708728389264381144535938464600063871787496774260733979727759733537243231040804248779129635415890265468352472249238184791491246308839332377335547281080241978849400571670922359170921610945327921397575869446455440818618714033401012454636416514425638444863974190041950373795433148037606448279599055441222104236861680727197743803910093750659210074864255021152765995373837473962623129877203490626328203433488425553444535792511749724539723495829779338155992716485814232337728834554235115584753846707987585186195881185669185444234964658285586662725727793082406643773486056884164884748299610911449577182191178074596276794943329187213486596479278340876856593748840005387032806116269801613460193027744617066402858608764995822905616743093517426229557482458071549611224478381270834681322783912710987683470582518017467158103440303585888284378213835263361276820053571016147772402562771212950006061731604943214890215483670367260641068546850805631903728593130748560509392556421836297100043524008303703475841187350192287223922046988548208203052083102051071092138668959894261891918040411122344166729482459495253254101684797337621315514232687806388825707747182039476926735119571854917178442931622480081095131881780828329525805939470515420942915836948045864114360673693820392161951922996356677025943461842343371280551070440611000486046418089403990779625576715080394672238788917540587759225025257534596550531537234117275282623737170955991290551878787299559014517892138497149939143940369854895604154687588081338004829650535946766613476647132195334872302766995627417969330975922745496133674865526999053140792407101936914535237518777409512587721628877916574718671949976375765019645980610612467096115169481928397411654475281738691023787391597384391976784754169944535394641684795693190296369442745919641197950457419324777762342358471637412284314788467327014524188971152521148730742069398061303643848981125499074015973990071042494951766125887716234739753699032445689829950793613617100884080846380791112135634407170088002547816367353712443556916101969618237396415732213287372217356481093158896260509953940676595670314995707752286919988292822939770338980494902231670758327250059385399842542864105117456490039735684849213407555288514337411285248836057798002204435177331138709409748926199702828356638346087121188489712290215771696980382730900490400938784778175173504814369464381644167101677796287234815192715339929886714383703376207389103500262957553927461765348194697849477879236535965792955375294940783331261024196035745332120459664291940495263907903671031237769963227269090918046601055409509300548108503233393075065753916407594640587385867878215786958376620706934113578721260538897932173220434686238562075397584333794777397452675052933450721473173328874830513360467643318235687932843052964979629036383748967718976215956910193320569532935957084825586095775088353035854920758401112591154591404610882258991807559159128547205192116194793744666931715402156148986069198530561136596986306607065106009213334687377398271558872315099968375126484100720413863288723945954702077063369568311185026130117749147614255934731804929167580353331617629721357890204169601480103580512605347018751429424413809702746752141276323770254784416051978813764820214642246867230619378113762581656914508184672628993616419600673689799143749731625318687133824336144673493129664595945372660355387065493508105914483468670613146162783333328376048990964312254901213558779251762258973810471943289710838482480306510920167558173388779512366649373739043275943298446566205938216276887125944036919181044078050473583250774805384298408281567864265894201423978344030407183064254480523103092917441301477496796195889488692700680257853258224414008070435067942669814010310142128886100483223885316178938494615054753816919566327646778703069184815367114113486184732197148503850226189675697065367263439744900402459429656272305483542418343618508165532285744548664577837658661952714905697138986113674216639011452051991346918641017302299696306789606989668336333477433681744727980597172745041343168177312013101595200841664963873100631990195267033068023471835365575578188781120386942747676326466694718263173405374741008229465334294810936015978824848378018629621440089956989605348150847363494922657113105025521107295473741847429147348702674044545471448997211683041826164485148211997859688167046263328655987693481292461934032237385874188325158748836898726435665965771421902748502422513465766020420069229261263525190697652731709499488150665275401447078718254907565529707447641371441226261779569948890987934898973472187235761400557136611808637305737493893993651665444870637568590910414491337971611504912190723592536833269146796823638897468003557615671568882874531999695872974035399372260787289963569358602027279022601060211236113723886913531578758931862634051054905217090247158361000337002472586830130777791092623429475789079799717721887191328527179469253549963821671288459867148713909970638811106739546350419802503120137663225079705095201935039544438845296892206164010011299724037826673346582205688685908862987650855943682463129387879435375835647223260889309227044280078276418754518075750533768973086479753708263353401919028346453585022167914963310403371605744502575298700275063432512326525962682914082101776085811829272162747431466465376232022943295488469727512893166889254428248755383814213335937664681319427517813042227162294424257578785728735905367155048631075874974949755326940231938660677671412431015812299155560653183706878412225845656678796591457158172107018034663375892909232692881031804356321571984675158013425444413483162530879111142316643986698129990584036200434512423559962415633464503974624521380350294879679306543521757056571482797164244680657733608236368926001447516045102111555368983647854331298314028044289410919594085326542528197968860436960753954604724859963362257436028093761973659005991483976531475365594022218426518581630018196244434030088579199186911791900800159162490966351742083024669212927569273736549993082056664121877340361542155817495999395342865450827130570795135222725064424245810241426559764191546060537174311447710202797510067994025247768341730339428549089638680767887322271690895815412126558053776850708655635476849531373361041101190823657879645597571446983933614736666843142535238332469046002422427089894648481219640672352649707353040217274290747296907619063962291786088657667648674122332357694694375871386541654928912343007872399431721425025285102455245610759116395275091170293497925062173076072536013417894287708722702835527720267030861003179404392524917766650138016392094812953790747003892377433477491588141120660368190407536943786218656466391860808954070620377444162015434441131833064111364253931206499916658215298773393148261815237845253809670730622395059853912378268047436741979940802007187196542554085030499309908350589607202718626113193491288900295899234072221479666305829867593408955915170967707828762076915284587953411369830161247364078490717124023238081533176577202804736117672435714943629608352633846139926657398919046357955847352290006436963103344524930959380086800019010521039163854940557982892827267529104043631181527443077259417698972748927991445691549858158717533553381952811571086508330538362277956402472439059585389155292823833995791971051771094578329551596271586426076726453294817521205891094439700011418083275569040623605759981182546950148497602667558122583702543546558389139884313026770031978744258369759401017648530243335000108431171195020563463338514217250612481230573692738349115726806717601971531755110317966259396327812402409657706885804080551962327620654821914074417833265134689762486324785412424029864730624668864141713409546342364776790570908418563775259149950579926549145263700835076147942699883463560342351923264684675986795658764055366157279705812665298786416186771642714511053962437844975037796916647179029016839124854801243181405040790715688684109239462172575905648782171622061458928610752852237997960684442417971930275789801372523161522739335469966074182795550099058273873356771289164166771552082546315885694417215197568754373921537896367564652093635216941613554724258216532651116078727205448427851065627850609172255927205271087817686477940781466087546997002545588127414880272197566239946791126531832779047440497603868984562892176534638432754798946167224772190752489702183754305632312480409763935173318876687959504331042113842237532685822282299669579554501953969164553506590112905907136013533221913331659363910692490372000086962725217854917548988748135324812344412122424197405542082030575711735889738891045668305792809525413304609916638952312972546700532554622008694994354784569014141061220586219856004013050764040871731620186281583511691594724982379687279531236196497327406196231763642787910801559107589602150292681607529261703028709293390264905152327063412736017518245556199345956195983443552723772685748753319511329978508552844606437976854435830414387861667212157883386842739755844386162793198955590789613876915456421189453323389744507748624397567894545682544992846680154122637647319962444999123230095620708475373948582195326783132883354288893368791644507417109830877286763530900131423644332026554224731379773708561958917138911882049242903375797949089056795467870545455660420638238462994484717890051121286179570775184514423700239110780696051194359403594365804002782278213970561001063864413956418420599512958061076105377296480121353238669363795291842749602346539235265885150233934594916464781637907095875298573647813425757180438383056265446386595217395891283101764798671100032436261600519553621823734463882916821277773939134613345224615475812569628512685661970005117495537998994132375614522773856919663974500652547651838821337604530784104061918498379891172700363793197244886212244203054454748211729802525359431197374207007571131883761409735572201262504452247978737978703343478811480190934735595566607249318475851473484734797436215526646130616284261875771416420461788402740913262638594994171603893149120762431126355599643372620613464630099846200604667673750791132264336526562641826801417075776123206746968943440797923735752437631739080507840993553675068864925545954227681256840064907874391003478829838968785665409399969397422925727373949824003416303396759119597490679946389681831075047516014080402368894629197107144892783227644255735169688876657831622723723866586129713632798825084431035620835912965656699886419891627799196619697415694524433093723142504406576977531996699590822818245654584048147930524076252503021024500837628125376678346819494860268001289043176122530689205153298431276329196592176792348487572911441378787464202220836627390257409080441516856785045929274976531722888905710137257254151501777597785327944514196144256093549782845171831950960356666405104226156017818401823593895894335505636161578971858145898096575087552649289589036419806118889594927838191674274177327639336788622606963453201530287618098885975285005808919257984334153568076672870379291357679389038919331631560509363373731607240401017459101522715867015698350627726953266503979996430580706772341048972359766242271451740747520604497294617254538664007789491965588592400589167964866747238612770776919651598628030771457619324043230957608051264791901425264465118027728153270606631406485511071423615830661132995810148716130861944680882495488095520915762690965241539283725843198435716717914691304758225108933177300799963023325071867384715458119719945165924058617492655287616646987170390352653680112183645721017675860650789624115225234071842389019868982716008953913475342365165303790820090693975909615167845504634650557463145636250950119544959336978167456602540889204112639081385202466804874386247144325938950227191729937281130656363311140550394379930860731874992648687593634585550430681304427279632741299276456562532582896572126156334665046872718849281635067416536125166111815167402877482187601885098778750852725328209816919806781783039303391725182607642794584546937867977248942187151218204992031097805856572551371223798095516616836488879758500042849625927072468500775016784721352035501867069653906712523986362137871534097576148595323410185166476365208629204075968767559821634062871199603535403487552044529245985673015162746118775803768600241230880764309471300730322533697162421371323163290971651603557959161633735630768492085278202846488290352160799399181720294302201580587002223725788130533203467134993535432466508557827119983051849940290504958245262195211544836570448126279520372351600523989323316053313810154904477736123935842793909443305838671459814624099929490547711880541694745705264524160270536782363432515836710248226212547565197271275241385320580046461651549897025943651312695359489505685582300410406465657184295162526589408656038748224153620947269058787123154884078707554032925194726984294270280308273582860709589272244692852882045244073861006787326694726352965963261602294445336919217462666181231544372501152578992293974104830164873632280391604643341259428945186657367162174621703896412957152358656838993217085827687376243895768308203891486922673897521861318638536118764137279985315890735745000487566796119967643495747237006102729089728493842291666800646242012037697799006756390379064548076994244124246831200534162793513576657427003805730661406362317772188032731637773146000861934617776282365214716888338007947976193263507926021314465767337977529476328622409471112640730528476739227692613218727628317915354411346638529224793693637612398615300702725083490270746640289529731439727967487001599679737326951727876858986379269754684948712695697984364054192043022464128281184511086921269921924686616753975466313892452165951107120550692932329098351135687722505383549889760824438321343101860131774699514302782384192589588755483545375956531694383966379273512841050165350847414604703337269096012669050316079671459314883880263194912399640167378237529719011998173192744594238851561256792100052635143836592171008824532114598988255679091095855942943223034222351196113828308595164070841766763854699014488716161273609451842637365830952495686370105698894076963096996625188907108010436078426213854968580750533273526900970087393781686521638648442747310888815812912019245998949926554142528535542557053713466059212254920413429011837297902456794622988237077154471595616688611377091088361431867634966604508282900141729488248292473102595694294453101454699289680601698911005166499106940956654328197443111798533399383219818342148033828679399080307221928612667957279633635694821301621417037026196521347401786637985914593383681951559948000253485055245796128024510277890989772988091326678811366010935291010390500869023228171329597431575811088988669884329035293921680946485197494291806436563253031243481946958043413233115647623837412642667362637148228821815253301460769280663548589117643221687129464064613569481937966543834404032318501143936776718123247856923283791267028482729696506425278949557116970153568205484051854181029641758719247895619759490389923206084315148955242773100761994425627500097381328091056074575188048810490827476096973243565902537944946770354343539964177136313428267079483161974463683979769860271767023928887373530733670670112635916857304850247016510534727879324520104123100517020299900499875958856964261211666938744012854423731490240094545552310407795736298271265478004671888301846203947402996574919477784063448150601694752448353295252021851970877375000993682956815268397426464825014007542803867326826969695358353332201049403823690422994556309775000222776469346387083790658264172180451775254344282292557574570955634265539792628622377062565730934359172197374965220099379395959665755029890711209355818150409307474903655307837130628798823518381977579358996022546712721761161571779010440130578806352777777394715246367518596421084183721855550943271433496510486876560269371879373924325885557830943291179056000360218248559971399835902191534757564287212718673894260764664323581089194168781310935122091704200686594719958300113150073062406041086687093420592076886575513430968963909829889181907379365222867886982473505040120507712749119314892433396623410950282677892275202485148674583573860730655147836029035160961174585768061899581767791270216418073738148506770767344905965587696524548850101966846102275697626534994196514468276646212916749776907906551072030077853495294620444163809594268800258390424651391749855965738322627691817697034864666643284137633983195463798347798085539536124978573876845404655471754790105816084799103514738084583680357352547371828464262916496014322204707065837256796844475260633596482684338768793384010630450790210415942060225681730470511639329335189671143317650518728484132538004995006541513225875334129543811401328820339378143273473096891342150960336819100058355739691463755898840088177408412964363420362267600454755247913400293886017020729793644362776698883368361245974351721048918920763221020587570329465906695507233730309887991239616464829959781234395903601687193399562330391385632529204538340124981347714369279725352859171951121192096498483056053913102128281839578244325780420186141250484996832395688273639025061395220304477455176861500232952405906049493789064260108030298911064619346767124248555514922467619170983971435699682612545572024241118935110720012915691591267569983513776743227061890508764499304979097208667704882829362339596755581347301166418059974756836904112294829168225193265454296916852217059035241995881854788662821125933487965136661227926285155148296309176807239426460456640855953837847621996842066080822639716979407602068532559919715461175545082363169178591774696227959214807093033084569404063150120559868735682190642700947701244134561872374178756501899134466849328124785297923475299928928215243333904495871700152429064343140850291002624630280451847181199734176272243249892134744573144301096507880145415465136684372404938572250383419470861874245313592443564425046209492627792632036087786996623730318901021436548070598115788518254749033030247206173868747605604644261987839594040909328427209914476435584768406657524947735431482710872140686931859008322329343364570617159604691680151011639719792146535887908466711689282808922258788806037053604914020727730137987669304067322839265701777345833037939281564318697978826779322217333828201572088123722266346979095031401185218723534264408722558712437602950281396416174836180687547495130664197532375879354642071170810351991322874025148722973749850636014154609310238781455011259303471175212580318815766532966908350445281259466389282771636210436100710977985392622460803653977523220745950847413745649333053099875477859103055196266395403152662329075690325890540770423061582054941732911649449869493051903518498086883200653459922250297171229831863280144459390759100146580832384780136436072186640431523426393723515291497742007017089957796308916134806412137761327140606047609158572333008827925611291766089181337544448052182990982466133093219623252915893560379204982442598111234417941931021206144050768378972614422517160438246951602140882694340647184157293448601864467294605609377268656669558601639397598211224848503965349351420697515225384735793233411248856341908065970603175950411175202244675752729825104279433038841933081074383864619182578457979310227553858581752970768165311260261204825956385533026277257949282300421241749948348371409335893033888557247057324905882982210188462016655712509685052619943384550853367153596161934114696093435998712564857353377942979370732620898838308319920665524289894596945643197863607811307794571178753916182533970007961911676089345706409150440361876166392604899680919354905041797921627030351217481880349714457661514671291975059412022081499320355547816593424918474890509283401497608647252456199625046973845321880069819327254306781684087456385173786255158011603997319128446019290787438045336875930116407472529671710210211677602732135730313845848175236128914709900413971845333257379623290150696737594797750647989514146501189760256815189837207198050035704774142422122705470234779163480922706379472547745800778501962489270564438244093284351637142728055431872781204018056601644075330274804853421417143012888380890147360753942208099286367855411669713937061929549525778656127553116798193647515311687506222832443562694814045587633214130660053915510887787006650265832896441362098426660982602875242051088469117667676041334136711367551185706241195490062410039042556875790648107474340115058057477607080486797268921220245273858769445187476410603038532010252158936411180000047322111628465838275633260149171076175398738139242932247255353206417842271115025282555111632271223014960093367871207226509170445630853917579231635725534725684984666820769706760861959462465342703782487171996504116375223710970365602329795246328876852960217968520398218500855323186764157822120678152577377699720473884646126297524982169986531371449233854522810125604585519889571961308414096324062625076821552159524820852501548600459216127503234839193008606806124116253537725164527760910805801512031433968541082839801605163474852026947154616391402797537490918149468842159580321586602900913133460788414344908481217202527323864979874068116485427274415449610215617380202199923175793720964183955397308182152673993441307471108905819040424425449552196358586857872089934226996944311395440915753968877515855226520919355201565275219669979328553754340874650515271361700876819113022096540602192703563549554361550825840224010454914789800697193835871371303003850281926733711579184306962787640944161271629956263755175597599708040618003873113224116341725932761004772998664119519968625556698301301203689990810467129293417412944949987941925038521483687083993070326945255389013733198613802838559616196281599691051302749086503728008245365073387724351073424132400122891070724935450150846596474812279307218880109968139754338419932301106250047477576488525644723420264181378122544065158290226245656459591735981705057976334941406714233789861083216011654891153262713947189691933873208419957884176917225010895206700166271659556041987191800312973364307134661676618402737299253547358265456049027690716233906186228745486090463174789009116885732611177927881330839752206099461631691987565951659697717964569240595530177675223090463550561401279769258929692721914515430542156658296118650063522144816752697411811108405213095119229063154492864520156032170689364175518746663096701060140232480640649754383453219492498018540508492652798828339192099025425048598930395430270890717895448726358845741904245579095170498862526381746472014677427000908459302977581647483894860220451042392370418112443417449244001098549568537480282700815576698577929675232207809321615200163544869134810353512690258595744942720688110919940827593884960214656252772121612959583630093541701399205667286389486858862744573263057349147749153472744429361897074696273189177071254065254550236268677661659154083329912476960770050747638004496797650392071651693936556289435611573020274442282846392097517850153113151226815883376754521074082519404057568463995312628307285561152300763381605191613736474213833148078210783507128843902704121634781880588458356208758711134164217385585668694285686683088157682293307058568341756408690438374738614614570347355697864838892388183786379108539338589125240059695148853245503394559080048331011929900444788125097222286041853696805470738039473438872767115810864722837871817054251673717394769356577324131531664634097929263790212465321834717507697327955531584476952082512773851440500062671627092151522406264806634496371457279454972188473131318277349088375131564275357216952492542534790769845278428444874544409940190182942602868085589109359419525924665794495148985762511782669279943888133211484905025119818392878515631242447330700623560337769256648631578010414506410437807576063538182041366773481430986443685929932286534393403389229462090256969550100601724158200021709765674092761288079130313270069180671901234819547913304464068064003924774988629813900102582001523149770640184828575940989192830329057785199651010945399833918379202219644042454704445372924013890966663085137510247899369865090281303653652121486238943033030658432622640989961348993838624030346323969506144522400975080797792028200829207742694956365818267140450021441521603415097353375726880157017297067928837342836595907497416812312914461132333818462070408983464399112289612603992222271374598153235665435111212920792516555441585804412594176085870220833584147103293742499591594664528511679759626240214628219753373417229537406762857379227492183581335225567233406673640811008740560066102764589709973669402928409016815425247725743230330300115107473975154763058178870634027813659081575317655756172207156244158767640638143869135767673650706429674373071947880376960110326182331960741938586688808880306178792155095129023296270491773562975424388856232018468900315214891225763246925866188296948563117122588935258104201343413977172146504748173383583299809815682918912050965168532236202210114877514889507671960339410015196203447961474792982384264119285045714654845963517396342146767128112541893066656623678910862776979267410741933781023478077721335448210670246508258115375876807730030725424828043355557250568928886113520817910864584002239818253322631658817370273438698874101354290491764492663364635590071723332058523273910707930895978958900895559051783863362035743507314924899255609211317826909887137382892459939159715630273228719043872938349685791525495154362769493123030305038963345742463595233404732478953482109618858002833098032826013940770434922801249522054443524377972287005805765648797924160226630938203450358174431740750601792779268104240887386189820936059963104442335848864813718687881559865366941193758411947916198868187268981207914529759331235430771667625727080612878245071950595097433384196616099197485748548267689847679321497029409093858479367774045892524235468680482011048231506869297837068721131860493508165810260765735303423077915720142159023427278322265788766590626963801492252446405379804150332024346334580928651735053379723602935365399213141231540499371757160578913751943771858341485245537458487244505416901672563171047614650612944482182829735122299003840796343961599245634979681444110754220832444345093217716870392549051847951029601672184940684308084693038461786036163123967989355561293954634748809725555057781004529399748937225599013565267651027472000427237163198299867492741503545806121763341826953020338775734786089166285375439592742311985694220616129271700058956313472448855328817410188457446962691006512458818830060305902910979523589313662185721108535597880158425044907736569721617949577052768495542399389300146873762994873711418194698066479745395967687317380173858914227537013546681279573319702594634075638827604419753585987037120858865173239594471365529614387497015860291429379013428406712739138678231055448344954537724936954049056135902874628868971053527014670697199238860054006639496091473984795936664280825208675407930629946258175321763027578615384853570711062678440161639714421151748440876986737240484035079651179750471442573758180929078289425334781637028704511563771983189309748570165971154101625395447177483045240882408185388101737194411367096971088606295433617134531018259326252180638076386373745328888009717859581780240445948809851652418482194096933483675810665649036496950291026883993460379079205980651060603593399779097725379610167847108830174409177476620315443315420115935390337987110760405086061594691744528437917894048908033375051979070528395185047160748096705053055409849637056200610561127418611033977399000633685304773687070945549594848832863186180616116446133757952429110761291737451915258589856418525762220208296680197523331802940798674839005258856158156460048895233428129007618206173652675939484137938894376722614662127726936328546808527678653668487184489798327784946226356501047881453692538867105570550794257082624784432944816866216711528688611303381648862505471580135026196697844639676624134980590488348092600578361896942878534926388122240342877102365477749493335584926319169695703735532632170195755546581786606077118777083203507285468722214512818320484279201008991347791561646855815601669245724623730658462810195609158980971801695053173450875212481545583561898505318679416028404459828745355287573171891813624008682218350010648215184048272427223225862906192934335279018515518887055824794360577786263655497785158120195007502307762262079317926197727230929252837045481005112164297122760368783179519727228718789582335718730919911966829753256205571821259698391291861786799716526871852153591554676784323378025924251929346308871573407311176582526534686019366840418607603587299208235987349801392401565881092279009494677484610082387553491678908217636767245450900055762048083762594080885242483169227105476193835246036111964510332069618950337571166543284835215054043895325160912639872773409033426018414338520351838576335451065128876936531308870774054820142313660147256232980054477194915550946191063253017243305123712160156673463782846087436008756979417914895583484039400837080028461951500223182247194712322290272478566805706462996819835565939056454726380354553800906347217407102386774122164229606221342189909083160466389680050185865414651628937064575142995511451284066335998628347345580043253430543038403082665994857571982620277582443890418920319312882145180829085519152379710496070936100457949600778071872765185317625922870203765891277545560033369323482772486559563439732930980927763634971556903405787342052361800776228064928265408865730426380738963371406436391998852967225485537000809524729023611895832174495144013641598059202039792611548791378307360849201127555911938658316611393482463323198068129852529686046921559864323670350304888771075283812472601471063857760164899765638050335196682768131995159731665608547908231190950160381594449316081433046154199680702056698960765788941907110699248664186826874025475518298608166425727636838798967135088578112935468806692305828684423793380771350413042382216432456454114476655953330476302620186218180796285035811331483703719070036210179440538200255800577153488210285150002608616735722350644816313735201581479247237443722583498078613862285403504341097758281169103173524994007668816708784186626905863816656249223692367404769652277384776193009694423535190123864666496480916693374668256991988126623458034454983824936691879807023033207216634376696761613092086362497934044854658423642882713449403464527024889299340938615736960835219486951834355220461282651306433223303431824886904181340981487716124427659427525276351281128510067882817858053553571603492723418379881424901597850120203627289779958754352025281255534754635081806167577458108625540575075384293523805218761187528324856464124746064006272110425730623821739929756125156284133128862862722767503482990999617694656648142396542017784109595746114817086057767701073559931206339679070650637819230827195452070377698106054030469302297183977821348280948194105305005633043767330519838814449175890941032064016842420999344311068307295627149810756625723195451080593471975369636788612198443776131546639018607382542194755308256215215553861474471071580723017166937585441556565268857821257978870507719251241411251729342091511528379465006012415225268739686174798512188643676853196195416373188058621403491742890375038083264144423753800766694389057161309704156552620080830722831367345100090844247864387347621027894183105207798968553839611218786509431326662975586069963299001322056107597646834388043178733357670278212098987864597527339921900917332818033134972875009105947424390083019796912780420648396776716950848791572063333456100760511532649982013619516580856435353649947957872194155555173493385595348684914937448349140610639352190150077625346499351835126969498952493317411002024659812328728481013084000976278130684961043273548068945852931155006894758538071714994387904140032461854043720028193793081106751111326685618542031651439540737902288632410558554666118996324731346769293818495392612463935167802275599063958255804577832425127213939696546164101620404870589562871125469681697602223911998002125331249473928106129642566316251991252043159214703524437426478514031204834376907955560056695064024822668382752534961327112161938042022085961855953669902267223618090817218178534784117373885238259891121160727543617716398064222698133637395755709169372983696416074933059478092147143812260172867978929950199506808881868488817652259519446805459013853235007438616476765414492431703094631560814975021993811351968674300703827372152276110978596435038146145555643895236718090672342515894511032879039060996013534539389078891815410187544163059698821003631490849350945395911267953886320013790883705099597012949801189067767961471801057741043989151124857371729063591322145279543917596536177668505844247495918051673982937859997177269271544410499003759917306332381859163739787738840818697743575956302315136457781462264970884868586613667534630135045794169101041007949857815941503059984244442568109905018526155526633246561028425822972912221519588299609535510190871431983589351328221292543065517561588613291408621426923845593342440650237838277444832133075721851996937411318778317611250145371107954022759969667976309879813114736305675812488094605175143213533151799481102945111728482555839159512719219944294569718629543038674075888677769727088609271080099601028147796566664678453375796198662820546812921446852531707361692453373543042990775531570637673867495451001764366821051622360082734097208133642218492694369756210619866929554724278747841508825811700935084904562182487755524818636787699496357375130661047487007350429815056274279205341030299099969708443693871775618058584043196330886236964806466950695466222720455904748513516638552183664272213636191937171882693320711795157333851152210674870472207622678943009025014206903681919276594508285722866303882684374005444546512206562392274250391130053142857512146222782945314418936131811577411115203121351690576109493211413956562892480548571778434293270674405417927058756876024141765708153019970792838502938124302390957525909598711392273049209753045488478890749856192432603667199169273384813721802167845946213656311720883106868241219919123001668392976183638386345809049321145448625994328885717184815136026197361593868276056007973571244449921989671776632890834658230574951145260962038739650348916114755701477097945123948076461650198787095496900675269627223015768154125561472862473023867613295245808670820853628066407956628342190700109240152158109252345757595562059124124227278322376650814508493801654557184333094008422801189791189304382163098298587979966204999911997426917113604840956129698676394658926517858535208196013002347850450955530894705311985895140372743281399515481536736287659403895102242575126675232452440961350018514678658921506762429952638514076810886268842861067720988692944286141394046401164013163106514448295560463674087927498620801411559598242199230818169741892699143641724361044070481330864427135863216146850123620426165299795415482609727772615537153136688722664679300321158139110374188248759807138658000137435284720331085926423488594547335470188334488040324583411691006749339186710286558753011206923222153762146533620695349093474304163217335271929207536877246289682249211742367631381029598311764214404433415065643426447975693111243137732916191406596358967804462723103405984725875329372034744666600070680071424507398495905503291963384907996902293512011456210831886625303878481013142048451139424167538451458455648257293429879914040690832366072487850618277778687497664127852175689936953721653214490674886836221008789526113153955907177424322715122172332049010476932497341516149873808901441831733804883200090337202313759286097645586691939197662648091565521348518286552548671265637848676121091523635195910360989738187145298067104070454233380652688534284704998100664157729393611512641596619178357707309405333481949084139964739444023312219826842451925523654281444913937556672144194186343412585036807818660268887246624537609089352966474040935015891977363080049577657759400121942445797761378290107573748027056362633561509440812743114037329629744484624881365951405223163739367409946921785636959877560101289726701854264891440399402516920093067504667052359571626437931778032724804553158106584907979813701949595219795887019988022733203898560913253307143553393091234973512522120610386330358694612485717144516494408158735044086661448366702721749176349829364444373990629751475871937741788613473891684798171750513016433398663104794119336899956904097747343025473524924565575314505106379418425516436411968078798902829005529611116135492028132355251862907740374177336054164553144109674142469940352960000691684444434133124475730804905390688416262065541124142313721188394902294215236760690563182064854869579338927856937192565410087411517056720146580846578932336130087627941821205414942649633233360407032016041911809306298638264751126878174424299825069987726563329597018506835169875207300694739060908551504237382470131225788533475340701987586304175528147935510130234960645912128155160596618864787177894309360813710686625316937122854254784430224367475818673219258965768922110453514352020667083807598594124297320941351261260211519971307998081427616238315497623266383710885421323005280548043069436176809189318980226961822939502046580607200160086058213993202612006306543354381057192102923474226911905369563241897274115944212037632870198470406302405950728174796387475329784193852926182504535201656679223730184846775840188965232288620918019273169474345809380749178828486840714323789237550842669694218912292450259918842843177612618754666031372006655331260085614239301008059409249545809223815102009642594620295186697053985488640817078591318235651998268138697456878004529732933777874052667070016592872554429722315324792899439491335122218329989467711517502653890945767013621602917603402962273299267547336046433586229467127887553307353118873164346697258532677826889418961299031204067161239458566472458921564468057225581346591990393140736122097337283972193293058412265016985566141458862487011513122335203368491757199345201028873171037530300635999073200236638844774425200055841629159296495046910933166926048453774483912960435933422199407728662991757103313401586124184022752775706726257282893012567694027260410209454356018215765816335350767662416636246463297118066417495888332057837314974224068962282136561461545617724684007699609604539862491653844830821082718787848522937497965535271407517059325533071538689524666109714541455918201587863959138786086659330441325094085783282008331286668777886048907595704623422711175097632714783523468319119397124480678476170766204073835856437966624341531452759387903671726701476605994333225528085257120938683192757811801996292053025621151879366812686658306906067785400533256717049379276360061462541909195180139460907819680212199223022957382047525833852889017768570881761589520397043762920066293383021835417986418451193466754934560055790429182812125357324865843512737268322843280570848545605368423109936719620685253564945795227001989364671465112428974771298824699439020375181289637616784247807101012240953089201463378628659387958610462546579573194979381011578361521528586938219026176116596268865511845029656598125373534697614987833022327208069551880533904692288825495806606551143969303737185063322273890753386343103770106654895641262968408022666111593662999214631662801335562266018231362425780283714693077385763509803275226787703844461675112298016034494958119321326882003146727427957667926044554034091398153366292032361514668678238238396380992280439179020322724107291940363617971609235835801820226143162421575016007775132896981643920416534003528260850926510101427865471945372098057793388852474158199572895377808509380465353372272798457732184245957576529853320832525589766627343618319951191845709194439685618456448972872171416109509631486659943928525669996677984236765249493199133082894877698943956595735212740673901381657868753935692577199710056281549306618660237170156432048652949652628372743099627696866703542443220513965849063464144740602797886529545768388075725110990160040672108435842673173879677236699191768231634570776834870725469450478176167938837039890609308168362241784239991261799838765207592855804259139323906610430588094396124132513190651920691899615718988315451438732746643311555221562908489330375500684763751549071968523514495382427459299586523885579837008103744653632935614160224616189260891407432565575112639340075937042326699071948284528522406647973647980779622670920025471192871803327865385266619907286912832705096317992462537196357939554814778675040879522451592500969479386760359185441831632965794766892806409917679787134717418839411174174808008466261085805119027485625131447484548946232987369738345681770385318678963448497846215109770652946523566128817924547126776301488369018739476185509858871313212622158865426533442592866003266235013931536889646756150696773845032546043344917475669780202670629531514133801987434259313377180149404787756766543149893319692659774016545476252724350215437536784148017514867606949597712176833599650845509808725186268579839717574169288991369726650338433995234830167546571622652393781200403312921831172346279469578603822273072901315513920506059461978408800762619117082450748993615351470356896803104128210803710647353720696612305555760674833447977518369450687477082432722287001926876970865883835224000831177226297663939588869251928557129250240742342680669108015671624144082691407112297472385440811604790413448334378488947101342278778636239533822387806581646522662562813061880048198679125308668921618127209638947814268344060623028703613247918335742541404090872911780179522212798997776839800752211941868028042571199542011073015497448726927326496335578901717816407526001246230938632647793191619864444353962363051981643308358819729309860304991221407540854229261957895402842703664020542764711277905552694154660558269325947398528851678653293489933085311015285384414170188899217517340897339658392104531903569614651538177691418411666465960342427067648581298426303314751180859147655385160857817204721808803755841712202595845134366632794535525171772592446883159360368345262900416994747380355473862470891452371271924686150223244669706163854461519487034691001797205801488873644357738601311302348971707249511623590382621546359198085300118990574563663091360569678927982205326978369386082785571977355218027175916002764976653876693942914141079079351032609218039807960204193691338622033336974918682729792543061920365609558712508053409261018827055095370000642408930296191084785508033398949857811620511829529910638865206944759705040478243433890559832589523142109863051292291671552858476722017007981607292891527088506768900866491896577173521880279857443396475465474109527719632359792791596985978393328569982803395747871071836486955556204307212194824899027293480491165665894957334337633020918091430987954624057583028113180207078523022166407416895847650785471638905495320109261084219001138712221255339843912130019943204602162554766150525317742860413399699899304247415622793173186440636409645983251095021173323037924932109591935485388927402333767689878127315908325806641385174716329527926145809143939210876416509128195808106018052986999258722073309817905359179904180684558388616926649052838045534456501669565617746126928609967440463466048260809781437753965087786157459088003923746953884028689839499051187270960605063296716757706899164001037676058933981459576125436233650506220277975437072302240806288289592197240928972474154228160799074205415001606911402367083427267576977027487675338786659382698443528440720830861248773921415725604477107973944176632787520154212799016491744300381442374086731531368825063430060104454062769833818764058711279193425944940416238951536245014222143066477720343814765342627806469710123531569410553482434594796247171920114181104652267815348297596476426689801481121492584782227694500969953979830608404861435546736221114184068421274189618752406093687662200527230037683230908064878664808255566107796877363572439790336922967142847840398366112606284671060808527549199156068220713320842125508128827943032521513347722639625685378028876892636178641048792995416288307154625442506803628756932018757145670427294668646072991350949040840499301242486909891120510729065318138247065927983759030293661154087541617042411223627065902081985908192196119963072121614349032165144808904553310931273651770699360110905853420407011556200130494706446010489328394792800286957007253288876971075151944293667888136642542543897700211377384705038905438958627587633475667263059442353972965148716607610952411752639167637884999972356844647521207603192182605424869044028256059432262814920566029250142157374599408157088340181989392052252978395247668671008804448381837525140309331828723013134000457822997286821012135192505232648185899296123955042363176899790804824005795689617187222847614725607705878264153931933891631146379942140993971818957242983899915650002713981706209070268849502567442046191722455664658042410266910649233888386184974234591818645234956257851102325853992495293467904111430270844407514644602612387304594246947862995076237283221519579651870213858450468800857792931523546030392554524082044249872670246818596029672314859207618339737580652826142827401246419739262718449062710561903221917656328028685896475869280624366561605920689327477250017460572293938979658822783187866827097968333692152017401910462276284382397961320808058825767386178957021714001789916456608145217813168254302759902221674569070219174847060901830062574083584207188729553702118303953681545231097479040269641196286495040558150528506435259671231376573353553301199501795657431510967634978115588147504684923222094210052366237175787532878563288104772776894235983170507165816188765562020614350820564443504839059373079800812422127071501400625099734284035229244285920013928925715500859218675873387030484064359107072426216965142530764929112817499369760258996571623527496212324685694809716992565746077399826583549196804329017568724366676467796993987716774301787881360682828955077843341612463502932779349617144718510284066105457945659544061867767802684880689879973120300943184105635154200033174434413991694929548608480614507138882505764590460648872694966638593853173198723025626408438484156969650092652408061509133731934861021168306167994661881018460899867122588667870291510506258193078667881735915250425764504859015299660456907716377917768214235469955163439769304201719571834667599412482635499164976422266149501968762193262682997564508451519243975839665696091903389401702466338390230543159303390976528179786435231464559089006574890163330774703259127654759747159931956919707336591401147026732053294739797079841036126320619179886391692566991419568689827874653192766059116318836756018649042344956732468419773105680793479126848238089140525669410807688816401051159638656624732562270514045490839755725197839758277912378791597342476174667455025575401367463818295732757349820119823686988537175709968122656958810033829622884559948330463239921182310107407804905662011452313212470704314582168146041428528398846054305011575884703313183619601756077944795589538844391241222616141465029902567594807027688757997938086939889849595738683163056812346848106129403927861482071294751779002281344170965970975455166165669913455252630048495353385346659325821482106731447641280449277304383634013007531851161645085601646260052785115999622630688190139339068125809797403609353908815127095586728329537269934996726151938656954002373789396508518778320372757901567610632099960058213232560030567621313601876429933295788635108020140651454327275288310370599618216265920505188799744160924802429221044967413774571654823393453564443152894257163232516417034161753081359433861696243780403035847446157411077733592676617244180214804091132721911847691811918203843445229999105294463048057311290883166808636292933927976836009150310422189256355457707400705807516303638619861202716366576954668994959448579954469658625394572964775273299442884190686682047530437561324590026682024076008169721992487797050924191295714544337041305232863902097620898173723852084640759962465795120591419866324834913103059354626696756933380510356920650782889567667191778613691304231487738906979474137034573283885034721187350938566057301759485358003686165935993815926272843129228329437989132951795650671156345709821346709496538207721472252877905615125715270342631742284690222211825729045389677717026770263454064995746050557412935245342996230118167774721538582820946046263928819537403788336715103761244710752392520375849243586090762825629645285120890002602770785658433047962973985320044766748943832340535193952010529964745405142256122716842875159811730788085658257095850681442482705349128358672189101966556722893655382475611067698844689412873525117065580420098727450758576766926643288490276290525524468076867544146483620614604331696400664268434430299384255483848529015269619265520888821570904358154250714790126713664556066263091151523233054238804986714307604293454071304679383531051109652213827651542136680622353429579531519446080556643416083322459396135100444344481766409301452228423364384523344184488162621444879482310669545574568611326642559833491957456482716005944346490839870998619826781818545559941539988167835346089658142528903165569519765266227268321230516955084852102481227293602811273920184015956032727624458669904917813730779655338493669913904627836736614599687744870930495004156178191897002118084286598474181639775568281464303101153419285907974878428788271571673390604767235466121476176907561677575616749707369871516335585335488042844784689049701248399380396443151241517506956719790979333332654369334122333463948404172107566744315300006330022175144398105154372051048702472450422225316614873598725757569430595989516022638762290503296229388846525824791277617992841588984475513872871429430617925493098953091442397970538714319470642986068322191529972362476407366561694872433070337667947773732130631038323448894583878928971087174745809755396886834436921571246242578761732006440060964875014819180132056295312386551321071501440748877286442902267839673380870288734056911212911957087833552081460149113549714855025029454142209148963822202737766860194632241550669103820035167749925911749881905658469896363275590813094274378979382411771158475612069814325788234064508745348257884166206314106365510799644840614735345185288912655084155050019830055554364488959868066405715487753577408087890478150288258893131887104053851758663886214988316412873118305842829009255446230313980525319731543943388187438314116260190363182189849856097901123664797314059789319280948816744952242492046653911865488102702649419813633573614227002114052635552394427043651186554085661005287727961325236520119851584542664081419083989902480966058430639451073061104899822010951209282396358150506908680768830853036559047396210375353408342029803065608748023595016903477536453452629497978040258239697349444654277052392453428275195943786412492395451025103400990446301114350752055385761418894319487451477323572369303483970623422921670536289334259479855929057375661915086204316055918916141027353794279179140645867336796499921515462808373311808020433707276795052801413515565981128412862524365733276517246382382268470990920164828041571679944914578963332830452033852182553049863289050851583151309864128006891209147278089805896784951243588107390264605407201438591251909875525770094375074653415246048047694608317648029113640131799528400166508387915109567996824435258034365632672615706394166201066963612044939392173810598796861875243326545434785592738844616407896229187676714671164911738363402490078491402788158668500211295255883335549165390716219968155215484818974692234614679948002677115496014750444823980178637350881779671351931188476340682358537854740609481310829986742686675999258962043076618486339003078543556279322020613893262124950580793118830150811269942576282336872318586154449005819165798882541817105279679946752581890334032820494904407534046369406239014989347750728970271004974054789744831001340280340680181754078694173456277744555381809394965191174954967115702368182761518521405702898876624865942766946464768420502728178722190323183359196407209717189546253946929557774398863834613746730330637542717362005979107114899281612772745349048633088897569836061317508604855494151480593076873379925241200565150202092470527675978742406045676569587208464746742069263092847605506022396811781919899946137878164780602962238349365861258360797312360174218348451949809939701828535255479736763127989951129814553153503188687568752228847064408770938911948570573614780412357757295705629452998398459863578598307495550939615084632719807085695841280023736199876584057118859735390590704601363363637300576262137294262664992453960369809175547801574368443447755186380178087343157730246629679287324473378204811322301576072254523735995752666082084980327655622268171788619629209074558304554550600438950437388206811176453800168192497425547667371279768534969866408806828372118263269148929305173956671743003373767334292515214422898131984936989489339825374357389765679905799695415989054607050197375000990822263513611017317572304205087275017024135497121638954885587838743936525082976871651402292495186198466945211027852099092643769171354822492742010206474688079858818698774067341528720867087868042726617842016225093980923246641086135685632230836353548257815559261496968418502894281415086010122005067962625995165825992106533942398400164214346219795028508444500527501984418129333959078536095540592434160003468778491448774748065394389417121730264800497590979749857320412366043084379177645298633757622033856634143892781272285680444964384713954293549702089273649976507613772222785560230833837799691002114238300087411209560578325551537759444531061172353748626031364648007287628094324082511006404839702256668451621061553036961759116460476797403024041069140069582145331879799014270115318309030547437059019558800348376972221531379317118252439033345929421888682902740411301137354881512200891156963572625468018197606874276955028187401509249881074246364804010347307721016457923594056025662692089966452295271885736400286361334238993997459490036697451748915366092783911287068904032206891024342689410207722408104482874292994919197769642401059559107253721654082990818197418053393932906919733862709866233186358553198040457360777961404017660093365740039972948644305071076981807611795534999246091359882657530421625717883621070972627420012555909244232258527713391459687344816711872267678145014156717990893163141244851637003684006883557051511743268370435139736175049464349367696499494903293023543633393833817815413568448582777545006357503755883447140782828878991320764812898186759060029653767820106675145915369305462901656468837335629532856130682194926491147913336166377963036303627664603373538557060120502185218303362589241463704649819992081501939044787435054527996897387199237649211305800584941267167998609820557708368012386382726189421857508113355032531716466254123481690307296095507802998437075468172199839305411880198344014001264007500540565851240227064430793961495034187354783678726000253669269260736370700827467500171562464899209163297786539403995924231832937527683000211638488156051366299260369363482689233327005685320086516249410325641729749390276850104424417588958058420241601759213024482446356985075858866140854248432485643779696632722900375457679799546292528129724107643194123392456404647893632694565295831792382847506260067504964511514045148821300853948219676799360341300457362586085347492978657979628216529863720915183172329540996711887867448216294930135928580838820379162836083904150114812482364101374545725010841366795866998923376504237402643825602880239197749488182316822733207497822951568668973202693276376433758196684906318816768005808147541069316635660097243354413857292272002482350804823590873907311688947815578528045729063343267344669347433508902028629906438289967623687500212109697710183160010769238970285786121530474479944110164099765420991341078666006043877150108120758240315559220707499526345257082340427284453385588365406520702244545009384200584923687388284391024769744920201313266448692666397165051479855379800796377574936145777625882141125709139888138020163039267477714129760715731564674409244571179057530736103432992311436468069165280806469268571674287291578250828047285540259802425585874104054458961091316644313806834214028103683908015344901166190918817495607212405382935854185687255709523148792345045411642048067697487539951489313517101421354937393849999694864357082520147638641090325864665576520587220804111538398738250461871473084186204490342134195540511236210408568748430022250056869631520473835489383632893256233916599091422744503123576435431382292880121606925965677512786673823034817227269782357825322950292735044852739908192786465310176221443992298124367081154731113420085352306919600635941682126556253112087618824282179287791557204747296020509275910807716548448815782775110405997958112701007664715256188199098407894495239173534598453504174774140390954915521457396444384829593186589842807206643803393694430650370569175763393710339336348336883972101426072432849066128360664213231972836287540821999500231788313436667413407011695902096664153049868495783335828536120732883536585603982399761910228901930469531102995654613446970684835903974371401354515288114132946311979674699656325944182338578055350711248416557128085180087604194534671670713665485747209717965579174641363892392824247625194888663087455606795851056798555293573618084309166620428420943044486802253330919398226876990592133543643031668507110759135738356335729527755341463195665451533632419687458587329893548812223519795801920524004059862906634550145276548219156335205921422307728631381803682338492321167690079274884116398268853606836125592502764046566107039250831932634164017436265420821440058785028341124221852325651850224355483891506662567049254423069904562195124872099733245953925249203208868921539189675152932392420918336487578852817250154515364293999003563180138472112797580765941328902592594264401326006648092004904411077355543902571455853865172791278606396046076369752733244765977465985460263223748613400419151340077171958279459665194970954037774089276040937297806992443445549549098067377982794070394873546392055166874620271563959185710249429401212503023269359065054550311341480455755948248695349109582271985570235265881580635694616826158020988502862577069381996641174912986326929390148284046999351440022204778690695846044973441428038143647643520198966716979820617772468295729898846687003561265973948779667874231103904270147924604761009973678300705703764130144042584278633888712474347577104876594189255633732682154376594697245719178906853664841974256973373654082733832314756287536642519650313385173204878277119031599209697885881953509889948787464702309102727100983044937774293693540184860253499323826549608336168832242333692437215227684685672492081558096832702253757798675930960510370016727442101121046799945077716381273666501200114270295874938347534820257154984378734661647464188383115029015129661136376373784795664913238703079540078649867244729391828905192309689878533995929466697343413620219811773024335792361973022924297818797083942740205186614939151404270499525787438349121079437597815574065532196305635982837373448036890436865527816332610006767701249106849256769821975108999445794788354801659536635427810134310129857445764908130365503474178729468357467289904707117836419719991611392535660922611184817108160827445050115526583866108872096051519287675005423773021798215552502505602028346457102651921235096196569250174537909754341870586559022865963754246155429691852281633684507766818511427623776278852732487828360199682154946177123553323581183955371634051608076835598794427545207413659939986620410619580271383268125235068952294404741118853789257183964190007608745036499676429366456144450651961878577111265927341113718459181236216739362357340415243934120672181536830246382180743314224325429427442257521755978666395309993728357788723680184548595445870531914009436418111996819053929338711055630317999478862783065870516708359649418432019599139031780408716465394481504390933134046083166805120681057507549227862848658254336693713424148350498552194138777545977120325444946379369397033303305906479357204892365814552965859824461130158600498273301437655074286397704628244437515468431328459469316836217450412078853175407120661002637482605099757399063374521684494228418623223755938108606587842124137838671113567911774983346939776894487503880945683844908637656350091524287152103636628455547094447415271466295105731500145258876872071655604727910525232950268827014244214805484219595785572724751814359805785368377645580900506826720004224444155841819336546301915515103436262144064855549460912629629017310075686407142909331977903678924899963526025077313666043071377020606882399192496410512633913063928112026871389631655514322043585120787622679341344068480957909476954675705725451977094071824683017674246605389449503438713479053752809608830061731943825501723894653718520947493934328215771918916372364916090144795051834820007894509971046872087210111603407091261922182461564455492992249525951662841082103810663783235517050510556697937518449522849360757516807981869629872596638026179386654563270117428268102178636419626193736164223391417399554286252838541347898541749714735750338892695775433809810495541497707884274929698117330601476061929491990089080139178295039570937527690413880153036601065509299619351156314256020845867368948105642987828762236576192858394796592846949262004140542924021828989898186113431101572324299189682999194693099858006751733351203348470969546843700034252597646338776830733063860962254439903612653141235729121713164744814595194655838499478239424625020625466730518353014655539485529343011845674892999857099307890783818249069005779476964514629566655638614747314929888551175865682399699759651961605121247425847485657011122009477682069025841941109028763003345992645568073495130360766254905054477456997147984770123440417749418572218642376197340599199036022781229073218831300016760359540862570307866033319827055723179909789459024383436235728652444846043482275427428961080754054050955750214899223583146226116714628593288046913425498450965522625750998482217077959604773672358643334046718557900619129986091653487628364292071832146627842596967055508579050910550997566672618349103091183282449789558791660461290500216041796913284035109576936790235303089967710533715311993895167207515256862129341197612843575958701465456956660805323981563026178207598553255285721837109088632021275501120396493038869272113629310810015698394788040466464613834211287307408696202907512815696985811726179787521301493425766375540002565790696987417607968966281885231280175963850216402821967289621637698841070698497305208164319440759140691496098890587619618107626383730141111968046627033594140556093768233914710357145181101018674280426498601836817879874466601101046599523891233760056757864753961697642526019128938959704797339432426398756339350422634686780643590005502497346117919699008959258334467888099244502877183945597629579631739209086950495843690427018766342209045907661613331107594437299427964187891616726910372921478041746559188510709438605888340382389396391583417657326638913545407082744462812373376472568180468290105171778526151123540962573337796255919564718597145336022376735404406132719320600861508220978782852776042095950329472736196036184901678475951330793532454391127603095400702820326140470592293714579348697924848640878789785196263606158565863282835965769508153456485743944912026829489692516834514348075641057750011376182133220420653741614084049959617781134675811387375054979271228309816721979617857564028792377103138596598998410809489416134649350649232567294332482259751819652833255422524964266018821413746555726751279356113219750904385822039939656903885963146647685260263865464026585155729904049004044593360145414571696452777213601020851565065898465874742667279271860389194608775407031944568851433372075877506358970845961583303522909658607565500009405094567298099188740678635402770139744633744222224297451282763032998626448497440227233938488271665972612966517674550935710405267011326421384759717882446842222914304906202829893904534648916500562881094991759883115756934571758588442667848983584420386236949435257086134104732719879076381336298388276587516658999314374363966505496758833805694269542183034422708155842250254519851527103987494338970538245374424646628358109574996273930345990919927136796079487687811369638791960096939770953543311650050621591981520859121224066397832240752309924977641779809083642364764449801186695712266635732180877074694356780628338589080040643341837043993221782959412805493057933907444525028990068450196281589543265768729642088156306232451876360444992760343665539401158168404804230760297840042194026312537658571989847808784182341742536925229064224259640473452343566756755405379131180954672021423111650295897373156502184613563078600615794288544766252817666342793014146854901069714841324785531449973740328197187898445702759079678184095155035068548568157756210932451343152156202619936999330791679938858329476477247956527487248235670601542471501563639980991448585579720371515572564926210808621891482015872242980417663420028153444359882119497101155528984089397753076162192487718290005990990073457591841665385136115893120857078673577226883174879635985061862073825793141618889163888391211500805611917719576814517625480173580915621967867493457374450137221356108406020305443720194070110327008286466272822747238592901030998159428803956559492668233147157902265474315268766857112853071357200271643887677846009150436106732684975935595254651193635260414870513175773697263753803284733938557557194800347876654057047372222527533106734492265137178444074505353320539768202528345972703903249682625799921584926138807097108916599311803184204356978785951824079199997412429735194100397205389512918381524248402284001324358646448488040971371801676106615428801815628373728041643820618911885214262104274893318260549302538821600831473156117279091458843622406439923877082961882121710483119761127415384890375964297113979466797620662143144201023559923335158911566897281409496726129175005469223917266883377024991233118027421792465223954237494269586418196237213128615275373574299653782983950265928687626234002820569066092724030435731380682347115509829873421596925126611829046168979674872680436799762642630008228218257372531032946256977713080096019665070772864988957744649955036715886168501112827155354671151003481771509519322029204528428742791528803091000499182955936350947112276092956497946074765301615215176780280104088103735542169232709699666557662562993027752000296174918803355986596399520157640890592975181045194531854694266960007324978134113460198588021914478971992681788564238970799080056177767180668376873700577134800551291075293790149883860920649259072629814747969052123754101759804339394007262556940687151323720902796456258237952623255826789899082680895089663783905057149110876837189453880009576729325389806466049736772409396751671083236934144691200969658902751801251552963675214624691860372318741996444299257383448398990776762859982588561942834433848378736292806179338378793865937166811750880488696284536409156801420073993620807519419087839611301964715368784617954211780573022472374356637816713549583442323997482718073438055480144854475679242718159123554100305118856217182065578940634367109483391214795487633810340735114587415306389528631912053592509781136796884252473283632747389864698040132078028703701570605808967976701748170171375075019458808614998420334459388031955160065985065294378227760622480693731790442265893450371225711595666777085309831226370449261369785810999827152986066619765602971500662225206978437109820493974283443702943473686645017389934017528510385455857771879348548689299412174336504434135042913052493156975380852437968012914343980509090882734261663303881199045566705834429161335835800114927414394753432026370774225787832018562709380589783558754095305578324936399719892809353960619202244013998990725549069306747841068122709039826423518727614928519290236652024364078569636727127522438021143778561296850704010463745253502505880170025615606220132834495684748689879383727920613183841768224684510938325957077283459890091299361969056281862500663555860760580122324535129081143551451676679038461565995239569880827896603017680046928550690451976085806914530506536969946695566819855327750189454479931693029226465935128632825339841719031417977768292670801070190741625119487665753944877523481222162721620486093999370090315802796357914087356534051299306078194957767420000917114027492618061024884680315124444745910552710177662419774106887739709761421234441643048925251615758560274743280897779191930113397321880748730817750829485320032888163696880845883179457046608847126954620839229304203291281591860408902414040416088515764772039700123693867449756492613694455940432049798114134823859855213227606097539565214127556792731334793542139997715278258763088203031778277234684339280947266870952251851577320811043382457832266566236260225738267055341762896651022849821985694691242441195239726697111851411794141867885227626791191858429966658498761880222258898686652299146714063987568045545608303681478509623491102776232440936896194634395734973903351818046295284726774892147073178805002249048626781772399745762023801732387702416006353300194159974508696051858741372675474544697715906327978276079966211085378411440430889010696851014612736193323069209412368262678925215363302069719227319978964603856186396092498432536381321445608778283963979864812445950887618993952967334659071256982159575160064010374496543662397683649301286627241478230633142450649362722102774567351198402036504751897122563778660652432772305280373678748669769329384620497098572074108616034257689747160851447726171820523761094421469130080423575429790432341503956000139479444038297366094258706559662301767043491331612133960634113658652536672914682287579563908973340910841431301226874930061504924856531850669024358236333002434674140468602158894591060353707797092978965913327366118837106827262431098917801367771860676280274013298600195576447596173922659003301538894238096060411078912932902923979669118278924505846884442395632332367894672399153665994621220807647476896210666277110999431299130715378015530007581095494944626253993005779263259473285204692076011090948574301403070088226336267117151898443529909770141380190425968363244220327881419085696452915019792861254757845162721152976834037129325945702854566968504816782808111773984890934808642718238876650916444651018562290978367206220636118542267138272632135325892239534921302933097936999622529458419645734475491828229627185430026926217812356757060112353828723627455916904201401334591567197697690282108553624599095854179022576356697604163788927834773061717910244244969922560148312416779681493815567837684502750827410775134803945510329889662829926109732612182200241361409955770403540451455140198940965394159196971923629752270579974186642757418041136887948345457090149614419707251490795948231902982783651335635638804123509965328648898989592515283301311020826929081186276157272340484766110388618218538973186785226016692976729322484204492916093916939103500953023440104983404442539621708512661208302764251302388300337868830846722515686159647247038550416502996074577523920563432286908443863695256966255413925804369108424221679492624031762730090398967890023280473627436947088540167299245799709970394709016974942299894701255154735837827318124725606516712368074095079383554394152818577061929739055873298394447507106536991971235193051562041292404362718265828003991482839939698840866013147431479768646061438113482388378010390425512625392397267993305195132792878600232715941995789392319130139555161654020698394641142893592905137073281088590855561593160230879738537073221728559374694372870766675413174541147677789664836794971669752525818006299743677724075540341384948619402959068316105968848386963852692502834843933504289079349690677795135017311857940869364081410398168239505512555451750539373570458901559421743900952310322307700186557324660426359835789330989389638181886890295430949125343923102862517057076453201662690129970155363388808021733107807997158633056542966754630821462226122434746698365028405192862458255057512433533505653211878401330705550807973042934075568130038133719449739809403321629121334356296404459468732799820787137481118228001294305895372095305729647486294271404386582564378149199948560539786013504311840463501739670943675380668582953204660165293133874524957038474394922118018430810175492115374588343872425281110422700536569089022357218041472654994283867542270658530691026941075890409914681537435757503847907290818779742766379722021330927790341493207086236086205383218711388623867058319620456127373135156114400033498329959381048730420150344775325803845749239952439546779730992951522130037132290525395685717381071609556596162296369130732092586985273110567708084382515505792754723171918876027457447951672032304024772291327090538377686178885911286269308728139724477508655795304673831204457851891521443695055030345092604422152113993139175707077176057225064976713869445324001534847244754480576606389784633967287383644586884116148302151628689017610976418128101824830313869468929422427753473578395844526790050269920273732936696691509928705207761025373854168639068035957562021754940657144509685144710623858204350478289850662097959119819737829142481004952787478748622412442111904169308993162097273661415999760797028008101175882064754428844672444333865004145625184327740821857955582352316096352501801940219763639497060610010301262522318818153342905706802701775435545941459698291832991668048019242442084882524501495962259942529992735695340859363906017573970510331069970081730461018421723051973696149375141126118411347101027342875440080760452845439112852633578645356724711788101396266402778154582896638550807241479657685369008608599621381080485765912056457857795229698294939168162068528434913017972555648813660384706461762068821747020490968205905334212933249697312945439043457104462259096533007090412716855926014213754662784172831320470500232128909563531084595754180061395382218137364687346023913714713993663946950694470825790847516337725138226004713607798563226081950377093834535507578196060941040623782339448644452999087806082579341846399629290838933606359702580433094873057310778126894977316327374930665526654523205341740550316268088472781145790755089031154344967458733819041853696916010087650268303823789430565351271475440871088952051957491072527681091731245712782449971871185643826057711431742152600677539082904631783530747602937324034984475831744954195079246678915063332422617213896283188060095972050804719992444271562689912850693159516275699306941150048722957191391406080711980092784988836353625635296411248778184865508623984160925855930368468318659786792427479350386544529222887298109626899396722601139640091595255671679235667895591280265661795224255179426855875657910543287487380857628837231808987288707509917916378028677027223619054310811433192545287240451184043524085069016554533624077522094844119757539398620877832687127888492308571288581493762803533742121433580672268799895527407777166767441010723318378572806902023959784570837380369592319985965438831061524359690791421649436729012472321194931265316540297562809990197040943423317712460253655961908688244858173671936530529450557650855311026076694728519867005085902667439407837437506193176187882908776591657659074645071936263833287969520711455190499600816364497800306193797054853285674185937048866338776016658456202778531148409974357065217085266602496972672211191284961065897784803174807225118909634291165089257714717761742802548015310023499063147455097410786591922816932352897573578488545132417477680428477782291252958430343634042853936305825106727677302994233993279345354389471979691935448090200444639856136448848253464768652139543080281088170210250057217154560752041141014612837748151893644232920378359990245617978236495937410051327854520655463148967005800169698853224115326467590605172729410633319950681118494144083230890986812290088508338416511450199431763300521394207641203616333984127046512178357720353021956881992122889517472408037569161052928595727719721906282828932769682681760308443510519765135060523383429689145010123199036081236081298205152540458197794026064980671059290861903826934732867370390818776508618905347161505819869226690261919711709707048831605842019038305023105045796102817555295970946068650364215588989984321212021485482763002621926183944698359712647999957773427829588046362378500872201557800579159828444825438569088342490225389051456068444780257970490651793965987611535102170679320738501948675350737017336430461505199383500789825529581940274699974550029457483318514437274976518031452238232386586293646998370075080150185092931102444453624050607741038104608360128391231856398004463567208987885217712902500217909533476306781994146155463271229385500389021543272934908070156678042915991188692321254786567268712445793073297228698785762139805337936597934743243971645030873925520495728400889398837243130298031065168110809791093064542944378700682643923118767775452347763113666939768804762891691121067295897540870945885226332966001108675143550553328110645536923922637819197553920393152664181494946328108440951462485942331616279816944303272512452849379734958278412407909655816610384245909026577508279427029474299872470098907402648481652803188698982394508493973889049371611239177744111637351475670094950519988056144257353784507315022855142937829628628987104857736465842595041010006770672380066951686043224826972271969872654638550021721710720443978387080690290592699739848052434006799126750551028873556589588469197310626692369690069063834710916100189477128661034949185819834655747868810339691384774911511417902650326050511327448573250800324987641934674325491956097675581140768573626971862544136458225477408548057495004321399545431951280687017138666367766796290933067401262619002517468103515761673847518821828390721732177024414734373385408709460547195821707169025842763619553712586274037090991973621378722893837259702368590306626406402568318029425510242796723332617579531251835781493851152334304319082318030936718749372935675263055306272408198590430620348535508822660067895370918725732867426236560255476458478449676025790706897766734060784556197837974764578788702048993046699078110102875090970990303732694822697129820306594433491253842816144339847430403260169189234216824637934513890229159010849790646229356717219199657776441655067654820193555038443672477259133159932554960561372453468370201814884035296660347511000394592557690553637419041746994960984270798772809770512514582017370130214061792126984596695036760798390611761074853919809739936336347605401212382837996075158795148884803925565456559055471050443784902563771341370974481544981443229586818445484541131452593865928424438692159554492398414928893191955749852646926879318065089759709810152488068436067166363081643929347403662763554633605385288454817614643450311544776072667447942173742736424119606230190239248757093157271904147748132635461783754079619265336497221699952216198882287316498627041465952865736148737147729059420766038805148815419898811356514513957923921599264499227374407228369349625928083798992847948642376645057746859991748689626228374671672073501874080181756603649447787014873215026053462650143679876580157360132934261044754891251952485682466742700674661492673408529145416669839836820955969810334926785438536989372689562716549746478194995182406505219776454284982910459317039658309798133617308469604062907754725075688243141566947672186946401893592931650077352743576383438333909006008191317299663501639266691586170575229726034598815138119398510456524639176392984471173589597746797662143867563503759572050083212728465686862927058620431160469382802508969569055039492472604591764964949277823051941735576271739432578817090037597060647704554048647228522285680421189573481396980532195138889745186662017370028725233279641301455703369234346748822598339030367938687252191984306001650811231226771305951299531581521048594557966765077530843359732000936649224939556234690306781053286828444927458296062387229882598897599118787378901831280711303252641311293699282010935574890676677255207358793100907655198223171246357255280935795649716490841521547165085225818925345260235696966191301479168959647747417492875110414727437669739434490482928317428062457162102094701683042212924891881713191247397012431656814900064162182677539612945410731924595524637052202957816863513520613555754412733781112369752388897993748797696421574333154550899594304939390736434038164056508368631368203775318320882356508301562881781321961329293490537065346168655042509475106267319361002650638355135894044267304091580760328335029464295025941335034145114048124498915754242620374635015949666229255209131595453631833330818052040808906890062715100817852682062052548894427857566382999757252278446799747254280599311823414230830470416474385023618878921788268031676966139714009335579277546815612408738425555225188731047183987761233568794279640001082682660145524563875127460393376961298678305899672390837042549352036256724178184975787751577785878231026788575275776207560786116372988948511069987036653707149531395787546484345283915744588780632481487944427372284095472362998920100438046887242916375096454272697797418979679639274758735334647018461048099565642717731027371899379840207885498536908171403624003058846196259837385317435791733728872102745141449641554829346670820441627921091599576508290983090299626621901361782482064995372255677824945875375351929692073301931239018907082172794813165629286668660825697700165435600991480740453063558038151611575281943217657379428128474519326893646382520353316106992307836868188195082487523070951024829211781282139467306703863743328223552432612971122947085959223853350633810514927079649181336008589592708295080837986172762569505922326452951788583090751294148644716956851304426368927453427846740257129866382840243842121672601398362087303656722526588491772791152151659600350380902026119477220569280795130351189810385785280536103330993600322822750077497832829672039296813586591137323929113168651703369883112911115283490607069009813804960367917906484569337860805709171233923241809772759362731820301197795384986794898286200994009095124750928356150737191215520204255271010401242179056602493006961335703108449435010133613868326327034764403282185446429056057988193902046166091409509298554323025156152006587739556807259789723141561573798357242297524099090415886878484485285109930863263016644611026761802111241961456033669981350981752953833824884082254127114933212931718068770694316274550710272384378774387751369330221704127782987734087232124238069262728157810257955215795669708518540276309122437721968033823685625216270340223901860622253475761943280090229049428132182152065556623003713342051337958091288508794913663576495307810214813912233599452135195218969184687973866057379952807571616436227924374173826928664062959168418416455113952744709170401382270588472167073750639428006474323440484142600262637239153927992203155235317206449624034480640866762888337552050644660226491894202520947217884326389551530824113941321746321206798729416870835201742600277896337725653055934749053512383134463159717381366328703071535532640227202339246456499112638525041536398017414159736339693497150799579738576817215606047720690458553421527128813971981170616601671151059438167555481007393517034328240869982833200577473949870379331607753427064643102749031642636650256307905432654349905507506007368111826429583600578568674890794125858948481383664798722258896676869167868495455238401089137056637102537345220799477202176103551453445710004755364545397567349239917775131699075753314104846593985690292121530297310210779345227576031818359715229537234511081706145029600754440617660890859162273978070949827966294502517705950182302733208139703426292949250780484949697766761670766507269757459973598420281259298797015478846068903040806835770833682292873925717172718646662763625080052282656906755258026507861407572041590976131788667455270857613310839386118394375709867725324970751303925795598913155968958212523876668343051740280443446318389827917937953505422683828331309714332863355620659462401219898632011281646029567871239222258251968203630012430192776552028782308290107665141221140829017030231366243313438867638893343941079413090186042890059325010997170369515901962301822061563638402636115905470165993857967851004767581182015078985588183172219413959294846587884742492806836653328453453381601946089099835516041481018371138068204584166542741503118184347163366512788618263971349118825721288768734429096820148047850378957518394099944026422413620788494949918356770524794474967041187171410493038883397452418156390147256868742873975279643674828437272618177602416828569135427440682855440249592639190850388614306749010285359251570136553590205904579233346955975270839113325644338731482087196644245249834533278411686067348956326336236899447715422421427918823303876351580212880941313548143462315971451435240164594774456876396622388310705653652035920550854692227970962607487947898927027019999546762949425247533088908857853204759271640143709565184500949337116894783232541334901694009587622672692098727098336649602557283368185575971258165490841116020948890892767913551320654418797894492296362234949479520285236848733633042550540245037375072937681496190149627276087142137854384675444896160136855539930489267673580432346701410515387155718696611541231123435890181038863748956412981960668666855406505367730082667399172005684230654614990563777714555951455473266546801089477234747171116148155518526401817936213654494385714665066389317491952164648368423591327777493541309547514371464619288454942806238666191371360951375637284754099960841149638839445849617401257834672027219896166773279574228079328001712202784247291419101269881448190818674467501296233646711226226026532969883157126204756385090507562254652262514404779265992691676306324833688426004428297352228900244285808660591029548347508064082213085871679940643305783304671807977700949019259043530079466207577704951296230518482398181812179190851487849324947398666372397518056275682091117115158564631711157929752717938031822161973886556828747689565752117709456800437847684369506174091512676478728144065623147639573299217414724580311177203702114362877401388529120863975690165428744819489982016363332189717573380365121153483775236567359468668532432912148345128578558813417424455190452067427885379243115697987150866613213735824227572196365869821626755338085430728670104653863197993021870202921527565507029985940351254650079712811917161125286158892779741906846015742606074255424415459840974896604206102744690337955952261827204511726300676843113217921207765100261783014368049549240217520122915838742286463824860429467795347349038384887197425463793026566001553819664199743113028884172440794781778793478759675787059157843347412354429052172860916350524585741855736467881299955888131276459370134559118024049480706760007235315609817790691177136929692669890639268137195365630261850219894160020838602247436791663223390228475875490340646611196005298233145791938116971579683779128733298971012534183279815511121474899496487720864574157671315405498213027805412155893284894140803370431957155736430364517408163960795120961421752395290409317759608931318504857783682052082550836756755230895488973280249064003408995846942652306078478880933549860643683806518209714753568366555617247263196989864473939087408894205443774423565513529692069441034037622755830363490735609726013361952295752174241303083581420684946043271286785162330371468235754853814511342810226609380830604218504398286403062552157014795679564925781273899171744308312129284495518755373389336671790594190331363219992659196095158805295649888792008170089736267581005974379395660596046774304797626366744534015725450529276894812610554041896084271220234223727520032694485072831341751273657423529463698208100130131150252923325371329500874518575948669802373124780462190685850681161085219160209876201066583413957403512938746015584310731405581420011054165707823971167868182755596013522279745967650414867874064915980549646440581689600522692852545675962436471731487993075808411689594985367916442196136769725654678764109252498135184794984094085080179480541847754321354506879472270100942331373270396621263471353211937260189721756763696840494641671628312553628908969392844603774274498644064212311321380371621796141071746626122842700740494543781679456504723613295680317697575240336769862493887900172160422293672958044067606054131266463641209334468909826552309760187130676327054591245864259522402391804491139329776220086225826762547660194572279789381499326460526091518963724314123672255215657042831901036444110797810038094066905553319065452563397079165056353264718240022079350475475251573444170700857972381850225593994665340776766911085574739823490117192747530352527188258596807317932229240140416003803552579274349491275583107382425844447411822467412422091003074175423874457423416675267052461272654141209167503313057746634514253716376525517281670135071048627102882397229993661418810758303208504677779479717993895928358209574528078277382752282240381907235701839710655306600430752695186171563449465345613645742337819271985689281996856046227398053273493874833911538528351731785190111349943972962788293742741562311859123613645564632353161463334103783863533468599843145101915751233305433322562406803127438811289322170529130818140954161732631873457763075597250745657122791103096094862510667899965682441756391837597319191307638639350418314653087684351847069128168586828846140384153569256846007654866548512016018266757626285592848692694835643038999850056605510030451526786012342912163607144847219586419226414623952559743306866994801055793442591782932714545316237486300987387226312963278727766963762968256027651346537426549864680099221150387794621046190545682143975087777227859167619381412108714257821166680209746546920690814192327622905530638765356605811738054139234344535143523361491890612689633780434353618179352247570021124712884807051729987726382910819054188287442861298579833956582149046140670303692698854634728649682829635846682351673319769218797515061604242766173674259755500316668004359903446752156622441612108274926157200409052478315771104235528345222110712516087860682353867563247856444128043732295611288175341955405215599065597593851479473223304841098316827983159716511214303662548007770518642839402959387295074611905001241702320801438885115486921252748762080019850011809768774970490163634490943292621032221229518471978537359480165589132232440695541066212156223869383850212306979777113832903047354182164837976269626789951437853463223377853931585322457988919099136048470232532553142979487015496421583475102035056899592637706651082127891020314863667083215419056170801346897893935819851907099740604103924518171007222527699179370157611115911611725943213590818706198445840514750618032078437527638908067828592448943872913667053475342707607556273129698792841944862272397036782124600750964939500142263205058807241401866452225306437702241435272307342923187438766083184443484221421712506356315723834426663522672959865586254018716688381641205880517426824400577169192371793961735304896179546453918885530267954841786049699521626433405924974473862371649364264984155626159444178539505692125257467474529157705744451063240230344344417642531119103452712964856197104362358876231614416191615045603737126610760165723607225356709583014829117757869909957579938076520890702278177565879987944670362536197045899044183894562366049164553355615730161052561134369259768000561479899861271597363517784260210758526884080077020022081382028422180210239886930349344273333024067423819501117174038497660144942096252584491358171443753576557924697234078333992732490861300145203793596334055089896939806774823656978447294632739679943598159727294871422367904051256573293020685800002943130530605127360821221549294213602611069339979400079934154583374569913685468196135588667341889900660896955520916544075260523669132765530751810244298883092054914464052729921081282746513777899957546959681574690880524454231108297215774996403482971013393666317489786777777522233772291829388529145580655339275093030646914897453431452196603834708067982048803984258292119111788635926640223331297485772148501846632316802917538113245196482664260883345307960716166804893761644388478381220317609120436635994110082542676289165841729989883486571664939266073204755253862640956209457024623994256543238886717927481369145622450415064664939070006525684147190359825918310844385987283195638433906864050940258761836063925402383991146262130137459541937233926153033550403465788318919432476337348605461141366472416564161899757261859703693467173399928408912772205321474062268019005405330251125564783857539315744128429115631859326374469231366374560495797777995583434771935430945744655315094129135519552076742763273178710662093866194845783844902867228765535670308150164541904132931365731320235440265372782778819381517128465004277655853340309422728748471102060101392520310809475936067102299984179544676694403465162593489111928539716208542903389041990942040063542847443199116976735307050450000105684488535677245338740599061171477045642802124579221618809815805037961398044226611449890850505897205202252227269242322785793307522567247535240616043284862252140402408409155585119007323047429826571068454860699641942495949359404605893501479625268554881611206816433734046321468094789810668796952427833318186229498141916109389842684946756828586470357922579852448520208925960997807312769898563552330177548478470279414588599541444004864445584379452598999070702975897064926015717517406714031954723044845003989319962183258694569843612172326733257331729907425953585012836743909812020140904815097731900380167829940104231899790799972238315169188213717600836061763192228877617903544149657696141766474594278521516284491766650394831793126629878841257662098805995930602086228719940029695481141017792063712351497465646202003936852833216245808647853053802751217633376624047680657416366535992230573654632804620255390848940099293384359692144999751080425240161960462409768254607354875212506133798121146981997448450314196523742464600268292804621591116627083309301754443594233799694725648782275135925280330907596551171707442832731146045852156811934738797990533867923928853681773551510611248023743777720933826386917355155655727683703693023190144664522609422049730506241758035183710395686329719448151725424527831429664196814950636024770209526366170247117165991400617672289430273314781594538770516265734532468060670455038960894218095538659161339187085877707646341475427005316136962440972210171911988797922278533018160549714918093135571512244152136046603427147533494883020340596753709832998893613473091401568123319937200539302670734157370846771203761118636384365695856279637964807300631678903637050578784375000280184564165527029895678353023658415049016793448160428045124857509354384974746864343285794891125786275448153047922284649572201848147837612766107169229563104735702535657051825268696170112407812319521578218493662062333275881410335806442209493976981906407942815922493244377935441796817645990038143145573383956633070507602606006446777120133068656086868089223141437652794128664903639248172487088213343764195512648460777046495137769801338331761868169006326351152772263197221992544578731573566664989148551059744252604332868626042568332815505157175037911610758449575132396955918805111454546397516177154654022163717758827815539378053574160322193831499872530393463118155466768000106221764963892185500571778341915876597515969629513427196996257386257728634165077364165003924504799256190880618446904255554190619725391776170812750103008550262415316569138833166766627078400767402447932235410933668763031805654081860286530555193147263919711080351559575285345012243549685192640815713912317645889402117217751457718739466903921966064167486353497084461636532652716086997646633790010140455587909924733738897039655627569172697992506382037041269077348464449936686689210306263651074626574162072275985969635147168698082781861923144443088806547280596946389261102801674964319401848047372426152155069318509419246561109345576742382987604355907361336275383914304901148216141147250629673560516604087870910685988318928953513652162643207143192816314342643228346468913692713811374952892604585006507767127158472387601009575974754065072818479666587928122671484777361995610656626020326555442051399022849038833231887991862103286116088443608033004686004661828537793477089268226708921669574636955453522513271038415141784396365412836652259591744422651483507713638935246239393820091224340643086195797588517822790310865443730126458319018965125471784399045491997986358581309126565363633657314462126484041293417598733204188368210122240118747489236805384605701893657458671083191652768382091338851421036640690242916140439563324291505322738130345938815430373517127149614899510867296415918091227730571700852217759385414276755381263619415180798007820216264274583369413445562407992950515056666616928895393814645160841285470031000385974081723813855846133075895428664646936361646266188642331178165696348195070946793057314333823600994391610580934088471554657150330538947522732337240910276720593905411922453159731914202342623240543244600216042513318113556231569656833262634246678806207199440451903272906309491200590954247089620065714674211280216245789756574351297514466749176270413568159842206780622175557456928547090621066957032826921628329561413182048812605465459409800622768668736703351296513699615143749694932745572938535639213617110415912479426469741561346515597670799431246350320405988870903156928137864942241011979087628598732132098689252713585145655079717894416331969691505036317503252098752721757130837435344405793364010543454111031217880292849998633045500628814813458002044421892841639635281928953474940186907500096371890905381917371906432533156775475400833025854566039102901438994586612847289779708556311070602605759281777530359916115218305138830255979475147120583151607056981106053620636458747701059022782247114657674292528448239328130853031693123856116569664893686918662642798707661573428559651176749053189375099298107761580506285508977109195648399698629935761715308621423465010676747465894245014754619649060930217431609254942559831745809950352070641046656678390402754400958565115289861642910716561281941107492189744587419680741118279142932493416408546931675228608688908379360181459069104352438648812075057638443365931757838516039379082783500016117208362839771057868441057473011633562665901403541755316402891014060989170583441493599937789226139686962385791360088706883687247263801601206089709066538426306948434862144476100791977824340132266014965775232179435994914045851282820535320424975716103272317553937959023341232661107216524682359278635619264919868679031491785049509229057432962599528971549158078041417892385616852375678633312346663614321520832132400718722668754680211951035290370092701279936398587739483181756688432353868606996325332567117664910209564873287530069170611853458854831467893150807224401022441844047537219412840704012084405043060894889462180646918220881881999090105934760281352702201605843737192709451725105968734527965351597945618019338895660453072060567561311571656498370060967357152994415845503604421081622417179383046072965394102288401116460531593002998115213072114270696078391613884775506278309780345989889128109251915086999622396156492930688451479666505055748602961926683736915132070733200811598217456623582034923847338109085069893818669136520621161781536267968039930091659715062407292521119741965128124413163222978635952532764481349094800588515062846971399347059208013154207155072502674362849782194284802382984788002328681837925563771974940697516558013959451184445270241523685030845854891867601836589483229568651460691919532156161259084309490164103030055391976732476400610432872956666715284684250213245980592567403054486541935252304063469195146294619218456124234636048405060868611394219726466894062896688669721129880895177825904249181067284058527151432913582387084661585478647298318536327158051250266033347466736518962659081704125030339390527032970380231737072381126324518663031202997369071415346144024347279554283779822622321403050215996846241850325549436754699023595294787028590804608090527266920269843911815544882978188004264548504064175888200251817073932552210223311815061068062902714876828523919827044010598182364981997306080343364881431168381081193488556223034070661351556831860553451643756224165926776479252599642992522022023613722031273405531324747617651377831613820299018818924428274829161746810819283787803567542122744962115176748435870990074936745999845315173351935370773218975382569122459313337712449703365744674023931822233611877252480244266604169755005201875917445013925054446274502055170175027926552747808946663314442565083033516698182673410333590296285040447343733340840887856085269368671856126788814064050061422320278917941172904975022083647410025159957556863206425292520989701664159091682690243855805014697304392867693326686017439106106947659171483703282151412051930673525239766537634178868990275449805763455618380540199916227650748943570230584685274852490820226842231318971315070913040125606150573582804743227832573398322699848268167149874093163253803569512905808526776678931196587913687447208663885763506661336270942939654568597982228669115246646204828002566360176162964949228324442983384862617562963943611770581124371585889079189646537743076588811788633731923861643499046483392367610696039962476894117702515474958478929442385366435643704210550909642429509846400961032965171206990304745772843653964177767080003265586619810510652027558742621599232090001761484449895158421431999790713475470175574702772399406771978848977805538839394179866353198184137667016421814605467405309886882214122514288054190040190003669087337974918869347789593351628268460037229653024050660683814451195390237159871050551671853916961799436526528907016624811323762968947813743002626539435899936491483880636488905753141315786475000640228285713001624707347945537097546083604183198026784726057041447307795380434111547363500237313348981814035625592358196456312306052363399247211574849694493612051663771553979353362521856548128638152970012383344857541623319286076048631578785044932282335134309802013615864253569354676392526755332434096687583525159442109138153725127563008854768409021370754635778197198566276562836933310981553456650097572009839415014922456977459959845246504701980192447591971558664942390285786540044449221317084185240582577777059627019414613629395512034025451080165696286683963603341880832478159572831412673734187329962172179751758959697672735570246875129590928691935021915920390906753136051386921354437477855357377916535530933349226414560833665831145123193653495566482564819015096137599274974562271217372379807019020397370671520255639241156065384225914572963344761346523196338540147714926757814807273977501381775281688781422901555821488491620733793724996352755256756787842564522295526730600963779941778338260836808874503962878740505103522039170090472837049035654764286285023465086880412230939575862735286025123241344368843165971996129543422071473495192826454313980118025161352196460477957743370808783113172105863151226744268973330749280818420444148643928783965222191524605242857409170052009650923646529237121966249989528207286020702208032555270322047091703275865149313034682220301310194600803024592432080188488834196615510222506737830527224445631165884787715975033945451916654322909341616071932654059205562841355841299156244478440733939926696969133414998248933936484963293193005771403227950008493192473965483053935867978584470070147649503588705900892632124520691128216233127597583773698250987680995177781496428439852511949463083268751968907943515317107735137114096444309016085758624716490458213156980864067507503870810966426394718035428748382004016851261014626477983284326463540871793334843250720917411323255612410872035912552690139807969291188721405821621877392914428454710556540137779399497997352306151804252625470861402056483676885689223404305274207637198156788786878036446533881726746992411167936357069917705103733803640884468613640529026955122972343042100264523204069571715203615879310059235142318996394130290777107832074163770145445382418996856672805519000445382643702331285548132585905685404742134434182137517887522788251846345839828019434390385791532809929887147612510004024144305763648347479093952990029951494327743087064264489862779197662939913145539093289810337772842835407236688205877297252280877168513553324781209319408774135935700162329172276991236908377857073817320133775741540272411833365307266691702308941095214878695879824283789709335849507407166782395878645432683524505725747326472212333368853694131948630988463206586575459325940440937172404585832685913341857747652242986031656892415848654782690787970432725498188320473938563941094712152907947828915199998097879842303967438419214557928697699484752955993195660409814263587773230419366295939478896031559637726195008326307867338023415564993851608670512086017106337052016146970836613399336987581243549135925685906302220236631381007993533112948267680496164881553919400150293955783277099900636877185302270788595863016777151409305057096156138600137570249828421114475034978234758896922488653304503727302850168798741974299759671833982824758015489449479418976119640887459123680193796807928981001061894850375999017533331529619232791747249420610613729426277493805659332673734091454780453308352333317687075659779251190066136444134006124092974823274633720532169392447300491544207336919645441672969733040247311474536649955738762659418756110737973754888728569354142667168666181065535006621411355151461159386022907450702030639664684522688866043964725728319511413276182093321464765753982053898383992993328008835680075650144579555090445645646212081414519451230758016225173969860286181753276411582453717816498686129199627257896643089136733973501135384981412201813514915822284109388084869984555072555727494521515336456910162497166224830295230677728487630463349599326632180197551187360274529771612534315620952484403166527737005211961316438887176905220765016915419200273875165055681257475129852188644462380660079250185612912864712109548595268946248332239388899552305277019293924552499016033809388671780601117155113336438958656574901419430132899730484000223307851575308782046533827327243467961295990361675232960939526892314954014082820673179863487644380088229557056741167509345437586826152129539140788843395579115517287681022458291312485371839458645173117276764159510292950234351794524723022229407904488383305790476235754963324075219108991009509596873689770111549743780171343684280076894245896948367126011207139574423457403821611962562287250107066664661939420563401385748090289305919505249517042685596932609847902372332725139865476502029055050469346048745422669585052817842996171259949334966895999989071964022900269557269835193583361443444743484453054345105507151021261371927630995021936605252577515850836452389392023720992711274344599586073699135522613064063634116026784970295458495025796845790134912732488909123545165005316071234924253520192734682851869104995015037368079502518510192213438858694439800496292355517757128215794143586586524465229733342281805565752453480652538981021276415152447799604017448606030890442030911114103096125926845908214874584677015750897686023853138933772143495481540988489047548852782952016722089533445601592290168109807486658194394698754751702686878707850544472854677698184386066115822867146074793383882198065368561424717004768292049037412794408288530265500066388414657394224294049009138808634070588768476325681443427339267967346577772472042728890468691056626194977979233661094673535047283668427211989819558157949278239205119078433835927514006191241001764853031889749069814536773431314870046897042007395166739701415765315046934403490695180172486442225281734836236567063873024748503837798358034720362698920504984953488116555816822706689315159260267662322123459875514763469362847111798674030199426252336017099601068439757111157099795268122792346700258627696246628723878520574883299058477820035262543661710171019687206783340622299113108803796992421901428684776617109202750458769074702009750907277307162232506810459918275287695491544524050323614748870693388514078918581491925465426656002036630914724061572367629235010208343414812657074964442659330888179138076827869269207825112500381167871188110429047942211868662524831177493561390351814151568315221197982237436525632684702387391580042129388940400369114560235091338228926759226339976230591956664980183988885930488025951951302950526650873059433402207730892208583711475452609101293614371758453396202287547868279815549960748670067089810443319268794361601439696268231841598866043302115089877119688450477288137031163801938561333112018848204858439382035783988948965684959438110901972871845312551433802624900736758733645000030576860833072366022867928312431017386766322398963962785555834120635864376695920299062417202150294684967426497342604056953109190664982747742199976894330843523344609289405201377661709627153826106457805689678131688873442996843156161869777718430491506143499296262001736088454950718718459463844760802742122308222627814099869986369173733795751777519543294617186127671024621285724458678396515377213705094998537948061719464497378877049703115421241648925527516842868174537470706100166516618249295007532083276223575884164787653203522540519889469629437428895750938117829342518530619638244776845724653842534755071348061197446582425997876013008784449285577562971966997608819607541455100665226628683908660920940089521669132674547961797715910949072482193608039772044820104052561257238393466056886195202518494364173800917266246955455182445619369415679713875580751005269394154189750340902388548624979738599946353663130548374176141840481671976389643546976516056042386171147391460237724365289634344646606194380714601786408897692358058988143398740448542633555077450112575630135099753998464790121292624083229314221754835248637573980678161682039580917530007935196852001250085950472525444619539728605461303586670746583466038414225197658751762049094351256717402763196921827009974577046776990497737282308254817391908373617554303592518645411329127689799704450929412085306654598061479343467886019524408472876908623846194859648219616797172327977485446934993479692668849303507566189966189798172202455877315199417314622687746458691421163174209836623711536662781005357633814627378540060300169768549131965167108145533055975499284584569130594841544200891673989116275553503083844025096857105745871654235598939688501915736239784188283220766862495167189223852704300189651757716209909034295108126033558792065955386629883043301846254867484878581136285480087310601280053401116936519586563397271976713471521116480773626999048450063273235696701270122571431266768191452483271838005186446521058325425530687075229975266797618721198850696431941981554075458986441470165251876015849340277507054929962073777388908929973768707714790880419723849971247333952233155195855586531670706807502700429237638587316895912151912033064895111684353313868947569933811831083904568192428188859408478552367330395847797682360569468019749371999110437512279007801676823252711695458745298740577624720244129518043395051163297694203171106322632609114096029274302878223356210626875804733070930933177485132423515215721325632366876348980920717978069643335080631159218689425657890113500972075932058276055978906904060692010052931858252848834937427557626886237796363109243085541543662652930966347840290560552472053567821042613911078099974477096924762841588455675163297240049386095847380226549979299184270648459008946366137111993157560777083244017453962775341683100740450505134929767844218552975073735544379568790429632723938179728858031807636111736118833595360675661712133185657739604940006947088628763231764173050499784199014958024131646980146585064909824715262705122779591433193312936987742094207444882466727435209768900909022523093111618882188704816517363561565581522206969317502330123029289708599882731932431839506162020196017298852793999621226656140161257488501514141449133311099653493883549018556155626232338114770658699031032715142956533370825845231473054982487713987400012597336625256757321948247319948767147263390933956730716547494027477442768810594117912982247580132541675109786497363212226498950798227108091636454236791289733351529612060296941596079923168248873439579303395052618052396753416789670780063753370655596253337836021167918867084294970971375863388280155640814489166435940425891066084903595362820118022009439676351152419174380694232975440422204814663223809115509567413015742292394706163391558442861079751665997413960978692269055277042961722202847675260370352005773410068818849346179848662270993352121696342637642575287506324007531200052145889912887142374918664473644178135645179022017056993061992444330678180019286574683030233117336480315823609971303490070032621175574038709135391854608358084683218937259434050730802707910833310669649011918910957109944568312250580646445108747729799086293463584382387856840654213726990859286131625694663396134651452303898576004948474937262703655941591423825692585482309098506227389633655570711258120267428674254776348617229519731366652144842470373580017282895007420425260240984453213336819147841155066324701482550455433644433700511463267119699295713301229813561395409848304798778092641428713728060349011069233949728189842439798435612656989210925365428665439567024549775887368019434352624964472314800336952447775328088706549935866268675247833441715918070083429235303033731313284488505766859365889226249416993942282823797904004993772044709957281122418231884977227397733811347881163534151958935304086399857782190049272679375381242557877364836033264218995231861316794619008142365783653018766406280662886323318041507270910759314391735124950761627634284327221395572585827268510235478805348198726809163700620211671453131866818525083732581576427700390772455721174063662262256049705177122365071542714126549880631049496412530835868546588775674176687952263691666754186303623029904647020034391879475417459507060726248315927061660058679897722900638487624635428964170677205902096355688332949309737789669481747939013320985815904253830328462236729251165772871942624278558772148069051838068434026881513142622720720281994207157660078602585449510985124866405731749187330982378610703119746570343045669076102585042148515766385316467987948343334844911080748342397901231411190732888877354180162141691410499311319958850042705994832201767193541662022526626709164234243146060303997169171411418912394188500146967441114278048783610625362838346852463346867720694455473325645872496640894140782331824689928223543274416070258326694421274018883142644080314705912775380145283228777550586930603683726365938719663417589215637602990683935412440089830127385931865720003278675793144192073571489758202588696398257517450252059956186737847403552231215893350907618877001475261673745832697760764517819608947001535534843025727619929092655538116537757508805480363638053694411048847706430248111375761073017399830976019961151923307576852173965264405566600990061410074706840805792406664994558487350596805364573866835042716319514952021414188169229902419719835663814768110892033238921189500695665993100453163516880160565062899143697337143233538390134529676590531395552271135871243048858467695973550775715681548356899801624468019556984437789775340022497975612431619678252510843903151667245732103059650804207130755075416201711717291846385288768261301952080094452827189366157740742248980652190640063106867884423827162347253864301527895986139790755147164699224367430071178490400076803362110868462306428114499347103744313749065027180595762829071797097949098932986710722820058910656808546548578801270889845538977380859546890616492548705736808043933261416248849515420511034480386446136476235879760011334491745870257835073865659056805242311160857908760874408460711478647531342041768109237741522709768187882930195284783286707825087209353953699519642365627680303511850195902553488559483470655311254351007303060465625278499445989421268645391313820209006908845804825873544474935546713105837534944234584201353622049228834746204794778612392544836041925078822267692249748209416402677568280404623671177716963706652257686916891475601939451394402040044869119200524136962565446525741102524693276725136412137032763625401748242119155148507717049599007779135841722447594631618374878902702858228514051688976120026355082906514363149325829481319182265435917637177607861925141206919869881489523787047700065110149007905796330345990047425018532791035519043297535353416816839933056574638003914069116522602784918117561724119522232152921763978143188290419588335387425750132020609103285601922313885041961264067337467388717013873891577414068770433670118242933421109212146505122510795415229545053423497045363374569365117250529068533748923093782798002980943115647559927437853230841985551176240212482390365701388436077201082208676618241338493276465022023310377438866208003680219405230447666409150647568750537137290712715632121749808889797905352328045874739398286309010730523262074337593756472476664609113709170314903847603619474634174575343697735015523248082046255614028455726788246345682494463575549168687413175103150549582864108535286501699808703971539568765311414225972406969889228969523301756014726925404289123309504188808669544733781404220714768053566547105493967959969026980979409962402992055774410199469629063627165772788059385830070062100616417915052830981710395896146601125431781191846840929967618000679821811323916951931336127064870336046050877614292643387283043617365110623209004779124797999303324837790504598643268738282012811597422593217299291420700458746723792863758681400821092988249324457441590286805969930856222013312347454901537176587772468232789851421828392506361865171722461611180513067604449416089028947815929896381419994195528556969366196951975229633971446505385183309223923824891760034416258069153848349424759820084783778304667763065328381775267317089946862958655896062340199051552805185533028540770038480184978093027557073604496697184379691199721156920030367319028264044769955968542599452322849966847282307905015805532859027009946182668278484641667105306910241353805158862189051382216994617603552502048539140267785171398658884708843957679423450133459726413934347865975126013112920380867121183932622296157796105984532686067846106609720522185774938890216649325938671453311618111532065243485947798241651851285909196857161658159714024454867014739231204496245611214498428899195941387019952224931036953636078741295842186832865376266002231551451202051655201589838083207057708628529622415354275466763139360131259675035777736722902268374938224518532054003925447850072767015831385625211462614304429532691209669973629428038471519904939043499717778587318383364945444886223988108635960281881026607204281195624270799729133683928729397271712559789798553368414091152069297552851731525775868311005094989055719249797099850540550676440010683251461103372414387623986029064022280147592384465920633291072753191620882866727996339433244998874753479904118621638356783538624104770408500229493869186331103618636695038593104493760903591974125960024967722244574500717953576121617530865983226220335262671120667392784223518650943556561293940877567922269414654616773457952539370940876207378343532880754241952137922495267172652478154692540542511876998940572051412926316374491628224904153349989177601328240332158574980370203495045001118110537227059955860591610126556708690258162270293809095148761447271056786222085343043981817169511542669293166901947798711015229775930663071250457411764860501149432892986594974981236037523482715179997736368345020414049724235167655367969929354910871913129438346378484767674043287504584969367403768935952796191596631764788178933523827522329438877933967492946139486939401735872026844291439327429668472488070586492729408505234045205690722101759714110969807194480924113753069073261784104892615116215515360393863476406895623291106028922176671871788741339265808645326644476000146500046657732335069500998226003237864232058758374192830822480092059501597981233049174186132343057877704497957219358337296428847647125722526641753106897857537784596971205198768331045471499219650512474520579954118208022961971516165428936210668289648739047920988622920534732958253024400639181655253223192401427803494293407632699343301823394118809232189776779480410365209976561388300093905515980217209846049559276389901284820007852968638599080113021927366050507020037580353258721674746710469414638251734262289931355010386736929698562605363969212922179995999326301001979533651922823315325908524169062539416034344274091354057047843820965193662923641031431823209493924754132970717193149346639201315703888738129738829334821014228001297931703869282427387719015671756630513055912973304796934628500023387972755328981712826430949147225549028312278069991983574272052908431815422508997677501941715571647974407659951098256566856919155675534104632510375405099173431251897822059224482164655482704032632515935012326111697480991083395477925897725246343243014319939817787736717268030267350000350226546895626792634212446440829640362586255437070256290396785550869360434515558735147262005587561959776883456965887707327969060920699839178607105464471495120699973582486993791351782448298458046961504017285400674373935283079486255896519571456034879970529804678371768202140748649784495144609325689036642483967815982919329660698361988677446982319432757106836283834068506265123520582432623801374767032473392213246322045813349289242012142347118501691527979898953694153978491973404572763537823367263274658772753065266680753831044507832535192878655793650819613350681432674758943541024461655851894366870315237879203630066572981461394510999852374114696364568261707323068879646566926872965467538797156122042419395726909844911429683234213414426971019466701221678371642387140417261792106604950598917291686195829504823987322370931584548495510272147144057011241121146838153183951599307042064487202972231673623837569688179922040436199488871717955424831002447432704332427563656446005621549519451001721960334756147524341606814470349970990875840508650495912787547147045233518485076170976917537759547405252669141465460819238284001664710258910182254762830848725276737134437915762133514507121459381222092784191740134772112172518450395796627114082285735208356012379040441111379538383497942718856042176331882354353901971314499509697258941025693956800898878188449956543253853134279406671101529679742797098127359664408571519503725340021384085333305659934314886391729707603382898130983863337053844294228622782134282336485514615965636423000265068231781128605581976042349564986848996813925593330043487860874959046655565167188982138784438056182857006723376189154640912455665125598304648551989002276835211378154379828949984682009052306774815312716172434879303968896438351341394752962073693725947840811163700925461842220291999813470327829878802161622312820935151261107237780716077321486958498273835340015798136670365702492070791256315011389197367776196912168840772120766079746472467652116474049079338004566513232567448259756890653162948792043556300555161941723445427309483343105031913427018682104220571141736207780165329472548347290363221266288253916420066422807628697091827742973118816993756497159147783183410038916922555064019342859832799106649299284194858616831425077167563876456923636035963238463148979764297353473936048505736643403092043180903754237786336250578694335336494162447984940996171737227007297938641892327056558196258912325178342646840313072313029031569608952421196721473858365862972966444890698097561606875595200486419531950328045355657193948055242776154601305997373219972558238761140608482316251611503950732266187219672488963826840099488126757716779060082073059091247806867930681568241020557086159516266959792318560956990588416800631561468279970327885962143287480436082344265730921000707497965157355704269760816039267194812098854698087272651992536114785850192259835611887343436051252313390697093554380106084521920206148326716248092535078968458519213978773689127220626249763909617113238379617879329337622465212213847263927365508208879998753419044837874851364604673570090070224262202880874802273862589912882964569212901492073596036365682431383638500121682040217155170325219216413228441589127714627800664802250719330740203262802008430999485050510510329327627282576451271446917530451437311423061573757285533342931476044050836906446034716476543703458802365386966191954289530671240042119985227049182139978955394054294547443017904337456134540408857441542373640874636076858425168760263367551077443925497601174591599787726276893926852978255188254622349632450256347793266202307354797206603847010976446330977536025799815910880670487882354787143477964441590728790435109964949546148925573749549126387182482436060551917777574727481004848102680569286758013813681535350849396129636624929207624254022081990557428240676204813112632717861047846717172579550847931179080139105730140678867560775309380281145257062282266661069624774472415475005057916235963073751209459146235527737850613188884328515544630353331454151054953628051306071039185048801225324552600257512053475690332822719954996074669687606901239405251385086005506773503035741690738605495399470292503690467024875042343972934079836519588625138661138165050731800637199192715087693919806376762280439378280530811604534690423837554511421983607182502106719199272467726078350318885971711513901441799100949944775811658185272186260694470375064687096103367665372413853312515543586449446403284359877728276379164079362499599305485256075588008857463640146351366224103910766271325323549482272233742241835094115892742763828889874981391457093457364753618520530750943480118355830332052948985560344868611001994674225253601704340948320888853780920385363390670857463724964682718381909418526217675589359810755502520104833282571401392653701298591027081998759754854129451913425841210824014270889128194330107510563339695656575114976305670224923603908693377282081015875258041332084724603082413430989384205520089628912872827795614412906804711965865335799744856999996796813710321978782779315353192606430946387479808400926184690402784297205919278874899844273581772713918091108156746243942056733508873228647426203601128928111075610609512457728125272225571498039951981662340852530254293929262561118845541310269064712338131488102834533213039162475036948447647864241809195212137750909204815059854311245186068294007775187242141947447964454789903754644750850397040529158652458144951281263011810144833047484918486342597820771535639016955248400445731864379563549243000755227138480374195099437208271189409576219600624872669294605221011032241970001588125207346048680255396302792973654739437653442175722957771288690906772893385835842618967539982550578515111912702313782861678809503253067562886525743556758032245756993742811569844186589874718848328603807812516816780974068021455644299434611467469648248454440784119516826012700788755244508265870139363791529891626839689438818546553936017672716275025174798018664896775895558598971023188323454522946711399199581670283325799517382952817115785715706920537399929359915725421095427525986431296537992129870272655006423428203736598790584400695870280602306410547843368195437266810736264472330560012073061571725388574652484423892045431278897526741451499169445534188620199563994786777178507356967656214630498695115903315080784844804477996417228569939264285636498739972232438629194473392542694220533258603865633906759398121783291887542134214696763744593156900100518065374520294441463748654468679466354047672668529660347628051986417939643586378396642165643486099787688813514786004930527308404103434814615662733156840734934844831266197008268436085239435233961452261129402925547834544127412348356625249359283324062511746368509268715205846098758264644327261165366825523843768076365442062185418242341584582387685347954416445601272783752389244833857463032573104246176697056967630022304687418398267549070772486306424637265971122871449874126034059889717958987525948102093208438593959736871594267998408456611472802418484690596654238075091339924394751665520325555835406371746431557893471634952502229759114766425942016527539998932799822798719722903664167858425875753181454448498156677166083166494433839258745003949653223111080179064484157741355180509250289999611941683702402199733710413269170046171740518485117282158648958555135572510963860561534206026885740124268945618697732477926380836377408298414912888092284596330646184056903147445504487545938749152290856473366367646020108622629620278636903171934141803618965983564575384518717545416136110113973411334305045952210159291107161739960739197853566739288914061148646491311329094722132953042836296199814688801574809651617629898370795481208136654104776270524341839709031387485082837922966846359419878294365848923618964285819004981486572606084324613341581454681143294929436729165132423368580000987856610835764070536744222066184145778340312378769200675657207118920026762440415563665567970478444476951689898334485782868515838950256235925370145369238076468508039252110282880091558299368792409011003264899525080294993115854589980072999514051103327957441157970614979805967539270508215835440953501412779099842961950378715763729040346103111318451155127859424150086630103019361598449743615522717172612723876235815623347746858564485529117839906667484001690188549052742653843903274379654990342146913211974958508090094275744918528833882349200490030271709158707568258605750217314808355771086719423051274648426605986216970276127645444789933416996979137381713476466994427001607036978843235858207914238149696182735004347848265990597651108528514597019042736774238054953246020738999818100837499599381854751355671877014270897060137280750870684509065710895153875890518159149155220348380461307368076944013102154698672969932923510783338701655184487699098362436948916535589266537793863397088027249189075607383771491355684720941694005585884913112986133259889670807888506593305634180221605481756980368173466044651500270590075390513529748056423414210408397104324745998874622490191088806677282618638988892150938024649758679473424221604667376444527594473441170911305449690481725159218283473643437956289050753916444494828872036080747720155303321731057540631224874955391938349884813311904124162810259018669995274636476771071283342678068782999886587207983935132307439223944449220646739612152066389312641940264131548761718302156324304899656603711387420713500864738360561514053221859617320823174081115243497132502240165780144739648921262347361495236514859351541421603408216082148576642087321819884789287037899109503786899413279643154384589615338625417655084156975960241965100566311605760622974147657134201333804197841601813325983304765323254883842954219513922226196843683040913263411022185170478663891525068710976954511999145387069540213061017769237752561475547014514385493621792478952893086378642786685404205176882050533492135543090609608993760953369368542193945095481702772450332018958335460776820147792601883740747378919240071012866241474392968455909299144165147155945593726500302666581973699885063947062323789369309765650272076342373515723303245450701081846688852489208972911933718760446437605631618155177772755060828356245437026582066956118600280811798649445968730244653952614127422880709596510440039011945270805418949234446052463496121666318334399771185693812788497933709341050339510638713368339086337788941468469428921825242709681999806321794381110563706394949561351313518913833923275611572707971545941871399118621595832234104562349921320734783561631126279000277792310340972179489503763464359188335190428156830651753029055555751418111481276005924704728545247354713239592291313825751962066199736419636925962502124674774534535927018810924658542992133458235639598455694747266735104622263987965044617408157172059345991862518063087900054396722867498145316531668657754176651702091943263976087626831555185988669057797432160751289767948174491373415593187615395288017220944664349971152279454014330394471580791955644510561195501886268429794813314447827539733888086747346416205275204304628015573419979527466610935390099353978229657107713453601167663924864401106901852908946346588949536323124795555647614311936205030474946443936930185478865381170116995868903959897862971961898847772519396605818360289485240677275052073387155916396272859679180633747093727959474047366802740401525239366371148587428946577032295720085575279476483440182324127297830558548115250243103350011089453963112477362470926906324903606066411005150673646275494697087101792059669474580342146215462917910948366954992275598467786492892571571694901437411500517018045699985999333832038165335302367719001315159034517898377476055413227616132442705306015713278383836334790293818362620275759722918297254641967963183321737806999200953615013270646030855195591732162947004034720864332096593694778261534165441372219856921871348809170738200909338704915376584363701742662073607420893163005534805293621712708066152942437212077277013672062660242166894077910366438906036518506281446782434380120574494730353055678403269351132097144039323653859122506211225545707023063913343383380456685632048317633431270636268138610657763487022557086321200883293824127374686803855247694259083412647014849890755087267395530462423683736282439003291914490729410094411140065288133647573070257589740131627953021392353537839326934459046307391439618042378979129229169143347897643569652257398003249692828598012208327094177635852790131014947317529856575278426051320433463570467039184350262746240323269297732038452189000679134930942459961325757769927863637353569526483952305924763305476838080325559103817561716515005486543304720541720429166541444850247379647704544542779565537671718554862063252762987702983098494752607656305667699931978363883842739212955762800830096574806187562137701027817668304813716617577290530094115705135175247879377592691846333155173089097734328509957607198258949175213458125161516880736286466885334725826768838701638233445652154279528769730107052467244435894795182571253597035581174390641971200881463435362749611383568481555263315503936266113399390205191175528402526266838816024560524629160240556812973004952467977343188141570174788668542616774820415193000443793171015073242062634183452084691387385891341982587202518834311813732333936274234382450727658187886559642087011135622260524525713426471439296599204087687252760733189564920846139869978708290229975255186801429343446152843847894173287922978874286744262334979018545951780620742842751131676083274683494549934389769799086999094146938517272739198155422335522014333924677838223354538991967262497651496352547647121613955220200069252391742112982039692962503640923217591385257297122871463635450171382367797915701917129259300948505274267573082545241563491870141416353163208898900550870311476697033385440095644337140218706895249140581048939726508911928971231375837025512598309111833244959825086727251801261158387639850925761868875968476483315729970418083247706113194328988856921866587415559034083259387028258752325659223590012153742607976143183429243135635023041074677118210969755127996451832135103003852603201204292064365425920968268756102243883358311051859728787529727547614137401062809600832308042518408632120580167516247858582580591433725019397093042404916544871945455732248025384009548257608103738138800338881458896379867001279953284445051762788035114153184385929814342984836457668271096181955857731618987410970444275763235093101072298940806479970479530826531851844478325830144679695782400612295423859390672518309710940495482749565839573703121144184432830976720435408122946664487420413524958665924523981810483615597597339578344398724819915288918906021778275982471394261691168607310882614957378780014883780392480725264933472965845941672464442014457415999419483341969755543008453548487310887282497431781852425718828264535295596846915080265104255720638055519557714493680636277063281530789575713920096641346692159920458721700894403485851152934325275116546939582687519421802236935320794840674860021251293644405928246549662950578295867558652388477140984009540083080503176031299840467335365647904371140422966544684166631195188311772951077605151234534150830392414990414557877178814677806922285910363262698531708129236574144864358964279813943142152330702079011200212076374409476640577616865354140492611730226955890267197099775381420513177495919624051613356205234121383483116117863610427435945840394634406852279973731441752976836660000624004770121635362437797717014140028433588300480253074717065756045543932381808967698829921306600578765636775802915633493870497287586122042925519726169241687638336190874748848433629276260662154198394025699766211918621430962263245405234733437649263009229608998917020122716038249816284847206617418758208066934576452849934125871205776514607498433482568733348130867319553120678016071637950388417997639213890407344286127148644723006480055709303090885580821968040721329330176874584605822373375532540646010169794432571700116350925061783249056331253712916554072273871030881260424963561122684440399633016503756874619865015985222140812700763620619337867270877226898145872126550080049309626950345226771872365036988398912188973337268298204579132518448343852328763719072872707315689657251600271867005866591649012544285427863560352224965283295791056661355952570963566174418283497043895768732258327492209019056009437242698922284875138579841149487073493720350148042891002644631639458775955411138088824865404307244999878140226376318232956448178083077183878182413436601055099085205417902142880675801078539956251927432895589249401754887826705967794480006968686345442735903438116775067230179213593467941229466427246663672293867250481256260243203810972845048075704022219369394624665972280298503766056651084033769876231270009519928613214580825045852844429324086520609027451509739717421324590809119313665663879299170640144840195991362383648980723701563333024374426442083746374021445772466349609952191366482667518023253983999373948230276447844095892564641107225496740712825363746097641875343488595018683540219000917639726314473779350548694089425183961547382946398129997924687861581219692949590471531387100503811407111850955397551122274633101402491163354567237938140306307267782539044241425465533371509889139138887545951899865178814570613259804565766622009355309063850349305552528108320068489883529143911559585377931747177641734994196031639540117704755220017686714394495136556630611477739088381122812281974130470194279751498121677805761417319313866302749439831874757581457577411904772951020542595535230688435622479943687509160546893080436894006366943777356680807962827874017292827912902371959029309156487530163950193851187774577066368868046341921636570833401955218288592630295923815320859360638538528930821516520692392580309134303311687600510845278991778774316396811428507204736158841646262717652077088323651841378097267576709282780639764639186143698987166370132626435190227511360700217846357599790322874450196277519042080009876192972986077132253916984409318485498282575732895462795497589708609116527321427755270085463241585849116735402410967004359900786533171811413840280951898121040202724568970941707614428244814633533832522206104461045978604818222668040786705786689158017057882407307061957106306762796791237039102295574307675477819198902872968558372414252265512409630912903362726854670955043921400920306439112469371841996544692710880101921182184394028690688944150292806243541565792054111041747860286015967250447172398562221268170384452054811324978100429730554003597435663373952077111679374492938546537221325770634505801805733680171980321252185519331628952371284494811786248052059604882003864335608310096080248542200254952474571203540601831861754950973580310258230462344964611416390063199881205854032729835580523224801891102043862571873401828315989351360866448447928148169643090298179025321155095499096966222177125920317633862962318354457602869308093746744015897049557462960087999880236262660858814350954738620312098415973930411570318498253336278202074931434147101536938482510748738158686380202610983403366329270372849231519956662053130139926799237104211635776160286040635409774636820485161356805773367316747445005624973353797028673216728884709491312531833026492525626829358024331531781446184769965352993862746908030028289452224022543274725828281018934673988365415730812790198401367192357109925470186103929234192575163135994745170570544071391589796944144061089669924583810246424064246329850976996480393323173501470997663194401141796269142081477921948714105638004873358284745824465441027443754045978764141734880390342887360890428206238830903236838669566883238914185145669624129996594243231428728411439975781530666681882160664122933420265184541762698438609748467413681299776750157021840771745264838555474545948808306743270974093391760510681051862751938621272749229714719826894103993654139181827104597331688640882009640969636645408196864802335467662000693465704150408078826769917188603420066498407181578631875958023797924188434997646526960665042493427835091373561196055587490584217317214630693401017720690868590181285332912947088694248820134797395104586486247441862155458756649110612583502212210069078355334410132211172044481820600019645558389605786294386511246192255828545602219193098248651400955848786926104439869521065948716731006484191335134414151838625717669782321737690520762864285215987239833936934260454654792436701046678406093053008287952848329819935684261672707703076267309183575179504595747738653239390271522900952384788207164195001828365228393784986835964951034241284501509489799914267505113448602272607047658943261000387931287947527193814046937443648947851478498205751529457450262110844999733899134507692736725209142653090032888910553554545983371807619536710477551839992578823083320148605751875690338475016681218793730734114867535535566556583583028741749853557116875608005295894998148472689195082798139952316451695474392888362422484381125327621429330242037908078731762111410349409998235773030451972121117032482126433103820051529815718538818044487455220528315780959164724181830098565768408638910721977488332122727040909737565040915244308408843069428191439057563737031046485605297320148605437406690297259670734800184753401774999794141545040597673425469063987034763193378940967125148264134527881085645563082017619914320815740843947038337141416058634629918260547668637466727863612455148871222378142722036181119794394360927628327081999758288711174078121736241455972755906576529310676260667520202779515698977950990701639130763911746728367363727466095851653798996897517859094868600001917813226758422601236613922197443875861386964195936692302660059790824853425815385922733629049822751789861685325896775159248460142820982389589555533485760889126943402516454790568321438661541964278805580118085875454179079623841841151254492521933608579740837877500887495793427041370236760552677783176820223421474875896440737938956685646239831732036075558536189171213171881316806152589475203076871897645580083461200398321123547344215427942801925317593154378758441039716909881032851821035427290239525776834287176082567807913447834049268525053606898122910805071327515541136134139521221020310939585388734026045391337766341660173567692917429319212431577712131694506860635882872885305538691174873644464702263213837745306236298425607013328250574593208165162963326840184890824205632306965609893539954238363933427586352770200774365148960454120384724327529027136893912251942166062052446284576748642514897040974139811569723191985174969429640793442493532937470901250281620009518450271242878123442211513704159559285566176660397181436771018613233125353116264889574310384125310120648823555615298281967295188242726190753225144084617519674726768479461421798288428874110388861970316786172595018600885434900284064460328788472533902340325991704175531165482847325018767543248604436578732769454335920662308221281951291295893280125721094832609123259715087262369940277367780548352004843420530027192286050599071758533587681744034468422448578024880834640110480163419570511462621804562468913906659737250432442134906203306858190222640117265095929317008397376723331813877485283436587042128986061731488065784434344890638939680048268132360791700715741303885562258921393487555300355030249641585966509064014598610452432157103079788779615483054435100398759234424646991921994818202688427718441632873661140921657896631966226086865778532393093483379014650397277655628446713820479545009334682388521373802727275141769216976942697010241581080657291506830057066099528399889789822442896583003034650468511907107836034078748720962930562449822362909918281394203859180711594669903086292716555709718883974934777132922166469875275404506175010296233511037758940927528799473698251699636886047544311527151546721779966068655245171065597805019289404372466601623408503975601433380720159171093702203325417483783128315554111321106325912604336114711109456279735974838673534486545034418414431719214320978480753743336209229783430042222133158380361370055670454428668654367988716056998116519299397484132071731615290905585824959627477101485346450202007436994443410686205770665950322399081093291792993703507183119346015549746970433902149735494542914774616313770066073730931389578871884838214156883166275516017340523009809682094252988549155200624418064378517161385793495791692580181469295091786523524450774952314328908866513315346667716010151575715702151743388027562213656862791947389323175713331524223390863547972656889562034472382657326359390715000565400694521822397902453506272141693658594703470786480866263453605683622427674135323802126517570038153449466747488764387910779303304516626908480729069459691918167399507343471476498419933524642058882545583062819464046304380662735747481843694079932919000244131117970646141952922367709997413530189516253250049686367995923766391108107476832444671851578045790790083988741705372107346796818801502531013492994971642321878754652245568308083651846332807033460944145023730809276620786223558880105276392820412588081019586914092201946321417088533578007997692243382969657067854005732644526050722730683347864861665077611396111549734714621933475226096996293597821822950020383124270459816244768956392197101248314112006788278226941655369822457413872748924820137332792767286741404380243281838865687913732245760645945208865491663678920565370576547440213304454522895502389941819464459310317823139071975040277500005657038588610420138640472896598774690423611192283976829938917507701506020689694072080988985407082429303693984414674972803877602768367268565675966886479418555620341097179115082552042642072477094452318835027260413843001569206036867025990976433880714643233141507807665546357701643565513898831151548224234260090602473852177269285600381551196125489835755649564964009188876587972779420903893199242163090282200847542956723198935034605184255389939737334967748105018692695200972368579114709380642947237212287227800270889430896009433167389447387777627161491453875604517839362592491739458645659448333191392147289247813140455244485034586598745337394566208492810126677605432379569765860642195007186415706318868275677374188949250890562725484669930700352397898601384700866514886372571277718123474432231702874213212172700630381038477736525677504500906380163774694965684326649206778127929319797103747514720070427453761118080965050069224399079657056964019281564126974348117199448126447572545314509746627748163498256023685172766447541880598850547314342272306030124455133246085893449400634313257468522260069529950930347051820556487275194285226526602413645060536312488066745298123044127239691219388521865610365075354372925013285089547023155097396855290123423893740116311131228232675331080632135083877605042743631322784084604702255574772724562385181421004911995687214461836777118005893330089578583634255379693727932318337509068296841607171660920513968115518723388737192810125246074137626265466776885078433807351408448953685124453210193129867183943818472915155740446438191607606992557771212194918984583368855978164806235426696339284104169935618777397954429973801968230146849167338264323316702057531399390943123578265713061410010657625925753912055944358492340199260238150868440658074354515662126837604362516311055300053998630083728418386348812843928819397054722667897817515796317243211605883168473763565232986596749782686905357034879051567951759763321433758803186107776602146698421946530606623361727676493666277565642791858708654593343768680671038024994638492118733799642363726328153452575575218714032535847561404140498808904701933929576512197994258022558171348928818560695654945115195100758162203865092079704756032657737316984139674865030795293465470429455637776114339274274839361404990470874700149402427210553989860966344391561441578238681882702659047396273151009985173884036975784457056398215742319988702758733686120867099278551471406822927892511714283406639260953987968072214421451710465538755560321682404050959844692487478556082850136479005789327858694042095069260912717733508323494598428257927815119201904579764726633610267254728260601812032722245144124859464528415077853995680095931471536864077809679642860769408181809929078458176000121638808199558946260106478310126414628067291240175127510946668427289775175499451537837097195552169189224664063626334060762934634111459023958946296121232964740568502405274594927524023953463572913269394870857543980409427223532058869717169012934690618844964615882243515823545000540074339197095580734048814336341836049695697358760050498459833022316156755326929237157085388869869540026485612069792218386600027399438235862693402284880798972252819732147842349333364406080635854106888180107621216873793415037898759181230433411944448493990481808623997840889541454623328368705111156649583585721640039733171717287013895141396903633081421845590739392802959742493396397144931564840773186473140161134691535033188830966701787587230716954172966885121513544880597013982321304828384322705903415302458335419945675690752716426171062126348010566929356415454363513467169962829116894505041472872792545666581565147327406782895687035087449401659654293612318488936012333582166369251471210423102301342309968752371413230783015793851189682761931267667763050479362182296594325200278295171679949725404902121772001005537825557003265990696708296100563234065657492171733178014405346346281923965495728642287796619642846291030798493399527628832038245538987713382889502390736031352431117902678638248599830948499431677690838266075667472284060920627463127319961530184938102394502442375454848439604132009046022502040369484718397781590423756611387815958349644222026001381247997251550327826827556228923089791378271048456584506008729670199586727170929518888144583261524443684787811115667143279087017949243685110284254530909459147681834826912295351344262388623139753769376094841793993901015411011317191389663789441268865940686004106455107334767989515058657061482761164950824790958505660872659444414119078642923410131645401480160620653538136877870401676383067346743184171607931494396984729518260965897773450957900230964475029205742965018866624390854675727353799648140618461570999995526365682114723259781317670311028195143093660143185054867321950065972565486792465473369529703643283718570686718027455397006724941630484928805309746420683896938669533802868874212348733101894057516730604097660348704734469993658543481115832348249438764486334507056488041961712011610009790144876190785920250886023254636840016194359671805669070442692779954339782647253752428196323804371848021418387506349759224372459789294682401426889597782923625467397895775479043740081006165085386042528152578296267494807159929929959884637111985239543409441983232256967539620395484045636247968934168170255858563935145879269814055999424518180720055013376749844221810338774402171693642125131959190025543870758894884620223072210792197417508347529356096051922114143608110803924046221532808271167973294159654519924053958638008436173608651298218493124881662234858416102218967432913233973104076024109727269998249817425128082921438860939564737654041475162436040150082963806000421963980018668935863488718677019219103847830061340314025172063996283362443378635146109748500871115454553284060920466327517824154713957927220876776853080542475090072544657760718680843953138620200206453855123624036349803169295767673419379961225349326439938729390602813577029400314740219558582758426072639353645361224166339043406402035929253127264448010078542293572077890324090755672476937857117421255609146958403862607917406928559838631544545242180250686291213732454619246462209927830493060594955193866959921186231324459546824702484123629706313786851173859925573010829083799905889070572508245322570954085121448018047165693080550926080409129027782000093599016483782647106914186028625981169415927429486624614942077744386363864310407623847224915452879919072438137863085886347532096777653066695267847314624584686306714095314340143228452867132046840469814821298639893675636009705239815990256571042246331277613895828169220340650424294307068307864796561252949168471523484318450989682132441919153435357462486950198688043453206672960500376605939750566818071493892202673434555383144035997407189207186169329301506089948350141573629529610901965123480783263908998560489103000647322007386060992498585305861373754772878601768884470003953369479296447021539260136244687586889384793816164278523806651642598198438318363617973710083771310728470239962574913947836096800613511188612318332577872002630837452475889854878009674042374572261485933487803245293241906986817231533081150873925702253116959962679809942172726937189899831770935753872181478593907618859208009344317960015687457523965648510639158593001116379140566051875417657217781918807979899457397451543266171314559908553943421428006827392876564542515708584337848480865949067082855149118636972138513708581676979875713829272618518219831977940146226721597095143061672356436229127915244734000824846351520234195635195499786966805483248519636269160248640157722247170765664395968473397336682344575090448167742694230296326813303552003192721151075431147884511919517023433823077386894928119711526233252252117955822864456098637551484611051506647700118310467626251677372628725741787338396948335574600059142477823038607823879329248099125121352910957853133986585496215589967729827412829012282456766134158093832778712705716592493064694768523013478525578540429667582754175371544343843309377592682502593466359171760037889902812410318340169820669381893337356791136439581918884519511822564115895761638375999051013508460008421680649326381103832409055221765144737956712343660492890067160700101879341232141293655011875603467963518220861831891763195900824028834843573486260867280562777576459052650209601156091096754008020286711785207946543789277539856502862133483345541552804784122002818923357664034143727959646361381859597353931757136814525000573808913997698987568305544281093797543852958062560066726775125755926227571177272654099214598162527201959821001732765932087076065713021563616360611880300411570516951672198285815878655943178375245165596077609393443236717670777193585677649021372975886129380137975078788101995519771539713632516379851861435166058568735495944508760410957758739136880745628102084183667907446366883903463531429571065599723782198727932958745843211163944673368992805910246300981453688249333161320072288221052703009215050673731039231710232423505348980748762425378642336335653407591929281558101469370137915536200350017319908343107258689992210417106458764201763685501297417074784276828196341477748276346965207415041402763591477979308506922673372649031536423668754566631417761780827892807691915885801324644123503096075886885941018975762826036928222210291022120670724607336523371642339792175453275230728956479225128524597856144126362749996015642114976143919230903091501660456926661317700055821944835466848387476899455418699436446670196819070086530951364607999478829934482860317108069667380340398930677566691958279155101824573824847264467805480299163649885507481000419885291032058662514357645927387309180315527893818622258195770725146614173918452316892374827124838860001935481589615085476561302962729359319067551126574813045579397344583046051683402308389714354693528581328009477388057115926020753496892259050516245447608398592926517918431319140039740253410980887929803726689007945228836321870030847857559617914447742303766662203182470621021067100531618719073949525208551645045261873446115023289785473128426986109097944466225726417798202301816573907468809266668203776029739668876008695406825776620884404358106195123039861757266970945084669895464894045898613216713315339590611553492981099642721985692192068205497836292838778563448759882408611427347109458136346072088998625506650722979846950278941270370192505253493568159739181824481734620226013668688222231100780694897289262662503319239684104009575172052293182643338440783426797398621173260798762265192674472331538325878224178873362227801271665582662799133462494139660005353095806532316984170751850152256216131422459859536556407793285172736962254589833674370268530620535444780307660978443331415231007312877505037453619568465908655297094425711391280033646302792201483161765795035772760826943990334198282023028928676795658464573247949974518277163884134747044307306279138805785417670055996194747915820183872348147432981107741807521862710386080873711451225321242393506699104873521536054065903921329055020371692165552322537204151074196243262281248021977937013385178466003401842668799748137452567131291926090269437295839274183471817461224988990362003293432702867994537873039061251228755254451427949015799949043039370555698482891767437676788831689648836268996421375212601555328848957086424301541551671585534540672846862795569137017683875195690475025239614364069627821806573260215047875813833303946311376904452899445656414604391233357856006906220375942548431215989752057199186444727147982186220283666800014377045922961822552415553667311967836505567218194590223541880476340306226719453939005107176609993747332156910028046204865362582052061449561256987481796588573019509650403489528404637346070401347636920555261783936114522763167750234401536661713638261348656175309751274144266468150382461074959778137828776626113292573034238880346409224982843853328435080891671871855989827748394168173954751441764950561440196219954560165627313040449511339767452347927567751973694124348787830094994536291734140330463174302262600782088395316234515054291599691262861606458830685828173797483584488324870326015222843207290844922325721195757254456420276622230867313572616976506273005747296775054392142108499963393935516131407305778719499975480306243139907618612866064199201447413685376345598372138940747620627792237236402386351436286631588943185719989531063319502741401110225545437797089582059366994137690249773529434794414713181180707376476403117369040211272092175888157753394320073905930040944999182360681955163779730249715317080086510161525614986849147293826184517508556121755100191145774399171373738310428835413878406696887402469074831026614109698476067793535119745877671143912328259821890579567512812030677824658641505521493622623462073655313254599314576469121099612938525710666467194417526878082088636612687955995757504530879340122020768884867055464791260842665530146978871659224791111224876548224903126797424612378970871892057577458501256602438435818391912816440650905300606019847399824029476988767689544647893083354098715244222603187944361162114225330466124178163656911431123174242855363429038340835382592656488182561679298139795497447958378812827708642596711241476599149652038162116054982966989031260096800067086522024557420112760118072043976801426364867216072701757367197489362409748014673713993219824463358627694827334350319487584021034642324592069895530846539451541918444375521802215354887849286847290841520270081814556131237517989182506989525260228728029969861614066032508599902120622579467559316268617459922697424422927215661170135946135417734520348890458101441384236726951395422774614921327507002929801384366818550473291313312571800702115311177186210220084463199461528851217238356773573912671899735578614315969646418307970754039528433501793365159928633368498034793763489804734111886199913824970192174067930652039991964285424882474310376290211865843142661813519022850092738583398125671710634673789096057571196312638768960668867390434757866871098101327704079202320675887877125203745748069140870703110856523255964829273962961581266973310341575032303209815399527122584270126572434726483588267256187486609784945924347555544855110445602514186607168605316931358257185918730287844688458445631722632766509278540962028584452884504664868951289343245391946923063246391251116636157723146408350217862263554408875127034259064888251032569938042381285269435536796053254759038272136749849817218196585271994624935890526272124229014882395883024695193767972759997429097127517293985946553486854345172128018547106574295026607680794703238384831980210126693391169980788849104795167766192259265277934992877597779686709333873038928670768525945205111889245785392771681888920989452891241787482128840548669018588303887044182857675900933915425225865381140008964183464287134706149612128394583704510508612673304313390921520056813836565516666653698839332609231474094429771413706413114507491542933680291196554571726585698126265151923140312918864264676707365235721448427856188709505219134819290454650077962296832049861530283776188513771658606652929105189125540152816607093318769334437570410902415816557444129916135188636065554296575466592233084513736332110624184394534241647643884260584954445763366730615626143448280611008754508907862316351762148659252578786264177014340206670838095670951327654919362351064746988218439962987274203996438171510265944858941621388099069107583410422625454433872148032855694791697920639342063269524949514424887216615628148665354919519403196036671007986187793566761979269665698579954332159483329022703105463578266465730400815901347448578833103756993582027258098859811955931809154311107420120081665504878145011494367146417119203396114596961166955650842714143168822890302857624466409717297664291354458877365517129057381736718435683167992945618302793715419093662213905261512964708523787232959552643579923854214554830110618754430890100995609125109007420630517594739459530979852489306114143836687017342888220977096020423230522288510870692451617065364479339619312913766193296793106654052754544326992715750380836858572149240041286137530386647900920182357278333240421657285343190128487206959439722714765874829903039754056471244355934402556066224884853446426520847502015657998082645688592615208265287168436697464108845420215387646633058898068347355152340630496232171679020153179737106574412082062902492543868740559163249111306615216656586950585219977087673349976703867770009969079415124649402409378183559525588986812537308938279701586003548034948664184147747254016955476984850132758046839643697180131378146013984428477511166084161470449796788406203467606235641977071167203125648442117219125929702800299567441530426074260760303997247066629938348543713389987493236796343085286596430797801156125477173039100688514989504748786152164759413605276721221084628393089064969317983464446015848784904025364074779757273330716959387816571500453589367583554668745931511029289545596932139805276343942540536102996069155252897903656482906041507920537445273751101204431076614863118010755464435658319909295143796088019258147090463007279598067930396086230767105095182428094918174725736145087844095455026571386682682447658634707045807407477177711867417554879169204640973959642702067783041483692089501957842843679485873381842313855702594874608970753119086157980508032972151065282429713440408829500973060494752604629220892930428507218606813792155864929134112569146136478314861079672724862396221926146345950576804104337527986778232021757187731730873723622017853199517904659021921758289310111448949860700205095266117843605611745746428869380696761105195164028021842887057093170568951263836520253048571124046106790095236001510382909331422253768762214554475581775082346375956108903546973018309252831984643145909762573030499069345805568931955739767314463601698671481120940834149312128638632965674253020231648023034710580996476138275111852785373989201278459397403881384792426209621451908653058207322503134875317344772290280780147797214117725286519052638710894742863171604930843892945546071272804998870806867557443314736931176788843730046451648888715697728433916735706583447841357582272279842827688253942163198080270905327965864950828900113963235447526773332181119689449445812452980891191838488783166777672304368954734230023804347117445639008816933220372885284526238352065520079670039789809584682806974438021495186012899513416754215419754643032294271951992031071926113753757546818941722392693671193923292569080928679483225791045975229378479654720245708191785357116242933321638844355376013091369625694711828200717524848109306084866180984953413385509163218074910494301351635078348785164727939283191416407096920034396821093186792026647024884765528520985195602479391970801430722673184797901567529993689150828021667969660406792841012654388852651961536551527662866319100460456461520968510098758769672627554940204187074535270877172471884267683884870629639325787434430183584783240438225308604642559181697946247408230167580664940337423978559245921589892418399646656188792411097209441553397171169535327208245119997023633584106533004269951004590600315926903439962906782221922289168705627407224271760554980290796019296849185580480196547069624775352038685095887289813119456104280412489756581530129931023757654879835342310299648353690504621227112248779186351138926206076213415737497245579996470155363619921822171011048950271567477555659770916032963886135987146609106385246610573711388389103454199052092900216415109133379135105672919715318139910161984472750982998711133095306054891359575618901565080062159279937184166678778849194219214410496731547405956489342079992927139851010569080356319811100957512476106834207072626331984045453479173272332650512655919987858125547928585729320993433286014057416002452733364143817271717372245650242326584071080549789164305957887446808807591177473336809713449865567483966671026726713281725276061424363731523551137178241919849646632872628539665119885557686263583434007089881711899034406003309575378438172391872847924365482536998423632693242852937711291484633352606946667981543464368868776091704857210692270823889094880494977392744950883333599117981950422681402530502361039940337676484770364917854819125940628204458977034042910335372678277967050261066349048619861019416166212726105898064003900036481951757313170377930119314920846774501105652774034313730989523322601866231743706360604583281392216386326038798299244613561545655768247318070882808242684441749632308937551593147736737428100424330327869238683622053804225406861001153014472058346066642911291097861311309154162991085503058040003822155585147480228666373336069440624294124223187467120755743762437152912006938585221330301656823150165613074022487530190694178632509022740968840988819931258060041203083464684568307323264491968230394068065000219296465334607954974235346719023968620650051091565093610317064524915700305036754210828142696662489256742790872165385736977508225484250390533926497724703737277210398361550571867194091783499086608267450203905190561586190209080420431534193586236772410947515087533674729933674786897180104791698223056695986626166062419023740891512664829388947947579301218685079748895336206687028495826483403906596296560703169332778920889554832938104015121361419127622740117126583082450168437809241522444073936029936307633821340492002770527853653747539606285929879360692616084121791968436053814054105166205362436489011385351208609669843315682523679004567473664269493663918909734462385201442375578651070641495558806255258628398245561961534386400486576663298635000925451736740893413720515437038331125678875325250334929420290394479332801338850404952086208645713353277008111405380052665076329091694743588589448958637165247887071442293052216796338731886626185674123605407110788113658511161203724814265603648709274097074502031627360359454110076213450790875762812191688570601781718341148703650579951176877390967502066094318537142192402666331280864554812327471851706765451914184247685430210931166677367224366646990141970694895750986243784853058332481532752788143048130036292611591770340856534435813586644263128334384234279844339555830853971909263037886504366886225559181700164530333517746250944335417311640464125605797392638383049151444250821384913006641074969426939202644920636789937488960900012169509477927904123486666787802786315325544625582324247626881831322424231143621686219378690399224495713426971621169485444370222816073438255884514307847637949801718361747681234499296625935200639777872069801110577491367849487639462196378693743804713404661470660002191218510172671833918026084929783155368351504766500376539001339367115727369495180659958539278709982846452746502571915566706345583706704757143862336873784397352583687931454318920728401329703232823166180119868950844900218551306107667856351032557214801525218596511800913749227681390035605468885467167697572154920159698275171262648454971982992989622122929736924731488088695426914882329299964711658218759582843890662589041271478510823081648760970220542831866131943534529938787667760101576802652706901408014468857250746138957390528444413030221492200086406457192821592380478473540812367369355882116439310765587327337217646794744865138141170660815523231955647196029813187653532167260655260270563771248031696571102409797552179000143241029497774431016409251881170434571137379272902920268205011658577132934834056687591732398665509385537358485915361451801103328176886914392354527571707637450078113476695635211797611258470241555553564878194778573150009949189516593407919577614233022909880266226631690623865606912017275149709230510640888628254160473821844784993386581866562412769926624293590724626130628114525379457284206604298820628603853443554751506035192835334309125205233566461882148808600715922616278366368182831424984264364054616866985860699174823451257755637267678134055343229399347568966448600242675837003819518309990991759658217775366212104132980480006048597490851852628896512072724828500987639319562177880651501754147132329188408041438247191613703566780606691879546774930109969085127357939648342170200144727557855959317174259862738673278664695133415675734070964851634193687131326192167163933517615213123278985822825570052650779934866811714938170601195591097694817193881202442772274585772170406702479890878357711586712384757116891788839225986316537668595663154310675421560334654172906093674985119892465660580835370996953631658904116577294984645640778342893705375154766403602784102330620674080394024960369096588799365056550661427680092663067160183195232211807954291702925314441390250601137109286675107833676041316962879252016600787890397209162212529215317855070208470585071252302574574270852586066225688055513510165807635657452657177045381369977676056084616907000578127455700782406787886932882658589546956156761217069228862268968883600816789012136106748250233647836898887892188968463856029869518714958263173204870766699679481389350620060303464282215381693321950253176643930381716197569370259783843630777572178433071638898702442604511838696174518831322163696810805776203816834202587514209023184206427096632205693082668362170325247155908466547747197799373652287961967000120545098248943579276534127732399809621274355102569596245297134943169459866279366535510054036232566864347318714521814302153442425158558793673435543504947833477396833221681876305912708479554622709517842763550613989788231615771895057584724000105305938870483942344753910284952394443649371271274815369293750434591441886445061074706702947020410969671078052238955205821432560495716032904677628501224261749141095297534877372700900465742529927280995075962789158975195927150675541967786546318465990864871090123923233188665033309272642951662920064468989824732825471051749830204331279023917461608123720878401933908991949548709835223721313866736260372680648251204804542539505922883307550631998094742455406940869449824512936159425895967770828941999256842122124255686611565642724094803949773422376299133702932153215370924593961783074409582380728632760568271133835272850324604070036790251992103626524868675771621895594463788311274584971868214465665567997542587247004322388295100895203895858777346387469649917848678255914979327492095300569953107717318504963694944552893112935552601581263918632206443121224424197028806816195931094223009137755897077485071025406489666255752161006287217171338880700260725737132153354753340852542671507772156568084267481960182283691895731555033464745312293501759934492903058286241427636112743113961405697341127566116044241838506364510260467895573768930927506359839658597717977326773797328479786022375317385991878952771731368506350911367548449556592671348787122251726131014258590757785005674266311742820416493994067406382615234616599912704720250967788937371022742587351600363696770400268272372810447408943635801170257580551592539183567474069204859625331113177714722036367797491530505117107509500184067489243153925479708301732836196499634017341049793846040868984536537345172186657467606239382560762017396556610949642202360121828535710078383653296760382673210222708745102913753213034201144847949307651849398925742257107500082781067930738398005686185280691148211682127211181359589755160474202285016909144885784674850564055301438741909778234866320596543899369911719460163586031679836321615074505822040308039359659629252783985577700593226929541463943702051797417720811199771798142292851245934924006466751084869442375533057227167974216585197830574576463245554861005756229002989044372343955484268029975414428157870068628826598113889137965527318455867456211063383959651514398548682626938893459413363896399444064089549929308736522892533261166739433896842223441371952673004642239457165069018573140798617460104278016205644288926666101518425252643720516456906080306622838584627784972297571466049420773742619774513092039459158297620430488045088013176904572591389592026720389444636310376482246588583728833538194775677933638845510019495779731218833624357980557961457576516949402016779219674383784897762446566382964431535022812448891739079248565668254733412568533116918812078421617560067378274252427169415694961711804163624619111839043714376305346430570437530761658328651130222388907801212700240990604118631246592830920488005524621362002081508826920940531653720130004887127589818551494330342842135640462114309114051461651872549279496388939273893240589317677784672537193350688996134310559183874024491868850605242578235696173649821581126444790422311022185070037038289810162321350852158595827701237033650781601450013462663873518246103458692424057968630833662904731392507940384301258327658099156637369806400618420229532260889039101268995787681619611366923607378796379047108400393146354495810692352012485031107520467777662374917237214090580539613483493404653559221085569815286001077569902113408069982495562880215721287548078899159020487422788344834981731625320075744495807508343241093126825410067139429748892373431177736758693837757808729575779690528748503884986485366565436503623639906513975505930081751364125028251969534995553481387820046406482255979791932157261629854343090620690990816020400086694505526949322292904130005250480207381093152788011728480628227295075763331540038621741149284130776906888286674342392781933132908163044781823585571495612035564419688380593123270672173367018669572623962850024410564030871703522201669422707231675940540049778632943546444733002553884157393240625148326614419118069609370712796545822515636854277693202544863518360696410920133982526034340883715057189670589150548816108659279071387232239886069104414312437756479424074204497712244914977867306905417524024042320527650559128365169701600374201525649584924595550014700558602376828996231978860695301588014429039282785260140190461994724259193006071402127164319616758627999612021866452652465101682799373308308643125003749759853199210050338113929117320452203702982910594861382086436921944341319943635610427173067616807648676749609922732736889541600153667142764476228854409033779760384857251593698277500302706461121777490953233920240097711441915926104640362900880814716390795843598115827477275799516251473625681187094502148505973771522859972466574722328575354912226039083689814704017586013246858210277492958061997891404359672525008608214636170062648261874365488175952819510934141775942026903423909090657960554264588823016194615060003024272839818945634945776247416382767509069965491713173792775355715593782779220729361555289332158816578771081109977229083865384377326902656286348375772493080099046018517992238426426467403758721672616390713454229067435876180710460814153810538943518196528294061068374656563471536998664415521325537178690704271389629814785898409120971006408496651164517248021596222456306615784811238289463810622894062568351390422178491618210915542606577308670951813874672417105774452908906876767862590959763522755541624160948482423057711229158588502168814432361004237949735303398001328711977554629109156984527221240079250586332771366657153939714236410900126105692690269455075558956576921357143824810525201394931299130569498930369589132873870371983430513965291873783036809073806627304678094632794251123132007114380850031842693437152446651181999538326764746246722425641892718289670692461334024935649141023135904345313381452255972368937620214313566599840352068375458296810091472344868416671740278020122130556160110447405942405293752822045592053385791135918807128220279750481579898947518106095179387885754739131676716741884999255169539726848895814196931400961076510267199176180024885281891973877652618676634211292492771050194875319002589899809371740896869495582557849245033394171764653269745642583368904931083819471719982427061134143947545752323181679730159115887649661937532372939248792610631712230899875703565638962548101710345654260047131676472703171689607561916038637184401046147251175282379632256236069408141866434359597366871329412046807466527872243484609183616477335260032546808801308828562114426775072664404478396769442435742423046970825055312071802630320071700377424095195855362408496951743136033797583681171248655265126518218150887897635093064303455171946308969221521779276957086989523864399906471396411184358636390505947383210002107808966683071759179934616751008988529615105846548791136186367465008850216142222407661195206811978587771972125511189865582935165456005408404417479935277718860922000977129936009082915445883449177574934937828987776790489235193888070586245216852459197864044314590552899738424533841943668344866862192421599524515930836286645010123771326427481538972600663860738135503065047636536985630794091712553651242540689503595563693236606544056962859075549503102718989965639522125784204323516679641532344756428031238514710125953527233670784310699979713798366813016080762159283867212406711034553407738367030107379286260171663423685784201684872296611392465655909841849559607513308061452441108420440872149757148103267908999630836811675113536402495809003744480754736310174619652492792933968420380902892513376518308081158799097107521028011326116746032804968810275141145197413576680838906654224346896291882472331195771880065039704413047433986051035286902624553693315163349644838751812815559841580700704702860937066372326314710926796164468579209715257966091824393455637538360940224977057012492132403720869555669069509515331592549508819773132925642981749701092576982575329908501063368928447904503723482606688960441160400890860543029834124718835089651837177515896515089816640027413858562657074342379099412622566202748108185803635305614441087183072232764322152638073086234499761828369346425665018523191035651911889377080814621738532990301931404953162041848365992959724066159522699153934210126838513627607886224866435549899463059083298291277781711684535664570213141873108451958302733958218960455867995693057825657877017671396121115633511498972470120671574257688526029492584816984222841637582445922756983293861147136934411712535430792802193072399144267008158841194411050106864273616664966960808564400460778313709541324961189953897050422583152454647098869895911434714620556435832786729070798469737028844319663428443220440842309626536067622937824124619016584583351196682738644499706398256359004155503290774609424408661899829383256315270911893391015022116546316260286218190402607483134483146648186200917296572607354350113983740352005732041410143871916426013640052362523471835035144728773144108192319210015305077918454284233552102662263769376564135709715003835771836689047216696105640824130426013198092992835990220303493714638413236687337367763764042038786042284032395499581250774213286389452509772649403248589262466275417078609246711738391646183152682034489292600038655167039230106998175462931676055390909555546886497233591622812376664330348226532080759410350518516001728502667373145271334866553335079346400437690590409949724477740583627274978820408168958651714555058202124801765423785841224614417770888165702703289571461274929306612363908243304602769169925484603470787333906243175132346628732891629653124549976503846344530914488992529771732967532356060557807846169926238276929219113461925724373628429368105168843362740454401110389437410188515967740319544136639252061974305038474391115918786232929730373852813139681157728962180442357249301541018816471015221561794561051754080920366093422073152982287255232533079222511042657773225917583292892615752179722695724478824955134312916593051790973293891490808459708345806253703635964566213419151685754340322614910630364849826690582180592488457819983695570140452132624739285548966365873362792508011609868545217925084376972032486720739293394884750949660230451792213649803898956896362780111923909505152216429298172625541059292665591204361063459837491205902166488394883655576056485844774592459636739381187073588694899202604262546459872440499776718484673656350493544188857650062045233748666124786275111664188967557752886216811393999042357767340662936833599971911028595232443578619124672323079147217622980955282313639130387721613636480596680335674210729749574220501862932196557859784321490315206783824493690538089955710852128938598417643090465996678382608669928687805167229167665251634441984937339998719767639290261359266915304444125974803213542757496700620686593658328530694305109398122738724303591123617382205813532722615779028923690439450793332150231808862089975171469896331268289674176205653107797516286340860741964334207004496154918273535509035071966196012411748530752445416148500442324528204205940689584136122415191539729454353756320822302038736532979669744735400791255435674416261430804319400261813630757680743664918675647302056802297049018716217779506135705409280163464632497889595184280941215339537441739060162416873465409425208224092827541873166389127251377832071747474466242010214876979902290910237120510398665665923730813660298421362528084906106391903750205149313119321840267495500082562385937045151416396831134830719645190692519231869011159859785989265001731992895553330362420554002938949477418432065244122786442785053773160881287851713088122545989895410269711984821049545494195463873884536777110938129442446016387891358008110859104264083763107313033701871922512835989391508990096691102903032433983968290535327099830621280260439078843266955678433867632105787379654927706548803678511869885762367032404063858227100648030887209414485416245208641168947931757610313217363199762945280923792888910264888493703609257730482326958709663433844406010551280376201374491022863022759276047500240732173716980014251748587124592640461294984248726248977181398027572865508689206522654819639520119220227312860711584086942442973652450732636724675384681906220374576715104341513759493526766908227505987778762168303907884587168980415715388469005801730092309657475169222605399435677627341014419831812595060714278228201724149267611222298719810144515611936209655643647410317776366218467652261068983633308837415634434640263833305769633374827167954907878044457061364032167874945945295991503569463213744205850565428561804054475932182932939658383125268701535777310976416521973238533948939378966824305185607650547812223067426258656452162037484646200156665684565024699813966153129313155243943056888299908348931597264303203662242281754862699708494206000541744335592209700250674686246609685230450503748992656005838888207295126501482124788088532900576220917145625800968689489298869494067310396059446714962110355744309853225046643710869629858723719167163180823525807413849192919403465282946398617631949426678119013981062261139195775055876560024916908930545749805354885091571030653652817360699560424835815431958137388064759593135386558361532090610378581807570228707825616636953365496765217343038646980004508864562744233632267599536213691211798702396223881904774357444041643821523237930209935679238458600643925231884965427146995283765559752133553310299190354874896849942021851423939490049242179902310244917028917757393245145515000214379363490427311020991954159344548978760176225435338252408034521597860631523384983584152404621110447583763486896981926390423082813766109499736895207390135756042130950951201259951767808390124973653471134348307204792374641213124562535920018774682237404013322565905077437804515439801931921496078695382512544674687247132859247132390401356864940158512232169170971467106589291482419651245708776634744176788792460097370820239128968678144840857731774691336997277663254852427851328464789743889942653382446941461396217223449852919791626997625491501581698249397524310802269074608826654149942577968378394403047443145876820040565633638755274787380406172594781554888331460798131553291202784235160222204383112325207693066463387232420163556846049776725829042323379611937743784547856500637762861702065584618884014047675164587378887047179258130392105574401333254270416671505294929595949383165260886723289755122298386283600140065994670170566073298078045882224652030004585315818326854029989664923953071317578596557223568980550182413690262059716607917896629558503325380925966051101342814327709451753152372804460803743680428396994420084096527810798246099465134639877845437544048038208058296653596667117405798732175107623607682241320996941620108552217146676734006389648999388906810150518184001951342797398955157388020066814122287799610602145716319793107274654530087521201967402691272339281567835734815043389603871832394175818567074996729857430878061688031437617527909377977434499653340305218822581595560905838425872300892384507020158781393728064716616096771172817583427496255258107135814254784194097693864172257612001066176923329749700632890309059884961928826393798914922983385617758909146989299633091732256738601150890776036695469477100415866443605181553606891943168649024984198076770829193406156342579222204404549509234052126398239241703617138529660679470067076180349139224077500521735131002839485217703347059574163434319188810162191129111839428907779344284018316397228100731204592660399842837704198256457292065169133042973777233348559374435324550547114791566299717976224078874672254295094159996873145753303943774592319242456744239487312841057687983850384415735945862238349533857813056794884099284324818172900484414740547610898743321674396216411324005048904344700977717165503954663274980201452615433217266494206401323868487616705831388298357759379444605613531073298074746210241012051311119287872188235164598832909011732970900946603243042866387975752051074045564122809424284300577334364085738200966620950872657312106067489291457362433052708473495204453168644351732210226709351427523910399350215838059126671182775220167494565437994461232581976669486537134460679842880242691550865388120043341254476596174609360778370871723455586157604429317143512020834559502043177644713221648202156407163608261073641572075417934498005019275940744309941839955125778474282330710249302785183117831027969713212657698649332519099261710042889107910477687141944504988128658526052636747704874439614912957345113590062407889677909332465862255648984756554991525959682757627368396349313155334704703507143124133173246357870149563776668148503687525059774557777386225461126957591732460751656459921141022032328387198351516671582705200549146117130244687294607442637364435329654820826117624804966870332102061837248017798489161962900225234231605312255945585661299817100724912360992973674520996653368667792569620026021531695337594912412368084907861759653795305078618084045528430680759001931871175649764662820310345196841407207612053866834227190642312762611300299921844511666490353018360448442240752691093715220174466607314147591653321750183190678261649916558947450470915314727478279052721380644353597708267695807255166433183412993603894181561596625883746636754530594701739129321811179862005453576909209480142159276412791752992664783516865419683321161539212324502310694684610451598370787790418264654684055506037298596937194187608643929367155694536349844710432209279443230638940332967887166096342422423868498848495430730324041443057588160170944340419129206738118677363454346487347398810792700035328110600754366181192233396165381348731378748383288877887391375365611008372221219068598105268557506887855417584960752091635349263221552227032483946100356942439530427674952219799581663522856521940623236838949823961040980058900493471868592183271807690332385663380987990992656895703335398368099480664761965292647883543816752458423318226207409683205527615418816597540844783530621892543114583610724548769880957552180685090931048314275099259925648869060163170958842817144993456403045475005366261781204785935122462192791725269880102557565128173235422677089249042705018325508811804514567061861922524156016066502621252887368037494557240734200138344504325183512467368568046098758511233359420472759796198078391721190038266379104127805377975052686683644963266330720311492693610434094154133804284488039865017652003811397012103514083782176813993011672342736558741993194645834597049536217464443697277867761285053484203345152890475782015210975599468014243947674354690674703844109626771604697572281940043258220544445738590325612845244120366941166108644628413442865639135133612524395114610321459268191810463153798768543031998608987571444090416801598399484164097956699631002195130368000111571235424732843268104080422510699567403894963785563631739624308597807412781017939516733179693777680791387890005103314634546289321283063525919853276925429341773679644363961643250563438025990980214158530555449340841981044767283347620962342663503538048800838505484494180167699912292135374533981890388243787936286247890154391640476957610719509017157638418374151596239806724903594863210824408509775973559998446297829362078787658297306693246721853315068875175954429722017408614948559364459463073065351378467947494921885856020571154404128045700953468377294007860254151773525318727911217912690894260115981036543822488385863511280942250661876075231731325648280748781134130898166393241839369290582714601010857671673197035159891994619874399259871978553823500926278069634734614841895861742170517189011104153589881194242728699568819335354455326620283219018528271801306565320002238059308856717253647168892342001264964273720301441753709927188628806819327946770603455218895363079427305966168801285977200555169790963702699148068935293131254817605617464156076110523493466063159910777404170061838400532355991467920916883378271180159304980804975132752084228572639181013895779720887626897334784998908447853816965448334784506211775462449558833644652036517002797250833644096518827602626616886595993674901939431830772352740471749511289590842846439953482752920002606983666530797100601193472796538464234342867517583075756097333159396757067095042828825268575447206041711288219666081827668036244257901356764380307147276897915565864130136692436551309955643145770876533778274307013978568629938832013619912134643461694321876061603934800785525952452941898615894408037696653733583577311298068437060777337441335358314098579642127132125474630219496977704356818842109763917783929890325455479564348506783398004234716962887481599772171730820798744759423615304272759683833166530555179017274605946384753685228840425414165398177686511670762887291773230446674564902499148905677891370544590481815294957849791558932219089649175678495099621229260003059590230671391066461833097219400704395585015820565952382242197894018926117729871299014620906703413211931472033676947482115940948947352466135568571514296587022972462426587983095077990575271885395794953169645447201468787030656671919451201277837037365943589385734043495213503028430602177626746767611248276422001176523713439464244025899501025797711223458721521431539097237410786341611392082248176121527805810668200774152343085327276899965883852750030385332197213659155733440888363367270939218347522348247725569418119996046027048935038080421129946210582485896764619054815236032994292673175346798691691958307412869334249013449278934445506319549116382816488951308903082841364842996957431263583890728237064256683089008878994161177788252355280667616675430706213245535849517006076952066103651859206629692584725591762939124150557896933021279545559332599797630163160199327460862164205361139340815645010194922903643788294171541439809718538215850091574381752810469935110691747907317508576946992524820362810214550228838297270176275843374417887307767983840644577061706689733632555878866229316638558562078846691164510446925208827746333310767633186012010922149982740736872973888671872264238888756094234625012286472147149390632929989696979406824842695771187565401209757990737021753981508702238148144826271566265075678945335250969410152378116733601408339047442907316901989091511972920942293083921306430785411370489129145764962136779312291831599636033041487073299564878305981914409237959983689613347325848390916770219736759431240222416715350199794932030002161955845667878574405893734260069103344268341482316392676615148141473756285497649642946015836771990766465319924572853465173426056232730358011650525656950162576421313380322291338979445823441988686938106717174459136834459013549565295838114107169402192447291572528316552195007068668108117697791960555882878876272735110725044348935996345380322514967979340618198851138569040079643488860231491002329396329473386359495613808348207137212736437181648851647177810766397184767045602908673071159899104089961645811806149375483791559406284741163233141232384943670745572487246265816809651077221619206356365559981967983221555150212638200437310376092382659276048666143045083507742333308967395702490657661497407674380430177639316100040467716726700597673860022878614384489706040048478625358121242612440670848903398612454777905398210953569259147041869447710007824090128521851927931357350849348818308198252558435191731308040405847500852198903405665990168574755589474734738729313934986240692230503490475940112183203193919179036380342319123502566465615737053044577490017578389620984456499641835812142604772301641466861989583621072197847491059954592363396768908301425898113060879037178986756875461788831737348695905215757437093862722655541179063911767787250116344246848137021330737268813716140706246005479798006734991691806092791254322727605756103667977092393966781428715264897731900736093833085254317193930201347003049490100479424439323824143506917106513300556792480971176826356123103678744204152902964326570107860361305889692438866713405625574639030752766438109968295811091715876108870811457433523815711030137321704111489727311358079550604671691251924117319370469631526251234262564515634013818868215780236491222506893942943954706276163164027356727832210231823806737975706437913740198249018526558995574515615222889495405976515996885186455588953165447648998800841025343293787385718250874343700835447073767533513571276873349045549409836248606115867637193192528043044680040711487264674044228966552524741091930755642015496966555841111927793805243117401301558441330099204084121901189051124996165922244778020884294222075361600966559225498706355846174308541848751864692364111814367280507569390808324063333966584420885849538585716990358471767257798605899916507561119583114419372830879045270562866097890717573411461399796142348851779747410643183182694461346616790969979543927628353823544438979415191258996951184667352320906334688325875162936390889198694848637843107952960113193075664448544697258478581780585200554356716700757330191200997617836622592269066434015362494775236406645356620595646417767083066867491733301802040379063176610582404530812983544316874508445096492269277753723845737004675358645440736946378413703044775147438814993755465475579659435034455618324442178012110494450471485032369233808597943847302762452281915040715274086589961093987135228378274578098664952847639707710137782153850990677720815643780363746264707699738009558836022786584841916383973894237861936296578639817890105088162060863744891401737391575632170216005092616740673207374438357497583515258873464919924547921602145858649255543752676280563531326341948805722332006850144274209949711814130865791276541497263620229338027955215942327478445833462958927521450259714358036973735469724871744944845274253672221475964561486354538269267536193716543697806829855614259468647104278202105762156930106188043137896626163405875140754952781658577422086633581736369195935096288889846092289117099860998448358939359758653024165228231716982624434477318464396732021445341257346689644712392809634246517746780061847219843420763804873977677780151110665907687123705228218313189323136396613992657810555817367743195123025321961355256394574872668761237664746061031199966630013770588404681142876906001628644186391380828493505207942296836927191155031401485142155376978578072100057026887847605734294413284757285464474376413737767855278335222763161323531752904904711416663476051448799220722197052090035305758186042696941900605801648218156877960004819213364618801486663115664305517486632410450982197369509322551789978209359622439223816892149317843028892446233639983962859527445432119530326937015727266568884694735572844979990248837862621754980428057097525395954362853823548084684900560785627569458323759229371200065232318226962249269894707737901694633816117648441006650112226860593096310040199509181259051966639796006457729184611963242387514462364066740072253550129343569817976919412080044636124080278324510798787427871655733406192478836549078528421427861295084351987215268883377122004059376304857411842836838593874875456616492068693151088826065394459856406156184715815039173918225912991229842934299272893713782536873671117757739849609157265173967062286614903868168301960186988478892913301111956766234570211312134003371020326879341312216041697259564249928842050722698469075744681791094739330415744933739727259707840941029610688375238849870805397652167343578655172194586654282707092771412345797397731130236796308314274589707258421191815801769370055670684402076818799770722279146073148743329231004923905477752918804437252218008023848171593914115368667923915686296541122573463067161513280017181623939047456897080729401921951749725229217441360841709284451315907993559256838143566356543664939025761839209630660646791178461830212538110287221334732996486670548657998888655128985100079035265705764667161945993869402787255885883941072443165068796598624067038800165501860019660042673995078408012381659755938310616264997652857856137371955579179941130430483511725951674612239080004443894111236715493586642050336322895729166421208388217546002752139503059607797865884290663200069326950157010043719417896621124875715727189314641937112189652751547780651110395746561839080503664405286921668765060492086832979511650448480246240908265103507837498705847712978175216881972892559127834151909282708641886929212343467919155120454133689887257219228323570693013134432288573750440343945632096195248849165023758602159723029991076119439448710006393582809330806822545711268220578155369942314536307511143827115027118341897787283120922271270145212017431188258392939719320426651083756973480723195090550943909044086176435697606380455663357856918398309972919036216717542844461623600156674257081906336975862600118206191432153161432539267769017651686931379091164040917916890820735194381863536672728978675038030905364295109767447381772286571715805785628275862608344050995180375568890043320624640701123906748702598289638574519045745347948221394650334292178839523970394870663671092129775578419125304755337289593545684282010214181872595337392558442990169447142269716383993995797123545720263953844971876851474469653982928837867652680011124475745202859860461199659999274753220534832953649637116048711800693859567880838037737300963559205658154158896025772064810202768696085886669995514530662167004771902214653675661105950049955430475132991584101766944442229288228270522704244367337289078310583613311398295902739710531609826833141167363407566120543151911808556271053364608990412125507035837023731905920735183748759525801975650681756141620403754242362121411901027404897963878692884629205680314883881880323361003163876756251669193324090640023250038408569858495289628404410917839493685066816670054904970994055448861813409378059808544672572037359120097559783590614546254760539167133767514961682819595181657980259802102045283447927705903699789341652589004532324966432966696530383926087114079122527397037106932675334439185300205326483849770280715223162494698830598442196150862275314940286080297544329366460297775169408204527828724279117848508207430462473440057048175347998425830654603396079611405460241960593470817631766717837615282415245289924061230440688539727872085959296551101181934544301647117605042216386342350382213808574974208779264037773192346616446211339705702972683513130965877244331081771194645727716700779721257636799847933345697608991260751294523548922719939555168979466671456831798934059870510392266052490057399850178816185041438921072938015903868800640119767662721369060045986445266947651283269168116819666070949711636170709118028353914899935906687454364433882207336082353535913385287696290855784688310290103408810438827747821111859516759559286338526448683108098623763078179178848579341482688846763656835324105843599032935558133352396059723585110421170550904956909102727429512830569656011524776476616816486471577309062616232454773412213392852968326094575726450516534967452846978816543820280976046204049265893746655295266424487714701913038776729925172407865828482543382304240559400624064613066743508002519605108505070250859154643873025002588772120936129070278841007857748543927019318621374379207911989897729236481946205561585860259544165292309873089714585813453853388976897905829323811329164412044386266633961885749265793129102025520278936685376087993863846175101485219191975709770201278775116793019312106835434741278169387676259511448230091346070126367578997521891579703710056014086598774424241699534825275304728624414558740607967979943323404252482490742765347668011339223925099218409524995161402308800937516651141624721725713554300617249466876828223388119429168761937122831506088693469147423685866398802668374741378717097695052753195591561021392857960051563987273234384635436380179593850428536926052956622308792633559188188929890696181634690657753053236178139876025239267356090833554593768128043050796385199861275023645923528244449053982037475244387937125470061780835200151788624721526524686837262509178255078900731162693232611495310100372884305649477613124573096364531506386743079379606664083024477067799466520040173621194522629457872225363429067512083772784964318676367482511233197773171162611688895420207230642650479096260592955094093429951126102775891480465372141567488498686659444096319793350280414273521847318914014460621720135360178605506630642532237609061923090395367904236166528444910110823177918339878733366721700315945000320345000864793210904034495757826538480732294797154037495897944453707386728192290321042229568564360021729018882152188631157571359991128185894310295982336008178403677149838979526294627986958650428819514207535908021475022315018707373304828420778481289306292816954535298354234460143277088347096686968183551344453113217488508491348223636436050382380182982243894751370897779152719720260530499883772717311665369140738332056001257368810915050701398160836216148392042186810081443349876293942530798372313669130585631648579874645844980459835054468734239081312317100620272434547248595136439534120330434693873885031716497029346300216922946602154212137215514927721563526325894666357189756283956761868446421365894211364213204243324022681602279808353482714861547896819872593149324807892024520260362852432280264814896262263597769093016941218434102346584730598298183103421741669277360047672550341751126236276403138338413528129088943560655267916976990411539341374676068451173961071505313032392274331630015083115401684593264465017609224356429204537351530464471361105537011104105241423117231391839709067721466144852633610812996658386805591702410474120858494813880371217071476008677497216286323281488563773530479162910999503302572389067240102368018513256180660084011511758080801396797950455778707919243438061874997181323566733951612856693617214045871885229712440196565598380661904892023357261885806379640448962172056838938751493769393011477686971337128220408842736092857896758481873675993878287198354747793576550832037285498585233156513010376274418009863523193224894042875940876096308831274273986129471637248663578820039366365076550314175136537792314164381376274463044162683639338752329714114087053156120489477821784664513751491925619325546765339066687050185055930797809188606799384424790236855176554720162657625669636771287212376283223419919656231838029084937994801797425550108171539859024066169437576699104995015562522380682514873917210577823757465375735679866981188074993849307752944868462734025012884565461515428020821795339897297270514204388760178206288003413995847271179967763221255021768263458000278145465704106316614290580791871090421735442898084137573865445218673223431962805140356720360401633251681994977076071649954617551043753559306683812827684262126808949459209237306321364193950835236590443278204791786447175542408663620697435903146976229234431355273990589186889002750097965678383750660386421761866629995895697341848063475759880779107067749441049199869745914315365671003481178143970179110079710433194086017207057907831743269236661969344088797949448227143814714663276233675552690807073916074735404271016210879385898657573752024316963857858154062973459748720297817881605432822993208026594733868921107635470213170747346526655160792201974903323338662556307098697782996503384960718130194908096186862280804610706865168570419851649046669108906909287470887254620651250781280421737955806186990453768554542747831702203887216656980143703417974117525821537534636494853681037437018272039543116524165786184436422809599921395642569994048167729175462108737162418009145738031293124044593212399097953656169001424809659487280773322639669977492274826019550736959281076184632132457124365721678742865476495587444666390786417961508703526748580894080155803449136367966450230294420898845794100774385573575053899951336562765202070492864432223354225224256311869755328363882850006807761800923725282667083565605344525447916709996679207263551459171618974137227751294536285246626417622240867203522298630782499482779188452455977883792872410967118086840717727045381141557025014759089209281004778491829642211840361469135817227798488784234944695160488928128525885603629512321594089870735193298408097997133682494617232216440035852613834824254537081090013384241379559713343134647562653684057782615913528691543212688844688428188146146221461627770135597565520342049899323723624004729243465940128981822769428635008989233476823703352938689334685161576326341506863181512639542277390946858990272910816276325297404871449389506857935921836941098624515981679254664345533456369229089822367420385277403098670654559443644561284928073804561566086123624314730804805776712969064624583894255405034365209776812999036881987992121153861283526627649986742040419515920410782538280021632652035904539757444455874516406516885076499891314437618773404425618170392713932708148760853771872359691884452106385334045554013162116808779328377687275670325429928596062685381007575097070593188545855670736808366223000000450618229114624732620868089752448314179312679025288790088196521108477023344335359479840675049257664105967856142990772805861826592496897635524965278464086142107201942949905629108806018000204037619903098839529378399796356153012372294124103098246693313617256183997716975154534753985695742068122931581776905837205923839675132718743914875864708552878487180015155756992125101778603040278636150374420139101310473222920083154528868267011945610430322411556235583779759364164133850558641649251389659008121525751195512928077878458809158433525795665581578455830746562919454616145619158815999589566291438308145616184377614860527793435188447129702402940309143697361190869660475893475184767892180114530302752019151207112721116215923746163179769378207355952738915406866670251549553484501601848647253947207279430642426861575701118443423188113373735984872683208870793924649370959758774401032188802616080640148802581807221282911024109143064384118493405478617870790573594786798171813845245785478447017737765330407708647695798049338675093818392700689971250932949426429800490572370022991516095647681462976945419699217776041138328151960223619867097987935374469026903967353551307809130564407989202272779009862990048201716382091129137344789282883712071295732721969239761262386183787810794228576974943504504819110399644430470727867956915943553073987894880686599735281737788349670730942103745956550606201522292363494924574815250212558487847568752917743972963564337994399360011618048635253894898974626700915836239452117615790103796709087480388493222239200518625446718660051604891607233377831443654161537359635820028731422484721000367476284548947579562282296896524877829147271202421927394242613161753910832596420693791543517805093904454359444260650745995011121740075262619098603736870026429937638652685028425802857708047687021295744609059525688094923190527364531283038745992165359318904013799881741608789436954491839956475441843870725053494361296329756469487792992754517412517586191280200847851036005533395141552087415348443397809731115669559715937597001632485219675282068002312277541015003617621089709015817667108136772647501923834962885151903908966075366864630824279945526001258315656009188601044123448368753583150252119200528537228280658182222473827536878133093216660085477295698797634354558187569147283614232794188620139936261081843088716197474673336706270621752816074893794867237742845537156002565412147170891200804062524170232254042545295282567393126303048746095150843375746390337744337748789387688065219973380645779191542263007799115217388149245179154105201526160026883143761653229540395241468430100854181606661815488035984047556221665310717583883652801896900032318548943971018998023333715504358043070247620466164244261060259127372522533287698572016140181863906114525345705115094961436618100277300084549514343399685577366101322482133044206860035587290394423152662771785725294518565404598662995529608288406099633993163179207654458040899357629371737076092204174746581342427778512367894263675680372257100973808466923813116994318557394226118923164240120805440173520787032593345050100308544650521815635166953015531516151511873883174781490166952565123980435697245858082419634419722839017825968941848087743398431320246690845070390797717428504256074992587214940033566067175627253286240480464327628013900542637796311743600347028877534630705804739685180743801554549275849773275629341217717398298546213054263947856098174866159768484866157573019654178782994195423729905939664756164490260927217981831811885576501777274109311838856381889592920252026060902521595801115668998569352017391930983618999211973118669876588145430604181582742063215613873194732388932696140965263581607282142011358156799400867443492824579134652744984258927541635807508088042602836025838128020194564847924655248613249209150152954667815921034002369508105287034408008556056110251982279724797167556520499387503047960195510248607778708096268137127139329864189057410850825798959689304866085457288548054167154725302131922853585266004355000733346190014261872701246320341906287586646132681743046820097702058714865286953706471916310669690634223871610443378672937932591163182635686372776674295865158807930788890531443969300787804760991516946578100018169865683061773116935309749996211793605434251227807499891175226142344911742318730990050598471362323480915014949866469423792190825587322233610820859629781285149502808811122546768935718451586617520693831728318012736400987278261884789527862914305134824604498135742064835786048821131760437134841816606524020200002461515857666206839888314894302192154992803284176363319675466418554928725110580614308385596428841674544001679269422217138166657958097455727870197574702264264475836813399353285216275255683279614009017665100680274802571155473611639794197481018885156230256840560134529553178507654673749577797515997213378346018929168036442998881971119166325975922594964347529310912123035877708660495590738558447913899422230374506970389213370236959581108308449019413761462162294257466996992026232039592445121675699987205642912657156814052649288191723204280945271504200677427800554202221428526229683086346327177878721939581881549285633751450556138728903438153085257657022125323967824208844937442133865033546656457440230967820406806386184329219587464672031266489392137793590303435959468810030613885034402520436577892544048651031151947097243643137641842544123803203806476801423822407660976093347139660704831731413800408526659792719852561861826465945611951486044735273750011135196502648032713239289558056196302476083521443418461149955663247553262348351835776355345757069507935545392327983489687670843154413726257547026844023669888053956376194723836820936164580065124943331834338897673428897639003331548751647813896871372165057978069866871005453939796934684207461325541768032165778952386133138612753383440798829629441327966517831762530756327327408346035667390346863343009959865109512117192848823928348380732032498141541546704985607240211164406625964845197048619796367760680122392741516376480336935449526344787690488304333966848033218061195944436117409708279033812760943673651573607728891579381547672911238522583230170272039426909930636854219365639535958058629343007250990091515830963731391250667607703330110787924600700974704113829717479425590931732139950541720334783446203764808013271121734715488424711943533297990617881530854174678748500481629922724124286800227418035094226381692107324988016210839428694996526215530614805753453395727364451614436204481187933135369324104877577479346192718564615880147662812902908118578881748965291316038794102275958140660425451050229147950302132187607445526249516259257195522016363504758591764626210919645049057093546159831134940426884204827618911607811662383617945586411179406049888398453901321507785395130950802672873667520410865130892844083430546805213086329853596250307721496168002525676793086856115483021345503501464342637631958017319630308120029244549876623988124701309743784693166027261210957202362405942925169698497411745853108088784020852951964440819243809557072470555056805100257336256506147136926396969041653811214352192693242276282337955804979502295541342916489177692834757130412843046913114323753075113047447024572513629035208928259148546815785050575603778657974764716705123642936319043367958859822844595806886266687932478690838796042826493870160535925076088546736612536287398125255872216084282414332455187264081508149144222822552074713901787295669593053088220990798128843396725986817839697950437900185624644778696524739248393609117232867479021763369882669750339374139333014169870826348103649163285926572068746725489207081748845134359331556494017747309238862184174677911478330352931039164259134089995159739285916206184207909767176019431687045769449757846757163255364785026706813100106010969087496985218264592141842635459576265461392852772088963866558140155838680537581410895541904805561204351896028207469781509932752397567582348470630330968535481632851798542635646760791596954473177428340896986689260346267554941826369317166424034317271076809543733145777483581362306521500426419003453361577443901313717505346406681765148373386839564121421406239273022851076085529275354698550996114904981536810435230780514252546304285899376682067254869076309148652853619552439072743297825930870053657807823761728841266723577693126433696159109037259832087421927369551151561548368724300252013076765007735852848591152110423241587348249253848010623015304851570067010057733264809536675654149836685818572923708598907979508072271591072278651569656039320665650769986981246892712683900421560434159444343579862431082597023007760177013564930581109785244767904839808797724920058181021121652024783598134816531707724296645084435801386260787920927130644009468539390907015783246850558835554753209052915373925070193560538702539757317338612720949481575308716024544224060961246180435342974429083927354311743120567072002699440451492293877326877703941759947261136709093369904620993625275258026546879804776858081412220476017143867138661883271106613089926875432018292154057479607191706151174002585443316875314113397580651550991835404884458237757924478268519968606534781434033135267009860400370568939389250744172718873769197104563311038477161167436092037681410430264319182161128166348458996662255498185488564074682152819111435407668321220223892583093263326728693390182413694989219202317982168764164604011417444388164864129052612610765415729116724089814388071495925535208435297403749731438886045644532178242144297142009711127401667365152931058290002722758075379967303697834481244816148960374711197364388478178313315022995175582923207705627763069887481199704536828682673787107905364324755422172845479492028845942311847060986996245465031797661425122165173888910354932181407928605400640438980217509649715800955618358479026879573237006999451843016557731268146115092052039045775329274170161759021495397208728344943266124426230976928848011937860822583652253276460361063158515385059592734634935771654377970501079712145361470856113783699676025183570327274579040805066845661504071525491931395590933680239907489960390026919261509963829608985740816065551753485201908544847933053663047187799505954454285742943133590469545479162123037205109657076372397157644995829091436599572560197280143915150088387621204542919095335251901016962088210170244888401952408954927296074017763341474949199684041612150434251414778364315234721919249114128823913117776314247989670318035149505451383174374168353158932988271867892677310824894232973034189817141488312550310332174379398354738797912266837596787524476372205782109125482865272007980596050022018806158901666111534896334275369088602714068286489301771956930901060731964441657212903669203194541217693620126610749108837062166318222380735581668015260978224290755697782661017230337084312735964431579018023155799236465536248799268094101688504010020128756954249611974549325476926386399539309783843152448475087324476189612511912005430140860931317748463416374649323695394341252951641559908022170539030967410253441601258381454693806273054060102463941018386641566171243665519700794764884889024816461542881174371489724917033926547128255402072846656054810923498860509294993460967095249056758202079149722042817224299839680618198374134444938329479550595320016626556848224763567529252173076649500608817920007526373133588056029807132274029788749953581875508733988020518074441061717880975639879463277936770776675374795628186688082616951121479558870763589507616382947915856442602879368009168289411172849096706678775223221794629803297519059916996805733180251224899226446418016404494860935249089988699742406125047104991935235115349988888263519917047744748666629032432125068840711420671083661660626137050645137755826003158357167764188198657520885291748816967294157322248639812266938518078586596720681951591098771236852993629341734955125944831549647293310402888760950468713496255440509325736860433519340865573795118092026732139674388277992663134970368227628135881732671642792994231598759004514876568388223674595741038025148317521776038117838568729685349445549906311273058726321768563913083602600723321271690861302824021762624631698694913289541176569320988066594389852950927605703967388498542459229773768083585165840681178012444705351619564905147769287311043661083739092596092605676246537623269698515367698583071642798020104449974243112226906037256494665365015801388229140908376617203196855249410409817455610591678238522604963594972123090672097213947225494501275769499937195055757549546647164291672831002622189091969970353117438385956931547894940660975027566854823230676626684120176947842039697389897518589481106219410220842788110041656995321864652926037324577859190630757197932854701464983432041009359129294165285688462076898854856734659955726644615944831132867298868332541485227842302312079581184780942869977520443382790245480307990481814776938173474064670860300453704604980831755398886749457259202098930536155775975690673704001094088597987240833548141768413024888168505157347534224838183564381836032119551753993874251501295867248941053262097989899240659231739675356465962749961552067557841306436108556300151627726858001415012657541152130592553164449524757430861399037853958777283657481350227457255107174533687041145176770278634646011138245683193145175480311613513611706142704240763938104189716092190084189074033995140438833470796577486108986435551218745808708939539946643189790013578110390554082684164800587341452435744884289436556295707449536485129541124882507322011668001023702449686494549479412093095973386509131303456783886447044147591403339427849181910415301796312994371544365456040418837916322499623763546765215323211989120100008322499098484551350087525017167875332134060511856368934622714266296169866246377583267817484627751009972187866383934121197768100454780802701701346835262747137501532052795331439069149621076216400444679874215626604144230811216804072359686053215430026355377340345163748498508393366506502930965036858155496236955594663001476619128018075541683330160807376163902411051312247673494758806071845020601988221737460489541576058207235859911918567216907487065503697254276985555738985753723334200336788386831594725609072099684563110182612622650231571070915785659337262935821050706432966420842867726711038352500296935835183914285263803335019381016430563207940624755619592433428176961531755650704283537136454217326085123520927435444323374065522128902295781168680211436359058340708356045920053931848898795091696243846685426580278904912950983802417731061120132430925574224468563743304264841757937076604984740677673280600045783760792208771474576558961088858080922541492448384875785559620566152034276499598413370527482916834937416031252019981517669515124603817793914596888818376912257544227726310842830919267331721946882536299388164764363555345104553298157975968561104159756403979470512090296252111323435657589605368199972658936434829178785718945138085352380610918072412181919288446892044509182602058498178250295830285544041301304553092786570104101430912179032384860810567829534535478344716637671269549425378834276561367199619186877041058225219498370032044528731764847181939366523554855667042548822769844035744422342832466095064074014899188081381625280442710914420638670339027135093119572810437391279019934465625521220723550705066591742849788616886452910131300083041188303668471131785047540868010975046904216466707929643927559729127580374230480016803761331222679011190708851709766837790024538601656575281896653343601600658112995131795155842377181775926120379854999897288336585744686393356397373230280468601767429899181468473519709030493877316928799042382362353263172401627650509173189240142369216639482107917784554390012780572610519200047060253979159683458159535407388411640099238825467576061258602901057972009661077707431452572445673202553543198160736273172913719135685036504831236768914274152842265608906518166825043235273630903990712344110327123989881792947774824561140644436211695438942937809283924967913455474101671826303788500972240666541521859128488827012039462214562373360810053676396128532679134107605433456901064324871220088896406414514578557910084496348494105600806269494930520392832340686821289354104411589019910055431828717034567530565125574159402681251030566961429933624913859896195799514508758022571963243200127473173777126735151952258080827060224727543468076310238710372789096861811666774567480787555678694440487508345749636824413019676981793227296680235377413991045611813098127031557900554493184889236892055555272232477333100885788661734812613330508937320802802702162857586629097846174404918928709513665120763924019493443570556098666222738628631085810017101935616780697254178610986365759919784983322854660035104667371859233573748705708772762548151609487113547635167156445225494217500137435642201141154511643881242035388424386398719548049854705277643405256445094687567437791802692483056655427315981909253332323659709300688030937879710470255782320185015348189523305892957758324909702810671751572722016117355379129545310442468612850985826246149323705854164736884309450981922285950364261725433359298401452808230891719187298703444603879495133052577990722029922807396302613903418213893225766106437425786810552354366368683632932617469682511567193602346626865410631968951361888418280169647928270001902574497353699048769657783299426186090832362362814408823460232405518472754576356730735112634240736617258977788276541599448179185329048631239691806599773725917040628073648008215799092592312060307655271623785569825841943497745950948449953907614085237448526835134567950810064073765460192189723059695048192376150818119569573780782073204804345926481317087666550850316111968590215440056163754821247428261939608264794312040993134218864018995552478796985839689721732583650519722605061829032864838935454678269439792826396990732997973601600520832333777147164366228316956634476894286510871455609682018485066837687578119614034552331869251916905923432695863802093100706131612187774518504472376258960306045777396117786198793902900152634557169911818777305626750225373799589689279186229152767170286249370052018778801288781646417747816413924831610424381711275757177731067990951994402512421658553519988410571202410001511235326787405639812348195504555690286508415356235820310952108082250683086018414422436763480701464683210134187547580237227795673767390788219003154961278088167188060105847417023629316856261087528957595548112507798476573602694636305810370509100625781163890854469611333723300116922342720962564090426761445760722155163344135310334216757832450207209585116500130398615115028911287328013468275234400736237682629215989953670950716225077781666712863224759156219358775458807480385391745746444459574091244809978326869623427376446444298094327511905038570837518939357518803787377198670688877615257437210214866596100635202850196309088464733042955645465438318099194054138385029747644741195665448416126818619977817099348112674049533080741829852350993451355188695483038115134099598115631859735939390419207107364123445746549785016661084534482130953448829550068268515028884169697791065548832198656681650041316187113421970260706871983416560112940691864249560797619503337197995900297331277862089310822008646318042088539540114991384662367189651802188940101642131529206970553826080695968597227429561489705230449130087697674584468998376647040296067546539157802638830235671064718416565905896082492678530480225156405993660855108197693174685708874329829454928581926112438231367496714250186486596903396512662861113658581527012061239894549175052414750888567897808270033032304779896176041384213573062729324598976580794049234222657510004709583145392219014522056358664149594907815667558789226674718007392142444957254405653070732793728737541237873774422734800380054219931206797225168011909688218444438227607323608831349086786195051262578549758956637814116174321597484996171143707663883128016186651098458268384582052425673466794968556551158083624255778222524456660826177865877489231999676222454445290700239207065717310712805180034205799046278375497792422158569597055455263086194898140111716483622814477409800176612892799764855275271848786180133452939460666061356752944944270653277785918978560687717654646420205927070612432036798723520065616303402150432679319997555134212535470683246303744137025840417377475637917480071091721470339022440954733416367379194917292911048442459021175229681287719378425101885864353349394019061868750002541676027702411032495093745787072295167972394334385088979967472528109929867985685867640192437764413692728724862856106478131056921362376883296862077245526550450506649700288343764111491206535233724541104878895911057973326427811812525941768294940472364674841046132032970372727178244101856394817808909917387426598015171605894897979056491760043743746699236220386869964494224253794616826187385176125888454235252314609529013539849104241839871497372987405194423458999386176937870147954461148650119711422328941655229692666024549172029028619390371715853866929213667135997910765758610663044372545186333506457116994442245773532155334226011968630622087698640258003863624762374187288356342499750556566208059693007906746016477182553267537871146892192755072943292050350444719100834671196590190181743215007241031728409689778669757470846562865864036612087498098521029839640810330050365646998450945583865311402595357248081023536287655905413441904861506902344326002936301985845137699672238468765639452563714909967713816157031736760067769657218133254841664235325765209045316410958180186796272463025819905724790215440907475255003322767282097513471629770056116783518504464544312331163273758648227384802498589098057883053434577913395819160200946064427231532101375958019596082718110533236630818203653574477018317168949083162799724527102092513838438001331495932628614383342349721754528955663128176915956560956487565513405125713758345617533647146387043328917477162150761463714112952193092663603013624257838780358352725563632768152680164035033386158859612276069611215419680076307957511116625590745144179184461436926045604082069068990503954907062713259485532079417699396304211915562879961226202044157864035350388847741861451192013815054043608256289915447134901858053828697225420964243879487396677475286514672675724263021464890685252386400173999719057267050659743112922020839075951434359347876951477153261507200178995331336002168279353490684366670307916538522560555576241528347604768399370457288195797940306488234562677598516560533903236901139508443022540583678051275781351392931562128243398990716631180972952727781346959344095718260695799868172495215957074841947109819089190566239945880426479904605856851467799948580475255333480167837307747730111172794593217539992575616537989283718240897426519626238400572797511437720431291415641887167647768441466823432062567732245405344745913741907959330975134299069351306580157065022713715066123922560871055665085135069554362843740047174299267714245557829475867460887415186428310525304811862381839396238519029609259796829657716151101774211815968777630485849803305072955231667868703847528435605635892521578464121522764144894945732850590113410110585616376139345578852008395232949768479130479988337437574558947906103665740030818936634820724795896154849794754553094919079609384951581961504346032483409811618758087334468161897314896608810046549297361700601304533288403150010963061093863739866730897108290084976062514640733440020379590406828100562538283591263842518743339738924738405593384835565141094853788652154770023733203441764803748647264418811961633355460033356329992356614886583015752136502792369713004995124760410744018075543233084954232679023859584422495858974138003942370935359105962582899755271906887800623748344367596976152143103684287246399428233482967883359806695403007266933002146870907569191906069475604277702885384739700865104674156925438645467942827922852339844351491931851945581044979060468781410158782346516140544455325296132357604052769601782579716202827275939342022319309392067014353680457709022086484428306382754989308108347836880771730243319655448852643643588297600904727362575748255729262708333592369387142327482908206701216621359732090419314929570963133587717235670011817644808835346586182754864287209185523370150475758765002258807553761210803558241327097969986070535894538616397182999480536030501272883271844363677279844009335551368055671180761696945834806817924134475799337410208851318094089239196003837095711906570242014266296307606351645816802834574251454354175094307526267285511024992234245430158719492908342980564213137928939462900192586726004379704897358119422868447646137535709483630328639607384359748845310680089635711233359282256056102527661273113827596764405576191991636176385574038162176344424671899910290760954779430678166753883666003595002160612645551712554888743347358356195101948494447215405047604935790481593986823218466512211784133794939323927385818198486549123455418465965603002656910677402574136139900638124402569828184741608630245566686639092146767991255971879883581895617799379984048558985537265559406181240996146414167111364076034880806545974323335109112587985205527544462755073342283806749922136601943302676145004941979827580533900993005311058340665011374512515988015621260556385758055553597677484700571999918941951669416918280797594077073413662192717953773620537108336259944463435346572192204709707668146427001885246353975105353029646667359591607395221464817078959285163095449428858273640850793486846909798083757128745576494155963197605396786945361743085799053535948805321188592123759540101819211693267496196108635023930595202764787615541089615366686062229710634210993826261664857160677575773366461577630907104817867234689030460349910136635856385577108317491527666418380996737566503602459260610741683604626138305410284581862660067913253882898596340430669721213895302343261366628559556264754330583354710113596745056321170936512481415007663346469535769413847101831654920218722530114684094136413363750298249442967976609693149103162898772515448068060536809698656126243367992633840154699518662367655292327880782380418616208723767720167674383363295094897110228526792671143013869772983032057242695782108983200343040287746490409042877288248190773427463822546478214421625449324135422507876580517524655876433672295915723993811425296372974831027660290896914702703616962264548225936248430290605352633654582343048047754265908744973257452285840297096376324993594268091838059922275838017413908135494274923682397706505705799875282511997840162733494575090772393170171691060325300027178925710397616043492031401963743701663801576961292183085607351220012245095382634396619544457032234148630405424746375051104186998724081320299018825274952812397053311963355173290101985439996168848168600652689847209260757761611538993258471884294772771473181865574567670219059003904567956149564366102908826454421687785995771792704452252342306935140628759342122021228479127692644550614367161286023380349771471765935369099455020848585029808917949832004407537257880064527828831719669969009265213132017258197080382977372720529344531054251611585057927796088462204274649481956819405012730605590251246988512485221095025395464438074327028898290635092549295580158844954162580868964799364295103086963839864416330124388535431937883958653247255941774475805680473511149823243752228445948178264926016057315769411489461336178878458992282747832272131539096340246268501063190999063792489461453986465601784354461720442942608038903113821103470962216748965453580100032323035936166170227766333346406203760822212575790130304975848620748322131962381188851049592380769576673770982934153622869525597942757109925996523719456880932052655328930448070459379959389846675672237492408428393519604784264456822913491394068147723987303849375309595720171008448439559704117763928427962469046490749977700870533681421492412874933066454024450836340471728341368099748114919702150179328541378126069188732029145968361423675284188484069147780915731065717994180937452025444894786606063659973480103976336329492713665265511222409403935018939127363344621735398598173621286901309644655736118527627631347311665527507896305794659910055057624637419610653592125780065979733445010444168236652890969047662420775231350879839408274030477689351901484074158677248012137058818144038106622185478621844139926758176791622022513044540836794660222495620779551732402135742940550206368623688936756209634065846169640713157306659990720615393653692035588719474650322554796916192137319277796984856643901089812267087796927367671401594110057770519180703778450443304958166429062744566264555038124361018541157000927712423482955134621793846399908832102011260015506477114243013986507014437396858680213311059032592052362425080423901872846378177202747477159297205957451893960177850712657072455226206138271606910594502529667985071562294772087684223595934714827858087035277687974971105956657047185092710532596036165267794749743138673653701141356298488121711308180459815756302149141140255865086581817030748453389407869487183745786619819074137780506859481462747114095423024986430153221231451548943620258221997650785870068802895247222874917078703225102645660073112378810714126999354700470163687392143391148201971341476588084355760524855369428759295198346899309571535014164219482474532795822582626192264692371062779534247300655907887780689801769119705446764040569627270276892141207531560825175132013042084953461878643418802881307023399526720352947634536734291745654804532102316211824032558359470956073147335792419469749378589052950944061039865402035343531555612366452002845993053478765485416909516327039585272682587264004940664672093520161600322670733783759782776954985844525519634997631013231149530435270219566420262183027863448136011318122252870974823681036718903426867873361616113043265105691385143434120208495783237031622540430412086028087747844255029937717648448383993743719675646508800177491252102208461144204437039810743376649290819889742050493722642302220160694298430596124716287211720117669926925915710409956031705343352119204251026228914465196144654179106166728044905029479699615799111796685067619244624104696731518276179505294943902473063190163306342399771767233231788146104077889286292480233074825879033225353565589077050467271549369210669044435093364967812205523313428986960378511293031291665044491787137554247811624629187441335185776087783178477658601018970040518971414044511445658094609718918481654774690635950928471264329933619931649114467483540788405592336751098880505853284534381689112916426372882314995571585277945032355936696393831967018167254765093686679592059809776796948596141421839345269677457095542161688091948375992768478765189576720432838669479313380091745618240592477910646376491326850628991366641480269210222299575873007642145232441661926169832392618566254319664817275396144381768302789982946548310886717515045997968373406371137101801393770689477625663170932749160711375874481224730742066213379325309086634704132004753235831823971492855833446830286626897410429898927801526627100661960292151740601624198765102731019384982201079729104269790589569932593565542438935322590042337408148053249779591506259970444508792290299841508006522307119274034366762458479040007467816774323648799847041373027899248475738072513377492989399892943573198851450525239527958576550954182434270495359731391860064264185774710146446520242117766760359099225765443966299388549557638867394543690324694788923935401802959701609046892944192463890975449303580245771282301249231157040103843604044089533084911394294061471498527886837002488399309789663340869786263997191839530022125103297999050523969615587685144516257000325458302083168138874617094880690589121864906422528611501830219593581489361808276438925989912467929215845545495214675927421088452230124819021762536690466489209120061795536855525777193671491255191670065173689881885254449358891507175182510281201174802322030239032495920940300348398720209100160452435395253960479564361236537936078622331704819452852036271712620188030806351389761783107739496966770098328774784993313687674710920866155399054052591030261748802506681772009396889695295126830072225030183983100991113088470236813825510846333448599547683028575656841327740034860269290451942540223761994280600396283910450823599999452601774162497034734140240885084683512356497717280055578850956611241505855302059998329549373103308427805055623015311387430528098782147494112895937353440665649902355577396748543079345925116853654736963391856773302971816172115383050477937802910284007959040407937612670695997774383955196250139591748586849133972321567033225666951561854868261570835769044845078751431869178749419071485577842114391828920801816582173301219764596770963637519081384346282919938552542050757414051887100105938744568534272832511076721898430006415538614902430703087502733430343739996557155543294163303594886235997003628160573020134502260044496209964754495241362229021295511425438331237603873602849555795937273385165840935701290743090926050550324706402833955317474394142389682209052229361001144970201180951425452729228842072841016217320528972533553833337392986469038638839937027908263987898398336837873470503779269571761483807420780447231375758277000917592857363750414070960285561174141102180823410977910106893270250212538049897934117042327394216629223539731792117623538496477646856648646080736414717247676846026534978599421385476863200441451709446479407226242956608979263052472714107714664021483229444036769875555121932907896358292324549683934924986815234366240237483674816726863488152681570451771331805857741701222929361044672995511619006913472257706427953331682166263874879416970079593058807392407163213139269263356803520167764448843590067204866016322290761419895330540517640179499892129061133836541840921675432804613098733125670059846513222489843184564662858967506350311820458065828490510194698632279609442104216899965428455438435115515398387070377250905925590824812929177022445651873752536246278375118280908636095090922491599782865606068230485076180647285168907423543583315050383359374083018185084109087074015351627172314166224397388417486677101622609842624527281564681776016323520701484233470474893371736965708637878987045984658219054362557247496862277841741021450651920868789285804686543298025729442120888208820745987772274353870379653546581332570321769481499909111936202004182783485689416332967500031494071651836408266917760855752275440340150268590396394755416998829547435848996358924575209659909481533993940043540793688932573812678734046612220971299491842857019151168326169796840880239626859446612446385437483638617244458635265371712776963413201157808682544640122723262117369529835563236231615769634945118696264104445737845974518771998113754251547429459235446870183182954797545379950269953820011759966426512267134518312664145734670735261912007789997105652483142424920772943215219433917833127721865165351200233036582953843669273112883343514401368088324240391655645289203163386850447155665543873964336835653385642542055687478284744575675528810874188991814065609361313716338783555393982773901253987453273006804167390159659558340551530965292140400070038057454288079362592188858209857167280045845607344348864614218447281676460676700329381240771881300570067590680475998433103193996946525035749371345996898005823717630918382411408177191815184396254944197803279745259956395939905024026708451216895903490026082852455216835280405904331714162788341078460499310369626211407710433564443628309144630223575987924885843610507976675157128140662824037276739646782800461058820635939836246688355889066864834345586663799904376809952359541386425413255704275208939785522855905008209579830276513934000197035408735465373675426776030016198096354181778403486347501810403142729284096214653998941784927576072123186150557899017634779278198481593948469254024404581608127653825972256145351329368270138815746882164886123755928199498056575498879537362215505012974084118144674435139131008134670953231225681650335623881183210250976270612136246740603632556640368371894427679753865695867381488398058603321580816928163987944114967970765145926921718042192973273996933960785611256626545442558928226402066930311837877279306935014759310341923271120700472111311000931887901504057202288330281045158797574384899132941293273071947613280525770894163267374009463702983048142389670180414093396302170719654131970641194660649238358219637338754913366758169321733419693544136149548117254600561411779629617805414223234703108464894894311554315434468512456815692335526512982496488673227892240166894001112749257553775286296140933780330263943562454343603963500632566777844344528058724019089324538822094565890766418551762208586818116968808159050441288080285831015540383221007007469270059884471013931440308536578553350764492534051464865465490158958043384242535341220631825506900331951334569296142631428455563886503912273829321161003676974264580821188550834634313327523041067169264482543692856248057886215517034621978738289566419970917682511308201210603746747486148934590890442603708645119212294415935377869661557473813030684108840067068660209712906738578286400484262291002574063469145213020801160878391081155385263977344103697121047821531336471034814239424591626772814474101692532408142230639636687351919342447621138066107219240856466364026192849934213701076215351660690164002953114956659039456663779649499944200957262846115617723305772667677468894993906263776268950290697020510578289220433164240112113240942244247068366685916837252373714915479896157430753167388463329809810250176692521046755591171922219879315739090360866201140595849635500546203356569082630100700646861918578113736686961343227875384486338663300210480847742810998678965347643799531246543313180134643540943790368975603072405419742193080439730398165034051183927692634802549326638721453098402228816764595267916412411041680309181328645053187104975265515718311913911743017601611379077939950618081181516952056799597991664409357366723988296274989715927902811237458194750384950915444224783764424882898148179634728450343331189915985651386472937113167787412871880128998534750044405997918106457116217759610356044112576887518903339894954674254664052117786071199818213911004023065073288019647831426875139830001495928175635757948149805684865089059672142860930492577788707376199187118079928624535670148474007127163830657982057187133991200240918791576715331619520250383550626681392951797519506997392558203128031966407983969800010652438626574449635413213763120373825499032311850626651247920187888045904476251190602932503175720571328244098008518982977381244911967172230983293610360992680387108645754212718691860256420826908083132142731131912893773885500723852138812236930472884122834805194124640596163297976871186201446528344041565701285324428824654015402385136780618067885351089228346036390849159531620453964784228910814528839326805488415427292245943285291395300856275359947135678196691919975961669306323035977034962653551446891142217084294887184478954951298285603325591982685649842096808556929763933082810711070213077119479703109329520095767949347629657921991645938897129074831158232969833059235603301620621504558237962255967951191907891357665264888036526008286724376987355641631102134437898194845390698901108593503574249013281555430594192333032370054079558550304054911419829733211274846558331008997759962056799438883033510273659143579175889690399547488284273661190825443422891496281954916857255953488726510156211167137820317138977385972592572868734342216641482958265621588215614917431421912818685258914176793703312284961141339796615845710880645890074627381327049786142532490777578889511353725569638276035395799648797242865024458312067196087463166015507230222638690208934807663111033997905242605383159512273168946640827750723049452542375959521565181801296791943468409975293583095329520801398389820217714397664137293200967366123812237650667266249589301173069318208273967643651901983620411416930930599234911073320696279774538713541579212723787649117723744780264767600837752708173104135881459966000053898863622286909771116433726983379571988524289339072875111063842743795903703889571912643130112049561617400496621199658179688620972246815650016444268156637991983590735004314504491708487042735176850840827672936298132773984778531934565165119588184961967651735269275223515016848650785950011041009555784371674942522967905350844335929721184518740465321119633728486385210322702163828828927905858621295366751766599431184527475827349887269879130970010908246845072884870196388810785878035997518042541478209058037791806522299969709078811632048101641689548615765769413516081783160361292291806886089939955698175138933155632074677106581953498790951562330777439587675627669431079903485425777898209263774673551258608769467853084722163962699471787399235478864230134952830758414573007888680948946918461867331932671099387801090349925136225848849946383491676478309547814082610254536598712405145931402123329407984538106570206291478722370063130610883567550814024255677539663945248791376289938714277498522419384366509035179499532300189076881680050053634886773352081150831248516993120828954742275764499606015822320762894410791193664425765052399465833984569175998973794384918773897582663732080643858605527502116050710359989750264541669169624544333639330534504997688871974426401061969930703314703680717918306586503555921378926270738282379792032715968884622884347388166357245846412747235756685089587920774386822164288174517331579781949553318102173251304014711425943814302055926977670262352389795181979367231544362036926689533266396366634925293505688836190943950571387347149245518926221571232093609902133733629732491783512434701266526714048728362571733192124439015153516896422585498367205189114627798814956171917705868042268462406067515892975748895713912035484786417640410395175267524931754066718475240392966387235733283897860809421406899795569213390387575737702358327408549601513292160901192065955201971293427162692854985505534366728605829839863461486918361879835110310247567214129595036122174335471013849515080072732527413994130814580548347784400780840108536507281927382474051487217266236240910058466185201117996574435988522830366174759357071143445695334728979399561469437223733487792645703613419269153800871444155705935563170186900173895754680667581586158198430694004859166478495784781407439607390151971221603629467158162619557031635517612047430120300440654149937213034314323548532928379021050684709765947265100316228243949478496100795463454768285885718245688912460024294399582243917769440085559131864862693899709974019512989468624155907337344854346204580277554862076384593875815719503140318485447958949336151289087864778406570894507865101209720540108767271000127483354140919533997978017375456768370200274533833763107909056100347166409153563818732220115292472564171069788772436266461917757374032904430570656710465889482643560447998942576349526195425480529611905532766359674137657902885347315792008069277657653752382025075300659775615778703653433250255207845351156873327315709880474374475420360733479494169596088492440542799582215943324497168626010325590235566193825859360682625933535835289581732742384931187656552971759646401835371767541455019187083261775943661658861616057153686121969950190324873573841665603684411458048605606475898077378098761571146370769627948827848486190557470433568951476378166324431565176585992852475566143834421481461574215221327963884228612023078670296146643769724901222629681166572252796323389407470566550064305201189182681898382534909961955529816697176492897420509893311970037465346638013935520860696293667350734938621906831285757238923643922439262828985549362516766689166439991263139137005234291197589447773144055068642341559261091052797715446792704366749717031418521961062321554823272779230651750343673869237692560741328443965277106915172207703618824882778963525267105892379306638306125832973045044074973268392086424210192103243372195555183734665285556391320400559903746357173494680443172538025919044750832092907900658116362115311082231103395194436941512046868021928576045900509482050827228696868136252174703291756762451753485138429005188652336457318729703783145508741013378229535407360226355115684444125216825470476848676897864311672236613968106451002854549093475838778866859873401258173848552662496524880331095649644099730971486486058905820275697541643698563254570765983077143138132554960669829574910985498558764863908562126950294592094666367031191019571169319844809932622430439777099817790470774067581707297119189549249471365994027542107160166179005975239677979547877691413295979728161853154851743798609929621875568749606602135019238872639237439940340444243317356679090414728622391555315111228860849286198820658138337042278615514906238056351120099773244069052982605718784031490654830795902079106069995790245799573987594423207689616054292884485717243115708531171120755265865275582854553430765982289044368380098536569006838526482926233893378712969310560881453642654594659401005564526654530360431066422128351451932797671863069808379441981613913559384141737312755248565376744372969803271933846941881674647414856863742571254890289451695798593283872147750343493586845681571475656789738543919206963800998843385474720172959290306229816918200910796893439480080771842242742731472620913452688011218981407180506574161074313944415791350554336967545623111718372264458498333845489448461984911697260226973210120275393874533101436142655002968315980901808631904568197354152623606398263806281619981011437929199450053651395389685565848754466138140381872328316191699383891842301863921667697413852955688442143436568936877650378766427487265167154881819708248852364115101024214298442856867049752028649435048057838511682623240344497059349673430191801716066631239186663087506358078266043068500773469225494249304054985679032785268356460200235866506666785866536313262680554565271552682361194356429426572444276761047308108922737100318137151372962412709462870403538746526973496441299952776966577270489509096014324157504146104614444475894126609951799279909481131054760984696375933755396443527095231211023403581810189418738585534616277364174819007099212500903809863124394646665780448030300278562395318705701439909556250789195025897007024240160255373866688606231023216321768146076264539197580352935960727883602424164839463966965463160070192349997838118331995513466414205147092094944559928498718943807569043967971359998606621079220508699303631698937935361185597277341416239809451697121249345230082696097704009470717331887042701319482233049281062423612458302201940228435426654956465855443552281938470397301857771204764783520212202923188687961172277126626588987019132216344053637102691946939486571967570291972321941093987718529294287698508317534452407393578481455308714159337062154240629345603320371369551338432421079854859871415837140179198240954534980328113084228005643787344368438740842053849508227548465735281538229237558355634646539384359501097413961282703951037074152145775291772287660344648287491290637933609411176535266718394770068880796078151614501948780118560023781283299521125130788446182747852076735003431980780645383324176803111900784495088142325242071462396570513140950496180179122897461366829513282208516062640704608554764707679274579219561700218098055687313577171289429973063135830086063426291117457453203074526771337451523201739626032090729693404142492788996154568161107002964544387071503177774056904978673482809697220424095744329188889025946612037827776150563094121541197568599483905149495151835386009859658701480769495206885676568484626949864187109604054505561027354629359307437371115214963143616256876592603860995831315943402196853998915790821166575838413362918681460373494510426131990173283523739719923272566019442913159389385244168253068328113715844600567835132914467812790425351487397497222280978929540345497654360163367053794174487773868556695287428297816925869212592870772415307548274886088530538778277492377224755030559385346964594514173670988212865784584331896947566643370801041084682889957876203098185168842370759763464601272608297587924900538136248293438553176875972589775877956895701336341880351077217319818880755130386320949189407694362400055146140650437249678462244586952005003030840711624370342828356901336292613800498155679154795648557078951429930885847697731483440234484826106179605476373412616359989762063857379061349407032462310495195064544731565133169587693255468199523886684883595984583098445652991653792678222567268825152881214540546015801039031620402653304559557161364238438129073133151612661743172794365772860568607528734785876198784356839983413236930347758189014449984812134048788623884470108420010708744462343205561168499377899885090019192807699631563457844787224171389364935890210212270891731095639318022442742921196805929658566276018006020968962251592937504814128321388908174011816749880972390545280520656991411005060614037931642601076581079536303398195828853017040665818324765463272086974566490794515927615580676737034920821152740959427792547736231565671701206848863157706623509502700234636973690234334858660307349143922835635687035770829485107021791810405988443062546178023581753693401523958036364453457835233074361059280476972611453801820025135606970430198661808488863539338431765725160938972522030999812106375770847670276391071767117532783361850802462875308320563954469309044443739635448632845912517467097715241462190793790863193800802950330294843305278722454632185502478224478205271775456895603900683473817213253085379996646778677034020769030892746067783289029942402803552246734318608494097792988522332400761276071317977312601578423037518542287951305184057236075735511356262423820692532880933309097240667889701990489964012724239252097550377907926648211124254025158803848772324809253609403319609681410288891154365985965001105097429685012320709690242945933522596979644276419453270833817233313986482660180502487894885693820167639127639780403011823594112208494665328096807716211507049554098483043440527485662318745967134625921943649444711186174989989505829851732941238594237581756758805664189882447014260495287475252098783636616384866282487846933505629553463449616685622777757341271049331322981500333490147821856995733651995586768829587071051699263087631406027320105815249945954904718161462013442079862199085676857111573199841050952430067247997441542995196015602062591922719247616269136095654931039482095343471780413516634094872854749253134751572967580576502645237932438673397162371742180958432398896385911722665041046008411045716501700750039208695095398464982503950924420039351965047891555931251817766177284584564047042854021030080002019286830672836590723065851325163261126465277157290472440237269282143460637721739581338324859002609277794679809830503104458005193510844717091830302813966655133783257407235069136545745175827532914696768467677885531444511685389494366077949632844030571586317241177702033578354669559010750020371114942631439417968759799094087374540961960951560525721228031012013939674106430468618094572964177467374375220774980650211457640470112754167688811902806888280177384009064737191396725375142558015461182107091551563929830093095258591511625834758123852609441663657707205215155862470152505740598529619725522454347374793660060317535868296033495253636672433831412644682313246421434646359053924574199363363179834523014676893788929477450669267233765719012756296933906252054984727020047607939671550238375277954641306889510283226181101268642467227901243983422902190029750339427557910270245567663758979290987779460375967297955488022874993843025010095026688431762363871859649065279853620189151909651035270009190565583924881533440960975874261798390960150690685878989077434975945207086355797489524695775163515514422324290794431042942777137552762019006625024671456142099554712596547724956432980616625144222920541773072475812939431180807675380696326554772660619992451326818587620700834126079805955472920413597117551992839005085630507640772320937027137167140023150441653677426064813503659277843666877295437329920411392675064299143867238520227678002888679909140947340925332929073746408897270935710568987759552238085891403085605811556851067427399244585738293198618965269677740357543999681568114842797093054607493686980297953417943817265969435907760584901480176879997351587962726496347202765770108756055561698461046467922907156670413007065189015897209340524273268589448786765141906179261242236692936973445853675780854372872178354990324657390600055742638432522242682094534260180554914599670200855960882644976787760083494145940270665775675536042710491280315285215050089470498905142740960494980065326555475255587963352928995055842327875194767608054583367571796891148250743066573040607117978918101548026888336232385489968145791418373815978983163438295770211459974702778748336927024181748052376373293068202668418581707991640822656050935731989038016287870477474764424731560434051799377243768590775282717172218256227084153364101095666967079686627289579599728951531800884708639396237040397011543651102395151732345579579989642976467473964324139845493436143879038085980299374076944614810195690976237608814236909834696992095177737325584828104076814227265130631890715284375499628261980184848881440974379478231198076695727393366611639763093765748173806505074931001153561371812905641354862802076457206550738367054127897168873516057117207204664870843237333857490176181194556319090177194815986454727822034617707290145825028534266198903860984776343993077247758778323914531229198259343285889055408333107723748797707460077168327305869118146101505047067720462234698836528461487536191077710582469242267215041673966907412011784867265976105702789477781091939398706620157813543019918934001393813861262436187306581708328829609585929104136994129230432840318449078832162947598774712517281511958608130053988918391638232923516864967059945150417296812410134391635570331685177999532706159613359031755685335814438517618569416296796417388466612486012075327105449083240286226567342783682585252384825512139294033840040665552964505011356538095210963245733527876523209963455597631605868204787892836336618692082794928440489896358355737210108205963276023868347622145501686328032552113561466722401974796137310303041187947996859367226743276421340927295423232907890019442600122516073187509789966132523723940629834165883739655651548126064564084902133038960047325905832382111871721534867015678253878840336665923458417100245875390283424780523748764500324510975551830754139354647770730972564654263008179006116323944562888982313254467082691357922955355804021973949410030828045172921514794010898425589113189608556495201088933994580138697453329224835782451163727597907653948766322032842875263153295591946985050180493547903399661048454135929724711139910800951682648875443164707170579045501263893375008916143687763865283896716104583475074103851556542261170672858269018358073887705079420604251763629212971441991443040787430743722000435799224415151840665814938052640109119183665707633607994054379915250781890103538673206554482795597596311720742304155066360193455720406736654074801599510295709640925233628964849955985822968631968114186677621407082445617376312900911528086218520903053129046433770668553394007748703401528235186352927121159564400484645120653195435353318246997388897664085440724100885087487103475794890174593344938257051812934075238124609387416998575421471314318836607503557619748608720070637863792012470423320766731228042361101505576501578605077052771148477520187688142652912809340138620978004606985611976952745992162907747229885415745347138854797082431033768607321416575518309350770102937662940594698447797441924943765796474934635948908389279199488444999687251756098844412049696466198693661251088440135920295887837751854337141540852090141818772850891900746515670912291142183779665576754078069064135932386124587308876206537135928189629572402732294168439038957239260570800868896628348867825568182790072951910923453377163481644974092203754811851649471435084684256766459944831278666486497373490090087808835031977097849380259134425915093621729636650002248724100358209428217792178820118855255637407728373834171967953548432373892328971323327743404316232469060315733270345599843767172842648536710444649861379907857210647452027314216564636939246510368881655616476665954945009372872795254938258622405690731204662798165138046472091797337038826047696304813272474453218314332232469878528890197578680720614783059272557242988441248576393391990777505392183395499041508905534727839607304651651409710289971332142514770615097474220231815819856016314003119669570048186437843795416641596599229566118869250216675482415876823092152471010466560608574736758538903495245699905032663896557619881962396300907756776615228524964155260724522198631425726277361323958229506135586751316749958812712186295193664735540815261717929773157201665815553168603957787199338213949540430270167277151731274934276335488323562893224146150048977570670393885779532334441538928244970723604105230544793004451526555733373264602162278076872872585951667968956789097843693426860385176454744739168771369563183871455841187034688114202696018988635414540109188973650904427868283769645853409225560894506051932607282986184781100964749285237975937053859108741382911306858620417223578148043240454839613088722953951029901779132801836196024606802824221135940819851437047916502406435356561813609661143138957516186060106209911375142987046836115794235336936121688149183715332616215478241363853956034935206659508962664725869376093250724348572866068706275835034009282157108282522799751649659557107925163982019489963096205248157819451090277427038406698219674735872420340748934188804654253273010303738003544977017179059093242152349165672164416139398390063411054553012731477344545444130524048951017920812932419234191149332627618772190983702042089797421215411660765665675893833752287988628451290524569303275490566710740935610051651576429976841979002859544668294000115270055717857112303640884331218382534434283029771277725647748858715351076169862183468577919652231550997136798880477927760137967661828758161315637581508712187908684516100494576155961420881871711578513163198718419975508727343684069976160178218532853658927124718500617753898595090430403996357689320294996279235032722124373899530302001604845124647419132266859813846590412694932101599456001893004886496367246577993084399663064516836923495415746963297885888947319781258123993679008018587316987971976129424583877883464157801713602949672485220552605502225261207421065248382359272455420498652952515947658181811158087700854567452343200543187471446746399940491536822173831172235225462106189249737367938622702407056788100148151859465724110041391398048726986291422261182017654648418013835957703449193135042987687984288481122251702360474337714078638126146310747594326453655908173935221893448919970387025154959614546580604173039322568440168976834887359662806976348853073578703671703259521911779555677179738223285254425836221863957676972276786218584048034730118673652711381847455058894697313332206611246243878748548426203636038931363663137620497345471034905882281157148411635594769435922710735957797163016011449571636171163598374331919412502979266148425379274411197666345413199318669812195967101655212503590755366877362243036930823282112175278656481248396870618920035241576711461351719608647264363548084327565023465597748070445565818663352491634718267186050369773538296601324669554753695397230035331784139239185602967064481580671947549715227860550903150167524490901805481677557419384385931234837173060547286096259266387942828587964193282192263965263063616874573016932701432218037317347248047658867299950882724622885423255747848747282343144988911603783207088297404407767726486468590018291364414144528859485422719204391280366322313289471935607201148323888332626592880749342148849469694436593448717241417736013864791517404783862593642450738407059352141022911478375545430512657655728084445828364754218928800950061109046759077243149928681374995615694295244814565144756190202557860828766314553362241298944140893293013558799550682173727592701067104693002371921336290970347469778530810863248779062807159977749820706461471835108638417604066463955339099248299720878781834410440094465565875739137980739600593934438886893054523208611655152411041102645658401517476667431262819017552024587539564977532704425491175478152643954785705698310407127327221628155774719411838885798069980073342871191013249198337016428522566373972804704111362065098699509356426203740126648608703240792867056957894276986905619851201972004844634860043193693843152405397517942197386859271500620409286377091967342949052000157317955872833874491912510458292105164846710504045948967927946264937727181024518961448184998661374207554028422478622645733719380215552604050492125345220145497763174454826140598912332297917139124761261106226422266873589824787636702537551955416667519172112133044055372480330564427873005584069085360603402345040752514723589009104626482191238766522783496172090150419156445325070418320204233527645888307434309795168661675102644966063851106543644896387219452602888068566870475671910416780498531119392425626378752655048949794562996880343584291960787076797324982584204675012957803065660766307765268704978464225835999739024860616588481663110238157624448983654050417733640289283507976544970052799093162259985947779742271048835047203790576186487974598634088949792035724702920602310498269653557919747027469446458325712660904235116488366197567804990723695291454264498795513280476467373492380742489975815469613567117181871626715768868354518385073712528999005420993898183488080694244869768047434783832893999326764516133875414956265197847586683566227832031693507113144689876781329782844266375764827677831019053752104805822732050680971747675667203541010434343124204911147706157606352282401748713922051354512319396667465801641792320941997818355880530300351522736310784681143564139583412192497582730712611913445697418374411876238613678262714552154101569627902556796230818529997032780546992271384215441459889561273406500326426332317989600294480842878226302246203290275727927232987367504293884629795342296858845355049585539348091927621079442818849014475145368339601154055257873060297883879664305101968665507714545650607815628022357435370789939786571505445608046273982541864622154890603253827032718701660959041886540528483688655650751626388008766190232012265889649338114265629804103997391998709802463094852390421521926103585819459728535742403797616986796428784057870465943001973758525845467582604211376916115770610849846568400532149761064969054086742817846646666024304108067241246668672772744553226494751541725019813384568673391459819528432252273206156872589993854130853421466395630429476164270233322464610777305702694876015182477431742873242719128779081953320752257937711340826915567366251665177397229686451780746228142496380511345486449995660433395554778130738784207366893983470924767561514457818501286792351528205509749362149529680324393635409837200812655527004085209889707519660073575867599816744572623043467192026105845752065046880565528763094192604017053923501995258620102034853178332750974050728316301801457342508571515501642442818126666534156536181613755890299118698426326624557100698805088882789390489316912580173378060306784487697183590036417691583638997516622987302920297566688336683093561527120324668140620625687821563201656831210135865520572364074419329866334306496052437407866852046944000413950195673874431445034308547989068382140334432132292752972805306058802086204870751286137298402659973209889706128320397952208112723471049837525462397075602918836570035049236668401130771469215953634125652224733759002079307299134565371083254000714834839153062604982206115483955431024445425007116856481840105967151781679785526319159375834311967149567292073908216068470141830069436383516819809771385442101938775160142951815688683544372679687755838650849762791260202216817867396554030403306810360156703769060005529200749857446523120382080605247176393558826098257979584736326328913792215096442198194304383667820141527584888783497424149972616798197654750195476356681794462555870791929322583201109658187323982384758340400331911913038858501394075335120637346571228225035276361574156627348495420700700684246014721676360259615857951085357401635899648448939332547351745393943171871942276334879092035142985465133748687649366954846679340139087436898863555352568521859100702643435062212802882105715553593584366463757478049869719213904745482546275306859499442025323418686617642960544330265542572166399609992437091811923855687188363824817714358749462906615874819253789280530908728885045314324387180502548026954090548114976833807468205802862253904720184296469408332624346568961008952976368763075870201598846716191815515025865699690146284944480218027223941793678436418113355631546025127557483712882160801713529622031235404186841117680662021203407726996513715065644035634319740261164861609196717715960101826654064946331290922593969832378749288245678422559978958896167116220767654661374562280274535049914375324800751002144642424610436659482619814636529906882200319268754490426214818059931407074899072697255627664042922184357203327159277673936674060292603210642715167731932227348643323235126950543345319464933268235621088011986241462576665410426156156587854354816759273651921329307662216590900801727908200363578219402903862818043087733294839846160458491316432774417965199827432924443182899417802530950923916779728098148888374176463266711264696089524709218694944819291019739098574263479139218075345765547002857026315150974752740520560012488187334154153814024146555434281447710836802455868429519854110001979273992522633940117148028270874264313250138672083965677689922382814358596620746948981158401982838434884970256472270603393489247819359118774697319383707548414425050214380150956850884122564066738959706157228270136663610936927348374954643968060956881108174763782696012481846988290468129940015997581988715325743560123850619915115876454201890287299180449266628279631342066624749229688291642887218606555326011035536662859751392164290385332037426425959500888108453220784256862582089650406750550420577065097725261482975158185354586760192990999236416018233370018120911562438017888531173308270216777124765645167098347898539496401774263325168601269418905529574684974006324523334125121350006286250465283111239183928396947342311120450944939376028438052889575156205455345076849986189485065617943639644755336151296780376394797621891747189921237857176146948204515165165011036084054589741444105418311640729612989014098224392530661850349938169799104077596337338320944035730280595767893822660869286236480582008262154603662918160392398823612651788912305374284015410511836921372755963593380732751935536912810471758562472342611557220224620730163084133501877526823384114623197091176596983209681109987189221862195405536436469895196249489091163782076957868176646312931252058858921951414007664757358835774428976616550701908186481177867795980381986650439871836492585497512120206217641532747790403888356075039113102335721931707042174054561691708166118883504325656268438524700113908144750081818579537117188260516570548234088822798341965416290711144778640306991816789899128963542018063001266711792225924736610642259621613588612242174319370970504747110857540370308434807375166182875364729375773274862288257438738332816633755608045948632679477123281320240403326832551906932423639359376741633289274002439389297776339032154565953544415165582461868619888033825257186385239532616360067539897953428149051852520870518010569903744641662632852460869081646546776497445172403481824576391642439627810519907104494568757368798900820779775200194615872122627540958875463756945491254835142463490177948344106352454660810523321192316261436023932513341150976771862865544855173983278340215932315184150159958676768825984919334024186040241896172063934957017245782884075337727064444017174971697033218861154994213513693569578930286036406101719725754041365021173476717995039632922041183062834170715211206188550971439643255244197804470988906439426457394081801223885778241102673911656513673334415201572398687075935571677376755763765135362313013960074795747756929458523753336585913968055257633682733626400783753570993639573658125272855123547295906471882044468930855685508018515853411115469784447560156601509209595267910033725761041361710488136373501144291316849823945576306366550423278228401697169526752760136462497380755166917529208996230730644821788951684482806739859521256800086947292716255914814464333070364891315823927410384414226643731315582842368907058766508834571134379292584332366791524842993026922393466834104870997922104452402518529177994526689120900137499591008080749928463378644728817712657567893542352985313687419318329785976406665882136920241950014349837034851835868520955569184609715565906335074767620683586359434331071044666418131382037009911270048211070045953879733168789076577149862530562320543196688265067253048191633552045119753467226315690555813925104884424175453256273718132691803341488013200081505053529157137232004009457079790758075034019751750142623047468307144342830196450960934374627877251041672380521796906699806414912472741338889123266127005878069435251748025103022189747742698004003107533206504201695568187867120139492413545111431081166842229913657306764220545038687009134614842706922415420778251262095797120962664496475649962923322779165791554755387264141751971458430819438310196382666274251496343651189111422728963203255376656763635391877232500113424855900770255604527182905327527342796796059154018391519610558498112357315865598163335261037624278535599898763507924642123530179751777604492851999976074585605206767496727028848488693728267368035566354078955427762973793305249583974350468380718601851636011237388472253963284182442932861057023898591695058490613977147429909497961113192068494013999553383814887990353930886330885141704667559559746844328301733021610607329723580328472811447955635142284690220424544993336529327391610955248227951635620453155760528151902903361741930085080632065218460835707998124460145305963202987747749569528999601028480414857560179313928006802603095627194657252035102240958782731284897053647460724638824395389380379414879239349186210556552064050617321065106886233142319751726186622200106068881016430009080962265879277252125450699176487464192524886667712464722301828230914354806145888352848854555552227301671633480676330943552792260755099718721810390031107040713759367911920181445226679200235279475579177171841665570142608915368960981845789750252293734099847332081043774670201166694595317406554294928465646692344171318297927978743496635468024490962036251672106320612218188501455638379340022167156090964266598810156000867530462346333575329325919621824255234120770901325526782403919159669674927565660507368371166045141589780697010204919293984253895313729604146301343207588475372042750397976242270808196022895331370522119385077829153579262724647835861350460117395382369251102953735507472930865019109736904867012830308938278748654610155817417716374303038858336270335121248410568774239759716204622281774950360108901745789937056663928970532885892035459491416241487733142700025969246250982210918289765886272519998977962580486235193741012352435765065611271215254398071387394554617882177297562136309811817076082975643791040725061221034322984005347589265769183337091990744884840718686154902248303364861366926608189830033005621160401723268303347168851134910611495576440459120773203120969960537992174048665603832898627360490373673343362985478333138505943859281868509473315616144113799470081576249320337110302682033950012497774647821027579790757021524370162993068075416528510889465424549409739423199185928338162801774664160261054638335466607637281545129142619291359307938157194924772696139972031957110337311557343008957471280659518382300094836549027504827248764966663151698258937457783995255693429348161424913545096685165793046802336992925030040663537537901586131318762833025386645363913468233144870370461322522015685393175638006128395754354200560499778503500155143578315785449600066869188782556669619587875879417273559580078392525721672172589574495067428675772084886916279412849860933130442642102916530205443355431788355380336229566248933201673494117133496284358080397857729305861034434919585985577343831700912409990202606455765018337963872005436220277913590153152081513014673461464210024387893654914465934568836231112022112212473574269741794089510346382827385068155073626735039610383270869040738381040083792710107052002699102379088692891308474325760142338725478665211478209744526904744657902128378694979253595107475046384982007828171489867917785721943058014987219172719444968916889055750286539296988975937737540532441302567735592178246028319391359554963018684096040135868656117812381550138184493169253131963922566406738635250332258986195478861853735624839530960553659112114832491608807998448931066522032655912380321160681748017622406861836528894058565373164670461203308465278457315367233365844643748333152312182661118599754712280094187778902443600997022104323464576347321368056507859842400616381771949513149244722487793537693071120435463603776188899958130887844433299002945907095678258103618138742407136564951054494096573144623990973026017056073947922551231224070581085560800222962841613381755001925298957003977798525157006037208271931349247140084149617455851401058765198998900940559577213894060323695858530424973305300181556487470324377452870871633470514474109430169107920178324999449854233844470746455273146272504755274417317662725924053122814649844209037130559808181590219458802523507157654730873466590656211551578556069688916575495719064650281536850294461135516911114792042357574016321629017793629801331114028313556316259180857025446837163832978361371328105046822291843296052898030933088141653410265607964730949915032806632555467449323176274515786592081186458394214491463420843755018357531855914757162725114995625307351594067359400061740903523706659391935230913574293434936457819279641616065366504059239365149484930097508558683845095606824913841755085109707775617609375155373524200582521002794224897647727563467075992201584047753624551815920507063061185781374085243544099144374707177114709389562201872882174821166415412043778470562818679959368117336370025698777932362082487942964574446815950366447864607811040518432736756242567003675725453735753504380935819862001968104967666847173367613832529083899375119186909379034435109988764787080609013729854482737742829797024442625391971057242883613994367801007783020633762614465842868566727497995219393399338860741870391365524775409012535456592743198983106720358422369733983320373181541041194226368405030848124356542550578633090162150523874408387991311484622332874493357509652960639265296999981785359361900798312140636242764205883641157251360791162005435018395406910263246093257402170005568762618615471063553953216233431803752351055896163374672818844073874757064823446977176617082150762833725728151586450725900882702798369369936461731758875119588375175192161045183903474651043804103194589021059473962396255608998487866683454599349820436500555683027682867249421332547464511228926007577543224089196981627971509588201354781526826540748520929812168839873326060517638959242173533474135418917504278264505044622066704265426268812038675382081028172489967648262544652821445395706146826995858395180510912643440635318880460373190710296722214878314040585388749122247476670458016846359402068197007472650576869729404540622460603921675534811089881152790115295603859966403115451044432403871686883218226806175539037518384171155743500332667102311368970843636108031275257836937611964822574039810579475577150615508859095128780085322072512406541179870748390887478730688388770501089940465938406205005521179675373010300873532120782332599066614271414702149375089447211682613037459429972948522018283263247860883910067445021269380953165055638979448847429087580525912239042151732792072440498862043784518457632271411332430615617374276073057223450415380014912173437703520779908960584878204095356809036847058463247747884251532183530381968837406981339889951191258846071882215373897607132162868813490838791162696754755081159742320319286917226709484234934569031551473539227566234802866904955982357422657991595709225764334958518268830730148259674737968089915673767740496029239290256853508389635372285222172442208516482204617654758045419684852632198257603556714922684672678292007854763189432176154070839786093009607325850436378825358041134309291738696968376559708417360639645387843908188951582117804212013268680715117830106422957949132546378126422508993299796507293981333049457185574316081981427601179902734989659526528474608569749000628548778748578788283250041580849806905359445801749774903886974439590876057136343306606994881968140037550088256342647241461758817480977332358485075840867367976478355294288924119372094665258542547804458786728667925477001726812993389300338802456746754460065736034920776260377647430041639776633850637237679573563475754720400539763460554570855014242633561333407179816920446510519454655942673725031580766642102410414568924343659597315235012808920297584450796089089606966323509051651956240858405001797420906044730784247932480493078365907066674648962024159075669338831965023568710270056768632219854551451390336364531777636667281284308761874517847358071200087597055430962362222959282256619184423675759121101811218700384865434706998039966354944499750501544436865181794677016898429622305681577419047278494706296167001549209749493574804361014197328279420329637729152682027586160479117943063563802611280704669658997153245947286256026764673892253135921934665242382481461444781424601645572938813169346735629694483832717349015333347803114500896749581873005673619488185649889593792126930939290105981963283468685529721582166733537298748057366888887579504586680157218088794296475644338219470554260316005896514269802103827683398391258238284454893098909497319571270539117881565129532421972409275582055044381109905353477043301767173533394452977556810314567014266768111909743063228163117311392185803222079065752311962765612018274541860988367511622694257243624159241173863430788448890262417604335077197172103782205712800636396589254659474872081749229838773741904982260844362823148321805755512525612111262796571934624090391183747611556924966396473558763116161542205139059188626258196738847352210406390825045812231770105743371113653364244032974002529073249874326904626002094254177581916155648342713744527464412004486652688721981073987906851929969309969603888077385547420403555057602922978807354851744995514651228685769563195383684008846202141665221057400126066567371832001590437391642280060280367744391239798697056906886537818203844149189447082458740513333892927183623021049885367771563675519331570642209490186696294893829591593618178377298478698003721786748419297463643001751439915878689599001917854991629953476954091832978097320808120184587640188714140638719041549705855264878669526878410460328504210041279710177869103671546538360261450783529734149057290728393740742588325079920964994164198871369947340185682568292657256543835877396358513983539404027745699346128105687031101784653750375664370301581676744157697621263867061708481492179267114715452952875698648124628536213288921758506010182631844248694280202427789619047599712115646425779486745018934139994592587688021907081704884691616768219341356452881236864118848095978754792070548383591564213742472205436159097613789553530164980178570069867176273419655691024074944469252333976815214900439508318977693306527365120048192566010336344834295225589261279670517635690187899066128457152177140928869958236068426097578969616709498119959165260846191733596811057924242054937930858569959691176922481872926520803728101807166870388374259182896545826440596830636016803541980311009952445572403674364046364784913763159953858700068038924743144226248330544848311093231377403925848417495659487850790750099800793714928219146999414748352338397020555844664456313875160714480253141073164006766679066903871152545407746208451268560243389300160227626070976707195457432344707234049694375221194283878696962217885980127282380569906977048043238623331165402796146295859431521535424292467627835650529670570579782250590466182914612698466163983135505677356351074713468234354508361956129208286811124884393979508965030101768446973237124678186183834304864621136198846719487332884667840153368998579458760556128785290063788256824985049469149294666886481377741503969029758918197560629770807066242453648570011176027382610229677915308588006813942345065795132337561218107403033493284823229783173258433199596846656666002025186345793815221326633389131210929925287016275127308331316581746155322758681901541925972987884143615136870568416165180769853119595632637266209330194826336931339803539093325485410487176942585739537589288972258525895250951644370342480396111092256317396386442145216601629838803765520783245535797044562305231566396754670584022558588355632684752288815310351849748937608811305389784259443732500974389349767265922239252799328034504719562063272671891995041805320420229618203798330342628826291923669674550329907459923125975377425772397603730182369768825148924225036565099512335861834521825288476973260950948515778592901862716341902099887891727010605736919210337810120476889177023693258441967809268251652417846797943329159045323084230894793268390856370069861707644139638320015894069427735730837000825953105069982425008473440290703088527683188705778394803535654160430279091356239411944266687197481834649709822687716155227438071834294333235351299349180077212942643111723695433493575107803411893198043217405436042746570194268970618962531093547626923520485548910871480600528499878795712153903321792613931093824731944817643152718699654414390084179221401026747787838126275821182540599077349606863953421692488647283166254911588464887051327760305776687912881612507892866336527645009471032572894321045351836522993409752697241046879383173751464364729165033790725069680402569609654987541327319699014833668990220359133961762645020977899262022210636132989872512595469638964151253280596156609363726797977940201379012513279734956840296062758297123325351560794503132823800283860038064222120547937475561121474420613791898836765351300729381821989570049006900191481280243646599655116752601398479274203339595249024357736539746385432457432199632684111631168328227923064443505641324506310940371761261606149228678760206909910452309715858888478902308930662439589195354568087735526371956309566739994236850555903922343850337602100960245516494617923475035067362642199328417861962926275231533158035520399990189944541669065346581935259414925923620392028445066842009006520121302280959950796831087657578790712135750420363817640339600549619490727833607419300228014621898166226620657672271644894427665987686292548997688380776148394960476108852342060848178520108550284296961090036618971126151876828004355528750534365387859740196481574849466712015860706817200305471322881315866987995433125123376510610133556885110087132626988185581524543612583730926951480161861917093157210616996392141070294049870004526713903605994467641598189767372763621773042050374025880876431958171297701002044609236908642660820793617307484619164424669099771402781073713666706195015739016541454966525424229054424303229959021477049237158006758162300100998245461639777903572894222865763111004501875794665108706521326139606655920171560472522830392327131978604363505933517538424882929068016993095172213639969959994774625520537694254776609881425390540308041058601378082431753462484754219485343089651258063546626101515870616252211527349256657465434262585590628615108459293479873315509136170284702115507048394055219962392224197771042917926168650381774496642156270817997351750945116406679829931830744227776390562889852269839627948101483964094246154212454881814595939545032265267180902897941024264667837240591148976240032465756662331591222983485503402125590709635453888157887042424477006189636857164994060206692882447820315918602437043347648901200944405728544280228024724678662755119428050252551958319527822337462951608478107422845905364883800065810974098668899735068647488353838580444983768696531853445436284223499532263348269477569140865309593915704267850735645908860227873920181252973014356286425525883652151498832814834452357253005645301952278027991389408552118334070450015611313740062170952588306110133681134992463484266726829217487232000966813273110782143507459429365489624437214987455138613899657396670999630101603806338085059782117547305593371259242702979566628675103519227064400477442656374832703214396806635198909752966515579319409632399403015989710131255039176603594082312975499231329980404796727910971383246910567208173160236999192067491241324685447100468672914837603573070389949614533323867427128573505721161819231345445504737290259224450019614182864157493992965930276629357070359133614212521339097673261942982005128429980186679736180452494166785536468728394910961209609264217287896981414460101092154823803543866525732241139667669198893923724939894091238349485502366938599513531978312586297451699937654105104114452665744583901306325906604614633246561421930221326539734418681551725016696203862605985644466824261373567936177651522836749690496744807332800843668667216639521204733585148525047910826219537518355664716644312512132032121246915175433363484023718421358878619817123893586583132537527366084964632488376034618481577629382586157765248653622519425930660712443526593028457833718382005620882687045450367543450892909149938375687050795359460362680322883999849323448903738899984540084063653488989594612089492281789927238609788941713938201608578471565142078212818667227561904998631730663703810757747084767278193129094275478562210688085126258019304201413596216747405847030110462938641205666633567683247610864519968574839495813084893110182256824535954508587151542864908225810159757173606061319796924834687055594341067551671000831184910738848054231954681256578385997580417008286631586653116624132027331702764907505832237335545972216152952942688458081987369735132350902992195179575379711371326988658198391488745785781501103731447715785951581760515817589192355797429892728598813015792095374339202452214957451233068133024144721515208778673145652888554085575940246898748778175823534788862239642645432818005737010380580024868120462182653457229755380401863046534590260666517512909068280597456866680418746399519210405275789315067586244068179115284074484754678415229476058585603015642149371907805646624308962561218670609058651859579368345218687070868784214545760470142298363917338248250195625296749398509370640202290921281831891393750161085854875503557145016711299581354509430950021789359292606895685289212066641812919890470943780437245140366606136434018325919381997028191230039085273895828748808967548974339049710114303612926140030610799969187305869784859885617403004829825667270584015150757398755746818183096368209169370036421320487046467350213661273020924333465332440277014508934501765507440058653250394355536032135241790101114022374165416869948334723617770695206845423141518867881475687187566726942402735233645538501949555606475815377353327206111914768771533883396585703262460293287987544562070237129973122394549423427496277828943901479979727099511506431276479999340881366543743467988409783432140142969897759106407772065530866320400363923996667568390351004457066072764488898615989610217907160359589376115317280291015498551917634784870018439930360903677578889895385602383749066640245479250361529064082655506275811892648632094234228921470053063769147633023928231428928758402807829078112820064466637449314861418128440538676080242907785692019378389838571439862653639003300325145655884626010627785615992830191412586763519417824724610332593918453468745986967824035591626160817770147896322418318017346730872845645718420597658960627163016085780094352363584720950062262892528086339255078879640305546452697584571211290667587286921430646681598769767227119596735211402801256938250463784506264783022970350148659703071596475213325480378652794887418946790703951450903862525461233134399260941948248417565521103476330489975866360518036039673320791209194784806945830982278355698592692419732400047528686281287342884554837777689938174514913674188239539557451567644034378991867123368778986516735669805157450003377322771643666596456633150003974273671042843906021812252919052221060212577029394294369631987195446884703037025591530317790808698784634526420146012774796950355103394071530321867584751105784567470048039851611055565519347201269214633966448540830175716406427945934488766758553806818403337354385494571707422852937012743965231033751106472790008491960824897170061705062494286488915833608321166325686679051758220051994304194697831773484709654904485785673226382252891636731436000046814593566837763235284768881040517742078180008943209150155702015172666173732893090153595005015088161531199745687638944460389880759489500807711325647560081563595659720076392782877177684279338037267794138419813272030726315816408309532447973503154353994339079202292038524888890967868357811299010639538122828696137033175526870418211165388244810366492625439112433781301663940699927401800226391196995284470133055135341877578558700725845278492400513025744294548020612390686574536069113255303896227492900952277014016315025702666787922158682948297155097313434689480956710868737383452150107501625306401285533493182142476851675858297525453233539584619702256830001423025924092741196008642212352179865525706242036587110917960633506533045333798588390295695620888786536935746258171667575712284959402222918034928899668468250982574304011860939433096503290972263588833203212225337320988610457580788832486615413479437337165694308716761746845415329402354249136721683268318686924103389169164318210700231287787721760583207485059899152864316046367123702396052558157384056263259092603103957783492922525924221911973957157008955799562209392306327851226121322041221866891501641988694847202410804996467206503121844215727025243485200420719065719606627936453791382189590558788295936239840533823481013739448102218394510281847395170757909583426799014356797797548696984355908777237142973223164922884339989055842662031299505845000861479195703828455328425266830098684352496957118251804275123597140008476631026011815553400895466880522773556294621972834200321791167802064225217563117175773347679059898961199211300195349162898266781166450372318156649848166247709330099990021480243602267541197440094266543915152324939988517142757194165296065271207398420177428964805447523820909291678139023623084855256105041695226162459925216744223314286920374416971460922888320905943342281505046239827741668540702245520702193843045762786049593002946166408957538596514586502524414251867599148819879340691936658615929649151785607560216977842005444160560318560882960525029311765147553532393518676874430712542457048720414208843565015935483213721141260667322871907141828894653916287065473789330264993351885117996813170113603933321283244362445379398841920288850658430828727423762649983558095183102018753877498602495979207383392155288060577194674381627581394881812860555225574323780116566396629774053756162933789762770682947098762812413975673924225543582910356497229499897157874114041791585937275239401167306352223024112333049744484013668305645066462242067020718885812128226781889893882571261684694704868415583620753758963315717792210404656978667819016774845909486951171826928061592627835190623907346082419412674721752377440665581626322345079408434241865778843031590936122373912989613182132601950961489576801051148101139022560057246347957839868108122856215783980523731806042431267889517072710168136351124712613909029838303037682577329179872092718281565118860613461409307541048721393890817639971303351185209344477926429777944418773321731045771469624904434067040404226438311129955593208865415072520302051458411761557379002101619294440730505288824808773009877617863508929261264778056795961621913802201478422792687442564406424028971835150609021367506273191366553977355014464681925788794186300105232566495193245326817346619047987901112656120270499070553854344607922025814511174511223839698439384737568227803663181401013279345119170370412389904980841221608209603784089880244836947462242144769939109890942485685243015469252000308214061639388612647099299206479305580071774551300328416868922039112163077067079804590738697521627138917063318793303284729694891862651599415039504285221471743778382998626815689217210375612034915456517825979630092483521649904704520998371284533488236664723901553555889851284923745721174225474281593298906804524822242314553762920965663384065836042698338135990583945331893667016679102264927524917851466789175644154620092054736614996320324249480728161075797928249765297063474293656278944743432243743079119630856296168709492692658199659560299825159031128705103067892953879915461109312560682514788460850358303221440944314915908419761532044391159114039690492929894273147560142046070869951144718677832599612155204503168756788611543103635197874688421710460853618509147152737464588505079442010578221624777654573864296208264985915237311516714040774790404410542287760559604107691856255839723432609396927972340274386435851479482498569919635943813522818199879948984972161250252626752766996103269387020134688299408573741214148429385989043420212567965081160778576709833082053234954053474460283684900383273369528574739185724133705630270235831166345969036618216456110633454970170284273278444530737187436289226361370658930560359609976035408326639534269335722123169607506407779912075533654711006843641657776161681541807866010024425829524359589173319200594243229499902249532674236774246821499906147284106721211226597837124213286139157013350647717151464408779845684979469129777190670257860256186189748062789703209159766251936623121652167018981908387486235959599740829262303708928820546261951918273205983499383351298879505757806909688168815371586233932766485023439733912002642595030945046528723198471724744056307444129869256712776970009086652916651190650651263757473810618523357413421642994643621958828054662518650542879062603600697137682814790827151638398751742683593175711512615255075144389175319753504446487227891496856510941116372720294406173253900297528007624963665617437981169508579280279153002218680291746941188841028388555265016000768603693906763340619307344927500283185043991228267795927844810043868407064459701511093872935135007867188648659758338405565350404928910708038604201823324328050402683758652971695668253324873598039144769893930546042035652791082235419091017912876160405333563799094891776989101270116314353579150013928413030851783744515177698854755625941584930151839123295296038482322523065808032734469017040453915729078869730381243797578522489159678514370009835493821408663750616062683237143646289727342110140738980673296031405646535234932814850886547074611484210837118547568847449227308616611075723437288576127306374802962348611955359046740578043728221119476273338385968539687048236408520639639751848415992348480204781789970216854500348034209641203257097368004405449607099131936836403192477370510801679554081147454815509424619860633862556734915184621671880985934900541583913136786161535997248555034938345356840626904598312223183506932554414587949071672781545565615761849242240402622677973480108432535819523471800858180959386293884413141658113192702132559792802059396984833092643946183593849818504334224771080662874518140700180170213410528596158467799685340039618587320701771708597076547012564138501160485405236941812900665696385512529616830236936338920380873548796977975737243749604148675193160671588250761438049073710753056489337790314712365720345643170252064730392876965984545937589499278588988427187591439712548621997444511321262061197534253330177265901192858635220915204929715688473054032659676737210193180741126563777189114463566688837668345911713964825880280308983876769284330867265792123819927425056928735156855097623519808270412440560619880462779350925249341176703690848526057523067413171689711914134622802409636655914221301357517454405515505662820391000351741113040623876477773691348592615034341850820018429785212592934071751065479650210438084320846064833929598658321508921519122249742636313923128044289105533524855245943888332147035423048181167629147496773153966213972376509173918849662757711832657383917392477038545998587546783536646066278832410551218896101067089017087211056561708556715832032859346908637634327257785865749968288985405981366579496533780793914658756971947654705474693324260998047661456220279737682230086837040999846873309090660389557082453675617205717408945622553355385975777137081787904085322429377353516679781303767975082761365855847006667304691027475599733562435440830160762974303579139531178859170534921742944452880728689828225949965901743496709898927954109455175944970497520168722493145279173081652114845941999323345862380440247251340295293385350227906872319489463908447657850860432227014624585479628112964152162420996402143639060358076535909896129790268225364638906422466286524349186751207718240742304441530166345516068840570954252626772940980110184772421811179346986343760012203458412969530573851892077946532226052691399401237488150250492329057690415453498697347163357384065458453888407376626926731242322803814525860767148441256189058939966415558224364021044209149703516202826700931681527517596916465779615791265563926019914878405935649203482047958277842070778883461796645483503732718955312524192756238437934475081701780307652014857849644026563657540995643628028312144850985465285522545011547872495934988320591195733637461074492982960261283533242852928026935596636358733978378736203152376969411310751391247724184514567163053501150226879459302227997231683746137960280777461957584010724320924712636401404595002135529520968403705876744317236624210028163602262913549040403461503123674928470054475926177001666831531159476520648800148222673871476038574926157680511335229903513484769092793371375911102232717966398098487438422124323373661160871082303142744331784822853732598975710186873388132193398761607717377563587694196011559867320832422489199477133457655780982506438199647404214977527033762593786611387094299538520553020166346881782715343978020690822348896102296953613102880301890810711578057915782822299000287075362054933641123839479238709282488672701736816380564921964127320236811298540740352175529048558992638393184690333820579233047258170275146737016769751180037072320875870448817657767981611302099755870562760865749776251528772695590905468030425625851313448541760389756397979870919170755522832705140431740279400892262844729129909597891647216033095860793008206394468073168620775448943400832864430670799682516175085629104671194782248531941613672797163983460657733410982130660873095681295778471584525323938627172689843944002172809834616544080450852412314228640953770273451222430218799179158888962287989713472162415730131336182499340465669492443715218847678461875385964758840912694009198074955761777463394791713937762262735355728773522378638217359271504896716208177432494236202046663544810718089194998385782685678749791826254784137407091365694267295778595715536650774292783774618697803453395995157194258221353067496214264680625572841512693799769123226656113949118073003395239979971841925333117265281049067524195394546844333281010280318806709327662804488856228667404171738393471855895124335461581652873359615090346504410876133331248336688429165165787677713386581402583527328061251734712200938074698392296256030314604465148647202675966565372518252834234597088457041162655684551066164884437323284608144954840381276868853779553316404316222840687605491853497247475283462974763682801512998650701246808531365238809233918702190871894087553092514415357844778169882143577100599519499233947668529543977561459418364752756003122574110034644946293318261650528896555253871132021457721433558210144513305377114059669465902951097652422946213301853842018529656445681477538846662485809864368570692825302277427756996926668490122517744500551937960026516889783916188576697069043369564242305063718757750632337460546057343099659036770678965669899128301659162346316882345666203397601315541740461518793764539218862299609177370722195080502679296104356655632953522311896379691791983697315918738993431020231870725279260024570026295117763546896857684372268733854161841514882876696096269344507476174185816817282116493677150047987273408242987947417620713761463582183605531731994774306771342293012730010077666488008448681628569990906140164926620389306770346273142027206233803987155803883569411759720143554262468502758808017192983111894823978228900968760331161663995014346543730694012498954376565171044232110690113685854634532456428994344874673303932934129807786543079416993436599472633268911915982009467662917419996107876439890599334570896570799341281801211452933189385973012814996485525280295816641109187494985784200960028583009711812739615748421587197157372566638803967749048604477618626915852977282810742410191437576068832763292379093821060714891779344942601850170045877631641907922570536609143878453726747929023055175856535378736433741625329950593893423247887319815417306497166758110691775098242594594622021681242562727688337032080095883850242951308161687530457236655692757698186917236839697576583805848992840374041952599573226548315204066559854880543053294817252980567517066996295537593880555293231268095066126055307117564199042911116674223660495816498471706343019346705627828826775183885489287497366318542501049017148435676548562772644574515982000387213004318565423594405021894794570130130971904594479581470087918359415607279144113165008291823424913351153805401266657740635833640172841237017193902949170004947943935232768886092455982389758015199575344654224330145696344186429964932662213264033075797506418513646237911444207765894912873585345656289933550805370213283383767602173809914380975418097785850969279982984268876966395749724397165302731397070719020149018871479556541492615959908518670189775556329291116142906091876231934483571594214600931814556920507541808955462952341864135926452606295090676170155753815022758943266315798496447585906047435232033384229348388536109645070844195768011235202557465576650340326289328742802414030220245446135661559715311714511413978346821773954031721674807686692002377480201804786145565430051582564056522325835709002534315369350335106926414492095108498015674689182685369624439873574643705002611615169087610128663954564929638831741926813440185515193669973997987720777482751545670409812109277535520303550213216272653390653303749235020206612270870914337418629040572267826830301381753040481662985906242135958685134297083635887001607322302905530179512570259192357855123415300672992342706683320378546970572810400723105321159687674821139692718338284127822480966395504339823968252770278799747266677540162763689327999574338008018669111753224128562414442203728549579750067089798148147283194679006638188303899151928978835978661210119521900586880502114102921945796050511300592521975129379875185336569898599952645980499752743779858199141461033453681380717256355024844875546068199200594368005491742595143494814147671242525858482460862343599924913327467027466124299306849467367872401711634795683961964014872607265758234291621594891039813463781738407100803879285580260249253413798542867364090816145596618622393752667975069009146735631509775762834898616143767392009118132007291099457235633127788653449048800308544763359021685942283230931065044521398331703342184820648071873300021872913486238748782975862986586063494625429905568076561841549051384540041710776649405619750756879451360988748295150988065940559023571885819203113795256252913272234015597309080359564977390639322605484477014700298728616808391839620964458653709599495861344771567421707315776656936644832508171412854534222686824898459325312619719029659460538113408894924452862007655007516067911588113595354408390252607136511417002244961983110426458621281845950108791539823674943742928399229962776975772575962241992643304321700421298209821050945891179565377931881515055489376665736923268876314861004000692911866020757331110250944610676755647117734577667043585783175863017569864735422136050647783267029036428032520792385000180875928482060396379263795914804488248411283704694824920320306885109289363204072207509569992879263205014791444251777996340145105014584255999930970561541029016727019162469055485330838863913869495018851994924870577151629023482222117852638188418898466671299881924892213480692673840017290620092007836388833303240324357941070088611102353637147090227675992951496024484185421349404767097385189813132331836153887032786944422333756557440512133219831769247782805505928082634375837575954509090124386243475610698323392209449882182785403015612690653528737920320591301697524922846634315741637772404255209352681574360986807630149491525057296081481515707745992192269509093070115143022176751089786966757407966002060775165889668166906471901403908021243794702119360231185498845283157665248508799683516513013075070334445733186841384614553895862693653265967493366624043913656721929370712768974087548307466259252952708565732954468453695771774327079696309122325329022119439780275807019294391215864496030971713483204664015724573610597179086449073868798546179718326074498427644868288183512293964676293304787260468366160301064177579364452207019428940321081958416458726648327464844399987030797745478661387997424968297082139534673779307728314663293162019957721472874966939577047887248672211585291182512684548388897514529027711270326090206684658093532589081086245598760696917928615407987027469704412942551530335674369242291768659779116768466259017850323569190765879104193194100086698102759631819492144218091579219932449632126934073178613024909311150548138332004499785362809447882505005226803573255633538494009792376971508524135301782924855539919995616976527834994360326392965956203978622449954233861234453435408639959305743222607563622501641282849732544490862395688393758023083681483112618551284163787807155845273177546545477367875203805831830018265224800700204595899200330150249070253456567300007790384711763846495242861810791425121999322879329356808626520552136153058601152967686763132092509571043441063818502075586653802364902961027173072416503513529174980357192467370847838858259748412354567732878630110466123827122278644182952995095902524365359652896922938935226100217937324644882719348803803914033230517801115722235698152242675535061513473791743611362207323224004496408066302584880070390649921486721647428918239291684120920951513046030850299343523341387496702531661152968989609451546511316203946487426112146275641591557111384213212921307101318796126828896012912790776992153360310490341478185556457378272228218309741621880753413665088609033690685851501138903861890521626503235767640835081086772558600323687182865916091026450557618206911875370192079464228044679198707347626076007586344085047987656967551438812602254778832700130618294893882965395123657576129529569854372254311740977881378786409410252054043418694816263912760946905238776292440066155785659798540552497489812960951025951408004642689628679265536727897313825876475199931442160643435988392010236660366070964207544583976878205552714547149201579765626181955959070220597438452804617851670519245239773873420888441882247551693228692189659924547981188277788530799270814378052369788942519745231404874599894463683002040966210792088572754397392911493230327913732183754320994326756139973574276961660090241113321132782077862521621001263250964815902695530757558213461569902770968166145275364691793640527826011892115265349135346192454874868747049173425945127327485113276189729825816757315833208297542065803135837892888511764885775283752947537521178266063267801531143205227189215529649529263843188264295601989068011245884407233743171746532854506076567590387695795325815637688221389352188119343831316314060302932074865758592566775428005486988577939959717678801942402295292934468751509190415660677789491447279814304974944495536505477009319235460121049741601017682047763489787778007462133718431103736268654424238632353646939769059065341826665067068528957539565348533677211462905381787525434395726682062222053883062840619015982100060993426501584571453660916925096738444671791106191837925293095601970178607632233217964649828753053197855411768005223761121665314044716342168501643351915556905479102926387130451696359763340675346551332012828766090059613303034922168306464442233900303841890628769614845288741720563910134402515094386924795352377559996542147681936580468780037831823830246372252796170966400342252304082660048701859401406795938780217548504241904626764577260307463330796276971880096829401716881326334840393898193368039081570013929573491709532237924557225853620166070517988912148225507653416830090645452859605817398617045194078792031391794451124428192943009274826505401853902918591719601955481952559502900089572674125958286786328984570681031900557713485084311040432424828221021250516039047053428170386939397618539544466336338292840104695455533658708821545937791306450073056703688602677576606276978616796861223341190999940884863378411774586060163253642522312495901447084155408802594026387130318066553086919808192421408875075646337965960557523977332292656763238131388358119263496416258448858922579755653427770143164109138948924623108004807215893700471322658446725157178058422295646062876777714412726372006600152897933922207876926654050312300523625750319994020750071899771323431077969595447014148911582939007471977807299032640477391784338663528733332169597878409355850310445990887497512209623137543646313991923690405907917425400181921661491056547809464441524212566238910581876854708786369335445554358483873851361140763926882090331047657706956179540912556151806322723136374939284393252876512838758535269703719124812056563136968798912696932992745236324237303829416725335698996587871920424788169887721193698179207735474651187363635077240054397267709645780047959437252985685215142219339850555900468110848261193077309160083950888198018883639103986249437979617079221633935928438074959937364175578800230056880636392604385108369279879898806433254240442551419191086263622606436910905457162110464583857829784911800964935464553230917327398667359555064287697047401544939107825236998811622871975578984745650183466918405758975832183268726290903837270345638112139307340259860294211894793876132244160968665499840879289893631542769349257498020004478975954308663490659843309299446753950878255910882085684456151871061369119960245026731774134646278471248024325809872114180236560131680262166174114434736486125881145936671946704818821108436829762921827299430071553153325235812677973018763170284744838672375727905499212652007169777851477835080012432024746540649004271814316257011239734162997494629849915612217545714533829029354784289981753478058624713229277571688911891489698938610218236026480606776716521113419922179725872786982625971710314046621564838968884376039524406262380931903188986024714810469191244768814834720494989395240239104971306116214617865344615428505881648036385659769516792854524587592784534443085823156334604037638217592304680685535088173720173986716771474123394600986347041574367224566001403213442744956093157422385214707750903310158545793920712888572330365622374052215628885751567949656407240507022051584193240499527914718004338725352433975051247544991573343616312499045094095644358355174907603182920134933887036806343890247598508450101400787455817802636242552304691520238225131790540351020932940763258067079667404561383130495069264245340179906190171638801877290833748231156434934089404324196004340760888640254009961815585243665712471100010261087032217489346683805524686492016191346064942844608009759554566931377601852866428844962773844394149630703904347646767142439202795437733905747176296843190726966009059008054067219198798861541875164216891559548631807447951938905546670657255430717650806028470369419010380915944347969229475491719225397695642194114967625335600362978168797001101234747229884991612227292609979903559472379009857668480210974022941773802242233481535460396022124064022115726253965236428777080132599654102021978575701520600205077409105825963132848234997349510434601031260330908201372058000277626881257165703474926575216036741947550514687869878815993210425561862210001591768155963595724432361771376077834676117013990162132097184776077024987657730403970550691806210015151359803080792334776872462576575868375506967926387086658352165615105317847690033793147303585636008259902960741157678919241358200108763516365886666729626404563983977934591614406022732176759031255438185891838857394256932808593765551486309082334210558285540885308444432975769239729139646298024830770631604410996820876207483957907627055339029393044396549766617580320738209767987262930308605502399660891476765216047048355828603561361514796337027278705381837726258199206615912457318670919900347984296524227402479157604173470352851787494299201132597035557933160487668549194441551278594342633962208814138360349187066025756858633415546034845834070354715800711394893179080357529449926544526699672871467508112246639622439466279753315020037572663375871067708946073608369183153652067593622972929121830937161886060735138444900087197696093960175024520387226409982822578573995271469056159139942129424133570360116665532254642222816326894845749573405002893966744024431116078028444225144997325903195491605406287242900388575981240215370198134216860734233218644007178279525350347030827540752696644040922211022328608400343587573401065635653709984972776630485520542383326506783816524456825816758179943679357837979829543628795986580325569674181017675923980682808730931381712718937848875611737376987751233374627010454707106872909161374346124045355195661860813182105759960676501258509954097261944859620409475805645693920405087112705567368101020300414674297390933975171387647535452189257587414210323561921970932590247901199652743182010504526797396119479137933400099583454436395429154939331328845598536401118397774085924355019927912087660004650396492750442127807068920870536341889307454745943592607420844520243053909233729652994436730096832928965014955084997814918491738264826568772482033291437351637468953461205674678278273984182075848624591878491765489548921563073720096013609058542045612456029464531195040494706616159975274045321280064338001626987205890703355920408792111588675924196753332151042479231205028389094433207273536185289847546577404107383748612220283827133770674456245892197185064080261146911489434739877234231501159916695911714434810056037675675967402955680210708496205963822044196099691342476065585373058644936190143064539734762978708718163791674176300796911848643874384203461368552386440879523426498174235293307678656402316177672764976983951680463223598954465938120929378173843530366955274859100048149355316362615862738333498292669826105467524284954995469255277279914048790450784534734274866578028589547481728853166106059135658157912366946833508172142051151830356466817753357131114496349245667151638482721541160138065825193500800865778879216773421706875576915607736138398602552707561722057795368343136059297764088174329381879942060491636407972139280346537830679741254755861183813838115721436171811546341496163311596728417987853606800092069069458400997040332271148856844868473365210073677547333890300643094683117495314444216386793841688493598145928191231888251157314872282195279019803809115184783608329778210233116371760438469431328142142868911927497965550266454687895539045508096903414384716436400925223265646604433059226256204205721901964155364820385327727583830958428963273424666971777937671222818471846900229514592632689126611264682002338141310904067777484973443961102355328578592931641042477882098939930088077562559590525529312635019818659755653436666118042471632281460760865643771552642483466917718177875505097567471023098049512415566718616878873294681279267188553996749515338532172871974474978740431592807978503944890659627382348067445509986089502895989391383213146088853424565489682444782756311275003047198317552502495790270901615758479813666696285811251614685754709390235535174966048087001819694468263030838208981480045971402112498680972378403406085436474479081240046861315160442046154460156444213036693439356158595180759839953480483547497250559397711773491428789356777419131798044249712142072215442737821357655611140528948757704673537630121312997439189634007874688668794396192000150600891274433375512211981849623279381060322665357193974402307609290615311016997392105865530157741816579254496682209274208448368472320666293876555374022469938225139899026761580257266107397969807106978836595346331850057166564272786068736165899565456979709114366094076163251994916783269031104789116224160524787332398700392784130768715653796774645011817850576649915655561241982102609091467477429529928726785340968561980386464757457473542082748621746432939461388995800763833033774697391937212845425925222198567746884234902874419959993488564968433715809696847833537281339994756745115789033684134689506141830525848196929900255045130836930287589449064424104944043217745261649706473941894483269387257860379831435028617991085910942241253578176443232340887029854734188441625097848268137277643853148808787129781455738036673538192314221794453157963963058873145604726466627823075073630218994872977789193267439404074743485834402555697925330909118765954514842122059862956970051853846290906842059974587732149407587454455424190414207675766124033790136680212216513325339542835937851040242636280193767283306055229652988323140685625960673116089711089086686092432057538904634304369460995181604830025836960488219447538269605482634019614462855669680846512526282211436411185274193386954731739710227576033497862238924175750930839531346511130180454561992781798438617051947886659472540339294225171366195593713631875854809897015604411522312353239523532262264610463553689343460481785358107309590225514295903492091128416345000291019149925742197596186748576886906715608968301282358837626097400444874145307352534888694347048792261547634955592688693174228718605210388036717999647924386141801842765573578515485698541731824844370041632707768103600024242659109457884025106097546812032476100901849989777446766637821261369530439516814494988806493504486681414357259719011975972854919210429997496158712079058920019009173145486029475140311265759717476274533983822771864257259327811178007395993520394803216626418924401513174005736959917309124763202290488426966900899198495426923461007448497053281529527562362526581259003472534646082684370241577270904289240010047208297495892492876965186938318443497757335621048252665898944677761781276914504853689521037873629797685693513706634863116348281142949133895212816931825266057889575677435321379481653607570647705917516324379765751950479866317101174960121341333499867703734420371288853519251300505867797327469986915516247803872726435081558808772440995091007791839478660521592766110107516522036868879730052129686697900962716616838727925492662170182712275518332012310229260611552163326629602161721316229333487187682764257211027390635217871542590867908159874699680770910072395888659483268612604635332692769006769229479826484231992346669250234663254124357755539515886260060772572752640300455013094299670841380639318431072791333687274141271786024554639560615365143351945564851889061194845202502731473984192461663058737284661038577318138805796946398560221892525605712425600899614712411109127566929748138615237522402857835439277519972223475664789012287949547791828904760952086287408173761658915173356217986676480159294669765376560624928721218995168518294957475511008139607673315566646364622651190912797778233206929014256504428473766661073044299443494882608425782540741772690131101965764086771521624654967176463126652909107055964126940568969079268319346629619266265166964888631424169247827564963144267308460783880025579883705210733208939668598755175228649408170378103506411693301945261965801510233346838671323333257254296289509512266628830154624120409422415177943254401935506674885700579819656140444666519479639450554770420665588312722052628584384475436263751032271237855920520793240178186721391469693845636605258217894641113927729055259717384648436404062634114312816466618687900178762628495486803804337681665724842025608487694381892592278021151952250322277191508863947302065134491274382019588310578759335834147648701902953817128733366793260670283596622591573593214784749489848929867125694252780808268104006643045194237005057899540203746823807143731929924996481299368937143965508826403785651248770290428168513962860741290925662235665096607061017671122590499000041270984110652709576855182622260028404886032509513141032174615541138772716168331022707064707969025940333760740888400769620767430605042846390332347245207769806394581482538865763852538797999050780283263877864578752348019033434892505895800648776396098318113535243350797969812180804382786483441746210572242436619815347465054440258590851909576624080335592109284541750723080813404085487463688252329665846606639443135418620673271936873350853190766621415685510989836488960753564641393059883289490927952256984256586409927864962779759877517355150475296735606971449825336362075184192231787115024652773522963253488789279864768803826550828296292160828198849501816810637600198435147751159846869078964882321314119120979263295565385207532525291606305670909594723947877975297683859052779863782670381195739025263658465969114366000410862673977164554468515307988129043826614726974571891999053067742373516736344930813167175256352602055981104063065016069915965989013574902237505123344975685507235136356565110064289789577570742175483885167962373620778567989737998528682205415380844282865098915789091606871289885503367035872724422146060307076289152032626873708019734754871337241647422570530696088043721851602655627176758162815343055139489176987200090170129621876942160932929840549524918092949537289701000567531075835178111769046935950441443490666382588604727010021506540676713588160986715726992800090490966283274190617682413472106722426305770683467734844418712283978110316671583224806417361245913187557495062639502214624332263999471364444407451031082443769939736127902527762844411185241892968329603091305563997285730015246607242099390074526535426128095444452580114445558343510716253893969994648215712424565669618460825679904708960510347808528959606639115120681209394640753733016914517366548081231247561544058668437229497649314980920718106577256475481926473693013473202452267314336056938848857480676839704627632977106570436957458084091119824265923514678023999257770269674703658026795871011465055293158156521955576363512352298110156633560178317616717956071101697731782967854262619168919430019172329457834377570915917451929424706323864036407145056962414087482342987607062690281451737296091591094277771361166028585147277297242556762797005093396350883487462294759975642299290104941736138772512917464955453619130398150979391644819191645600032984560682502975083542143658265851785228361754213032094420012431858786194112448650016041014200642290368965455465758755784287068685883735678702990607612739746315654616591633949978659292951984414433937923555413848298149426161470988633720583713303392825246698585684346017502067581725603093042644137309859270983241431549309627425478422709159269061854378464183258418363995944928503778841196023703558837368195679827822905517106089493294262665916219084031898473725608582586271425451197143623097447441664636536489746328280325478875899087094998026602956447094423115640218168915600830257674677620995694636758921945406952707600405179980280521154853472934196076773938809761075746878434310137593842726975322602689388346744088726879613297640932836350805875703620489033977176776103603784100663877765869728426639691179316017659140633813132713396883254276083391359910506963440937303357757055509528101613648981429088807387708558034878005288387867762875758106502281281681920632256339099461790696604701925429761770378237734074040766298125627412715570418441101408275585007158324580353974223052080186895004651093849692950226230760743699415976665009770901329816704732238338124428729289454700510071611231304560579533024416468508781200635066992521354282005599470954198072003994177839545309643336771038586885051174758712108565601172375349872169650396083168012627185160683060475102490623361028231007456518811892207880540580908084939402099566492942449590696207185106928915741865312727008099016703641781343669765312116626937919916667582844226017570970237054456210305559160127865480974728626495355611021551570623545521171677473661696955870970682828698265617940060938491841299554773895409363542470213943279936754134490165512165210183907043204732052681565714856867385760171769879594177681745341505931329577412027503970277963916773364674606559274280866098143918261707316250470385213090130590860449510666171920063653709923178400210835641889559572678043483368272246080453364095459702527032029356926591820403442106085606699371126409518549466999200452766465109142420996895590890757249660645850695812232414817236332290372834345247474759429295191252404687772023808176705543266838178317713547764114725171548738359353263745024847467675455941106367476938419477477121941248580028567689698693263517609185851724261066827232321519376613478979876626181921686651248503969614079853246132890350422862943555257558409336518499166496593973124904056187157442204998582777666386898161928703628761486892322923696165090429484463421811426740253366994343197259474788679209057363776290645593537420496511314375670618921183416767238410684385978604047716253814305873876543049431469938395745016095505900790043418458064612565083337262613900044769153115388517783971177199943284239414192219130675344004741528349761374031261978088083351109638041036326645130661576442834996716369088707499519873746840286702602059030121019114144060130124666436790235186679496347615936458747888858598180428145215641244489873817874244802063514155216572427652196670032015860012506816418183940923969839590539382032849593834531456107584859330770431526555362993043574573285773938639092563262949895629960480517664095250578785079544295404281655223892673735164193188416087130356576994083230524615449251996077778272375558832910462430102218983437680304695061857956414161887256797549415905860283152547612953388557400342938273179103597238168591748369578834664813332283467863696863891394583680133235121158747240573768438134625985796375689535361859735337736172123092406609449705481328623111265474111261640687101503155757391727754869909117926169645644918927849056365058327477853305289577744399132829163725074501740004158401335681890307076343672513863925697393601973869284928917204672443549476111244322469277590598917563965137918473879849632494748258475381714555749580574680559981342184518858951626156325355301504756108694827960692704194176583469077205182197349361948887812514060718671184462978837531903055848018813162404277415233889884782735655708462071026391763855837861774460128900666899562336814461314379403305598438615994051793363212535461081552463248910351903090063229810047957790129670249297208065837016451764877607665605943143461974670800343557577346895870306773479726693070499294566624308578918510639746908260148957783301659523031401112923698765382734988417870363837719027691075013878554538413825281024688617410856686372821625089342728920473798312042370768962095225513804745671600774270456336112198965921261837692416452223923208046396815041763811361769884096945279421537330388462956359924451705056355523734229040384110943200923516263524111924809712719055829202191747899092016914071111141318958254973044946136239606451071430012848471733457799558174637654699999604760220965173027927256844261658337555220317639102239212538869235637936793834503346610017548016111429632445754476976214776659680062767841786018749669075125601149381746006195788655877519416204481006904584589219064697480595814838715628794379221919031096466782871825121194273508087963564282242187528584995644390343471761348928807573617530034125333743059052868578374631076682271548545707043510398877863910425275477309605957616740155193838994184206674453804559111353759119940514791651223357597809937507797400893886617694193291063707867674479799674376432536698630638793685243442233183587945993163082554249894899614597548416087592109548984996988082690404961352671233838529198456973593992752860550242049473137748874186272501853407623105793982282812094175171169577772136030598914126688338061678135850610667423317635901711979550220983121539754745713201931169871857990198496184870261746866958275246018669547831098665014638621056950387101171901064298376131553123139653378680509867213068389284734927401220649237486462284025387753821036777013943823520476107760176097760836838773126967729804829588450657664024432403327059993373710998523226819587440256339264278687378140382780604372725688487818921286995600152817446283547343654827745188789057334085354589431087901217684612293946672779478678675395573126298226103875767140207092977376656844206471655666043051324822307969251598976565531276460350900382786097849974225102147754877751319610666414881654091604362283153863842232188571198549902417837018001488980628360751635006538255156785383428668400800446664537286910616908298998300667145220231316052610071236286615608478503361491675363012805418973171089652880978627640662604763908811786961930710274818229344310687776233296981427841074816603937840477351320632845228715288553498063014450862394491695779772627789007724629634206551025733703331053065599461507870938036343821652002112484377068314058322355480863806201104696828482026037858496992396750169752530998972960249645609719341120788698213891818009710798613703366437926436479392712405159926091049113919584446323301076792458402973876871932095092785912504672147970585510064264168857301643682565447513478146557980409393071420361238559011116570829607552203116848935677155648607599327064896000171198939565870161181759872757548056338122845906698903479902647756220054791644723550993592334550280266780470494969036111691354297994509865346885573582904809362521008443716317541200454581546457606854763496860911599625114606426946790210279026207427837972753816144103257842991787973079732308808541544643705787853875533991435275471317627084797850065761954790145508458060409360755623629724263374210714100540440048648145392245257212414317874022666433829365760383127036764969340586799936320740100001004701835526752734275710957739012374528296994968093879709452056911141305984557426627814036947508090794783144339394994235705535055491482386282993914551161786339606155160991266863114323882304907302872425932330065957225668637206944982468492410309581241175467319447586148500182226236701769448376603927043751616305638358517978491219566466881261713819200115071912887673978398067360056025150187557272642064826456618120164051942862182217590036938883776922924840876152923311221063552959094924162087524062998181879764881253660732931041754419263614183707438320019304366227091545874794620946471057479628347112268693688116534605815202906229520328587746588634853596754016885565680068582580618999772919760963238926621586147282921937922169451248738444575833053875442178863570313112115390427743572679955359683786382684923481438839121887806988647085067151905208507575056027156466383456706941702730314213043646686885065609555752215643968250924318117363967690316968990969183565992580764434266067038258677980885264276950432195444885950603051458197492021579325451159355034638139607200880704827317135203983476297827970326471922748234936375279302807958820063969880719256203273572277471753889180170844033822040400006415021923114664660977360306471542468927886714817553588066528224840576532111238488561333465264980829455292623869407717573371961776757524523772456113653297418035844321978316370087263526392189489584233402041562292408694520825674270684418007553081315409613262321038777462521104075623306589877390003407332061603426525507858359403854657798445723776120133094584362997795870462462540443617085963552468869727678041254186365167867690279095776217718488728090147919734473880951081218675493054648227633755491145060583482847644031078226834370839609364841870539057146046348190204579820136129618157506364871220537885355891851946493681555754296396051382996180051812351623718507392892212096823078501017904606736848874761085700812277144363248507693185511284343229205339596716543665157793033363182243663347602364661766831773808782286831776122250424006367046756115721542089596631542041725165143208382027335002099004422007859044702342169355660253733086613552186403429338440844615924131048661909295271918381698363133070886780423466857603428384528880821305472581845826262248579546717377101554358699404243275957551678508786357298135379432924795936631108103434926034300760637530709552152098643218718926294791121185627666337959552895436405075434646737895129585126665685156226446412818324891594221719692269199656742730798457764181695249813359018650044001460137657687064052497830675161759435345654399264309490583992905132385291981862680731013920391485769690673061226809615150234483919890497179636089491793740265837679517991958491029840346377941971464351129280451732407896059157983916857298566258913176319441555629776532185938933430282998396760353576768168748356808925307950276239200728222648371155073650384248708262512903650599220081159318881044137356095121648435694180384952630780092660274625020390826834678665150312017012278842447049826804044336199152264682050261986084258995988971786451872560776525029841739008539873775092799988415955718820434716276067113004079899215685473038983256510287549775429267377388637900199990335691371230745946272786505537484562858226720851201740497933442395169266384030422093129351115696903223202268334865174324488993005761358800992760204479366094856095657924355994118304347181866635255451317731847524386155891534278255392445081433367167672400881198717502646987421625241018073218089969293617340703814166909698111259013981161703444662169942538218218346475751008496544312007304636799160471703029276670835875402741040473611687875532888547669170117360515146719458685132213555896208908067911572191237411505844907423683416661861620057909773959170027021317161095517302281206840408961716756397565857383250976361873872990669777177313274995503189208687059000892921618972434288691182611880290965383927929234345771424080674443921973286444880346362716691615803795377779477184308347759183024060725188111634593671256098157890739478183832960697585605389536851505528732125441164384367674173104760269430883872777706609785997034258674385723996816914555171432708599360689699649708330585363712081970241013734132742951057653447811044201733448879711736470641886439998105992848005905560709652405089154213060999997845676208707901980254945355855691603178819313445519375582286870416833097059109314919023422475233911247154550317821408505419433712571373627030726874370431853411555903006660137925744066496867987289913173243827492975061000523825327505565414403066237203280807941087077185013992794612843232855654778111223294458617771620125622026441951533699646051366094076136439612505012259490856522638645342927194967797123684750843907768332903108561959101014163547792517139906508818328169948994338867163858705172540116708150119079840894776673192718327065051643447346451144525221006091934068457272052939712244551905111683002102687017722455406119826990251674172774593516752802492485941369033033797062769662175728482528371160295933247554886440576804603431449437270594713513097523484421944648237639759973388997939301643732829978022591639637422035385895330017360978098236564916212897200329712632106318224277153574842987467246356412799483612245386599658435912061546191161167027305728727118053660491409511180632103934080987474682027342008017669228435534271762709511095086351908148689082119623872975387813278274163671212337352483556092101660124752848959693245794545944552955581878563637668823538375988955022859266806905238113393157046721486239208639806470090643150258118618464006302783721658526487603841449014647539904828886068468473212617345905562808461484961822993068475703518996033069330982418297456538859445627498490897272792849815602953625195069742702992434407330668385191134594165604795976321243479057019189424629142578692150768816085419375448218686038300600243098749605209499927870666174991782036604324654786401916480026157462807981792166749280196709567838154406723587458243252318864586785320274794329630777549564221689862536371679144108387281785812381524792729952168952537257323878857623483230180445182563622361011933377502836457390242445185115111883051349626637455728826811158629475305050320144463997264375405820138338303617171494432700513731264070855430279972011957040077162468030867090748463774751123537136295952490055156215826157786884666823460640983609811143341036726449192405398952843987071653672725109168661990590924384876016364506834806732623584699435912455882413626056078593708217104426580929498396273450743419964347108709492359566241225915376479666752722741570001630972616433543145456472991160918056020423056757768021265065914860911977765830087485515196303987500775585639672189425013773319871647022966682612615646006726102616179392287249057836393638969179269478463314597044079178205938226628992740742106804279525392315341575659545254302525615082071295089372677903016845458636561799550773136523747198879092798598674184520466568671801909384965112088939609764271928985686570686160909300600287683905828680028123929495444102085803708582104822755945893661702334141362382311656111451149224050073661914580028884448086006019499638425633776347795193016884032229271553161280914891668172490890703195400020864600726239588859282974200945692756761302513104218353973350124235943558936969234149751231368790729422029802201899897731859534056537500248351179027778033483392564875991793649341838638331179321264993108239511615470415726950006828923997141483177335867732228258450476368255271985874669753377544878992568112894618008199998568699869662563381947779750958247453372954883977012959925734197842910592675393981491090739963130460687901682802924866743411543464186069600732128983900038156359310748148585083961457982819780882616093530834406759923411452133011237569061241258230277280875916564814094652782271341653256977816317650598560958275185959160681334692479953318393372187623906854829908422061444405939879994642196512036768530967590986303098583030082168238816905129563604940741219959140745690535235132322941266811850870412731935887473437189126038809643337397024394563063661010561121891139000456347525648925103848598351004772439744421931761453571167639062750047378831348517627888226390346645188188897115434592709123520019001966683617931825958415268481628435735820317392167426278304597442088442902653049458267801620572165878463901582978788983216594324500872422511441544394325657160116028044254712316546042882593859874212872375032987715147193950068473944410541242622478655301802472219779908059720053596607969026404039394424899294922062443335232396969080228861231483353775447145839742686003672913008248137706654596235539091170429532086303428676423678798330861222328627769277729009687574263161782795908014726507452297923489370553030793237451455820791777383920575352991333337609812417010214881450548248881167693083368039079908211952920562126908203856047171097843469528740861627830050001278926168019953494713524567799883090124937469489281638362000008072886428327148613876088999843701454937303230341233364274287737625289595557594038385302165762382547725669626054495193563970458150343631650907484132585117209654161861454530317729188725958060141364566177499565605436361791736033509485313104655206230561869300130304525485013706457787626896524803291301558002788915139259986468751756518932567265083513500059736196792016920467546084908902922221534823814619078756794328736678329382828359444754101536881467965630065336906056382308942133397016304092488027740497907943338370228863443216481000731123879041851445569538796546159623118868097036099665755853323643266660763683072540749965668797163247467007646420003477582418924287935559340964862589726443232840992795717640674000691233076660242798686876282823901249729514730928416634082710106058867125451108782095213361039821731368358914428215183258627245575747697027418872149832100875539459909869689453435336797910696330765839823637165247803942489085753157411255235093854074365687142621425684708001145876244389587706541586537077412885252482965900026797576771871375509479501090877213575452588588945960289656599154370003099575822180202220852940416987533273970194229095905864765613415925630232636326412993010193955700238401749455458972206682481075853390335132344345074732975444565852860817304014136330865940961014369184764048035249861157534796721789363760294020631946299644583492525965784027294466234763830290240289353155437831577427423341999898952420127624286895673443416476808952697617053095909218443113378078771187487615746672239170051977614252212212457545796085547714082490008916469111886667041695394437752333303226399128086784849936096101775473299100304547814212616219398346757467514712754318451800754479566481764405791307945157045033224356049432860534912923116437967701765647836032265398747893339114444188436620648769296820060580970369835393495397813181500403520202257237189582977005733012165436164598682284468656444585365114550205249842240140631929181370695401869487040454561802921050020759914497445558689978298408519560915070348758203578543529161586928609427113323801263468793375142799341862995872169170942271214389216840983501112783968216036532564831445326378981770575071104867727256970327094203319944247919572855263577944899663364338459184424730967460835222504845428356159551994625986653233559034315323387617374350558167775113581208015780044751992251352037406537434743060283765307799985869905931159618523273425469884896561387324419795055881512691712189395270613698285770403089866721964367631281275950353949460428471520833241303954326138032457839950762561750007418949796151166898908259529957392099747591762746192899368489867391072570657984780388855098308634000349173793983830955079619716091447364279781523806581330361531875069895204200061818131339697258561422528850081619292099906511499053828453373773524176668693756288625218726578062815889221587540214844031208344395499675971014665363461482346945329949972831791037963309846460789694620886662792639562213467064129206919261954651334071583929072428661284102352898466632652728749844722111687817337026442526515472938690307950525662243933690343560476168635746430166392106224633175274229098800773132640143754214513133948425206579602625449790524495595593790613398439159151319516713138810792470670424663787577779072732585273709294223739955508880509207251500748738754490739861598522552903882075459371106939088716497935442746984374176909385364316956529532718647656133860008050068365632551945509546673675659675093144064404905758341259583403903156987194604892493104291308687261170390909361050289088402904153007899865455059603893351988398947237675763016425479142837747238957603136898828162997363055440560438654655590355425545740008054939083136287838215026550254977712235438679893431474458843301533246841799347149680725439820698235341038525746827985796491859744458151426760659063933448201272303881024031801384897252684522488425404324297732002318712294934816556847056008367817842583563532395349938244266169134547334739878089179384812317183678339873243549377744717848567515006132144110583432100708198891908471256146189768946976164889718818929177587680882924689651552629324936695129199833780585916166743720611977622043936296693312879380445960243965086294203034114373600123678565908556585953974465269257652105528470970110340347402868927471454753176118367644456502237340689999591448335208402310731912139943761276120996034893000679869