PREME/G/MU738011
019102708701676106565179189840040460335401420004803333877496351474764776631389582001680744921409287071950327044473136080552694414414342135617000252474583850035053216320914222703287413645526780629621285231373694258208211418201077580334712527046012058192675068182677383808215124769441583009666005492609329285978431326675816002114021777866766648325896325390712180476097193583171615849100516009452523610103850754302891080632531580878291690378082499206104895734047331200461492460454813513384889315260309583342023773955652863921595992864064237394602302580896789231251135669705904318222358830183544666724480213074372617641936905845872957625133544944496784734486512398124374866898692123986672799991758988303667558636565629583270351645662935266212281977951867722757714704951601109653220557136575463239644047485521301176288138564053320128201794556620647251513935486846410728992691006122106544277935531441835268833091133752712062771076337455857829025055180351303354496818724609662685351783364623338481636701848830182119135178014068193463220046655889639989533077785708463336340147484095957527455802549479415417474909958552946540146267085437840473814314065757268845949651337330741846202619998927662679614309655041989974828633275748988695047286163386484653820661120100815828841377278688256461703681981964751879019433210228615832792548298176706768531732987649043775459150979590134356616320410022298697568758327839590897261124261154664300275367507387064282683996444199178353604568404231455195620366828691457876833330976704931683431335777050601120761708999882836779166455405115607296574845211766498612223262561365803468881235087454762755951196754975846231180559885441006708260741951655563784489566268010099507344899299359757343973652112608895993485933708369925141804326400386145919005472192735917470093727710098896153791407085751476807785227026098191141775568367334734817647698321675934630699635523665661156761474194762085403355783075022266185190551061050346102335276454258009387848801386645962993139373741376962466495220241090495518274620414220377810158645496529064389132642736814150382431609580963392106360879079589213640843538154677422389645343686955601880328887139408328860056458096302292550882537877418343296993474650802060459217867954468935185245306324492247147974726108486519246416979884535213555880040704312633893007557002033526249751589914131051360682358843709640790770198682295905952719961093814203823379355114967188990138783201739811937082879305850452691239828407031423640027916989267878043770333585880852157262340456307514209797051007056278894260445466411940342910230976230562219275100039129817579104937001414553508063234362658969098825552953279691013267771263768888233260958738072314724482041401174152018141381535053711870368250227465607915456581064523045133413775108913691231064540490165485954154287353766134922091758799896380337284376925522874923517011637596639648942612909067652798439247611177910575413389738235053928035286014782113089093042685997698584755011616751420245875086088527737808286512479282115062919739742038081795020424345048805821879252845104074177786954689458522300234463247131989047880986480000271724075870400080387484535724476119925801208016253429929442181399279406919088189231092065767587330385443160692803964305018890136765639986027814488605000455997022588362872160601765054216811019340133259946645188850771995328144858507101823682139947030248047290064523868634814871047374982682174349691512369633503968987738027935082268519795234274564253261265165241525979350335208842876313127415610826021902335511690704561098670278933961985582145857460759058032581216478761096945873113330205684690991923581990598853775567408096478628319178849117096828201128807278068453303482781917736696023515203350095693912095178208865701852656831565349968323060283058627784486392558874364518661186457776419644672953922733081845877318527964207492197579248700160745392527462883493369722510256389661065687053533262485690966121164538415164618483425951416011321204333225440861146803296273136341624180278027744792763642855332161277537661069400560586487406462393141360704120545496536982732816574207554851701046093517007375677124227389848614164121160778046885625906877062155430240389072377188359552440177206274290155178779304685822485146667284440454881293156808225769571380579848176116094549778734621138666629692400752731720132830337423587449204892799970864246417255005371362304240147455823672844374521430231568655109857857650319986881919281182879293067495614089179885811419924387943128286201955843024412756069446136857157514030926776653300574348036939831622339750477883699710723939344645201151748220584600011573541261845868434317619871221032379073478767159581557763327975443551232900715949609587600063796854634679117523958106433832908004348537916007395877366299361812292290580598189657388567018153077672423926680582487195706294072899888754131759420663162245603366134669900239005112435497772249335378493082885539708913146947778327685004887387983981024694081769621669356433435066021724647799982661888361473228320389634970919300891851929280215890833225884355154986636077853537888792215788297760888944046975190011797037510191885134095795864844808147249409794831289302130434763011785651995781432666314672301231302235940621869358151195128955236627271565205553955095752524534199937362109616010389806620396063814287820423471545052810463498029003716464911093474093728173967386140766551399062271301788740905139221728647050711137266390093373524931730619427434632720188634132708096070343021966627533412586159132881898294627381138279638316168366066070578375098636292994600307803707936917145916800797461773196332620682574717234855703875352272893160757493915514106273197643244558749109410638685319645790128192564445425761413422387810390564306336140768319518390613060072894849890286942627071237669643858529417338363930256983990416586699435115586809224735885214029693557098702136537253611471170212272978584913935557946181460736693263806670982827216287039118362445335640053644131298079182949361307964938634687512475699870012922457435447693217466629738003254410087294193642426533864644706723146932253772284615301433614076245320125514380478454794499074348159895167484339288471639547924447537347963065105257095032536562166119318746358024303348333618401258279537173952109982371669929229888285315140673135698386890913164382478864467466292021972924340969659788055795233629722460586866714715698985306292234431293032107348046111054023244515362832624620758178204601439977390105137509999910391075294642334910563543376213758938122733880828971689578984542288831111749050119424327657774170505467922551912835143084284655567804242263315593545498032732996401563491347465189602454325066649481099023856399289330820521288848691152287819131608562788505806470459943379490558886418465922841789075137975183741840609822815096073570580707176124037677840904010933542992302752430662815170513133873691949811278420497026508807431258827253946604091397086230755134388424059109646685977186894294673548515031333737587887478496100376086853301680765490804065524494892650666695093321740570897057843772186216870089659665077668058148460060155277876441073602514650175102274948513114777384215922082370220154273330924730713686291863917406287183218242322905862377452380013325758933908891268483288182835213048857578217394852967035597172042487997139256122268692708630355453676908161788217193174906577287175596863875395836981696548662842835234133352652468507636526047528737454694750288388936162062064328587887625148911072207590808572685505252732323330177750089413626987109579101728915285377596688177318329426774340445766479676333704386344905565167115560265015074083940963199209197158662149601445660954803973019864983109824037008047017785073827655625414800315119465005193267973551303774562706995738123414073806151986217216143797488454933290358167942992231588966406566982653630837995879060307749853587197613595296441871056442138085710171135046995348066594617804007174801841895714209961861374381227033962336715909785385110116584203213805079141749618701047640154539382879317860854829469720556849884657315360649986104807249049545221645841138504736201892086925191436155601459936848831773579401625459434541192308325858648034025505509904398041186382364203660362378520222580622770505026418693557020182195484970933055039682947716094586102063658252765135960857786407688237269371285909469977969081959944161791637506578935804486545721866267933273397933150890762424138708934148669234324403708122874707942318195398858072370473189398991421773993513425628069053755466330176548629259745296120202255820226873121606669765905362232394108074188690525527853145550390662621456577632619167849536711550042060264075480451921965219291197196410148452304600806442383109300848024076165883489472580678156330981310720004744755998811648000916312522715535558488127729918287037768520647117847977132156989647963183853815361844836601337817945742312585135445022729109848912945149108185995070659642995478297926273676253589522335134413948745654474738786680334449738278394728867659636323885209122314114795321041301600180384647196770418357581969875342055957997818890178083577303116356637966596349247849526026849086111503434036174324683444701049449631578685836244007202401351188414281983156748437234993099502771616536232374714637648542012353312693236956308990276679650617976231351083687567781790135016012546623567449945817291959867195391234499957980343589573855863026633432825538948865344292031415767272107048575697190586535693551435941112388811224255250128902900410941180391550401435504788401376283277944115350940426967229867389928381137083304118379182780160457443438208070450602337642913956258593272526801786113099135645911673339771279278020421772929161417019451524282901213423192486750600543573198443967581284240106121974320694579623273580981799068506519111879278609631762376056486465719760945904917681469876684754901167924627463391524614381727900796225507116367434510707367386481598722110922684268322395268741233197900382959003641225550923944420230690430133526767850983593319276801858473938135148936207414508870152647426671154568877802774573360687898325166618927798094907635870494041554847509609239022018052650433364966028199079777390539866792337800091519230851837699853217278982670565883732511457958302070361104485339141823583212522297356368003389172161471277260872379640015837030937513336607206161644089011893278896604509555271745502854261400761276128797727909886545679882824596071472840370525929988359928181779819110940243898739805600706858042352106398783774867328611761063594048733070568068850834404838098478091086374923528835267304416227954014962263788185674427714234519733290742601841434691604217265985356916043649186265647770955171677293614569493517042484687349747127401365436649580753101229716749902127928097139321835553487584304117279039262904096772825162912667158233357186394637112203326838992576245646624831872163238146538950083461186853958942798159993338506609900119152279443353479753291168634592194993561533070318937563194244706991087692472038033812109440856905146240397188838349426691154470294755148158502094352903436268702082494115127569531400201328055537973539276385291752302845909553690897708232348957699745910525760151168031003191808541159933646942688073751370679046690185403078792600132500487710833855240717067953242468458962949102223434760129804459651993709525424557031789492642950878302872311908929850334034102295190782198442891899354319246788820003784063449941302081244190716552590281454753388018952642301308756453473773080360342221889960283487218356658963784533544802977108028840322457691383463892820956849967831838919489757691403860550255311954146141710840999249309931669499957137136568878121683401294637692672933253093123781487598704563068871237732052127023552570009295971581757148981347461056820409985470906843324891898631621307823900205676399232557097042488013143728095141506492525814665167052914504756295118739349648216867695155237106989609012639146261596053725980045658619338064900601981638084967338305366010582190015125879209134647941525737021766447094683139459084568677159410289216425655148515243170110356766172508165389946866973166217062193869126046874944633594564149253190050558476501544518089502200020281162714794032542271112425817515175829084656370508677817276682714273817199270122257752746297086995549666189778262570299383622801779030319696851524233715129583181593690505526776061420517914115016513528357983117795958459494670952292434841615552687020665158097382681707600617696591638935874520549300953676083747006997776862019021525812772860390060980798130598556684556103145236034298440160196043814111775387216144230258017212117484136171198067562566935769716801701668790503718702967822263256732198555971027366527693503842930343454422939558076821329570590581140379475805659715197598872247704179984530113140807959520365171618906246095835780551738325714314186564087681658885831306947436156004782431428222345357161541023628127527283069498561580122770381762101337633649901966489399897823213314082611206681467911938622828644255678678823459912133646130296514555390732134749672780586254980661813250002487408908355421597599248929080118647109759569553655154088463328804420418149080649169603642607330344107301432381766365818619782353727947342011950636947982869441908356302146053311393279072530818841623130987818773819196500997967639884795299211863226210385829879735560444123222144396693243849458518109392233312568074486655791983763503848281227949700712900891678170378413697205747666597657453265368682036881202167226205358821121167151354765945332578817059487972748145638829696044498836979838307292678372417257412184407422787012629053545429980799346184755019934428978952431906268468979286468927988588939497892895489274452952447454435478035159609321699118592536423193981630881628356903694374677584452466712284392846349324545843835185102494013577868327901660209192998563382103953874716019692542999551654589413315540546084307103972738953753615856890333319600212247190394503741184734171742173001317753517140303218294979208071709697016093851509439276119010531754435002079160519904250320556959256748889087791519761440957435442513000592940177283112452570789736124529667441102149585986682179510828946742988362679873511428922746398811722270101650396056566902953660652081020774381588974129534939567284411145536701940379253746186550586051905333776967198709210842342334398995176685587869480377159565831095521432255073561890247160331870840592582375298403354038176420418414390581111226857711091926770239132040732338832503318854359054872600822339293219601742443898164067415067623408146742136238991526255600412397674459622529134935638782560749186085937350592231268904240738587248431628251154296139131652744194641742810352965371384576844401745518970785614608881276246362055330269852701363757408358126209103808787207407735700767764517958674940722272468213828655858529709700791597925595281346362825915427025381125693959327861461279721086463269483855782592401777709645520711877472683199985778214537912677746483735692736563129324016153344473419947486647376063728641555842205140427862463470151791756658549390047882728060875012294255291422178630008964898687427651810285796873902639707251271177612822948604265233669236144499246779170109203835549839658730474466490276049613146257761562577382239474427553594279924034903086925220672601751200412443711962006276178230705465182595856166051049247328226695284723114947572930785710494100567940368456404598034133516066179458266334999834608453181389477519404817645091777556101650823226183710404775179183819581159988844742194952171375130871933725868171752980045723707859603984091900059721492554727559650716763681870266582014132782947616158578208754014353957551985184830912942966606602757692854547476745810438557409522332050352644764313001836718134947676346167825872214104698850229405635900833921053058952282785485503009423820443406858755243043840821697675241634542673489435591336675471871312420381244395208392933637530326316676292972871683464945024659042047765289942492605869919318406967129982513940990387327270413359027573388745948313727835276767615986509771438286908300836210010786579479379108541289223827771756432773810895362395486718174083472712177863246433399401630261374681820693566976706423548472914584567398639298633369795409113746791480750382069920799373534503913044771676154826280224218098121905634961246547819451692884490399970527850081144227017181794503872579635246092955423975493650637955476405332059046838330571669658041602500336344140008935424648791290854422839102114010441376787010124351825563900393418562046905051338934984326645816277045307779744687795373753578808939578190185174358201323827536338015473424400285472511236949692030909037724357764958058047970181029619848199434438209433605263855359670906187171548651266903287006783114177535867150529325226148450142899243565387403826463702426308135124292684641433621649309975441543171607905956675158734318321819093992066072530074570419281192598795555184337271666572756959908708726048721475568824367335340343827248806691270743927895575760613398815407641796627836367315171219748023311728485073879571087313689424215703029081377314223712935984880554317361687562445935602361412493957582818196468191092767003682461690571534701566980664311067040013171427235162653575101027209731254805398806859683169083730977442006538764318542301775875929132829551609311150115387328055399932167262886786931960194288687477221204794983331837658397651236152051005209290167808505419377302092719589741479925381191166194453999084267671393723823974172653226329103417478894204915720519412365150906194103645625983849687373298932016169410034712233920927894661306886826608999451502422564184107498024753742653962546829282232472577601553793318395537989950908846555388118134545766969779575258998462852321033305813250985153338766786563844740268687837119323323283445040102648164005841742613834091936083527666474292716336854909000701296566260629220776480938437150781804556304073321376379743879511622395966424931335409886568518844997007504394379771461863009607949760130773547301331735770682913700701907216218580000068594824638278956949166018353991497818641856884558526422249381072995649643649967458663115930554137371895572299647683198817909435195738233924978101547251278263779554740139545500863139358901896077199892590177760901631046091922021566520631178550363564966418509307654795597253249228948482900552236580575588235351040100694412793345793041856213255497256273392868179941457488428632107993237953549383381046703673240341178114701755643194429226241390654303144480669139719969841154971650713843065578180941326971897406293781508237471964978640988469899059485388134300776945642410118013342174517776762115374895409703202364642758408516847677621245364546461060227599106721401385929123542797658983438919333360944785686716413794914782766651471538342379270772587306077218962051333209129018982974281850726686896131531838750487558069982310642870454470539092616142733289064777155054749921685177189764416596581640635602846560718387018360004048292292239713817109955958911221561839049354222994491919686731486836249875681829487584665974243302002555277115453795449375673688502311988698622002773378516304304613569589605586649147629690104372830330720585144180477280715692425723226405595688955188924594715093402389706208504246397657742840269917782650405368837885040588017533055097267255021997884709094023450863749208144217743456984750247346734461173627456255051154224253592110570817161177957766803418341582100959006241908899378312013946987121408599565763032609738100510752183552265647337840187153159980131069737973033350927612675565132206942810414332562339810152782529201940298389043134741684810545007070352765893619788171654659398028566441227687999265987273575169242676094195294415737327649427602468558504100916812482013341320998108840072838576732805999325339828834534309592172498354298702005746573368577170825433910750815493565099862316970639265626891523737217499222565394606476840588819571954520876019639055763056516141998935183579545754309098082885491291052545658921789714636254721414954832473189083232870472980417066754108569648101458629055424110122643172271489933608787941391815133840205994000228716148476786399139008017495741619855556465653124698779042130771042818796644297969899837754620227646804515074244242702809757314242775511417126934055144375393999671803287927902647883914598424119725377033385181000263869048096935763242232590308113111244807784216800615175467199857648689150383729634095378275011132840861330984709881039414570441809832226981274988852191327889652691713357260530178594887687475683755597256718032696904773198950329428331335785800319533096611597038313780530529289031721618455137159639613484206454967811563010927049248291785356268659130645804505415954179398474825542673926954750953133765482060575239629125927905154211713100216752281942867739498298594001606281015260246355531948265872236013350239429060558038369443387242298344514815306163425855876994615625734437393032145822384304872160640947800520663037359580520422322975309813607884069089255996272293400599554454212730376861092844817935946023892737768838515476732111326455475023302877327565180339491507508015168833725512718945710013859077927678675330828585666654317334805769354031648471127761894511506061275196779800452098363294298473355408154999222585932969309731521908207942995485514530888703473637325077091067338687783120303868582897252395694401086798999095066816649345563402360085609358977774882480417610780191410797785474830661508644214873541769974050256867201047327746675665523959320886287116908928885925649102725710307488560453559698478215679187902278026019528788920362631000293638014695656472192861740447059375623446752953344906156314998896059574264866894910946356197890194767151886807415646252001347914370596123697027989030065710437616594653214285852951043861643592678572034539697980067479845265411652331029784039758805521380690819430117589532534523060153189773489126095584130256627527620065703847375697439522662044932703746593896348079698911552259651546356092929767717435931895307364616129703819161468999455705683200932478073800451306764049625478704909080017169929811970782041499540260400751310751098131658394259467270752580514449051187685757292089266974138379788029623649571482347036715355922453427760509350228809909385900697021304026402990690860461968803312404157641178529856544477959550329736227716964033913824510079216802556213576249615702505402589711031477960622100310392806291173619730239396285646167563437549146889873634280011632223963814636494142320694945448411167271681893208486028622773643222408770852812773005457818389071418110012713979971645779793918312180918484307887151998709540321944831926507224202331305317403766032513783267532233472534944506067019728076315425293862000389867886079434279960445660946691948653480329552949005148121343662080387319241400789695905018948689546620385748317929370329675826308723735737093312998517589733453518998958841124391394628098300031624951827196791106767019127931409376893780061716459727301204555453995658703450087730879872841341398947248360872528721969241714707474785837046916557259628842283766381584610339501857791741275520273124156716271888230909203296614936817267234831876097694941319636284873170867376800190269236783362899653588204196161041332312632024100763343032922418828274488023346608115770794214802452916193534986442587477133192200239148930906855147192410553773937895289760875328035143932114092013775577988004185319978468792650779665245594302563503832190198456827807901066195052865661262753380465056866630712231621425118455494131982434016248887260011938965446539495927736992551938801223290158677653897416900531754144106136870574563814066897952589775481232171272739936159119462844980121098514200081633155569710942871248401538166707234699844100345723170626105683367441949143625678830945009126060691197467214292994693636502072648013416469635974576133022222071869538018826500574549024626210152250583177608392538776206928467672994009224453014283712325077373669387055886672542565381194078798691215563581962321387024525087251847075023300253266801923811168418327179234713698761368775513533428537468412194444517759159154559304992898262264526291719825057575600929553050482252216867023163927307340528978002564763806015764125884808683213897220040056563505180618982341011743684523800770417229311361671703166789084633035800790779973185464344472752906669164392204759063596215937037109155651263635801112184477907037243427778187941251999518267737382861923034166701428055949569109334096842626106752275133657462552850342825966624906771568159395722614828401051145642625385387844104838317929302345786217922157708917978451668535717774623679429332117684683892329975870628182066423495624998853314068114423593529328872576997214549534169928092658334519616255539782328029377716436370131594852437773408323066788260991808267669128714561652234448205666148029784666085768000830319876107717021195048660224768212098855039728786146984463858177467814387711671441572282627320029375073568824692664091073290656670427108448253448722678428565236144294779241168716826895346008560309474684448221340213751483856164573961700032304991661497731805757646550412610016606581696834363823414904141607881305589412918870052607537198290269489429166614008351574223065463345090054143341609549064634550274901028447052290526020404643357780114151985752790185263886563022982036792825696282509791887048463135383896731425824618820963011836570010904809028976931804064761293322438895044947840188881436484730981300639238592291213849553764050032784056825360926143672795710833526462671651333987300505763682492706492936265662026591460576301402277468954365836707179549318796095637763692410654253356015097638517241529996201740670462590918324010105232063527100193776990845680225921824382705837884719185824895344128156730654162673379466665969748595371853222163184859321721272350351139916717599983222175185071050514160328782900817390264721392564562042182947917191555439691014245650683396864707850721321443474919819299215605772266914268468163035951080032064922562955387547044928604801328860616863223926799254741895969652455034407162002985092337944806561391248150425839927599915534205287220552703014894816716375680886141436328345610484788389702254733505012703243949445443790828570020896456637968053868149451160386562226776915563561202037487452552180016836750231397629489901505220508334823040496241969657628025229595582989061042616295689426064566055192672184969283273632065835173802223959304252882577502875072449665617229777132347448881718345644614489474699732573001353947883298817086316583036430091593584194510302108028917293202797376697090926352325618247493773851124735961850046223873860945102967279342394176584946068948493943049465157583394018553780489508318685553358224091747526354560457378888960687175387365189920854316699771577767964804848626943975923955593123378051575028313391634616802627533119593598221360628010689056999726404875957499549128186904097393264158997126344966009266568022380679065362189697493126201174341573554760634828597240789560395001414110573001254001237373551576238192066755667994778445738105070060006256981689636734421994684041446886911003999877514825195124547215353205464407894737393861639033813727730388055537436462187128256617564147889965471487223471390702637339159828231983264324972446171827976862961640047528382128149249031459644015717890063858456436853200730003430030930226454318252747404106588837005456161058009972604745629535495782867812200566616909895400460800569874099579958949163835074888893484853816338871955026714407905919419765807769732425875600793670466641486076343404436394412315190265359909372126105054084807964327876224737156124100265895100735585588513026119945055015946316045049436076240948809490069905716006657910002045867261499278411898255252772029086554255961153908920295489993821739766634972284962506238708306788705294435722804915127476854981370706656307502774902326756498234267404086478971284749898519228836478635915173004007297398216245490238899239931909026753059347926254352794801025648202355477477740201468498644349819028902007107326514703114151607110012583103135376667221485958596033764381432553269230176950117514297820477924097578671483097907893149336808306115324018384643944820114621328888055346736027948500080194141423069950872216184203530471634383229760465282292971457076450717779883210532190707890361549222655323005838352801522859116258950397328231449600924292247375919424871908890211135866931750899213533705616203333173702441206592267239019981868991379383087656099902781290819869382454538302496047712731610177146118991207151549506842681664750695688225243198198773890563305418865559458044380542114963102340247761663880541886109676904196652853246118987588202583653637183320766650555522440965443659623231673480135342442101996786573788227473823593631020351769055906901008908814446542618296069987928225984920461613682517590097843103841645720326223323846647446696649293096109221306887472066844724591624556060364791345180426155473169075614098238877109793967320866306950086825388807947784406016141140440974836950309530500319542238980946524847092582543993607653581828135672289705574220693630885690156053500504912473742806602414224239287657029512442811916615566989665596969644946251081484617214188408518033345563856416627193246429201903512960075966515978669434562987881810469730032879914326864085743255145157058115475860189872496760776806995510435764177125861318390762774745866140938120523715223024608970356301387578202744384577846258798426200830673863297956548457000689259477823027891731418946254947290293706525725953632449303236541249300513674910846454075198690775292337327810997102233247581510064964742961466352944418541732663648738978932077453947433547011415513820418216145220629203688968850231182051517901337157704817130450401683343103262477559654112029692266645343883311213019448101506711909532742139976832445601274090300511462794054417384027202529840534828823182990665926053609408393269678835477275609204178739960172817564227844031808714826255300727110633310321936548780043170894555728678014267385117272798599445758403321518613762252729947056146284545446900561276814875354902870013761917179550722643345775566061204639512217991014564694001337098951711151150033275793978415822356616312253234806385336454887712036251909577784317404023799341276309218050606831222870583295447936006932751578404150542540031744348694895953654773444703991286680777702739566448158421325086404797834594549421877256447080862264985101431600158871309909100672422724010002472414477724416723378213127915148161257724078145836860895961760579520258307368636334549345845319939467867228444336142719740168339033089538569095485147437624682814515880115188855974507328826892185334793832617693782644981336660354865934121323808653951724954805138129092420562501794818877465067971876766936589227745678750170304154108404695331914194359675177083954850107318722922422494710884926094403547602558432330678791695082936507936405592453561608564257029761238379670178971981046788762132443960253696504809051272362838875944113668882714344721954381641398352020016406585541907607220522642394219157152537271602945064404118906114553845105310887539903867158440322960217090762602873206083716459774286647030205941326889705339522715696379008672896667875150341179542348551188358076626968168135739313264890903849549122477891062529726278938761818925218986371281619620922695106284703382500327997344916902877541147377274229357460395204234266694079958652223528405934125960752052278278752309303653406083903775698223057865614838972312560050961188185099528388176500459345786446890630716192255888092825916181299185669042504356609246108217269944725551759665753882743262263033925569229165051256571386232277778020474796323139766978501832280904189434495738939549166352483414844224269714424435385056859947440396107654883497230327867536345876526858043685503971927316255992965856638328163726904027524864462522220883648326967870940729120735095585697138215722720071484874921542899071194944883388507046050428086674572194994037352864756624024451734742402345971453566133990291640080639204375162829192405544270551109759272686224432448129918078133251754587327790565920578927974425830767831264053242293216067884303854668882025045590704381936078534638686856652523518271084962664139335783847566189000833034391402022586941988518709785339385916183895813947383181642802518269348952534944764211860724992955060655853327536267568934543679103353610494695497902210808854984704587454669515260953751544078475556813598882645698707745893283779550895094252161240091411348210559147695579880862982361564661918963153750976211975044891275445697814800736670359056497131640086206187401809772089017737383703233905211754704769965607133787946575768816465918593052463054255484052828703412731097030425206996758108512962446491990441601336817987019729407421555780202811187356724462208868165326850962708449694593974951433951949556648008840290605557407598292774428136074938460440952622474391969649526291299504512927074142600745239751300212744275499388458917830720557754574274522082250931462129846895945974458260277781136270105867830791283172196411294616038880604774794681040591011919200840990480199625522168167942721716924579379391983709230200437464527490882601624862502177342500764166464952867946032318477103288395731834124115064921386002743237083283111813373756448672603327348444489905889866616569993634707939996201225397559877097143585805580945888050872706157778877678991161015573253482168034246591592051445562330012486265647973101662214432426184847476803292819173856392005636416531143071248268733495394178221053199279871676067109613714688360960474419019183851526443165249658384477753782760375278356588674197448499396867284706677694070720513912281592778895371791798536352792850151478562663842140498990984970354343806533832028716466181956974492615052927944894757955601180823676353446113787093745160066922373055515644653960630226175523649731755073794778492902428603471748860237574411705186913667706169526119387044213293356702886550164880358028115490667293042978485321877895375775439556815544292204605242762877230249060306226679635202119141557513573941611277849724253318287770342964573431730869647053170354134333360601918143829186768508476574616405183003478716449252223395417427614491605469590161114674422899805143938177880548963960341677628369706129490200807249064538528485748050631305867446418781257683189791120016325036877166696104979922339318170510640584643446608416221142951895792592609933051240633562928356563603020498576212811664165116934899163020488934035573034190247591648222393707800591367351230076033230403070219213968968947177568569204588849072659871947243786215689222781561679926087537923604362472345499123601340052851532805986543819459683530849858935326182366484508691644732231471746812801743868490676216803092771434960756828519833185434668156426180231681696312371581406727076095748654921712933137503537984672547259374752403193740947925293260666804893588963212122489316702773206055814118113687272087471743952775271695606687663013809973035005336848472624661995692843963433325177095879283757111903961448440782662495661141858793232532388890810958330142771072185292784996386771997951394934158491438926401848762063828022396258954029379939464462236494466884403084588601024358651110044519273447545730031967587172328813067321891729026014556086550587156143659350399809579319940343759492832804008354085539324959696190050011974133779408089013394183544868706256729931196023162120223647841053431828702340325388219791321372267671866657771327447296649850503882559989072678560555470216000360975538889619992762739440771962952362119783638135380123322950578235344499275069118270333598794482171083753987635125412993361077820133983168368967273415342537980917644074764642155046820743675667818805590674868185812647011360549333732423245934406863630674658284615986824060792532210813338787113030757257023095490121336036610911393192108943081478671404422052348894117394416075138696461439817933321591225975973618962394532667686665077697150942480935374603210527100423655691368860172026663809065949874192803893856309954447482722182768700838120800895923340129754630003291711673897165169707759514033249272699364508828265909557988486624348666227703115349714780084151715057180390220411494767968371583049211632613303178466662745600578846642267473428506005867142504693232624811450710504081682195580814463737011235502610040244114995319485723661867844657211339867132054020796503952735688695464192735653414593981471263392237257256062189453460217409603250425571646211306314742908473147414414387418106407643436426079950179687052356678035892829124236782625182515431763820749175061870123165591268743728880668981745190748662743949823272631324004797289694724064052885069869895690075157403829544779603692449554330110537513616329606147338175023600794252363482474125821713727521218716266482568245645302778285308153117360227589095322027410972564330508419025440394358917128624902065196922826167235948691059089975369273836541053129297383495432098198668482629182061741481808312362276978029109862099731495135313953385487775224882640027276379152447308790774268010788467999020211279761567267628367370607048402458234736183600070397549022716039754625390322363039990466079660846112287015150704366011078822957399975892215544005034208386124182501347936675676556779486938036316675390108889339966460353230957236949558133302992054601646047532311538343707977361837380849978465826100541163362952805950746336637088605123108335269193247601267829316426628767503325971582976373956005150505918412120979806061373639540606294261300694537007335021459928077583716104589399663585442670350825541084595156738531286832352481332387845115644309408571154056526800027737806277205309375511835451932183175998671357720404210446675992112589950527976216720515181768706787978530405459102336280149995715892267192696218501865226563358038814925347238279838260984775315341618137656213966113213478015095001627790457086725329270918076822640416670598674753236337470851241863211360327813410424561147808025481354280871999496112958094108114755362680788843443268753718398513590437755351325085099925697281882796746889028531107955735513229687639380448587959576934016847434285334252704029085541666443917364756601120499613223643751504297691595706639113234719060881612987532787856721247588047450731141346449980504812863140082446115970650739573977990243737626802897450765696669050529627178338430425117481890019030059515534773512586639679612631864901640690700332095882638829769332684078069869510005446615535113047176441416410549955513041818358213504273091329384708956422603780175778137389080665984805145035032019373255052995237419154607585738727586635868576013299734156338520034481643187726294449781622876016304718496357129269216445178921543572051072769159928451367639267984485893898853965044543389608225086129162032466242790962517800908839563238970090200309463637059268845012578987751532486295022582256337349769613995208552800581153105766067733448838934392727468902653595222392191098525979457988392023798949471429813618806947890127561321787391739016339689178539116878666954128493805258683441767135461102344897407701252356728194866542643947688084843192862605073428238194355772897826774617488209560011507571420475971920776951595552784148370449079613245750256363136120160900505684202662736161134456880037922011849217021729277780568869797743107820119111848689108548240164634527580261173583661340066611974601256544590064651319099926420534317246963240670756932470524606702986573305378446413529709542394776138890789152789266832980913301252835300712471301250407350166823023474954463074670464453187283921999847216990997208650677003792902551492525983574071807274732642763270064624298056051833050937574796563009751541396416681697670386918548622037777160201606605420766081722275143958702555886282758786068914962889695740031050107881778952058757123529382971624574058270278233677399370551767271696584303562498310216490803600622514192556463384207856434062629872167448289367287638668952288259229560602816483680817133190722884573489496201598842811432099656144496856631107963245202773055474048802000441412031802582964723090994646069159870820226214669666813309541889853177990006367537841405427116684471969376102053299732870366568477158774267103737394934752925025355267920119578746808496892710215630813765788621465944745736439007344631248042381819850061743261442918813586876263146241479972834773674621538729462267261649083505286350883859387596373113345135572835134079274634375687225243981652677497408027714926680313716890236689001215418030597832014061280887723421260765159345250665853665959071429850417752030996915144332207670028917641376646085466009127098214307947643928092493842134662222424257124288290427956954021254505428318514860100973471029805366713735104216432065931532732682013772974982872484251679008467292399395641567847157511625566960611348987615957224841843989732633166529787188905548506483301904162163204453097712429344743617381260737141992953030870654308953957678408495509611139867631858373135106063684095490067994414127636793707193515232403189038432551087268985624747441061926967708627208535707782621579319780467670532367398465056969145598666481131932216433438413105593816927009987503146513296390761187032124314873569010340944158573192448762434391882861897991114914036195117157619546190455738453782483285428737536470748808407958444613670222991458501892385242140999712779688688806335652405347659610713898251584821077254238683119280510250167220871077951252996683882413925310754278024215867751602340726599230094452440889589831525252531821728030545020531643220855899763685614102599772509642604244868524914167627715366398964037569239703405841934335730821394794811770377121840265333808770942266041591053606877644287620557323755526534461241844057277143958736473995057974893467126804080545681484804247104726510900667904213853563169580500798981999150605864607632918783526577366449582169784840991833916780396539632513191826258179542234389475129375251747105238535091986317729522607145285498438482481646206718914536776991656430981007878703433919197061596574458972316911592184758458601505999922048329201887252995310379596225584948025852455232085803666827072304289783895899560074101822082447665118468652834200919819427169134940211436243042351418463486437860490560482620659647246561915095172734599459650087336840470809905159597486450703117027737754400185213196444264559766020752902923766917162502455881069248031683453336825663182996391785643880679172618560257690447389732465587063843616873354878938465507797216616699652904160399370722166599716951655440693550627159047732377856305628792121597094231208432933541527423941763785090080528496637408281446085583181036500205223302357107639693762475189180550271572423316634059094891875211879097587832805079925933195680691557849988167465051701842395885797916598177814368651554537011587766692892349631957785621021346123681037084526005357255207745400211053961920021379356738048240937001763013783437559368602563274277592375347032448570939215422799102015146018301379083201551257449175370816615530391966371440179016340341938781177268026840210388924844667519060606838309383279271558426198980376416541094409781631415034759597996864313906025249924043908951597884940356695835677189031475866768095737086758751417726585897549865774126072277166270763095818430090941407980898176751134479594742389526821114593203715534002861653696409124428122051288835721318457835564837362856789157895403166385017203164515747351733354848553430471558200468022075024026547057085703724796223177800505681171434888788723098903274616031414071842057092360801553711947153744788520625870097930058003146837520697907485206767662157661906395886087723482233695246961921348410468230488989244025984462747756033055508931347853326883110981317113754360979370646189820722145151600580852410141688605590806495618984788404166668121986097123471500706323055198394164929579954623025305338628843520207657537010180794862677071291168382329029171667719475042579808727929723896509907617565626896882115815577219309392444786479572836182590453792826058224120809645093643429970517867613987971410124303542598027057492880213940933535792010009738256239467200256802082577930189508339336103432085331271375854473748896054764869494976701399009476134381057779133977587792630063193403604301039644157518961423908111126632041358039947034673143711140933023761333789324434958354323898233738627968104877115776729141197759086776509931338088135893855015280861269411352761311341091234433566143091438052351169152533340030388484927454055784954984985518272085781105488215960505939130257566096522546244795006066746228039765382146462751623779735666616859783442078156296901010346948193713502552998219534933562623467013064330685711363345603499102367570608766726428519435776824536123336450263992272419586909535944753550838521582757552564069103370242168202355479700609226010883994942499766409340799228532217327179475307842311194387863011320187170088501705130633927272167599220215454057653167114644266821684253994730864717247336305846989075193313248132691008946158587943228935050745632309167281071952497527660319904337271732173728285244902338994631919666553785472768717399471977342879837201954535819666552552660557662285384862394576365789999463352797691035156288957324554560501539859532960983049667889989386675154818459750516354870376908144079514932196736890292226338440280897350557767481042264232120474384598090858732758936881536624845107766045969152514664818867607942300621764203152065227973092711517265595781770379080831256150845857648767020655899004581586812239084557402432822249189269436158538468491267716848983149911687131976824232107596241807830386870721340666062674342002399753202345078264326625779218595486545677675992691526200104824510784943391412986908666187719284114756423309777622781409828151505683073804066898097033259102214273388524404368596196790495790759852799183825734008470625546152089532996733887222983997346805633313595866341049553991494174005161053091176863507198991003537331007597561829212274243556329864005741133723044166632141478391145600115098635655533978594618958732439550581951975860830821869191606335272682242458059574043500329983277635737354870272313017604931089696096592508279324049184414207483737584516633664412645138017763772249638664249826537030864561357004000235892075181373280118308717773028347925791652012185625965404387821877120924457358241748005391491844119543512313642223159936509304686533693050056840004016255334240475795462383255307633567430931955433338615080102164747452018897344834748422532830556110119787699290411980859815674456575361115134129046917907555240620833296703962311232146836728215799444525726014133418232536826404743175290372831416557699901424115699646461712745886792844238535870413206527893027147095581445064568689245582953126759716675546809899003328269490933932260497327656353864314881224730298541456280565638747918147727648628151746627023290334217481880415898977905573606071209769044986607681119355679407663601441401960007890664743236444923910916403011697512240026618724077797796433375303825803025221932322328317542814805813082422481905395072101405277037066945924112987117254335515127639128998411261979473679747296472042528900500461963551441556385285580576192827434334276921551388925812000035126049733791430467819101965077430438561898833949998121101801967605248814433473360089877342930209841059297967563498437697471011186374364562663434529695962698387325321987369313399369593374322176817711692974822424050303180099139984248458439630877615156724702499962738202835371496165006653585126884748344245525590814185160954266352245119031027819638524620066039489919612352848304718542874238696220202474308115904102088850287079282725435355116199851403793767275136156322770583722224882413089994940651781995772559563422758938785980557558406389091061406601502691390559728449350675807505843340964316782858308669839165250109498548180733377369930595418672592267700327753547293228581707146730979010190700978362867683004291428845929253839653455253553274259909203669126128465427129654367002792491892246309330957922545073072617778782523919779073680767871775893916951919032107816893055888568605736937364136610514824574419471269732459777653965667494882009277331727645733880353440950398524958657095042218738122926334899879153437195459664941016837234375286695755288903950273068803466406825824480170083973205906754685291597386909226659909262868272704703847195018239711625695063357686800304588690624333659344778563682476485009730383226734767499124508265880322289471271349661696885709442427011991147467351828128449141012503521128130579481542208265610952208534988045308250246384492219434682008665839402495678323751010887080977603037093365017352829118751473751885063333938136120996352802408247280414651823451829951890620267148646627306384481341775621533724348977942454476493914449218714853929452695229451950149817358067761515038719475270683355269253541029758461810845200584306401815923695509902748153495506231498222976200886232672233343014034165833984724797604598290570144445240089089060882578870593526327585826672498994249074015984327059924996667517256197865656237112757989144760771299671784717012075119670794730730541666407478626464493312008541782564229571209885956946480583957463441242816016890512506507993519183127137167920815572010258438932129075672409131816163774950041143100784024455714926685455125976051715295669034978340074536122918346760834878953369744857228980412985370416458640265195319271471986943258105377115158347510647267157881061633168086705645971171517574127671678507507225789571713737610996757393236809391362739286763155632790092918281594629666069814464845805958563799647335033416958741443087635355778198624991314731476322816393844563421892468180309689255870893950100913183710084367808863643587339317612247627317163438977195372252487335114250927088788351776084319717539567475837878124957835030779298323313523325579406190889233632701373856944579954614490756882190456868820115477223261144184467543455432880869668449857122636130850876381288700290150772179723616305164920037246335035684744579449676278221325800136259774242332030001155986821879294803899399176970346988301955354244922272488889012115985270630127647345777177857475063270480274264778826905829625527690979909060342064428697941920078934983046028972526590434377298073253253555905622232648094158507161659924547970104944394631479446919164607154466497469353418775224261895186194436955223440296819927978729152599965815543546536346332349224952982575119230398208141801989725279262614188998407833220835733393599163236838780116852310455979719863016022402580495618675769252588663211752774477795389790230725291582847791722129186673270107481569122026556376742448271929644914364311521327638336521566092087813876000000333009818334546867183040175374233483694488129836574143255254779824560804582689545965311862864913942819672858006539658319766677729599868920084023802394353724505397012186260102602402642045910026965909686462710076271559237108066553800424377886365262237499546550008971885448201892965435764678352753161887752313615805768011911398983505513469109126701015216794106865683821229662089364917341308693539992884574611507558226709814531425107701192604247710026032044733888997300022373912044503742764012703054026626499608566732376402482728715676078585534759180256875458967491384407922721834027880492361121567540766411345193333803765278427172026879030011717598028464081433416327942603623873812114505471043421896346314187134988408025494152834853906163100463559165608980267780164485230473688173826989141943360722381597309439777068383745342763742426077573164619021534204776378787898311296626174800975489902183477214387713951542420064349828964264857544627244846468562469543520944013448428172691313173496667876238115958983784876843121800649999882471438274884218631215573529841653902921638837201155898629449682949218224956771076400325739930817601783911386161995100682495382160763943655112730992647740313902241155725299064787097084481081258662043916486343546456278535868727144712381105100183544841471800015361526061246655521271079461648074197193313896494442587500597794458431328120824560250387823295803536019726418001315948602826945212232810496568796133792790897776953285783948332722704992263121556246274024721631620000330572207731184596511816892417888362849260792776401958422680469917165950231816579881074983507082652296656289860482069128065735938882779484998856219712388031526289594153744022986581290570323036651203057602682133297544647453394728428978956384986091187640802170858369173322579276049328467785657569698658561963543128389938861380673034125317593804883218341302981221467283870914578112483497686018137988058412684518344908464056908189189487109419413823473637972666808839256006538678668903940535831656992341683016447300225683273820163999913776463112633268043067765776457429387346170169916510534337655676694083213181914640209154967853210994727416889442469113579316270249205590473373101144128624128928322718346872183753277105795473883492222782793831465786768467963822839586484799587522878382800538487667957816476158965734594793085534595922772037096478892677864717271786120594510364389979890315629981061624622336160223841374413729539627714252057634235108398535008282098772835140796556647695441651050945953900953801686706295239082379049850884331827803429793028231283787941695090075907636744222881518949685797214634303952517822782070949345141901212199112741914562484011494005873130204264721062008027243247184796620398330663359408041453286229727313794354188788715661482086994024604902594208305294897913971039667190863157870518956372552585242380220588906659006991064617416061858102272468344897882836279603151366884944260397287716477916493439638661920327753130563342315149783100225266793371826910415554372830974197149110845227725335688020170331259560872102782076558531103199414453584068335608649266747670755905518465066370937615901805284825249427476398036920256435969771901537232553560564254284374424736995793469146730753160700274355705523966289662816626961460431280633642394555175682681088143984876035441891737764043111985591008733057956773138533207215140668728764654095429816069647172023113355674961187727435039299060213376003320988218466591968762649150403462360567686570390539819173328586640715987499773594529889079975476150855291255066979154818058847394456688533844980574642275150086265919015141045521384162910057029807644608067815635790268346899735609271077015360216113002696224255884290617338231334528932886691851016218220057715607320828462441715836900437149760955350923984681371543496768998983543691450633926103639725775636534126132539840528424256115897701709538982588789657450354620273401288822273880704206397084706893102864926620596195744081448199067197064935888882153423955432551671607879068159057340665488810332737682995667502028096656667669983597821051225660403257304574378407775672277658182139531152378081210427171535028275196784489060481486571950613804725125520805369226678385379004636208832275764472599629270477590490999766273111745148639117133658366800194602306831762720050776570548335405827971816100869474838713903101345684049799592780446975366734039278788682698067400100771308812031859037509102794689916198111588694410088424972584831470799891129604778094956817690441501842582498688549654104264011147869329185318613777641429046494652964816193630717731775414252734746157266760300693617675536391670717089997110698538807927321368262186965652162823969214801701056545342751488569537005267892089088667608180920500417358293734181331564419655447583170929516818007687958146118417635911432995819424513557547540231315037656680530310791390229851613846837987491407274974223079504071131716218145325049232658269578896182814892928256757760934206693938319538432342945093152318349198707987769897606387158419122222210410633663022287835755023489473861731294086489662936160929897388573781865686351809415004409073613598004268935666342961680606841855514307056468823420617760648440891893147301285005929508194669493683380164877943276286427268302739918824731143724506428758358746393211919813302410545169006207826928541217970575689867213277101506538996890894508979055151530606411424995545573366196844744424771823427575980150322256090787567620768886559980163522537912961440391541598561500220053906484112177636353670176148863726247249764936779097073772249293525638046363845035795213224851633755307490327415007447357061378889150740283136154888970370346103127431195978040393170654558316644467513643083026172742115817701460645586895332609168966287549789914550191181657295961893105128413873521610713695593852931746832149375184119905920503240463619837034249129527629940868050337855906102137618162135697477813852027621595127151313957685835424948133710988586381525670897458098306395050955644525505043972120356447177702793825579651597303218588146376344553068346895742540289778221257192350947781747109108988057967242121291069644307467947979262495430530525416543972345867883844184852914340564028646736021420293296002110138787741581639653918517289486959669706949174834133147467401889052434725167180643058592680296732193669762645259103903809060376617082167788053249179996642290981668262356447415889784958210019290977091690081259334110240594745781980352059223710780602427128303089378357028598329832005781226037234373909999013850470275036165350507496319487915082517661469744121721813792658101473705270366460209024249731976882274639930583169953934179397673872563215945021967686312457787491991815217804534391356304968066654758874755011006509786675977692384120236817339835490201375895553343176843338375943850171768614034553539416465571141753852210185878019324235549436832018882591843369930066975923224200376830611218248621234939546470058353732235054753990069043346776628822908916370596282036580321098709325356911091438875427060498189143388425261142571161464081436333180446653639774667303014220474039795687617413101035392819648922303992584084998863489960261902470219438840389855202144270020899274290823514637448398897656247080694054677288065302801367762641303752947371281577603233845344173208920234219592933655128210005877261132148190664340498012147973142205451135788205708088830137264354519083655805574375749588009172467825170054814558047695036049553755144975977419090765785133358785705796994677476345584388250902476160778544006855155151724350408099477895811485439261448428816295961594171000987852225939307688331677482419949067434953055356487608297169683447139039244288286016824835435151257923224453296700200419092408837062819717158422594217342899875469837284260701527847188048147474796768272245024053315305026762737124329490861308947920665426505611555094765914818586117946903447356476582475285226884970148935465995260381472289795415062795986105307383867552693786233813138768865301474955546257430716656051974531599142889915614419694641906913779451622597089328594465764423622737394355228897965144618693162972369626700609532126841664626603880592382142081928914922832763421460940224506763608472201328410816179876015664897009943289100186917134922247724955871062850968768521790378908103462256579611904051761135669913977902969976939633366011373136285197073860947892505425962051682608903521702432460225522122250912078221259679574747619126804882780007254717013801425028559760059424705189964792657585640804491591049562097636427966036183121826429939310340433725191717258991441968016768600624516252506770535176429520765882328920079677538734193904002435643454327126809246686227829074278027444619413530801527252022770031492917410797635264975232171173131206991184643050178073674732825124339318141738939677264169309769480226561554778323329058200801195929121781950965368848465145093288222828635700284748759000478117884932749399602993730359156738583303375684713139781479548208503278931276131818267605657719996384526436301118294998097197492865693362058914303336082445068448008220287041299472494466705431783937826121486770372598038344614209475731784122669091958875449485400500128350355699655687928526539036443827962586979145058482451851438449966972264182473193574232070794829843778329541998383818855186682106452833120841144737226566163545309897538589148039141509043210320534076900224842075007936677089742155669484838897598548798204933807478287767096048934851953940249474901053751811618289090899090187319202510849879537593832766475126184777818664188387380693832812377059833401030636088509804298555448933030332446694736904892619089183853745250362652267946122124622435239629129012212537217369600606907466021173137834834882028493760817974066029660871105799028078315176195682441989030031923068871808409876433980382672433676429432837941903688780983735044049948761827258477049788792249633959811115254903045837079268060930928903433235599215651642297132596314377302739227065873651557019087211927336171802220913789212036306019929310250980965087646279724010920460392544153878208494077053703090982230965419354168021842449793178690718089986688177893609713431441802146703521417755398221786899354366713533633611487999511409253932933520148704658595860448142650117174139109021746752922030379156876382719534947358234074984495126415249099105299307435864676800193544261899516563881180224003608687112247006096877203267510042572980441798629506183931628998373991757872463843583690334722838402313237973820538318224997565840301668045163765675174023591333056062073191360167738478812053182489115016377888195976081038759990969723132063587562007220490690168185535702933425163255787678458975819738336166959565993527662768242227720422191470686855374283890962446691497878843335323216577687635537181733670219561873524212814493684121987942912488968098268914638892174341565913270673072955070867500790954247365860082595193105160461440768892424526671692626986027196579169891146499458769031286752683749179319646466868228403113710555529079702599315875545155893147191507044044792912754120981156119539385950841489092526601612938795345934326941207185729655606944195967622351649006012494656895462599975581565477228532350493382376692358606097816740777529523801372752164006794490267857080543784047684199131932396123009654697153684549295162382476810638177732344923690995774476483170131957306405381006348212091085298713650894545266233575924814215395736697187861717563513489390342051648922470435391707511275506615922820787883356723037059378693772537811252842734946449023136957094105481518004064684239059245935443207083215348058956393371614720180696125531302661249331838551989021681500545748623756707421102167887626386645362285136611879522801229184118045512437461859211086072053081790883315174822646315613722474404251476052998991294540303639230465254371957812403295789871420904758330104419127424595137030301030500829860147677187027740825284019138704417893796288820268020933424878737281899403365538104648516020251394709520877409029248725861948489101113795494478413589709954399293001794942172731776644457218182929787131495401628065901287275005425364205173913531175337842503429381993980704119387292302763834737386281202654820416203007976164350347769594720582947649517983032939872169999395338721485107975075362854285476442723305113098068167844098078531589443390284333019853003075931057689691934798827481428335693813024909344871541990107989897333254578690632287185128835531756018537521391324904427026391030779296876629197638824750673899749617515345437928339423643038830331588010514435450144881113234646325886959429108155733150217210478180163635641053120524061314346344488581691978232407540918533441322841180722371992095613801816824343060329370291620555709684653911384126539567360945499987518142857875568028358949290673321034272983328820014610072815241936893275872604616968105224631590824344758114950171521621610362385386597185968835748233412418037906537535298332829259749091902020159087459405810003233480990282471107780829761800434558101274647959473663466623399763756972997695221005557678198874533117544324646746380941601828147230368760556780461519635277873442399373111130067447368574453666171890403141529413508817796704629152012289503740422544905158436766825958559232966433506440536718693991379119609116917795339955982842969895283736928296004180817384894842689862229305896428983643315394072071206521120622587330380143565988008643496114882156816201259131996014121146431545407854004979367278874075232849444250947817738043375063394303597572915084235324189906432416833225388048822442042982365667475566057079408135970228309866980615217320287590125656935131461037267839921934841817179874268424484305839588684676424593873606341888766082308522242122495309666194958324790442427671380858951384783794210929122306087538326875060195457255896014919245102137098003627186481390805241489385725951436501988014641246640589194994211425735102863102283548362669423257523925256308850203802925899952040481129737219259762801165436662417320254519871360361016465832475917008441949092340891414556224696570667961883273672109709861770847437038353556250876081382696108574857565138938817763472631285354585367785029357546928523637072191279883003228408244954936947907315712025242980168307024116335233066217876127502526287254176556311145240855807990046101537433879163421913547564358750066272273028734465636351276994699107920005107438375858015148364299133432139278957258334040258898464649725429451925647111847960255802583506119405893324014861776369912047577507657812130653613627621399962874345683884979244463288665166725077146926379016860982897193914501134769126821800163706095656132026584886065501631888349912553487830287685199792727798977454991917720802643971953097733133337770807428274398159564348355236118920747678192880413966307273619278980405812268967984370417132692546135070703041811014334277906249218355577458318489138846329620763474827252937769348208967921945904344206760261310008360116318917192834295286092893126727589059062988021246368818272366473116969085804979604609850084914203129874913759220980024213577979662445184023755382013731317535052208207017416654611634051116826775058872560518710562002824527515319195746379440635184345123417575692599240144192614369554889416521714943460165166193484509530437356938255115916572536868192902613629302398491376425444598574382661769822881006971508151874688108515353653382908011882483747310864350582596425359184396843638764432125074626878234757143717321687612278254539330656848350037875128584442060511642172100271722109176872160290853300521545321894785611594996783889449064435049756012952525056728956920180105269801225618230665036209623465014719207527522293404429856795498143603233016127905308517704193849520767624404054142250285364489214296273580849647112906770005244554658449216262585212687806793730695047706134141922033375944153513830702130279330505137352168046923151491915807674483661213535038610491551955294035551006153648222100084108451141679190994302430706799364197452816236827734966722889118815917374917222255846313417541972850417273873499204626997838193049245927427039433925994454360407458822914964899675422878027778200962924447052789093001632163954104400124969175961068587038195596175389991060419391770550859330005598033962561292702805967919926860391240986892497993464362546880116743748026421393654040707945044190873486866071793373666434543138213676222026131118414358575501471044282053443900361580582881433851485462509329933221347170556314599502411196095297676463579808508770787205625248282815145619632112624954397836386610254851161395122938393130885806713649675481866155952356700135479917967126889263162158998385088175529168860510159768279240327417715573275601897859383487478995543277554727829802426894887582040235206578745177790622896874304630893505824051737707989729610868984483104490224492457973878407425936164848627146230936498997185570580413107507348518972300186385250669389732666797466828115730335478771314747255921751332054779772766998128112000967786869693927074085122107052464882726689720849613257621181474609964199202490420961856829393118719941137961699719764831846481535569463490499521762140685145777436564553732530639118589635354784854157051265044550440472562388806939419734711206181438548446921644571933424176150139174815603213882734699543042550153689193840336148192854554407145419225897656742401696949130709478011416084702579250069526811988424323630957457960062599881780709400013361113288653951855683806410795062717093983005235031755219457542926355481438567722513865408089703284678061082016692825676528284018640020516521338480825133084100433379241753849271586760685538862787886900866042288192043375565636110474851083322655639454880437610193723555185089719277123053488673607970143153873835698351743711594716570107366115062030933208635996495586298668120780534399955924870062083103421202527884280242848906777485271761919254294551029697746038683247319061280544552107854824942352582263797369003349347922688093455246616179292764007068379657005087904045008166677217144919987730050459364236006547570913572176037985931449327610865766156594663378755330540856502828032992401258123795454771409745687322058208944810423850184611658650851900716326285669613195201168714604324925258887378033767783446874880834801963989646710942862474949491015216328368487658981765724561121858619521275313184701627949673973914148975913859126393156380863303801028420633695085485051857277598630097953586383375923214023276834648702147324413665483022403145776120903613762841271917103049421694667417621291190081412978278475836010337704247051555935150093839923818219364952277067111933771740668527176579056116139296023296279944238523763159060808047016508666216674127876771224308995563837471858019956900232004774513329709745207759652142658334524905648624695846628148166451467789249347860546277735596969010222186680781938154399809317698430727803731264699413092078593309146576645152127787829227303863505753756288496956334916325799268345957173514896767479091488302608997969690844706130997010305734816322264139044627410680701675092588877845546364654198104924957843137177931891009538695587841862843375196097882065498326379537179861487372660048915749204947580351421732407269960861292812428899009468900436945398988403150262976972348574019651015993610089492009193793355454855541613177010211396503715331857427458653980303506668403170002354783523285280941665357658961517656472102738297936146262386823289013846612346773842309721594207994669408103546946647147576939851704480351680893154860679163822911753054289891412127298986551566233579897952546610797313950636097618188414437288824663591070935732072394596042511696108544460284009142694347800102229224300710539161052341501983649982124157560805796760767400121983381370412776118759505779841082603376496100812600323169250851582847529347755110005689069835441221513042424944624042806455430583029196972326518557386617510918098180470721790970662872951223161634000053566821928908883989935774499718046826133699071353942874380732309254163297184695265183980476985569954654838359043029393224645199157252756303199505302228672933192835125758875780504553434908492875002100919926286772145863758093612952268947076506606283540575196676091862207377758844339827110835666478486991729730074898903706902614681614875057880414410355419275515590053594551884911459438470501798426356447933358482708575794654415602059584938841887744142778644833877512242791757349815879271744017538582558069666542486481946684202688554734832060077385311761498649791500410137789467964684755524376521989401109836708750605987399501458388211933963034796529570687727359623623338613128525036080980637754426725924188278851573005098243222547438733104519758969040053968474890950583016213089452161882225470659580174987768262456756335697958165709871050156273687667003222834898793941946980819976274821335579804743169307921512020522744173455620244358878917957557847948306096109745343691273484929884655797081060768744867803056515333628977188229039401570486756245484247863750488400980459361991780132181783044021860105668126193803171004042887217551662386560676659480407040209846359759120351267317574293789575395226144062850018056455252157799252005548172024989921012805004756381399309132254023166226037405330398260523395534560691666747516972202651978703244502396180721645404773153614053239914393094978100355001870574349669320196691977428120808288431069240248984172500646843298743415872249934281695754357987414455383059455771011521690134878307238124172036259431379984019193172843913329958753909534470485435442684998410955832471753237990601790633048790625226008034671349850528708941153188397122315600308758403822897382846445236374229445964527931180551974146409476864285899702522961319446744362997663176115190972588132246442739333006737209300640802178467500056217540959788735332583452015931117057654464550462684962311874587359625975012283029321675753776901824390635056216608114584580586373595928142770356005208162726688673140542453326595395782381402577242585591766113594657786886709134521196395626160280470712276932373482497733705542139428267232583128226068808707576094043971773848699820359736089634755031245308694218909998124854099538179610677525050914970617708164501787938211557790098060497787990939893098615002083795136027314606921329722503949251303995467760299730036489874836796622084904781031062764252968044410031845883383347417459675908582047081839245047184492860628644590243720263839614656809755287157463600847188868621082787210308613461117150576298517687853238963009630917069344695699977134148158483858903211870975598473835088490816564124007802007772624008316308108937529277061485809459663020245680554587623447664088761334265713071439114404051595857810154234623417152348637148160324940943996559311162010682035039548469851285288432409211738732102828578800306204447061163179686150875069871765268834441658701386744331802844877742344949733756999430786405296828356402698545541548555305000733329149361418157149792284832972329957087534561827441921501435799075628314242506432792702132835569337569402012239932079859686273767923762278331777938282480175032364305638200334171176224316794203837557792171172061803552849294255356868240609049939076185258912757509677568149384040345790276774209758569343601664779541739595561739458127222617471874373943812057289013110846860869760669859521966573881823413840801700073632461507940907213345770703216660692435680715292490548349371343094620729485749305797503430621114962867819192784517069758204125611276484972917747519825305539118729916831006746420144853678083709612394023958847736935759446387661620332037440788156870166795982681901940367258804173630191194078958648326650518887671909977926676936817851506580806918634721769505663452122513481862439316797220695466580079612638055435800677272290082014110364363516392166953310487528253552349937932431634605104149741172684522168243312176534727859231725697918712582573878326001919517614142524206833633012496064701746208175806976930594130927019362561302056288921769200862754115280069373038505499274600734557545027372285895773294776589189021369902551848441391965245470961604068501036001284493398195096516376003995822844998986052102660479545488474564178771664094251658904855766631909756265010896191791337874843077734728610213758678669691224567666960432415477959157046242152944710743506396845173453732094065911853672452421790595618718733416097292407027572795236355989467152857916075466008967307594390563536035824350505005696345401062128133750364562276180847016939199129363927230729356662217703272359206079958285442369122881363136274811123333877229904321387210967516148716490429107788480213802383026878639833799238082072033505890135991672386420509671345984091749850461743667148688052400641325240574874841298720623932956077626240047293802214666677158462019425198495401093219592614649262225400994573646477892550642407850915417212322688724304950397670519390932522362977145043554034711481645759050686424042254304396235759840206109656095162266757312249478962140922972813172264431667418315837627232847072041380186417616693652283894012005416571242102315784140235632934915888904772278888211417733689909173685490539339386779356961356778201756812148956759471935605558281114125052775733601123016562904518581259185084740901662894896705793198698242233382158340193813706220122185660309617819523256448226371123226206579431993062564634719686756689974176492747650559614010853843902807880556782080129904813820275706108121448970444239338862472848800037866705269936474698426407623519363180803108000790773759666951597617109589756679513836396689904993499508113794492214695563398611998483827702387238368565935203970641941905955595263377138345404537596056386469406293264661296035912436355703566746011798171695598779656536860759550446015056154522508577749409072366727457150184725939993854001507792748687643974990650265488504450038985749107498412041109370995145353522623585632050844734606492906391791499250458265911107266763755857338109069621231442226900439622630044655880650533570895921041156508015996294769723754745584110086168822530255155115370237524994579201104388158866864473736028563926628475080777105389397998770571526230869569044851935999988456141859295329928525887692049994559068098902037923437708301178991801427899373797265205437490206011235054328099617479003593980643156509239657358187623867046205570000513976754926163255960959608121764835754398831290091540225704760375814686866415835474500029506817502816476437225800217919963196339174043924057165303937861778764468089617936068405822700800373123815931014867707382273029349925535628140178739031647650898916991931161187109777917306519745573714005527973388657624952710074417878338177113279039722121204763813021138284702448632445880130497030216319199664121028432191077996245840730616618267404096763012041149810146337508679975849890191843569400361912950372172477077187435985855057503634169128482741059531405858866213164865976674753655830757365150804407954195970674501606655145954041476459724546852386328722656621639431214567878255772084502373209238224266182444606184345622751451003772211444927835926990251686056882532324476816576629749716423373388558965795821565239263080675959996805976412803801893929728143432883487986312957124817718510325691106630838755549849722878311476012734719019011625344553367387817229437580087713919532914932158144454384954750758896194276921444820416179587907499389311227001165208620039788194628341653933910477231574297174385496922632810974291504600673482877408506546984868751188258083802695564872493910081857717595740616001912036452966826545522225015435040917581968467141841105769323367234546099927837731226810416329258466045839183183580418242834407718361008720008240544672795418545681558484708446370470430865614772596349293974765960444347667835972942266460461136713570649650542771906127515065357236381563260966775268221037394069700898144778045686028427502432455932684350610515154924775703284422272465910334604987155155949318291796610767254739372504337560488252763032565302311911400642656203410314399812431852143665729076990752873468274275462568062809953184586121344039774898519063619251467514114673715152286096560332967744723770997514609352515043729944566181793406381727257055925481852054031417264609486164674140039324834645104548492497358833767279514229125737686583198837164611124815782534710385168260250048556578286860580067162903626391330722257914960028707508703386541674962145467541795785050772612288375901836113319616980622971365284942494966556897136141652290257835001103858053602526118677760568952604002376536941949102212409688025137820360283722412455343575455847265072132936427307606220652008389598821404800874816555970866191369596436969506200184809099858544454003632534807768977837549738474236598821540423513625325860650223084868529511234070238718480891666760086141032443672509033061285535538267093036907251621241313428984711763943255929093100348918388114380964030006952337064803037167834107036761471432510578693308994115037027647018846370604316711393782970111549102010349669629026076898811888973533793674549180600879665307745188348586093649676214530827487304405841075718068054482118061693941777597000088862014528756376477172815097323797296184869887561363571119902295426540708245372874695495503865805267631061362344294007208785954342953108002317622958406691127676997001534508473458914257088837272470897682111002531654382370864470736683079197555307299134048977222825189456657086442454286782878028685826704720776882215383243963935966107319239189702203509887416887800157469324004310050876301571475390345355291158100928438977220492051695256941739196027113886615018388464449619940139860472340712583803664104620851669250319756305608050682007266605263019959510883437819369444299267012507890349837594104914314171948540265235449783349397117393121505469368621667492841657861036647121383915751024526851580685267457513186946644316057382502873149021667495679629384344183174597519234741497314345220243127722087396265312034614006136130170881689200560398570602327520047527949981060638536654874275131845745565032444040798220131273452031323328525537229881221738394603091665061365137452146360730234409089784254822592097250549539083607322808570070788186131061890870396546687827937768905949437959927383180790708493646786010600177823719100667190469240713293783585213029445902085227239529577083958238059233446398268597536403966757647320347644790112812249302694162975124109066016038912015909991980632104706488408040706337748190348603490370308525678874690097673751258159133910360146817642450064744306376832281059453248195618864982071971130215259159767515618908181862147810175501944678081113047785282928851087268059316874885919442789596334841319818352622712605626943680335583985071352838229725202672146017464930910156284709515818558217227548645948156147650791448557454142431470457452032139198654556472824658302192234470396525350634871295103068350268364273233883862146828611406112745132899704724087918801744378867207080346387739790454304228384874651820426886967987723307747020997147404166255884747243504523777988285377312092156899124306793902884015257206586871116876114688863156302440186288054257609909183385974567895967418408839022093098042642072123321041509724263751043182496462067110142495590149903785302000511918732326242458613927693565173855200976939558355297736443490180085790662256628138392054771079163036835625255136331927049229024558367961827988785786296462965899581494378540635642361072901976212745316426045328811365168260073198699963240964784881134963603690857036896522816807540696587635334528018381310031604331321415966020839506576217522328370195332936366696045016087934160304517331138452262594418497029732990555671036618894208247645608388078499182962960473253779616619224458886185262650762931218137748767478217652404715826762103757704737766355086020048326275158376670114164742193272264423110121883832964150522944199439650816394261746372372676761565839399331810041639922200644286102887879694877539329531707766505013054437068302915561759999270307290396868041947452969616797765411098634043401634565112868267577537103249248458872078602820594101049019766539907334560297498651873341835768785532607994994755553182438604272959887514552996389282528778302118402259771884941512515858368395866786566968979798415955726909994770650739617234150825969563197908629472686971711524935209264337230500978285233258675696455881782464004569740198658093681579615318682874031925791778064219040530682220254203561427528881097388920576959682534835193678200266867955259640285264904734576287006495819731479944011920964208334615338870452658108616911783943944351564267670641173524400637368060027555283030650240770934583601844957008029523156429517277144325483695749437936715822850668919732507721451940002832027467915816575571437580116594212040949693100352314882058627627352518518252740010494246355690831562382986665665163919924561727172406527248576059416472122933484651284891581558980713921424338756491193286380460267507026912841105115530920076628933839367308700463849526781867241559183116439211602711049585313585634127417557616031566542155913999221342883720612691200051102181503829596460657558647376965645558101201469126461790774675937971440839708123296123854856408031667990455753519473050375148589722774795660479326404900586313993994961183587650793730192823094290291492902717688543658325348869321423074564031572763801605304596062373570039639803768934233453030330881994138622977777565501252097769624403502990229527308511814755869454236260452145136182569479351658061917644078798589835169878816912978396682367637475605672751798798215392583189755143230304881404927507179013159801245247286701961487139205742111734060484162956547269482485177823201985433244961095737866775013925124344163398256703551661978187691068575140275750892111539002191983768440454337312181267002499869196050464927380192227052222485859321985640073931467338386525942659164216709790291484516432081577975985744022874071537778045909011697479037819371680611805594117812724669951823179349522891961219281120297211241657767727194193193103752237509856409965326911249428834073825857478047995473053849222690651289514563130402888523270344297928187999699961159324970779207388279938552506866424325216725609006164200092550346073854210286452660122707204136737396541495159264620687707967462442361085337564695887915456380583972212112193149953210198441710026786414334285161068070546804762834107914956655539157939031572750167809870191502727659836844168755953536930507211337832615768199663808877833359724872822154374145634284727459333553253068611469426889995937955538936399219650140633746894172013141163446346046309177312453860212665713608912483885372305559762004999821282488630499368587095921795790702844383887403079415513795479442901421457004128849770941254072241316644833598249981911486650134044667909810355731589788301699891575603746157510538279145964828453888068986892318206751937218394219195759684707213539302355582711114133131917330830977170477379096301003418899373835814837176136677697922685182271231694319041545717129930343144636222243025716625690367638780692224226567056987627425842418363264611007609299264049921875196403678090422933054356677810267745983625209220160394920387622586128782946586981143235173952651509350152901666373496521934574611147370357012009172548655065351822421690025618623692210917275993049576428334685141655266437954927349744358457956181209311711562934736722546505510562431852575420827436245751956518442982059679968485392592971659785074556313191044061739018098218666230159164570023452298862644184630747320936243867068490264745243621917251013374052044495492676030268402844003455049174733818911627928065684485854930592817861643789125698585513553187985524558478959896485006720429982870796058033468362158169434159221443657092893072214867453373812859644445316918527784791503549782506933164017594311657377371214606917724992424926162812264597119685472985246149448146078720451961052335389776283494500832433469720419207185420789411946467807478774817914615537242295213225828898548967745509404902548220665056007641506165821939958009661854856964267148829367276943967983132953458056054344395728781139791863868614512508865527627021051360261744156666071020355094520997670602903550620848112885488420780945409359309146473781365052906910417572308806970061660167188750580604529597860291084339538393502476261156850295576434115113315110075243527539380033161744327151919114977821695912217376681757409942888144642518328806341148777139018266834536946531418871113290683636853728271466661273784571806829461186325623638407780692473401573542666636502507898039441460261305618453923996489129914998203659407313536619603232322239077888509687792157539629552444641335077975001944827073028978499437376916536453580888969443825973507330544988138576744312349495561888456633779128766054443597738681456437384289107637163835710454984036464313011364594282930474412176563033971728161130286476656655184075118280891048204521498911707026956828320829857984707309199831079748139267940468054760063713858717181944598509701830533190587135871159206522563296173138542614036903175413508810365531915755241318130377983237894533711600552477024253066413087343086095836903999648895289955915991338620745289197902879563460125582230231039174587248330304429481068713910591081874920833587581596283431599182611613475301492484378167054030947795799180905561609986096376371877627896423988633272033761379846639146416651424771867892748904196462410886353258059944500948474826590543066708309216052488604326523095179169250378435762060973905904778390237649717595551802452615098157914578557504153948689092036685601109753155475117330475537969066555789557112843930265890228370532223715641388009086021201826939262775556038184866357192649840571261711699881171268518789316076485497943096196847465320673163383902954658154889211667095395791213024035664643894897623864924722900766976014328596487979489569390239979091531008649483361772240861618401054881771200904044813743734089115351111739130886660978803506040953122125989406928415270515343770932043551646200698893971819357885089830132668065658908704389056764356619662535385269974561119103615687781979610859420788364163232923498523574586571595879588752862453295140953672762558233662397989688042772860005018445026050270198286326531092040139114552587181114419078636462207804060275845049979906165593403407139344086065550148475020775826679076497246362245654231011594711334607262625579208236863483591700332431800647004060022234286959794743212156981809901135312772556906582312977043265932917525216291403558029725351389964850610127570336507127924680768730438840963935232333188788571099367314227517287942017127835758523778193247507082794531188621278776157069636443937785712079053462386580647270434339217687701005382189617912962980583598293094015002840967916726824611490291970021576442149393617013101334415789078012795605464462934244163756056146196623020978662132111413249933524601870492694535557840043446412382276210125276708230167041148034045296202143069148941558053406083011216756230531428281734132818008543165133779727830339488426293791170120966270716079124068844495644038569047460850375922058746182515137601186295225972844417585872340300138010399517994821325174449024844460322722361147389649383221818447803830104381797165187702202032977721743844676642501744508446374692863067833689603355666084490503998438316189633004933300512510589308244654611447124700893681014599859987314506649778405673553059622437522834223403470172900756350811251313560167737152043288422681980716760753338713798371246375705448619920936739403701265427378853741777461378584286370826629758432897319038451916607755606354016912646973038248250757787400332994114574133134894474444766790172343473290650404033498661662941698345033032045932428249952778684101584041631617475876316408454314749550326474750530515090907079496124203880340239622525426459343965898261865975025095684905957412499876149831896214416434464358206073199305814054804776698305283805827596992664169668380471441008015346883786702991937957933924536474074938408435961479097114409647932910412554286759319389521814053700094520298821113899155726861635707555226560956217365903910661185695055392226646166676827221107810087720546875089194730881849472949504939165682412134919166454760892763395678488192988401246080900579802280833922155688088963537900246589832337407775183632367562321029046201011504328224197555402358292491559919249528968771549012695077712150464522710423102380527222230626379534507051049342655160782133615191685221530030568379850890814256894770953723970273632240806456278239349773779228439365528304874207476628526245402680159572804600006872365062506655919740235965176412464074250406832958029183229977689803429980989918910060636143412716391875460961208182730821322538303643379400644183577092226071888988964838346846904298264222045228970788660609668106433820726113191096505773685215076194973674036314164582838412443033804466841743443115549977031725402604632906180620129992441167596544360139980487290772497702687150319973095565188379800417630923217016298015094534971226704104551087157757270679792821764166858448634612685263154106271940668938757521112643543036857471171178504176952328449742795385273179318272968482148061134154009012750062897473810792981314860633070254877622918549855090310109966791771993994658517692371305774777428433348907388818440598893957272459808008645222659774848133155507274916800737535277285592168789659282027029279906598220320779812938844025439505442476393891795949868524675142971317738581584359385812760179267297559142470395500457092868619465114471984232937082192721029426759602552567481971991767527971795858331834502889229226376085217707203342953080165038113544384298017124693188414901083508135274654496875713058820781357420026856769837821737330794353927203363420909238472858576908594466648092289677935552230917320277661113396129821759734978634687897384191607714329631539099339681355364654123645099288449967386400043641567437376858207412193400642555546714845689749728899010189230952889450666717147577655631752011445923092582294341983872156052576843282472744126219608126923465414253293877537048619927854641410602069830464036013389022727177469344124357157936931852811419781123616455258227954394566758013746994771369475413125004560782398967534527225968957240927917795522394616807445572258037677320732501223612051031801854158072374644227986271294985451277338839645252367132600556931766086011831542769288694973772824624038594324554806446531360945104668290131400050000835311085125210193368488054049568839250318579304471140810389321361195182487471393197183131008419841300141935100821698133611895898997164200490316175776204805414778764209340888608122631230771180640727244635825799490722007517356136937523917403961518832741380857797551992157990613591793911909366465603248533023099310287007586744627951610816070085893217408185590517386310998073612680400718312376816094295162199504591587156367659822898166779597946777721338170872875421519474731863597366101941430654730812655390060257993056139681340587443693277130187448930682703889588697515974591186969431941457282858489584385864771736855809546061766613886788499608993293983081753360394661817731194471340012969781303625813243502783379910460144532595421709945534007500277587222614793894218519248628645081557248047972015619204821426171412660277204055286508266263346206091851958970745491340432338869391463905154886870808620760982950982125517668784151494843809321065109743009365623427779440313792070064552270272166988883595666703528562715557784347715285395165088546839720616163737514805093121721772964321204158823496631817914532311224914186795540124780034230694646224095137103681552884426752319212278023076949892191184033042657654449292536021840604788096468787988432931146734826282326882584752217082006583983642310587497824680360097419775531623930175994766971995237989364987983905013725612430714651052200798973829690666927084818915590032157539255277741215739447368667057954720954028117742499522854222157209459491427602424078081770201481575091171845275360071786203826450890478073822068323757387300251957025404066582702436512124984757830976147403157796715348551775197265602824104071564832481242587804229901831269045200840070804424055632954569637509144732062459991993652736842631431422208435881096993028220384257452484476345378767449005307880575596023652564925043283734754596132490089953887008464281960814385671970679147921814008837376408524577500329655398985889361851324917459500667667439127172007008060842624247287664817059909543725464314831406764127035238380989907310159825893449916813206295411232745985531183392433001536539766242639377418044913682582420442703619789033335580814313198577804012118142367174988586067373442529713597237511410728308910235088931975683290389623572521583460999094869057286159594072968160371543428384023061016470800551882146890787562287752514524607699527039400374362380869676952851736233596570825552390456930201450357898767089251451885422293147307169789044335540533519984861428695828619264416199688883136730188978282989589075125447927599684069941807454485342857376255370408193164363344130057104017216197648033164646179462559019165734385174442982640906274124210780938952355011161755412596643897122634054630614613793939142125752880691130771485267816153254140749009615922188531151657351617337376978257744833106051281625774077300479502244515686522692107658901138483865809464844481400807213561437714073573877409637265413599505510094309192337471782545200296246191657046975620960837126315482364850138841179169749741605658074187829633844781603265952715967692957607580699423300711895840997576292949937826527102759654056896540129652573827522226651162975941363987906305401164762868393450453610234363062575192251390835897265500672606845265608801209937546465900427417440487889853743179586685472656648136703675161857067328528503436418751971821164998139672415410393821204620188576951531307433405098298651839406765890331353882560788217871553213529468836938941748588070058886264911424422448997359609310013405985465365597169967109080485192375293234985889782549797314521089316627368154168717387240585348382734036051946372025029647037894895301692285351063424558130098024221074897617210916545290111474930891699522216670738738289486803000627644699155374059137745758358419313593542822462653543997165342235351832446922321951841386587933518580574979805387119922245310087396881356959424883420402835224925419791605704718098477273285875396944799786977461768360789299034572520798214772606147582698356215673977653968167321307886593566840334618508784598519695727486077851756512300829194067110825950864807988079311595284655571242939982397481941017744795965091733266758698450681823939104552607862627886467350233624782713075599252343626058769131026578110657494473500381039658441106942514182069229784694999593241445860084397558605084226855987751277785972676789190859535609613038885278866647769129158622218073113034695653014434039228714700734627376564534678246321289531695793680877893963693563909459421708369225000564811936550348718671655335283593191441153433263440978078496115143181613809573075780558781335720264791290639014920643670840138393494614253513719543143890989984722003094417158676660455750516369024218187234504874751167021376950782893218236444079049959941900568223911041717671782035596485020378039512189911663295496073523750421688909686281767419032357848012011554002909766732107521761028730167798684737506263879136448333594402333666223708249407205719554296254408291987798778370008095769922304966529162116483953232277484185854787872129505929530135127698951542871470124031378574295333689304570462235664148836290896196073032680609055523155481159790219397785038835353476392588205200812128038254565121614251214752100205276490384268919850062116827705001765210895030778874794551717810384630464564373113001962924011898314268269881633347627377733326946096597644130213481254201640989965306348383511125429930462868069601048085481745837027058016283706957718451613208909018073691439689608758508830887798009478201820186179710059035893753496876031950534306036705036146847621252905186487047000475325517138038208783048908344042893990569313200560702704018059435616092822114249425802977375064886066944580642806025599554379750395425536333127560992785879327284790547179105408560109165226437347189687200907771758399052800519401212362676432327774027639793657939254686282501527630803103084756311914152574794655669861795378658859702609939806033429104616318647559779157080392957640608960308801200053779793017615580342063788600575513992663174692924355831282865550596363629251994954627032690935034666457165032867656725532234372218064401728547905311524096748366309861720899003715667498603184118528265630583081603716624414870787042188508932901068407367962484753424192856447734317852002294120997607980762091573469431720621755413054796064236341784626425840346241247848749780895645199199112415432121177168279811766028396454929855516685062874417089562229483972896165800507414791579951217136595552186059741710703319768809597978343629639039716016570930345757857543803508435793590050708881850541589273715908129312810189977499433031522261935670936040830321022274998603395395092870002261618375388285926894322050933531290242559511778719207380261654810028065810729998286444588656111512620362767153753162693889586279281750104970578193141949432938423047122881948724387400152081439076555525798746595662285900693699782632645536720180036775959918652676836696890681015573184942786404294704209824640554560631112676478732190338445498611425676089884555137203608988489548977468572337352595611039242424875116698865133887380632125817831068383521567907706418236321102037497306647520301442896305820005272464285981760802586161973544099657784747759560587002557809902400820603828617495623612093419625942225249437192519858905464591309738544295414758135561908784686069351321737459762781279422034137069839984560192521876656118251690715786232435403076102437119700836386248674593151373632053874545658014986931556092346798967454371356618010337729561645435146187383152262542487516411816800993873752647691385652973252386465291236224676563373433317963736560306391891393793513922718220290638858528713127388193783018704549957706664946495879124565873897383119791937799112269168157388846399137633125440472003180915030787420887050272505906257773549168315061487165730869722495799682299591796569611885319749000754505713014744464046284699804028736826367485378913586170808313513924236682951887239444759705849108881249190667724004991187904530431464515741800652380617361261014483879082461775042762195883809759064413790092989161435147561167811217455590836572886396782682552359799505537949190440006168387409477956139709244567727180745530798322857547774632264721082232874495591303209018019341623172725139210769680349885178676480287743024436016013861506047578248439917657447209740454662909965372179823161171652924602508480863209065594694816110598385284083618393744946464630140197941887887213045482125597065850061996958647535542246064744990380978073180319316806638833439271031134466640387043108724368205397864957300151825763568577094125680653011982813208567566894991852303296488322743707473235801869219970391477503528007127791088529405320833887752900072221590286456969138650510510566748041996031525529480099931035026851380674843446345448073677672585790543896305659696976904920562670573775657502468417700227352738023675282962395786462176801595394147776158445576216854935564290976987184508480930383390209130573737439990434947355065513044132053748932398862104684452587611355360149935747767567640481429952998923344075381944989751958808912443991560047315732068045558343775160729804341994143147759539366946626011025496467974255417623357247199798260031025860563881841402877170728316957996189599010150530371231323983443075614959720698899462008870812745232824503974422435380622931249094845561294530895585196918946821067825685502342331594650344432834274544738441252304621848138399907999281472827847277867452025352519330645651392935662639550111924515309713782256304799613434513769689377662958074758021937379649348231793759413107655907574004695202625723486461802799932106004949354544707647398837420652509858857002630124922555653812344461354266800812858362441077739482578247461326902998907563839740212150048378523917151468027764728060560454427452299536542896632583358254520366693657308415334959227798391791130058125070713091431549215525868169318836176440017353652820882778061110892480461819919721196312506091650617655379410583177175466965540814718132712319661319137150663655962258668165956171711798168507082559119785560862421835681725182284484316699100979226734460543939522862940885765931099080352637618130540824442868757414246727692793587924058053373334929346822121093693369878772582275952686269514992286743970819322821052297033179645169263126154433326756755135328174496979914340338757034744859116280102950432089373129920208225062053941206255830472919374864586717755661059261265578032497840464405200702414988718873083988623698478196134112144051115752402813449634263947109558468146713986638392483709245634442936352232756248715738187954829598691034221381002008059230106064823382863235875074439049477623049276185732896279341113259906214928389104587350317665215937252405152228598292030666166535756699452727454996916236208379547455200328966849173783080432912141625230707455809582087792320632091255531460982297646846629197049428834946547315042576293058349093164442311994985325315397456441855364234662729600338602424275127320212131088522357303864533719739364276208573618747862407765358022829866016673016658390871455015079935089328807265261083004688105310704298622570074510225191018522118932674627326132871384924112369292400410065181466623891589882672996268277965223039471792228766885630916324487306177951465538291788593385255435983379956285642216123834923044000067788099090925720109730531817495456917775124035527449693653810398448548470073186951442703677053529454499880506982513887895960761267284530103461727026411425107788803276185700141892037869121579465352416829203253520769145030298695690480858016541162554943546452559830690709823140056774602879421538470407360471071866260264302914404186868241640334249763872126749262006632570858745983395242397277757053526404455343687443124106018362369093934050639220648832189263179143522767393667950119683520596328910628588459635049571208995568465002738165940017822677563572134351922037345415883518516179258371838555487217691401929120414417600709994845253100500503878740928990575472282485629462183280194123860317771309919042542143832208173573236154083164150768799244243785838624638281984162336081529275110030234666945758261035633063363063524206035849235616815632091355113659840805579805105406980845029216054732781669295768982889393257033098358509277245318882114369602647948831485074767856915592766761210044459059349583917307394121009698334874931605278880132457563614686247061527018487003907609617471815547800135331609960948213524161678452838739689240330198966774658530704381305137891080020960017027391336300359340278703342893574198736025776661459042760832443972742923655363847104990814564260236776955351468904896465456736335304860841375217308397597675499539794402624512729504045257087923453145889145194262305285004992289189141972663311135408920040418491304002691517738145590927439376674629166294134876917982278908879868860835104106124210115064542567271961096737854877289361962094403061011150838178412648596513515721758235273578190637369136592794319895394992891831947948397385004111351717825912707327105614131011723691869589441733792181105526788578203908462487623044675316507425918298797815208269216194994680845065036221941836003009483900825441040192565521027296599536199104452889774043936291545139804224868689942951154097190655819312647554372623551151926230401863703193196878239220653368929716265143800964710441666336673916251204282063145967987578815380833154697563328526180051985662300878836699686383918897013819060141971880159949778807551995659770366084211925636761876043845755131384296144518829993922075367239456363296679373671919005660274107656495460675015180390287904808954335160615448029910045681123164232201256275310714540039993430996022370265480993719522427340577856948242264667097205713099084390302479578964715884722666670866638880827476126725129031793288931418320322385068536833120731062650783035152446184901456741531113644417701461903266335099013628663579841886393094450448296432620296026554291807477823707444336644466536801338622890448309206515112149864529658876867403386545371347150793434094461693098179543086097940926438874209686226383088961678264459045721357200342690005564046156699954895753469209604139862649370998622929739475949978105482849743111571962067856146759856660357793927935523551841013788740953327225347497626693678974232233158347867648585036655346355061940397898964644505053543653138845196540398352722341538605625653848602942303464879074604363340504773234191768979916353580210765448913848024864967536795859851408296478203238863232059195828910705196227982618696518835101597961701056118808247636149642018028348326080341564143083081428168994979112940026380291039998293618542439231946378481747027390618413048933685336833552230218738400483392146386828820252561515209418825369204825799037146368861476428312584449741605702773127529359378773712286599702860545032526699514511630788093151717794496409142672935490265183024360811038124604056597123969296650435965559540645808598585014585576770578387105709018625104436657051335497206984476352640108017298192935519165660159373037322178542830714471573696430242532371172636642949223268980502036188487570169871133899429651592204730788125987428911630070341272556899767956953404924159400009236557648311145444627821208997153567732000761152575426350301862684951409800390615582968252360672059650255464218521547676283970125036446334058157024898606557082105679595806872356389143443668374299363827705194546994850020894728026048373127941305372567741016516188131391384711458108020392645230122617423165664953630279767109840487744608906985521235657691436836902728254439098731120794449425775086740971960783010921064080955633618634991377875246850226336864732809657839537144536775361003802297855542120373879485358830258099680973493708541674005995989619662636191922537630070689859281427709232950105161852674970455184925905886937290759785769921298933147173504173181581657379460020696774678401956885116961495604233354507057682945090924191326086264067406106622562686090081606352110713725777827874022015687756846490475835696078575812449262523921827455818285929723953612633072244810619294459292115414705042404703858316803561078194389815911018866694594018675630868599582476055448557703829527273459946034058228754756668975024811622422610313374658808329459920721069286127710560604909815804678271177977682817430402862993773154852860745550742750907192950830795974515490752421879641458499023357509937283493917814265907329677267333365133624951968340409214709503982652681906926477154795231959052289070242482412286291992307398920100281869145420704197605790858174333249902153830765652634423231332102171355946499482653923017146933269477399273295316827277214713420486878418370908655356263280291242676694800675916751587167589761706028445911761600025991804209739474828058729914001807200519612756289887164322745406289016713057777328836533954124585914867964092788636369968690484155441765546495802214735016856046038686994383489080484837501018690688103767428309474626080754160589183535153289585071924811453235740662434636640309682978074909005864215646355663014744569670081547516957276523578313928681145922576423153633592330437574222313962155306573367870983399814607798271911810544345230946051267167949916570533890625900660300073201259823539794772747349749562272327304673887881760749212464080000097549234220776662435361422652395195816048274262300279753989631494888804191383244216479154627433929152307918302451807683385154940279432972656597367697984222308596748705562606163502327895384484094983989251017738773342500004988576454686971694399417986644670148570462303542450896085400916301584447595650311921752864975916871621177733804985659686456788201025975401132320568573014703172793340475649983472427286500580508517316555501547698475602526686426840651308041678207713082996794228385066400379230946867862775903019712219986411357820069900211201883039579168141827819802197035111092939888359593158589503601415396134054699161586836336780343237848504149767279702519996729586371958149230056929235804473593457400111525302396217570063725161413590910612685408658636847885644504910593241702197361568122198537974606868256009632284200196176398264361595971469500055638798612141820304608059050468637689293362421476545085084832204005780018502932792589345564906579066571916870208379595152041840476725880468540145653062106722858121983904190221138249289901211118072636111960374348617112394762720848192713790540562594881346966590718828437368540779516296941702336965279735944886727610922210233268662581573335796343518501014538722184004785974007015570268721954781714755935453118662139581614773488721559145532392373412549030718137028496676823657599458771813670147939400025427730011272501742028566874367635443539752200634392551769077636725640753522635948196887966309633136873679265707130446284877456916540507932427753989655710633808062308251581463673443653418930519132015832746194599667576480133451508198308927740221729551284265689629674524853511993987381271530025505514285664302573072078440794639882045582033524653321841944926599004615756178970725114325267590657110324645593327496198337329177355136881548140117207507291217314533278222728227209162758186859169486840408783946526337830127275480339584533246493770755184226343110430062213311209866620237229582734212763648499444318838767931389030727470776145116929263941906727381674046951420679471335185585016612001995657959003030254242101506672160217736724852162359518651694863592154239534177916165876282464150358059986113300983196667120898685167874156558310207768265815833045782209206964432160087533503565061814752287881993605284908750757693883622119751597696225800331772459185023238990860342806294661128387708737034953360620275276369966797035795344812493315816071892718084981706005276567732994847769916061254148004880678246149366668089623016047752107355315298129908429332198790220747671603189521881431430095680413159509989346454953843012606016166308161850845500335237056434973995123376073910295466745099330490063056829401863096969033876427709540436998248609104814437482921926299273577990224033528380941099954879887789797911145468203595865011988202408444853084630233820002050047620290370539499228639255118524378784732506861092224555957678197613111960497131433353629757759875228746379303214284224189204767792726494327356609651429548276061703430613863700368661146475828652142677197673785107983393103111953799741848919800553065652822086665961294023643584161759066066175232070202677945037407240398980982346604472952840077619496825482340358754964499273990049541736163315960391790671505092934978238262483049559806706649388818114420079322582435785425653760223965067207683959111860169810295283008294138852526505262323944100646283882942836533192411579306814979331559587207614804028481330714895650038648012157346036953050772853686635286977966397383251260785767277103721347266095088653784434968218526998025038516105031890241879487465516265660627419438446453964113252835558180667267965057521398068071285698463249466862235678126187202896060697935571107018504094766307509923760757495547932251732948587444921303468780325272424840393414908211902757453527210827370779356768164656268378916059742075284603609187542661153970051550775176731123266759922295528631744607466015232520285094155395208425632568231285666654529404062176115737199239699035412389455035124969502036206998385650615668388287755175147395889230370651396924340176496941829899216219597861240889495759915645916304036753039856652299375655813215834357386878032991172853181704478125934980216486542194019629338698986621373748025521937130277100796480301098104761948335612718527929040095230537704709721988891521836589874900024451049829716361860552934193070840651820723059321938160281478554253188471158194600259618034413606035552690927390957133639705070653767170363307025527178745692262386617046632460205109447775006945942404693302756305425421577511342089072661019627141736905949195237537185515457770873388191828016496324015054149151862977588072134374528793671268076345239244832800142161128260495026699971953664771323013681259648918243166296942360946144641493577286741777498175516040733065413419729855983443818838700010019294101503843738029452468955553141917452680008324598914642201667143630799490137904668058769336645312653835592153761955470248636964325609953650929145186106706989195346237457205402137623668600453551239976185659627755675744407556504676389564448083361939748950114281521166093054811635335664719141878719106656453648433745360910389672664945473135377059512659204276086321066839601061860699680881083612535341129015045345228386616333769296262653933911685321979009207895708692580772882819934720942575746415703906993286141728778767246838772858692722940479404791439909960217188086376948677979579868228585612297115372172256684163431499400969315619932404083778309667817329671556017242808299377761824285374475400231557125564680037993285562201802647548106995053819548224665829204207807201932903848573373864257732987618867498151577123474892092562266338256338768012822728407202177919887359986966983622026593021097448278698748740032179853920569410743290074225466259753532779869324861270216236148887484610820293711100598521029785868412081957376283983966956981978504629421146277228485862214608550824599813631994850881656563533724650539554896503978193498079820233310056460278655702937273029630472143989641570743408953644606017814571756779803825672424994211464744254385053773354744297224971397936842111846299446519727681324017405997888780086461770944569724367193758161814220574668457788162724716612851139401494065458812383140160245537777852779077250662654931893465524314812733446758336156000305590723649635521192407610222987634478016088601331585614838172625152818844993131640430338773728076560068220601397747180289598875754987408485700890475238583323116188245380694136120254768149222853932855048370686532931137954853989268255307688910703746036185353842730406632656235327811833048513759462405413884471468634034945303584738765704207715770156513568925547443735026472848454342796108404238317486074198799383815872693207500090314113598867911005007071520884991154829677020438457542773917711585924209043316851313073973914777043871190254955432357837169459314290361615738576995676654092239954755440279078340818873398417154197537811072129481110432610514832357523138145158917326936974100315224037766163261728795852406347107579502325575266977368010296713771651173426850137716260642719346202512268453926848624887522824669428622590434506964341519908266719453728415455879595973711839917627843384053257640367516089529378045172091701100611753906016899833471071966972422139661449904809864293446098672946324395151477331150307850940221501034657223363921144085515290236429408605192696800067225254016600460386102873778603545369050771883038216647758519262550356091429907517584434609328757504137638492643928110907435550975191951316602422347696184145813574051457394808232160274475501598271306134593287076674339573134099014360417966670653371582738363437626961722663931285033417580433555330110622659980709235848424747916846157605737426581807917998984083494669890967694606896070337169984837424409107086899233556615545325906910059829159449926332209350211547123699163555158829813174728829703482130255561276531268611095876831869669881354743326804935242661519967129338841299002397349369723524201328016727572391192554587279430647283464059205343652471607674146226616054962103147415509458783864845293660571115534525394293296103451030666675119225749335992873796491122503564719917476739780895687065404678410891878866221294637733408191291021089991704935815073992531257312214618805222272062110151093470575767640536764726221828501393601477138093009504103980099796692966945477239518178381277739178868927964564200601574040096751751158860973632398261421703727665758692065367426087877938084584967477578611499301228054936077206417230008094945580781660118692861844568687393253577940244274059911629992123592821802535965234888566503083934819766830236649704205411519450748494360681889126678728716014357522383056492685199030623293181457938222240903261951636627434694820197628471700430645224863707251202709824213786404250615193335896087904663543160910826957570388602163711919580454735854920266960162776878052479475498716965356102395893635180423651903694001883266262322980219748214993264141820763188558942474538120946150635038815128975147837695657009936271358170459061235128985373599044327843042305937634552118560535448489746876031987391973690511481875611010966529553901824156761074692198372485259138456308201416109887433872870427906222847437636506844218235859983814916402572616285178617515850804338857377643540171768682323543179548005490835906756805868030381713483552521294286331091186152103240276295814175233904462364712731714839127029943835231041049426277422455336447933028019553483132006520721021086306901439729730661263721782211727784890380605146832662216078304102013752094377212887351288694661343928460723570683732358149340787604075441433957468710767968887444324711671511638039333869937930372146352217595926751586680774418371512939593835402068016702476135969515115554281925429181875418354221596479741954318486137227157815523777068211985553830109900072160652076670384233969623047748768371807504198618755072975246614888906706422621452388216649026611053074965880855768241273595787814368286817689928036813927995209679979050499779261657996389182017370380223143572816982602088937927238385192244431492836822697927172186252560586025501355681221086363247747032111075100641791039974812389084112804612323440949742125997048954164218496764332917049505666579899419270829756757327448089061248809824773117286825664251293242577746477270609900137712123844436538547245715841323636431510381230851443983802326414186438865226531183363746645484770473907040206553951238369384842609551013921510252583685129746682610807580556418424368206970066258963155553723533956813078925183488061974432815530679459536231863832506131880048244515173596401121373876472515998062894098545498632422376104355777914120733956668357139509267534417554721027701987470722713114789877218709784458024075588243010668879345771065010079252256743578079050056289023376073956809774545101790743957033689941177115947183953691351052928769112025190613938830843711226615371807383342195390852534391331475030872685941311076978201954064755912154054637192053871738761899049809931184424280404390864861905060640935102252622973831802067239329294383168849936165781076017884463621286847909970102707346481653627818045595742320138693317632476588637655015650247631260303705944254833251089537263994477363015773800810675902210643023587810444987214087627752134910970043108543635545630078767600439023549830298058347368948387860965446828475084894058662148373274474597008749515895937017344373255833714625166258998691780547104569784128113648105176943606241654538083100642361488683758062326248303585362938995004876648241897793267135069495543553290208998043506997861593512703556104117044014588604289695620663259326801430592226594185731366925174832774809142691002746130025068214913177971831902378700578202760163516121903197480296492978536405393544775217984671793511980986670655511769871924578912314746605602123059918992990409066891584644795139379653001096734951838561357510136052912888378073395223260658026196026566032672365597287591147305695881259283610832268482431504290975622958397095654021852384018953503717738512544927375216792588492602980605058387735915668118685612382104481577925165928257959862702119554328723022225608993247594212361104494652759457091780203743273891354134948841145961752485891963045731376852391252579511347541644197068784655980099988288636564423295490828451315652963592146103638123430154026098995814102035308806777710844580910582880002200383304630474780094924548901215721643790221561715651529811964850925146014612187244717747520038388038754568727140431929584055283722308573868882888503999930249471424941716277374689489331379769121590722030143854972871016623431977475814417024516993229519491473209021139067376173723526923012088603155490313393905280225800290879711644940543671888094270923410440917752495292727883215001804757221920157392446240655547717595022948382600077729158841868519801883314669194881181923441078770739941444371466774563327455857271805828347256349085392046741924398195945825012387247207540369819351164888306362449698822994688257349476815611469813260185662683922146876639140089968270690330525762224225583203702313957120507381714546843137086384654668605695505452384857047865520920541552135779819637837541551704297419034443462185186186155843884645440774049370952423978797412912187480116192011363312174048206758988833486710831982226219686121633237116156161069339340424147830318833264386770525464401203121793444519720769024086391221112030357837310840645366953088716447943952772103961541219294037027164718920603454191353991188614695424887237791017512868364672369152762179343794710752579328023333002307501659734626065451940091578696047087655701914987389199269441604901436442292834405912538297179014419935859040590397948853935960731100533751939416348718648477513076719867609908906452062957998820420311547081142399250391355872852877814256915546836793061554891873044806898873587196845242011539450921530930364873061665780095183536783574447192057042965455507147947738384001501463508420048056132145088316587840778294914654143258296924527747992068253074392516491135975625307119985068943586038886464942840056818465662852056363303545663155972449314265016707811253983793676604253629305094700233615998900144893988868687682428159520274573889616200946513201643187887907140935067477502414178227078974545277301504429137555915053042590354579184208535993772852190018044405747022901461622111658477489758804967518213870759419114743064952404157077156156441242088030734251415748138996645181550728514660180470333638708778067750484941891553132846520056888860565810748492122234072156613814033367044135809664182985310330391103041989978783187241840312427786255093463570930907418030898680095830826465055458542703396820912195494109748295622625417369863571536979035575925681744547829666453012788130807896183620255346017678079523583391841157498301711851893574366674901121855952989834812031404371068232493201566376670372903637312426515123452054456618825175287943889092185299482141150465189991348362562358425539062316984247401113747632115947198168229460958574114770176161562200470467796862337593852144710631061302342979243602348640454055630100112336988451038943070437649558253416826573646431159995558439326658816111510002530889909818572453549163424489358677965766821505555098203283795924468530760933703366799301137976309957530225326611287787508539128113853638628604887369040270661777927624973691237202782366221212627842589777829087530375706626662704677849422221941437593567424326644237306748912280038307225557751629050422863849996850675997353027523900520360952364647956942139874825380478174243973084325343149736593952753463513207199723484526957075748960389138477627865898344246790582347634100055583815137225689997354300585424165795512712973588700056201538618746085951870681270205178609211054984513194523433911047890671676020667332208839555925972286286762101526305880096135034969421309405028557775371563743149552466617129996467883132845651550986607878355563378948562550160979752468663687028304349949727801579623723576275667127303787940562513864753540135574648118072287046595753916561928950240870986495783146447785300763838071624559759647758126132685823363342800871091139937065346169985239471512761540342322794124198705231354308565718591531892944842852335350359151947987507281683698694432974218683117072777498708520748045221495413986504655872903296672980752575114317242399034727344121396710506709564770152285173257158513769489392209171311081401336497938557940807009836544781437024391110055318403827567530092274325084897451260065191079446810392058342968512486123349769054748287627115430561697235227004599422033037365622472924198613968529610173341102464837618704260303552963900083922268876466794654131848857821393589199113384376879762998051774894474025194258946586678850749582353795892399290015936375529992630748291541783310632909845635831297410255730301859696063483371417697962432175314654532917262818649446936037398493918230351595886687308642966934432856454376965184350820264824300065116191652956389718431880743065787259606499237855220313840917184032145624731665278734559007569091383432303701741315978321992808584008993492397006169825660846597802577302762520473092026312623449247051925154264439697385981631732578530072296649727702473568996091114168599573225410789191640057900036329113107928463798474090795550592977243261816097942500810932655953321586898555804235812938622266113046121030124191615445360067524458444446047702668617372092797092471609931583077956681185059624367249641868853440260924964980280288682429168788898943454139388258335580774431543149434246480350517922106913721206500239614351951920437796793724055173981565632478048900074705027014927454945802984205437553261245189281198532312031934387397206880452747596830185291190657820775115793940521056047282133826378987957516328958180718759367775071302848694983262482025998853422469225641159403895649153314989178590559525487904526557326721833883446729028736417005695790567209207996603074600667966669819549050051085083896187345308421831506284819362644630299894201316335824195767615847089756251452764637171279082163332315076045215776701565080897875762158687878899104427965040365061104170698975900220242424170319361640405295992522967059568898589418518466508397093037210339336072418253129625394954137228214305891360107324457923144993949139052387416245881941137012959502363702956596548014928947668860485297463282118150993635369216804946016159546518919483966520455978312398376195228465892828699766435795755403344628324696822068660292755239652113747729618694630542231825685386311020330676634120116465287901166959031540573749296048211302710773843217050350333214137940007417316795128648891345036898723299095231244807753961811716892706928238783809929704878152845414381682374323444728395562957307189057512055383552001994595160792714205368301808962526169014978189452602519438818430839615403708269834446678673912996909774808966837867845436660727488387869067135950957212613423480650875717435184111996226415998203417710927410796007660865650023987357916404585486348949220928175379943412008945246731679279976049780057821617659649406521678192529897338616745330921217646138202980714543514716976886251807224547633744267711459523006543310096020474433770635196886882023379324063215644284743002791140358026985638346648628825249030850783948627865851296566107582120839016213418751932634798109890233909747516882743712274390024501002589514522493054548391537689206214583775250435639363448184277854654613756960470091781117290321808416570077450856316752543038331671923759562243707362628667004939661315298762036350269929583118350137244994385538264878460599667854561151475821191417211551163177772344515622132003221887408300625218011976239426273913924883040255292032527110319327757336266213370920509428149372746108983455145026500512227507290121991656587063991384806837475811010265211238599955596612653250908909159701558802924558901998473219070801265571765826518446164768068339705618135703443848568966529141924682721790708820318071576769670321940470678460131597155655484841963390681121256875170666336073882053557908269814701222546127643428537501664391928703518000074780729080804470139209559083996154432028231754473878321576250034266633428899392292992858245831931885057746518003891165315908617804734231575262360221227872522316162738039268517857978596402388977967551635761991761120398178997905294303759216246205105736382788501096770729092900310422992371751931463293507650737381600503530324287359978582502780862775164495076088542711966918266027150154264406848603219624445953005259305961236158443417622794632241014975552965159375730318966513897138950646999319980044715029746986133971550148121095888583642747520876657789538412456950560799927499572258999997911813847957070562531120409101922819925646470103622218644388679847319113916364569616752520585040918238666490599604793643592870168964106830390416377037997020726142520044067004206623254084503136244891755606882131070191758353677207976414378572105485414044177011458140046372314874492087157679815898633521060832825317954076152888053306199415160326867920894026783219934924474707750786773776263216969311405421421591641364703282743006950589399895304384642497859919379392666066408229767263026994918464758179250695739743247089457481375153509048799613346706741030390673451264922448580948781251413610973633099746095344544032419708173470727104822565006058208338888952143588206598721605297946500599043138037095927004919578786103521008366900403219667333955439852257196948760448635136922324735287343889812701927208820691953546348522157583563680538794129095105799434374878054173588299727617664959974721532568261791194244780428451042070865102239400973651878359078365365097097555404837444269312013790134560436493343521898110276482751138259090253998341369758246072888326295741029725054756584918230645631265930271154816674507338953624485739854700871661607460058167666931161782969657546678905975860991436827282106159369924073241246617367931367258879035324760820642403162174960878547625990470443120678325261588707636527771015671132139593134181525782341446929617308777719849348576901893523701343192442396094078912669281314575738211157674522618738012719337759200161086091439559630047229370167493365144569969864588728979762573679492690011722687402312376679151848569659802648824233504246968990556580707606636951935560836494289602637206872615782284380216319014975096511121062665815676951225117702980684489034167618332540851390856859905905234679962944277410386201314129091720496120066187417471272345816899112891633473257571696879712591030758234963526974953862704909136903708660565465352126151467572247324807736226226294928794865558607342165154701306865852962853730309587627945266699698271518631102429425709043821010905990779077870459415531078963186976489591619429873360735074652651358850307099297872743468449153381251355408306022184354786735588260500798790601510947592738417923665980611568073893527164391802898002443320113758448830563095516020602782093428599515543624911695750601844005868671396256016400873955273468472003811175910639288762030853084071290618785180347443737554033035401805072774697157485441550707512861618641443599829180689012923208837168243067995192121492118198928817314589874058255390060816422728047028095390560937500008444879774398353931518739511831172602537462485260214658349143938680578680396587993519715760778221064804055970589737486808340071807147035799064389891103395586763687537293125735756343934119721112513552031976075695305137142684901027752069546326178454818414013201013199832668846862766868869569467940420421981612643206251340242327831242665430669997432541726833108609337164213942372631249579141459861855744961235346530923559602731799933180551017347164800012127664308550677297839279195818595179835000596014724128377322415776820421846985276524892850770967466596079136016841091310404500317419370300432337922923181639980934152723003661454353735582389526533806757209708901549377234941351367981779323816358285530656367744725697502824748651591776689076453447008051219802725461837435947430858144522363205158151795409066502624461364010948637317180634623924151960111413539424828716846508793116658443485009402316698567451021558582732217586120873268541720313300418999829947405005179029019147402359671477720121233607786434367992563264368009977761093276441828947935496563891215471173822030546819382393675348023917816140142449838763305446360436922014214013737944711653903768470693122497560835496271819939256522742459273552725561939819964671492524288201264200829667194052353736776178085170009292699959107442245693336175374045387000569036229019563364331824331964245601068626145772446224562698724591905381553215792692195486899983287610786846937027565470881680396151407152582125468409431291095893698239254743174476955740975369057245150782967063662909971610982770287973252969258356260954824449460480717639946490409611536906802850762732086450327169312764320769339455056715850582884512464382528806311148254492325726795458895829381469915998493086911285721672876108825194382202761526033954794958332953245872923884950552600733552006963324574106600780611669260777061595766694604782003839594487643426542264719598624403233792746945600616354739360051751583588265626259802965233638698035955008126546706707520657257977203697346008921757599625785762054447432330032027468766256741833558238904522573734891833776433132682723534460329226809529126220530656115078045454981225780897107307242383211497887084449703694938182273715843803813742867317988016870047676194519823494910531753711649740648509181175407748735853144949517932279164401793970632596966020963723414533813620577393723483145297799145711263106130607946061589523609217492705380986358301729105210102777984493672252606915870714813065125823568812180506763371303091190134158214239651461584687529604957554499265221783557591798450589497303910567608411978512044459037408682743317687791070110998329724747590429108890352005747112064194528170588527905395678383589105228128491556101928914120081378165559626069620289364344289237718017185154284309386103249149594134958626369147043278218015407424420425758684970126009939779611444909074795263036704994781948030396851368181447457781944237104505514106751724588595783007080875069433170594703923071514858717449325178318926851809504582965978080286070780021097195740610006770021175938259598309472093469681134464144167520619730560316996408440632832654216717465244271275717728301073446698713482845874794124496198750468301557707798690731676376059227764478255370107120082151496469863177664898432909654973093640197369285854147495361479326067134081070427289555849598834544388261248998625088320715295213450112701723076199424078312912753581241494118879171624994934507434519233548032621907148283112706452753535017733369403617155387451887602675463149887054789454847661426419186051354315781649250769167737177635917541832680532082403172839352324533140540815480481284946193338519322261107902013576369765564280791978700064507617396423739246656265341900429568832540352925006064555127876327647447554889140912380592803429439382874482917937380191442756720652698156291829904813522292260670069114368401087770687778981985546053424293863000985989693611684060946582120316966482157153195081890105749932333751722447990484430741036661874761685672395213093122920058819591558911262485331449577363465160455257931685993923318636930358353467889250489334922691049184508908118229233670006916118447989139793028860045305473527970519762411805852725853966989656579755193604242328869399948679441870367265847783495312433717985780706298635352709987129844395980473521403620004545076399343548272157689237102082389462591499134407676993686025347058352661149610993314147819373457888118807180777872807795145108852273976867075008254346089098794328345192668824864695540771903175464399144106890776350687812329527865081743356692304925225896319499553773992870606133768432720673781908409368532202813593857156950811804444218942164959761241349109867375726454046326136170988971079947026465422999899116205406690998366482975606609745403865175498643648931984801792179012849958736822215492885599374804210677619264138240620798983772965085444331224788233225582679996641403435610088634673050770566340351589374470194269273554446285580319382574860782440804999347443142267756434537252739788087751711306847618579414934886248995792017603560604343897897012225047990258622472198008985139726172921163307086197562652946384072450843486425647165445293120854326570909752210461112679234843008059242624914519964466594993111536980679531400800476549318355681462419796205907914895665416587681324473838815256273587981652856062230111860441688937788467370601219583189627424294775391082856341013473528186067521165323145806455956661908615041251283180026852261136172382098906238896053569242190939052615501006546500912266757160351192958552721375612417238606325537590200422183935839560327603995671806368818536254336063305069656174895062785817853640653577539560946272524416213453522715317240136669990414021145559872573587178432305923469413274112520942200674208427316528597401996317376503579530147811612924444602300000183173931619322414353773392098242849242234866852674079588184954521386215065022069082008675443997404803922702543463621239840736885825521763614792543304244888731562324831231069265400609843910366768289290673497103266597233153546808031573922381831649151270382078815563980528796316729105490386981406947010345917617942082102742755282648214048728194005676799856464381755513374426171939792075499467702435212101481162284835721154816923835742751735953936546614050647969867198029526031667423509333372215879222352323063449002174221186159914015922919056983680021200829471512689577758413281436143619839953632822177523805356802140580131552168428350035617833688030750675520529459750035643266584490393676316171658485890710315669234725915197976930676246763895233714477053392233294582194147483550534964615663673317674226071320088628013006138568253634728456654291441482557006135469743083998032629426415320230906307901187771340016370773360178278627234604167563281276711151504447871328132223000884065142062473139821502783360517338808155228578447774190361265342833710138970810450873111317128110153803452506080821258123788105781517991906269190446573119554544565362851336100378272651318264584954859559970878345307776425884079114568849090716888220042253234113886905722891720316396563654198992741806746189140179989421450883674275857938206828076394288089378935642319035062783366540316449519815661951205959168067463878173836296690826789405152853369592641246685390060260402360882014822612291601291775449946199319248189162890726443215972610118384188194021846468300298556674949598399566905485966765990089098582678550322186580964350777796446097693167817333698071760181982943452190163713187418766998354644535344263198121225310864585211346983894117094309081105091745440703430590505282141469330592835931294425227231304018860068195554384240355135792982260613830341772967056900071643832307594285343405801528125795257253031300417509644063852078653393585724714749872373247485270188349219037081077481020356030823241415664582454508484806444907944926264230131982346644367103313512449196381152456627783340427411136274795089474306663963621061560936824427939319485125424646609267457316541620908108284271583461046498966168434690212972211143655488039566173241074032128602980439519553982862219393641586937728018354313798091800896056451979886177625682425121055836585942309778800162735939586988396439002349613405659563815424378026809975388863564591338255550236644432384317611017397973121176961578618916659533464814341894627550994067806770018670990523715329597908235037426707310896870905648613913495579141358815916250813558300002997823921927770554257401505204368096092248335061992746655874848664317083423922484920015305757910826944007871388690288186364638941724404698557704067976456281190189654421106639009166766635344708415438527556143425277068583970216620095607600608826449993475394235434500015457430198146642514544175061614067277841083665462699167579188553089630203480918262267872367568428326913205270094436051368814392209832681367447009209221280916460672293192838870087205861029138266076271259298657217052618553483555803027014317802465502222202453667389433993920325100788305429192596702696756949508154724088264625141831750813595330737769055600517742255221400820100423563690359821772126247480447878361038117969520169708572284692501903152729937145855117439083736596121090159212966881756373872937598799720146808805081841946314092447612001097006007935535797466475565173625101338363487118839606656100448435353471074596900678246219208538413477386813740170343381318173244621472921666734330911068537985043885624360566203278862514052121510667910789792333089204846746473993831074698390322972658034193851831826427026816383521389928901072515965411237937166442072756984414136360034681526408629782541221531869896446149948762618348804627091336953333211372971061208035889639391399138332691549463724750762433397192641745887943954478040041769447833010541061723989108797297069213782688875153215740410791345596864442509910082262601404057629242018289297064249499455700397113053685219423428719336186996976422907788906856338519862708561230347284121403373867894673354007912754533007896461435002765416866884255533801196858973928862543965779578151702606370407081786204104952163310968719679983220059271953956951743864759784175785322389699885758846226414924388150964375509395157916766744660264911888239873548066537961940146898480912659716044202874909380673312832584632862357484161002580467985624929128546950396001678554461047142759785241380865103602425544449755459259582241416986488359205586496183053004012349618712106858453852477608406297730088713851955595279128737773403441883560654059344917612595228054266361056971949096698113573822440414577835716251001591679287159210220553976734669690819577436773826121889334066563673959097265925351085936292985906181906308527712994470917297547090331777470476758852309648127423845699611958123177597888899103480025719633171015453314041689873532151719903454552743622953725396110247166946393411010860328508588371389124691180518601567628144049513207996949310481451338175024678648671371733389756104592066247352062186441635736076690990801670861930274584482388384059756042573934324684448948374846302166156121421381486376348063248130554375723417472588514347905530977893455853749149838896263874953375188353995606658127630425081198923102744755440759028341924260611484224614082148064423233722039772726978628589861253135887348061224240285007681452329624595164957753713713477690234425108924316463438206104324913070648968827084385836806073406311524612028080895978826085265754738836129317517943968199873110299081350151568983032598676349686285126013368963667834077324828321788119613091835355362250983528730959003196258495029647137895900109539037802306928136570878509318332535788043005265254915295738350733836629380509357831217449985414933040749986047646218563904647877095383581189861884491555028268608442037741082059045484528809303656116086653513404410942294929735487663081708568221575388196678964076481183298158127548291344424884542196336619959194583113627806793856583245432125170256649374606070367142280949150211822294455262415184335228881327185055415358101862960494086703713826650506077987721760273890717537251889546051024428179049142008602206509699702990895884307240449045751187956999118980300387714559080457507585583791893925853110061254520516702403559075943244857854428237370150841825256610799891912248071112393454657181699790806091633681664815824207768299674795445861267174877221108177616906822870129656899985629933945767307209855783232890507042473404369026050055914658727096297709341135888037531787631074613655403832142254454591764746462317257115124302080987591846859679534087659590798666011952786317894984773785075589861683007843372282424871597252177639320168191505437997518842428157537097121333621137181704616242055534742329237315282599151884647422231661004174089794782173331011894057537490395975132250108100934862625748267472262745429738980922436610660595839457348587404460559954293856998883773799607825457192143440258757948394661714565094912538066093239441133104349262598969316892238321216412018703973909517255708128583325816172674203956507743167765185254944617770172511345093402059270624745321375514105269609833200193798294117030589449757251180859262932583294422769399452326877438755074563222330258282639628649400832465633508224484553579092597790028217970320321133321498680767768788849005083061908848937002863316107698873670882466834976737007780104187131444951903886299651865153859064657106900453130683518272127457337989537928164421347978896723162870571171148108781698327126076687989047690575101141267875418723901310097314221046129927654777739741375719024498431584356156254328783628916364042325720303959047152229292485463905837662340468684368771278612437206404025810204691288395364078248469044275115778200250520294316311335347993492309822587933963085229959574092598257621562684076015439458855918098767601970588706688052343710405464958450750594025780772754175841615020364519650153910345992870247317054815068203581109966527098382832125859374604419699089903160534868934805421090360809099386116667471249684234736982018815940711183715132440184728152281339949010925566170940387037815134237401975872446013499019332389671756432368940260783489285182796667163642165200258739347848802521275656915660820985538204364369995825416467549376701295369545576078079051192915341727622201713442657677152544626829878480948085976227560002651271533261060238717186050107885455265960222778013973982804901115088561501536293862856891289921374869242595604694595191182188012413572718133998263114493007575104822630975877910099817225539520856665644155650733369730911060227947636330649060391525574248443910802646809738817263138376534401419520508551477333194381853969541703640976481202056097701217513474235615749024678043320234583296438957489357207089963464832365546148930209347724600425035459181277198297247286537100521803666510564211696365085598606126912515020880957685790634322652226861885697629827189715886253252962834579386751416170506166562905605204202756865806945539332073584991614803971408141882404483629364765303548654687632527419252682359123095370756424999257195156675687908268454384402110835787944433046518549175315012659798381894500631814185062096762064169352185845838624333639162060835959231602163261358086865416191179244778600709865427304721805564426620129739320063383529076664717708945110085184795704727683182535705016210210762129474327670810244079698083359431914512251119559767736972664790002751319575610755681176845303847817097551023381966088994109623397790737404802205678372010277171978207607689615972395457446650028909772083971520972891621437914511944930671886831780338539089500874720671251571563885921501151514428003121822698848145875746499094885641252615561755028992033774355095067153254026351098434545764484128263037514928175825324384661413062365695062910506811339715440127300982356568726740252006721954591273337049869883499804832554393042890379362030502575003209219878770238023185067745610908841198319396144880662504305921337327946232792391334820666505095329051611237885542898950177675303884564062300904818676963123528362481746185812173431762933853227103660948377177278506700470291046866893781038795688631626496376438902139464396928399748141475469986899299976891182808274215651355508853177104201870724512302060600730128237970253943072758405200364287480133600172755708188118503420173726307972989677416468533683624198771026761518951784026659721729592120615638777140300456484094740073373500354912881195381419560668026876747526519427629626898380057128572856059243967742139874830784171614798981687268931532337405657320614704281974592793621832556112632953508624127106523255656970721149665223628635437996741767702904396360512803321376335275988417251596141499396553143848858244850750789166477856153719402801054093101167950264814169027258055774227095388165852610345605648976103717949362046149759577539922662119681249024323407947701729306902480501277763093930351529724540020676246622544600501004716677295603860030783309451043981079973569530861195903697103198143756091633015363886845008683165106915027680917037824241305305249551389507479485052193533759511691237843129622385527449429357394335785442478536561699679042252526485968071437546055737410313282692478522049216141752723470139147173545988824617006172953132096617810578257555696706006061885964440587100661789105425561468856223574871207796074671960918190830034165466329440174425545887225232752329670481701502260725430862597170822703019867485227027471396277773903079056459798201069130272729006902722992169890686542425196060749403611676981480837037484526385813734267097533229407758681241172648171238502095841319664884539912148251942004153418881487837580583735832973841770124146318731872082971652480897678657182490414779281107106781831697141113911271774970931530572610633664011130131258468181288861473927726885697107806973870061450113989466283523778982595872604770723360876501100421817647690875038334810507709860431755863847309985870423424710421419826347344438631033783653303755788848852646159551398215208262587072850603449328121656091847771668617554716464094116579411789110766323739171061028501566693478221884077975078034984984925880479633917441216438553471805108454224037608719600731466189708959966406481142124120541551403913660833406624224517196033056980250103455812810605232061971030003074226821589592788174408216644411469516151280083237825489610071850290712529125550069236123913185948646829927343286970128496781815879498952928609829981289010507470492825928994657534092822896940513921482874924852276461100405367547966167310006124300148119290529697421300568553426806761591210650461274014014359943121320250211254051217899489467340622953787171960519929300445246900565477024572259255018167388688006632848357211052887090823301605961852131308690907099394572126710374990308066455349309824950356880365029499986298787101826726040354051775150655883471168498206784271141883408923111156917784003971399506941707309105003408491932292979732779149958359674784356558713896510602131079015662568712926915587176864376272982341509553183724897536484666970187765773048800353375280015495045626453396454000440090742569881166870789265293237958884777595181372998154254726404405192553126986336546691700703019812415346970356333458913233211377229302822625394127421549852917917423152213308377330860878459310315942418779650217872438625283659485328333202473159296524595304435134894896778064566607183094219954151157958971264592191027442950406894417638562282683017924528271763036879891446678871674536457773378964993640090753073272544652197544056368251215157651997416365066573874592081711440146808747170750070559915593802741946455630011011367813753821924141440800662490728432232884804260554086414599647177008701616479353228627291145905104912207263383409208935831827137905358692720069624037174486909490961230440604106068483433663284164746168464956128504193983976069357051029502363406515183109295462839218130620189278485020071611327630030862946395748617452594544463225204370986572802660990179733936108765465607428476807771540843787026113934850229440051318721913994624127544024378927510533105679698633092930194256678331790971685320961376665853192113380266069224136044250922126533044323586346081605590700120894253741249614536552534197312544074863696174856621944735079611396291605529193372541100941246274118734643458371683641649972324232271736526699974103019306569333942130296927937798032767898944057692357926504368981859257075267926904346361650524355401069107429666964307066261890546131583155715963315912896536074595006810635083604530039137586984112560621211786446564304422543327312438702073884314092303998848652445327836040592947920183667758081189281284799314476860463829496846378188686223653218603793874372867819434274032744342869040737885465455354436229432445579248438336099274452112110088545817483987979451316123219448840087341480026794608800541375170807610997216461611474459444517598305336604622430273909303319811500720580818578805625420435871080182633502540790622478724426130422862859666089915593875129337154668529001255190757362897214069313100603452361003047920523967669303884412525581123785124186801760220945718229224925372175624643323582740263177154964701659138103693905867839296245438675980324772938122613576882731183760543368693657263015232138207638774332762975681854519400923148707955665677552754282332854554873612126406538250918559193174419202271192398506198294271277318596657102692143543292321838291978803395742234551902585108044906800420775283285495439457702072657309815399812092807280110500021832355607814691127275991850190002830239582437590522004518919715885673991278592621247714047768394545826034974684809795392636923163125002356505120490869471969163075946426304458134052043088455379650935686220728388188768569785958663094075855989834613497208529428539727220501851567138425990044274403769878989827648616580866932990697957502550604264100678544353077324131605824485372511463227863411072800815099447940992981309959452988104050462994102581088964724266250636351561907291646176544951082183491415772648478107075464115477062967871693580890647481948535994561407461432116571309812207782403650221696943129617040372617141367512744138758710735066644236356022197688967276770562672455139862480419609978643180036036164736330054992831367435222414050424253647905358569361172687678233048873177992659291069221915936635202775140294416675507941377843207853191424722172733733550452182914560261150199565437998139003324491455027369672118490776390466836147292943990855411790109647847826283052969559802084396719885501419743414362508805740684969511914954739897336192264621249373891544087659565730783567093560682071362562936522750201059021582165204268402746841997759799523012771202099665426272527702318481561875445815282327379461416303613828515101299712284434272764973316036155888745975720950476716094866189270884399685481006977064132005820172508949838840811640094556092253297461775614846708677974064597746297465650633709725699970190964680464395242536113432308540397333119442269140294308691362481547002926635929588096754200583320578558015647188892157245403805589945379770103828935813330390496319396000040500083065186602574439511215174782924998280319264985020861608232659739213498723931113066102223801090750286171441538838656223032119011319641264901993005963132615954578416665099783097869569850661092186399359840793947197047232948661076643375934968577845849342852789968629863814312621997273114526605153968694156566499414284425526228271845844827917529494248736666568736807217804521376733073640951610090484266797392159576906904356541185487683243540311175911022039339514706140317899633385949976525453570777152671752326082210335938595876388516851867754817265016524055115703363380704126354399549376420752590330949288546528230831344356154509230822248385869183493982620212560858534447248356723423475662531794713460137975374956252003644474639812693677442793923493990761376722002788852901095882538650658056783069014127710519404693750241622703446344682508599075841912665466052108277837336351536840181588704141696354147906410807749618164009612330169332019670383993559702021939683904919889831602077653258905822821138698454321447536990260121772502787412214576252494095467632640852514659467068427506493357862783060230154419817785949562093950731982293310333633017865624714089963567370560710405291478160547477203724561460472512575210858219831845002102260708602927745434190081137355766097539741213735811371758131057426755592535499302687689808457472137761957998271949680175774259371974993833297143375717091539274463512415056193571805757624353007101669279870214782334266267494894497078289259831160485545001073138742078369540305543357302139537800797183131450908809383862888329272328002224804249619466379614467502897027115276545457722474797699712531267023268195155562951066902644421665984949636212067657295322924089911717012253384371256453047842682324397889922227162757015101479258442245700640469271993745073704161274290294365653285444953378996396055779909853360874614761876079974649377909669279537981535338435279561570848103112084393514141721590567516584800200705432670995329182275088639493945785093156427467573788162681228522224287856443493831308909485714164719443803718329903243651571942801344660996250204228151681567640548575874928750586667097342674057459901784362557651417269233660057082841418589481075515091723959219211272952914074791308791346743963546325554041055690446487968482444304751821050952248406622457451877155774839231262668809976043834902102680579767639952917628541315599707889347206300395814566723349056133880908732437574013449306828691209393549134768384116953655571380716306826778376703104033904596977866082447309464556029754912597268409160929799192863794405066535243014052627222875102587392430106822486968441306011779632821577132703340844214034246360240627208537402939875420444843453643560907914722617746385031980005562585653977463824040991916351426350111135098742745853221148907872267347084364589525877101903304184169668517641389958455482292062118039315821134432550523909590212435017236615586963007961392496598479070355245410144272326230022976258726082582727366115365412944464140525736349969948609665597745085013200309746139408864179791440073602755766192180884068478797510843736020632912200758570594905346676808075919854069387348764530301852552812169184434990463752760093631233646695760364232834375758934212327146626996635521030393628576035119655580393871898645824053994995895426683007243913525768496135103981293551821751907896127124047268647892041201210918689301143794257451380344891927429509465653674258875985797885828853206270701950273643257390973749767765823868794201115169590178718929570984171787067200642880423756848526040741133072880100620030375428971818378889597667160856940436619784321532254149867931789354387510770524635307456962081660556161397358677053195341602352430503262192604536845671120420726221115360490247779954385293993087359473109627415073936788996096497198784913740868191944088432991540120669426492382392200727757529861257390246993056468049253302534092408474222776743110446645673932190421425256037207478086456424519220177861704371949237130342241792831678612286181407395571266786376495945070681523134202634986268043869480072621807092236020547635808915725919186698218996006616793311935389937860823180514798101197415279645342347467763962545438702074127870148240245458357134475286495855338740555265429816472130649153698063663153910863045220340874433170164974316764792751246264206777487951385639151366762342160500547483121335497257488738239367733887836921144367379491465247606437913062245513373068859322147979880000982377670450865539227573622013301340410268689437992199570280337767228353321259731604706724374832917422451469719387727245157683501617022358070291446873645828463590031597969112416322481300964671961937564981023558772461663828394489092003075604817719920131924817424678163261572749275704068313823555047096775216771019961969659838022913200704966267725481437462723298089836672409472630373008543972130351187955579639356177246370306995104422236027897761200430079056734868511594661556863410671593655606922127459819965702318507579501694835045921357434254091297029754872199841631397338740562758446279438147438455489496548796429459230420790678799118059275270231218833137526379627766167097982560534565754406873946352543718756237575693905093147127011210154134514137753891560099730422728311176477990821066461747896942995517893640103716763356431691519588402756450254290708550575932001037372429348207583958904000114092228120144369869250096931795494392806345277068131301413342844284184364585675659706315826376991135167923086309292807149556706802311244041836264183959107120385343571150137640593105215810351590739495559031158568173827849805980431797801215293030165153446927358950822529718390298793015512893275444313429886060252167039902584080100819139174355001130014171646395114408680453285795684418654447162191650278983771249552223067113204946481139203777132359231848782152402957128813302770357656592675576835309579241815018070081622666087427771125087185208412892417557730481259818407566913986568839581748207233174536962626711887038746602092418204350914340419925081094942017423733755002171113312749054304791768284390762946257112769762173115090246409094127900295514017565057130960256373727013557174923839512024603533705296094743901082005211801699436724740087129745406145158424645614664351062058033678493014500902854763847679090305638567407526175696183173549589786860218254037902074425692088073349581147223448987325102860388055043484005870591819178749939101559362904489081702222303327831748435888426909342117646556719857507594316951049908011172959357163553493000019160510361833728005034578483883427608963515755889092828865732800794723914865635338467684920404046962789145309706112533821732667043874971339865419221786606669086731564755197046856393981027439153192813982784634050177605352073154908131428221189603958961850432330401488106264710371628799651847085378953327745376825741753258472222629015975395954420796166191404130460930381137619721155630737865751956659658833633462358270076256120078950479262419265078019128528600957883951034661130862467753018504513485910462282904944872283666170638654404126494537823708631766911360301609255930497770855860994865890737618089564255786443594007701482467784859563328326946279100651284515617373182068915565190777386084721525103607439080956795150374468769465170369591830938351467628597614722678038650750799728600909936698174803364193145354264780551633255243802452609477203012187907259544048332727138366499096051481511357796368543745593184995451769756408724859632997963652667257610700860293288644566181054107958520865895607952981300578130306798664352593336492335299293928118926531785181253387235017095024824774900597760525234900195365244348562975323454477983279848030055162190965508798692531897390221446295826906398245232809209721804242728075469500865954520168297427477550728209930777528047053467069258955084730470334764025211735770040260342167142465423436818135397977570816369257356414002096513654050742324352316711873898496848204090057012747006113716150214999233952709259436439047741916311225474089232041105979876731611672738450330195346178637881352691216029931025067851043318543530354166853585068670364326013130794701297132508920593413341285833715192397651121865192017798418206216282714132843221401775748439288265717067499249183175801799261870177414278213415583576941270210913562618149169603677716352108799711269398282088282755775597080187393029531985069161654601461086763725751464719934053277695197085747127586676382698342934113923144071885229434378860851460356623776370817239771173919884063553422485353884949834772559724518634177305775390680892234352276134532409682200343473351907021125733728171110477814770234248898279583029029439132403314003982947570063890496695499623640418212611524026536629759620329514823299554179801964279274550905419395692555872081173357516204372793655962499754708061353499315421272918441857841548921541542754548203068495444384584819147345661141105222025777048683569180035376217107660908920920109665920015722298318756760557035044663132299371448823609099169690738281457135961726387504645064983615199538781791747316228993071694374258844016637005375668250704511369336505532823869621616610237423630109478555494992925646766722208990066088260673202163366976983164967254193585891514722903806051447859024468235029735452544559968445175511621075113253603644582706672916268058452238785996956801168324256997577195759996117337793801560432013280186656097976858475664807919063348408040611858751402284620073595692410439805976821526284347769839949921751697242777175876664988765705688655286131967767693742497930924205071210366207033554591587561927122856302922202932044739562339222736617057257783444830372110402291797275375106298873744883541982624883478233949155246397084629865455205998898448994207433619109389656583769126856942637000527163267891244668946426554381078576510536532284656654437339324483990473618242138338955987061345426346604441909175989691352318499869259259221809454218878133153565976195241952538295456203978973472951137520653190346923960347415832638071310005699519824823155959194807353382921061191975286862086827101805651133554840083205255054990888648801359459316841024818428876545374830455040470167336193103397988247333317312263989447981259199424795146700290418434274977199551657457799278224415200428559144251723060796625394120225073769785414901523859614112912561731357556533200715874076492910231960277706497258561888196055019449811709731675349867500384024893158544715691380032086133739464366165985102945058829908056258125042529832689823328873750259822592222555283294255029146363436240947905879288887033036599983611754839146727835395320783674312931269467645177391497810972446943467262295672033495274110131616634713744531587625614624030584573450974718741527558848366643358800657579684378947958278240835858374487170638324042569894914612061943678526142368759270849538794446124531232919567459921746592260073725340486311314800749778065226272507827674358081194613463639064818688755666075229173791937442192382799239871920217062854566610352046649175489600801146177366209298209884761856826515679630637003522146929124585711385966034907098179802129048723913196670659277411098255831895722205501957669393145579204698917554111681314735271413368564798280720751335478974051500068596017346644914398495597325935762106419849147443655550535282255831385211335565840791469288650444675440640030426914598028462733268236113736430678849916230160818149708180049094578849525648424916796910946546123204435572256272447466642603503400614440616624608459505914434011244696616456285937519600072253196510283818071537556754921142511789957281531874441743666775969072300931234355543421856893164327131419665538914085501895909228178936834330008463121160123608347588344056693795906372140689196868837144596080752710334922162684688749786485734687150305016368667365385409472874180427458956186861525023839764650471789074602486086808162805008290812352731426878051852504516012175521946526540275096065610945617415563273258375749028286680732975645192544550393517620454124506554813195361363534404690028589262275158177108385106262345378485339619918564412223079768466858837718922421423980811592893318154275558940669517459294844293023657452625103225632055385978536153688396238043713273628543665191481310896300203575456603680321611528517835921691267502382868703822629417686451908428409260213411423785996702957101520262063071095940535698374816150452644848998932292129413153310359739172157687536835230000790448128267528652174710855390693782483694559072463419855064921576874647716229970639314740068990225864207371603131969505746992267600314255381704761905331039439483412630730591732036251001876368231615851119807177941409960084266451538389450506472144683710144737900547062858702111670008324275565015542699242507224719258247031425307398249519567206999507980005769594409242520655261653709801742791303643276863162703231868228755233218503537430968047982357222840729959127982406980851407503656721054964927263422021090008862457905228102382252560657860101413294392274055373391452538478047688026942377320454571997255064652805130910785164475043574255389576679558866665226500276547268217209423373284931461335681209216760593144472870090369317413374063761494982929160301721660256215905630819832070855595982484772691593359172758592209542251631704014654765830108562579338351130423027309068156434903150685685224874567263708724266918573644203487430940773544295687263644625476327865776981672197049604578383699958232848327780658551996465755121355112499677389312953400208719602896908283037056185675010623803524663773476891804605578794233212537339947757316188909878164281618066614875308307728013136806618133064057163130050399812429551584953590110098747125072912318125949594425809072606450942172387256294611712705060013875864518079739284906752300241679376449237613519743832098959403217149521964353376888961931132554406186185400733409616399730755026691252872261103156719145484065351038533682302073698945963618339298347118002226336426298329395200090869242797161172018244381334248048564533436413505798196923096073200233156291591882834646226974690205710969001616612193876973223147657848934497370172560657279824218837880008515159403905758298667749439886546309638393346272695459447070630087497117928566897812270256226960537415927894109492009076619177899949532152681222862489811828724890446641321014886372095829849906096518880576147004230229143146617460735579305937144496634507788927619954533823916891455380021999105486873860097431421202816128744677429831869255816173864448880062495211110291264968956474767344201565284323660794466418224463639443452788759703692635614068178074037571908967025898220129373153804863076427842870134882090040086661916204489070000556589824054430418860654019724122940007524224825532494174218927497351132518919935744904664561989754881438324516505206195750199674241209256146353100380123554718656730971649782237937365935743609845679751194402740073545701813356809011005110404822274937837300924609578859446910907374362355653099265151448769697455808946744384813016166121815093235833673470906654179235425963102953790366155529591557641576021561440270326816920154005356581713539846057157595305819786462223781871250995737990187408211975825008931604148314633776809732872379194938429143829972602546473984792745518897563784662751945500748089487828360870648136666663779447405121726650910267785064521268250428443158091158825031994832003880381178303812337087047874865334702493225772782258691788904431698216377529972205497808834589907784572157700341753239917620189854657484543764443150287774775182667206832146115427089805798825173718782303483727895938029893061754889955003789221953033309955318851235899206172974803010138160196927112036557844597305643550698494986471704517988442618377380713042850420289615326184004360020087443847361163254293446162633076012463668584750520414444053494598946100945904012589552594292075507385923372273950199878463388252769311209268160150390647300749376487590752448365956513730823834816824221336691390260063813748914333327223184174702661988685054180095904748475678005474011657515246526576697432077000329039573508716697848558044982217742218567996444433865706207068647740101878704954184732379157166320293038648336948959635311587208473493781975346019135299661091943053961331280947443243090439505545079903991827270685591196258078016967757680790787421904951900150746226728105208462918059759845658474308338808232069715088115556459034412675598722860338771788958240314482236970895531305167646552019489280389018448176368386368349989156313858711106008353047989891515374193856299702229952266277367191199464510784864082238137286162404140850866852265197759791210456206375876785080512645874485554496707515531359475028984056650400677507081213836646618791570856249043693855873922096250836526193639941230720835992001114141634541849736372513747899776128995511838974392576111171782663355418077642008681789791705837298256737933720659342519070527884579429668581302576922427266895304140955060965044125330870262120787767014275883608236020506294936305859704067457108078356934174896378204607349952780852292418070140450334167797913705406390274565702888445509089164303890395299830374337808438963742819347716285730972179457507331693044705851551473508531080669588386242671825669981908952019838958398842668390006778301765581200906146261295989150812775153443169978812998163352031274744940516457540962087731728060308632231628520820587382817813582783641044970892690292315790252956452617052333522826572456377026772081537363413231167535377408824194136643320035073308475182416939013931140713143827339436202529216572861054338528774433608314481702549987765276140845023941996101840843809913313910571030705196354729504365357822029409780171256589788016318194647758139181458952688862452856652370459244517510823512540658374395076949124078230355372965343285223338128799525105277719817334305116770831458469568704601020952396976142417915927798271753964278668654284385144180700029831674662147368123535125677220311169168321424352459297215543929569030180207414925112246196892557405868106295138233930716413482415869499125746338733396855313028234902408331734601557123106977923604233156283500107067999987810655475993711295744511796886085227976935751137866673309334404896216301821035943048588569046284216769683897016937311698579169764822584711644698003681748149792510454164244762795560142669989368153947590400586758267911335929556213809877645546844987816017135460583159077799399542228342228806066918289771418934030229450963532119091640890649820649782290897699047340227771908053508330987035182873597982181130521013718034271630983749273921260572918125052644383803670673002006406378341504695895896057949264180196817328859283477954924826075567722642522818959844010863378650614800393489983577571418362706962140218620724078761619946067328861864856240068369532777641210640952558676283469362397270532372415895848195206391028096257441372906760057926418185027772148434786359562399014452201444902730326814570397160746754686297240038533716382437091768809144638976034134484264788374785193497705479287512629282380404098771851776495227445394182117192257296317106705224621608649810836571070569290529365355048119981676633970262121610085561524269070721223365906194078870122587483532997643963894917007669370294981464984263098107107653535418971758998567562699287228184474694476167733245848391266352337333394032215905649780123921563374137889118254750021020134680424991926650451351783739750073331846406851555221181310066485490922889767522299565618877226974338148757170360142836263609511929932487534014222417712484593063521089665697776849275571087823182606505183084050939386903387216059570598918828776367468474358471707722891029496940598732198162620408521929445764823053142218885942143153010034687197630443895527528192165697661054234571538732175668160816890275917476492134808972064356105006483485004519788875348044175571393664509079523916412940197516518472117199919495849461073834105230387045211022259533493955389347375163184912109867276620027834216944342592220572711101629609709321025048982161178462275622941596552429639079019857663831932702129720281453480433882139494596662845658069561993773969490420055045623982081643169278812638295462202213355471478679954973501250263903833383972583949408204764139427745938549280788024354696053387869548926429788253068605927517739949856818654918993071479966835102234222806310360671680599551871109851981056847408996259322138981445902403714190397887883983867500436852890698751615390794409759664220693884909432937870202276938543073810877939184886443365412988286227932205328321849260231506777897983817807406065941739005774735230483316135836818504901971620744994431662921177921009188524970418935639077608675581607305417033920359602740741131701986911897941787907048830399858860394833965668253089110131093747343755563812739164154059155580141481101080155604773888925791842829027933658223302038535819562468298620888899171838779771024797499440294496117572762149035731104483880278631198063814063352101924139287327007375334703875108260172262971327620823790459183255313040760331770279912928803515601989128409671557656849489317469431274154598197650011216242791726298727167273007724709607354416330718374612970795033830375268118630766555125409632320398060289252741200118038095391896218389184129061692024023254095382087073473127237586951525228501940654992258438132962690050952842081355110419097804462111378204176802460454239654750829068248077802703691819596974011180357507438614924056391785947751342801993994552469437712762809474363631783366784201903831482267296590116866237549763180848886819648363635690293900407483667343286254374973200611749184111357791467216435129526066763282633739387812500760508419826332370743330382218610075121281580498102632207278430699695293432499878684330499117665832709225093035977088470968184699362719023915049334973841126615199320127091772317114729582858248118739420306729784710359943641137754167673851989325225882020995504183033924907460154212776180503785056721989516887454921764947459551292182281410808445955042475910466549106538504909664199226741801788414777694798129509666783028816229200750464051415542850642245104078039316895909871088536033604105567473906731348340423098356386892885018624304242343544796872840203059462236670437507586493079776332813028447082157166359753438524609959294412729527863151488618277034922593570820909512770118457632775615307470208069386356298202795522013700279769630717035956130580348851838377474975211799769631319509419417985538135050748902416942601232635707045955432836478513051995225473780724668057838437927027962599304328266561251067464250573128013722503938837797427565177184400482859366776079598869840463466101892861013326204159438393963547925047309024721330747427269977171034856550023297996893112653163372944108464221689711517945137843442997456785281195062139127706015080421296974485528764000477442152517586512365783692638648889105083929608240678425064641872995623125509777206804586289222854347548645403991315534332135786884855188494165747290977488483664507759041763473865745906785117824283187372384043851932681719857241013557815351241079766954513084350690383244996101401860090505717466993309911090984641026056603227404590296091035475495178729396233596834916105410594738459766247377305083133372725908902424435889417619717256925291339785675334364238409202307751172584239750988837573241286072658361218935860502713935203720256933255130625352090274902369162543592770652611638622559633932364406627456412122404626465922826256386507861706562263581565433988711341966716424855447562839723112438292683739518146640552013042023146604582193610549932169889564083315664967611096153075099444619061173401425835992325123987079755489598946772715197783076949143671203886121757562822996953282716746155272995444434565067654880654186688457338116920535053166610860956982746766949401687382781112791497045740975506342129208652026618580182310332783856286286365888057869132056818952988455157370801088749973042065023345046281992831089007660882587571732106824834852003748622342172314777226536209141500754752634336928319987360058203661071833431267506467864289813097137448258999978309909311978629178150709308435388291510865912272145835517925402048798622309273598351264426181303097122380242488874230190554137727154983683829027739740527516084708838482992353773332753917514070812255536309396069461363422097435656361816160469448243902272297807349619066109043606397435074956835278060826608951772129772016745138952171154065290016116631746786812190204561507144421225644096713323870078670307176001689489894844557520396229799195266628797812884926963876518847702778517722919690073602718325418706303353008057878774871121874146380083520535319641735534149355580486773407152617239968800406987498328885043423001840958018582557497456742510509748788992696077423380325255464928684089708247699213317382902060221368892224199755019092562547875287137288895357677476149778973666399846758228737588392526931605927351000393663993347173970515756273363223715437199907278935804249857390307338398674215366665336061535445092665823040365378981996163211239765690831463122805637697047561501676463972681323823299358081870321462212040895449948250459527324859524497510589613375289777449085162597297063488151487173346724990855539136301341793690075327133564723399003308303349756041440976667855674657888097917978838985753874614201842061341941683785962385791585699155428792656181742838132876681451595515127613799495968680649208442657465526615207058690472237635822393670966541186823379206098013358336527658598424558968396281934598637042066990781240207929143796806095909755327720433804174470074956232920185278344910051930793459153760851234299895512786393964387632879370776513630613355742865978191894692719465578650669755184549410069303420089631424736914982952404593384859363583859583184455467971512808561455709196233012581691362644520069025197599811042732045752858044332744502459238759071461620962954899604973966140695456686144059106598557434816119249826331344034177567224679060923133074016785146674435443397226680334119206359249547209323130665952447921465623466562981639868887383924194296433709105247039077593714219557293056851063752192390299537209466163759681385496083861276248017808515838965508614050168807460397092847597915077891645312929314323977386089643093100643843572941812827473031876237412235444888326082074809919784584445945366757752148310147916868538791882777922646449848586788517925683157201724752698346097233761140565549148038457134889554353656529938812261480942709424349444872508576092497830360287972359443586455651606802341905206045714442396361039081894990180742767569362416343482768519477233834191356284084612192064490794885465892385412319784267943360675720745729079593948355841116777579535423365294288865984481610435943011400739823371865192518017092823841505330849890083100277737890634234873834714683575625255529108402769917096421540598933362809077978343679585627261053451357588863922811471209697325609378535109328066604201151733939292583273508609325298339449670093597524822170606851815107810166221916156014969077900232698030054854078519276751470407434894315634028855951493233679362758927809141343439531316595496703553213239104480791822141237048063586793584609518980533665150588057954204565734255437171052465511704332694109212492059266230126712666126980841120649999390572006485545394104015823692518031072818279803140329889487229654807036338720825491433901495427382976789886875177373848511544944209015289806635181903898021854995632001686289727540753566349322962674763403493920539711637308914015450084925106418681194092937797456723687349056634057460550580159074320206122026280462489473739410893081258894258967038180567053327663973078697193060234283033551603195483885434588393464570325994094383547669393761017083279907904669914450463716589160082979740786179532050586839591244784736938727167890202755673051050394824239234357119541255962848924513380910696224924149137430020452480580264592252946022376600606061736131411773965721797431499539438445688682067498969969329824693639318565906086610601119251676220726297785115346012688913352593939444972939423152473626313093204845909439715525474529218761578630032571142012192194969951138107063128600833340532257319212990471648165398704663913689829161936837420991689104338902812047161808715308129219247405210329138289604686101539925815707277234607952383887805949051279768910550532635104327099017770337037908814562781422938829116060370494413040566322131618968099910874445807788229836841609310285939335055150366495427555122824917590235942203475348889572020845656343703400312015443558253978762037781084721886272151503792357237358832435084553770166677742667837255864403551042528631756706495566311821248318242115197593883029569477871906579884314796241028816763572924272584850437517740301318418593853324731999881861136489055763600424794342890548840371106350315613264797383695544368765021298125625374767993808959280128477582393582232841189943755922645125384399423479550198107810033865443933024120267335249881608760876040973191499619060792160092607481132856963124292363565895276419647229926546181236148110987515714969354610451247180928106257995048282737688303947370146576059397677105664243221259017602930528241928745437436299260038290069994623889881466004670731790759292293932976811724122957263109535758562611241463985677967414573923018273690661772894726978998493711416847454301642247402334594943157278102305994784470767102275003581493375924192625664491768793169550387554083846188062364531302941145560482180307779349458373085268833908712034359848787513788096511799304349433791978398428409668214094123193700278504410937501685276051072552543962780626793445113743726574272568355353875294442801110308473717430609894254023925231497399571173331348308664839868575853342230462681206963165477139864899724367464660358343632674928973625627770537020620940509006268652204432467718108723888733900454409550767814383772986206873171118767919341165414586917325775740241252706246780799983426592710428630425202664032427653168563367406363693889923043078971130196881676306490927895580605945363091957415857969681061414093275687439642123238281034260673809576136998265212155872630046890041693239899452075975861292994195041071425148557555423885644099444393847799480154353296707524897797383355749204488912627664609903333014133215450038508689846653991080473794561900871086477936748255573645574639134895452138954640016060595016747225726367148358373479246157177055945581086458074249762005474391652210533705612117561313647805879811455673636925066598237746929492191770869321322486715811806988757548378419035387213455233506226675997175770109486934469833879659423006804630934180255545809074177588762405217297172171535804423957148146170894555190183075193073170390502592223639789594841693117060945831081097189580041342047822667692308561304696679599254353243359934530729880846714702747246381051253755453563791443536795436218168703379457658864724653924859262508680292658064788220629331900487893094059915038984095023400230402700947093352108274381856603064937773577566436266795122226694997817976719857785544761678752850537935073810823678840430767936242049445953866397630299240144641298064212150596939380291063291015853908612065566754621125981082795752553448342401569430385626326729592055155370206569897249087929607889594063911135101414519122019379175639568379979893114399422390956972995388974691195788928573282457789437874352983008780031059327669259256411199308294314608576880473420659814756082793689017923213141151331101030587105066625692752971851170180302160805730127741961534650721635738455130946642399692885486409749284103737794852069450106506224599281278530275544418096892817176935199166006260839493910034042542675837392462454256516767985028304882577261898157951172760658359576213719947216994655324045397251517594376808262985318372727935951598562978356358602112485943131350062402899469684844030496216139549928400885253115021467269054078624867218024025871930647210275855727935164625721575996554905248422906842620065577954071261901976395159491022713888307945801775657012223887504892455004678587842264384997703958595860487385576988336123072921079130755059529761832784009172295062240133257842760120866586748142427895298127625029607143758289511770500753605791420871281521102197016976789934458339675304663610716536056755460879913493402322430676953438390345449085188752440452209477625143758619877974162092627225968433903199894150508614014842737014107779288493443494257788397058621891097480998783240132405783679589640814309335705930575892617125259136804282227856456205386188075563502219390807320810692335457824513503394138478561139799827452330206481420508141346827686081217249238984936004543077652283342036844918832630232950073984701750826039111518166269657082738117182269879831560881091445044897552814016955395432983773997647073483999671857303282285075768617384851521002936023153796980309280226654297942454623390777945541027426158051832751031826280359137825761969079196048481158281531066910109248677773872191717923865421473945738342299844202037523800658488058490322359212187094469891918673786996436364879396530982408187702404176194896088971758701301953228806724933681260929112593182624021704956791400141995221170392691591355066519751116238221781708779123913144494265878221822987653193786009739237155349713905738008464265826910721418141734086133037041359044398396295757061425001096397937893248558993449034948421428524283451860227753835805570496128479935515030962289919653499816377154154911697724099585981299571699966659302278139895958177641575323012139015059666109517323045252101554015051517979895087606398613109057181724307127163637956263315994676983627196042303249866396377284048155883251369402207535045559489873855337127427904714642980842469068780257706593922063506355172724317860508760263797044785273392460556893088711538552358148155881909139219640815055088448008276022902601013772694529047327871760203570029229633424673847927540573564944235386385915834088692572587601040605711378707890630263529795479897782989701573881087707660628837697976565669282281981839012075155650040379120803776209233315997487139776651829866406758561033484369877813276781453938863397048302168694818999677808810582395136366958293025813601576775160319714691601223361094461407389494651137637461506686718517657240045405430858810495288855464522034974584599484734846021804872744806766045537122848741276415067238584146971805494500654603317192454230805225853489336758511957380015826202693273033553753737385726303672711637474078698679365424306361371121747722984629825540142115275001115882628891197882763412786692313514833765754535759778283613404919060742944565029534959947080177191654477736334631914368774802044637184444135881489059797534780125429724097575418306717473741774278844786762654796378986986622448833615279149316102611407544365285711020894611836766140003671113877570379221157446662309544922291666282167128351984307558060307977069656022178787600010677265317381621051769596183990472898757503331956278679232588925000910163936387477281537624831529470089534270595121483101621059284776251134436687175727927739028452704873584211743124445769018458994169826465193802929800098114673266650064133925322403893471202771434139110586949977044680005425073163937435453170806217293026282101392504000479020604829372657154690151378878941869130259292089107866990705464832414526096520422265920605667904695606949636746997800072658214734368989127761959402224273695663063147354733258070386645107258295881520027048680721053436378985162049119177249728312294598098991335134508369112439338825075796923730843574382562834012695054799862230188122031255249252726883295679078752263765268618025886064726584500312824490839272760269358857081314546157352973210054883766610175141887012486010536552296356664303023215162976056050841286616641993329587514191788967287650347239801403822208365994700820236244153465143165325263504071138720225876299138822794804095389378937180848791537349338613038544492024610945833434248935075000278972077923962896907628532756229375389112965627924412352658140509231097597645880925695532219103139631130257258611236768030421375268527057609995570235921705515861069618675491830837403605266059584304986668992050408188301392538714946796347313467092263376660320061256802915372341060597676949329000141466360403622107652017919280215562878939596818192003862360852669338060857973840012655158401672289495076764286198904083132169926280879526633463167588998845287255787896130015294287504134661536084293216580712972665383559497887572682451317943147333225018036974778034718389581417555890480489685557298886994140632860426125353686439758754717651905937939123547171604202094545165259564757821369065710557187072538340920724177998560192976572888756061037947428053687886614739118980456242349642325922001260052713246533771369157639555919482800846748843417182402941709226242625562683995221322479774579082570706516426739283098756312412587026260199501675129415000105983618785044853499303655012992457112029848621581228027333330165725877548290438227187072775577289165454290546710127233400112944573678019348675171786352548837759781464701968828730568146255358120982029553952409621483207346553367765134972195224367076483964212280211026182276131812063004818710467805942032972903136576985854853648876821648765879197464020107188318148451300998167541842311606503065639392430653190515037269213124784952853151945950290474088869537313444068517011534767053099162781256957395839232764601590266478532205903112265769256071844810902990247515720013995757414976861250884535795203585551040115922398545375851423045202483542102268118574829682212057377503550642383079198028229922777657701719007938968055698768749260050733396331031843611746008069396114514394518536731447168381434809614212512249564438027274008175720286931360653806329457123760693349080289483957937031602534120401441998052742991957920636848820896989187399263404162920103406276045374513647274229496437110579487112492679178636079713326038388980161989887687863027990718408879581187917117164238733719691620452543557051738766011169799471331591786839450414271534517442921718147181611858329073437946166800529752957637002772056067034487319425185218977069577530821612975571014903694982120951005473571616658931384116624696564543827232326989132561099635847110438672457601308329563863695519759051493431607905814119134693023565030668553849261950302115792474893451533633500147439596552745482866578060688403170870229007514293090548310166295936407885577846698835538225436909088591200270726968101318463148486099182517849025592833826546841425003561846235464619728181405258347578703176613159470964023883695515946243989829026152295532096764643843977637651713441083974972526794144005959318656189535398575147371442083895218035356631844308344310082935230618675936010053736667693349461540319077926902288355464212230375895058086419673506436822583852752723424236719771038152190727658723498232484664107872917878566761266383850130294563626261782332084381730021751354127605392518711631185653066196895030030960330308060138811164823348643695583616011555086405419991357538529476471628669168733182233273889494636260073290372942939207613444841718692617807600255240581896547196772262693644538589657721791098907158957553733346455406407390571134711009652702565036518797221247073474282360144036500696982930873929663157612416856847459900570828310871440998366092267028761729911623697228313014775355725976658765999743170620707850927403768227726954308532312088678545298032325372346027868725507197964230703415278719476861692025380554388149670229777055918283245061371966304653533819230969473830658855969428932367283563485848749330186293299517372482940393699327762588493389403408539723697528661272081071230256996922639472977348287828926758211102664148056526967448427754192618772344436282659382180967487105115585191359376420809331929613282007167249563446032041395728356078139018767384316727022029332498269273098619649225977491967668062441401081646810154091514751889224462026908559245093953386757279354059491489229785289691293371874241132014750591768357712132012445663859213769507448253330158830219512650957383774675107515748054151004363206363372201777243079174962283952393894808148532106492254704598555815183255164831056776678680008542860538314207656571274959675799769760953347429570497485896974013710625769596359219919315342413400428935874468508339281845392161853739574608270564029630942550003055823403530648713895514929854958137308794820594611006674375014890526083563320294785688167804828217893235426316778787057405351738241970341652872502190590023073770202470217294420293155179236802065748103257508099037554745954574629364449809687483145685423434270887109276785456530595183802735992408310788862924192410372313971216008735641159565384410247480442148316337080683373165997289911955039033055087027463737511006074577856912649603407216334264655486234221836400556825942044984907399657380858622936633213420292758146278646187103105303357399105632710770338778834674227334060125622124734415359915670024956286207613261494043870769904481849922065627725611228730982423726437234314075274559747379120273259510178845223441184406261087449265180303426084630193155013846992380830081424565345156250149160909095132646880172057666440695751003444766029572250654325682976933717177450607371111297819722330973206372440581378477045963009263849545411035425455221845946648998297089467174155485724243334247834090418176192855103011282248664045266265532903634642426877183579789700850618438847235582998179912942185161093732840108854463395991402698013088074778440147476104405772462695491682554881859593671749279371534190479045903438400626809932968463037362642705953682490359652598965101519324685273317187876211139838080068613846356319067340364923278012241431848029122380478018369374342563969269373285099522155153707233501935092588344221997089694342337916105738952570681677756790050977806164155990382865701736629544837956674699660050708289364613501352028208283614067602588087395534643010711708959421654190933470505755057470823193471549998445579510128544806782151340887010203753900821648050005663870085269584135211145483226905176624625518499141955534702600445660728268442126350834925922359033800161812021059682240598662922085004316824096824446112907919716474444198697872723032446043796448773637883655700975472734208225175076909658442573213373804680344351332505962998925766085129876931672909913964927807905019646628941046656812298329800094035608752645014821343351455738104109075024966796875202269927341586230314172969933022182195732008015679985967271155717484533943322705858172060020202294095151303414210954593939058846801069661382214579081567405736855730045541230614600320182593466064353074341830310104090328893019275560203933452887873554917101766810265505134467078250299531119498707233971002441928390571387051142201651426147659317816457653135155161829268838429105038790623981404641084201582780067818644864028641122147861839988261229620961550430263063979393577169305975359001721951201450159603924096563089057053146247013015475454434547918456642071915970067694019835970502420014407437802773986117102483235608387806751060014371030228628317149941467985808124414026663497258864588035175027424937951504821067287632730262801780951541036192346143589142375816980325648301460726210971261168445645209745755689432804232128307216889420838338291036871514014252229122627420442299002204168568351055354081894101482668580209537989302079180617134170655230934915292745774891272208857343002787788138097019380985831260546109375793179769527023152545136350768145421026163657479561122409336211034911956276183974364496069615054227256456422611452829415389151078815123465183391770982482521334238745052813639177781494643756652128455086065831013263849054989689755123123817063500503374751404523590516475516520183666864694790290421691374402486498075945779526822010060675386162222799508426593355072623799481913535516451832409053449759742319299481086201462483350865299726313770487080343324963709530118724099642928889129133664047059105589595225694039934905881429096459572138196389469154678660829113145457677247590625717278683752194850941443085437227482874792713980493636946900196120807998933763756054289132224279465499962653761502473730279709421926526287566495171334587944127154912107632903976529464898760541836710283877285759333705826336044096406580956431034847244807003797589124801829802442542501263805108210643755628595204595931072432130440457231724333039340308554602946493164163370724460128758266308932794123573891900399514272800492613034939887787788267724317966265958971449564841795848867225889369758153021295900986513484134147751929677029284696739211593266403344148362860376862546409538404574058710652068671156755149398500173300911353528666052557052004229277971155810852913300361707835822420965173863222295702627454103077801825028823030933819328687814539731450835227372097506532934544836875736329683010329907959700333616879280969654792281944681076140673269512886855370997827170970543927924640977571243131730629913987182641506588598225372214966211105763054796164299235124854238061312898888648034817803987659737064667764654333154618829781038772776019569083616710348012811304205722767680284459956645230244074788650988971206389725312067794223702728063638920009109259520992633021375572947935908633481035207020408897611496283171450149595024886143675546094700831595533953483575058629006283057277348510044654589972744144739354451453087008252868825538304389247256954242217169834526731910388398225395519381082327577537328966672511154750663982526911539861385998671554231591254055502061196478326661905913621654375214827481228768005742762171031238614421777421573000647910747146718736363111696349296508938279669163992493931377589148330166859234892932277380058615889866274440600996283603556284666395072092998470423259768593560014812412350413329208931898726602821990314203897932964521184740474002521455564474923894016412713210836169015783729411337252713191037422916800608084916137629193037854862277363979183176461844178857952999550668132321016608274377788940070954140863655900240998010527978006711990886518354192415868927113480902315237405820871003373337972141888351892872043594985386956675000795257019190870779830088075275940745206026290069619829605259548145946661293885434551706975856241875274005202423740802554964605956598471428949320552723509562660647711039803024868209480517529027624763509806111074577260771261725252201789942310436610103271313443139228837989383784040763413018198707636285052404236735068956257441403164024925752410330212413373151444762466743922064575417056276271891013832316555212777429411815536576581034223143881536481531022367744966584389735970536727719158593328456273999540646212794750963519254930288773859541965431581695576862564996432811429327708220279669707244058239450537727131276247193961436668000389583962649231579638458252141394221966927057481239365926664566499586499366947617763845440615223665197813751094485501996814953853466498954788683377846054712557683417774663214462271546901326757418438803033897582519764784125677720255375239744559979339309259628481143436804959263380100130838993707163873525960823226324431680462670396426650849915809311857384844484431307176232382115556022545382132700156682016427212276023797583748112581546828840518414047503532580672835290441397283799427996557283549185298821874390187195018783928903852771306153325032339996922869528797080550537028847570307994359432206995425910336601565699937135668438326428350273359248673185481529483448278417419105792328400513081664602605498359121934015719513694657224229834057692180192233313121336168262216801729684995662854219071854200713851677955204221785481254363786751820424681976589556483624269756917828466448606415616943990351355193400724988647331556787392242962632545469153708740305502854500939854642995865830170481531802304558279640070704704662221210849821077364929496788521650068545861451711726321929084630335562344178350576798793109287593827592996840595179632425073695599658146984736136549214647750340693501485924357554372481322882566558662649978520874941205322225066918912650494057365158761681538891700939319918538354872748432063099907800627511308810094385017483568641179624387764455677227132141724793180228303910010846492017727826129306622423228727042233116118710077015278288574696287707246453838838140736748334620971835726070995367590981516797097447473399339951206003230483458162676858139994747408036650611638733822676700611927316605806312969813357890224444059146487247219957629147995179041740409928885884126676523199995230617868783720266599943423748624115394667760059929913760407089262702348281598937880188035622189493897102344112907421945733292986870281908197177792508234794474345718131481784949446866382628891991749673957962421107190933398315888115580112713582269422694575402883412098758650875759864166218648179580636677050598993192413832768051341089824304002205878445603717950994388157642406351756044943147111460899993726235238861750784699763489745097992232693683290026189543693995133129841548552382428172616480271409727262785043381327057879492997681416576387193235421169681849009934137968825916291163217424697523395195714381036162652673086362269213731564306449594153818826040635045113558945236835091654587123776781911389950957180065052105737820657326795365266533571216604419899007167292408352537936119575024640352899719245923200992486884346822767560523613166579813640606735675805103363971943557627923525835789669691386589598119040430524917043425370330427332494775966397897436038685540446536228036597101068771658697464041382295246739624679124473036567024597836550621485857648041166840212958675751320484274660327692701019669130761582960364559610230586278512383895666524505574522238959752906680295340116652383085036080779486886560944701740986220905405428216869554797519690473104822771788083217599417203761738389435868707561603515149435742508179245158322008471620117579352444331127829782881209585743243772395845753780744291516101307647088853816188479723312549737841822913615325985994346205845172992873220923811036604776367496726288450838778049964203365817727520121829029500362345116525142390364004090106588650958266714671209888244429047978990885409303605279140189905650871711036136566931475531843347462650960041125332934590708742666231935888265347919183897982203692941875878469849832705913131058143287833473980730593512706393647403039069493712460188596228479327380471665486897203287983295149740122848575425828265021302383634569072797008504470748855178438726562655656876973932561040005261040766551505051558696330195989256128451036433571642051297367022167286934702279292195547684431520555472011988895328359101205202684987747787373846261341686004838886009916523261070318643080023402441691717839674387014554665267521704610558133712957239217940714996806795961947105468587811963795482169322835839448115743526805812214258565312663827517687672560064903442623614772933851349039493062723032440286695662507462848509662018207942367653954635545701085712607278261922458765963804301186458561118876512644764377633258529038182424815889160914629794547599258365325874870818267098203194017559057636913766090795810839562437249097635391779218773727919351061824774204838420715178758704272637426194432670059886796987901122627946338089370790227932462631675109835022909628643818352821562314269394004079511037165467596074703274040003748338473711050718037753425299220776681229049393103981816936664411066304348427190430845395976511938663730133497092224825959008601733006631105079173078158762950458885008648039942780597308813548833892534463116935104965238129491231959919376345708914561459522938674341924012069242333320915107429760298618352835528746540172409581278372633136088326290803288132164225851315567679417866175647136224337167852568346044508768046527965509783042184814902128422398799615399287510417361924969216101698035916403814243421250891425190818430777083133214172044815493719289056372371282798501231407659294682550668799606478215156878373699897533368210181485371013716500761419238111034477798301988760315536436021224476145796069031248614583196580224812764727117936017826476054415203404034033475073415388555960718971129011610676757512006053679248531124080335338427961484962360337810451152850495900907213605068503289565770335291686540382599557184466619664212423774984997152101129447048197229864386314966937470659155952683435468086401181745691152102806178488493549885028451725439267729288366664125584022482536863913245171856949600364017327478959225889741424559079320730756567679748205995198471319751444978734229526387641557637080945729343316510925448048140381495454742150774074478854513678077609872544966797116472322001643183519529174203092045211311058030631239574685659713983027827911797844158189833393153457233728973607839003586120593593398105918606827864481620745722700193568897542341396952919484628081906448545749081766960274178327410902590017024991179414558793913076003884584578508603609600979557801245132979582606324140591913464928368572118491047770948106769915745595405218301515594794571602383091124651367195979348393363185749409779581893180970290938870569953255927047536686796980375640710081976443634344686355159233504532312599809178923089400171215568933270809388790639064487851512061912448982958110712829660040222781027045473270567368767651676215626593598148442218035131072449356365034403775538340633135551978709237988767808061036283912127089284222953015582971663788544762495852063932368679932782764683971955041943152253547984831635577511622005571190405730364251863014774015624357389812135935072299128096239026574387948631314561937584440368790856245648904234091664419011424282186887524653006778775538709270037862231233930908802615214331181957226979238050088697515310897490970675074444536311509444187104873978312672662825978247922533103209496832826463261594612161192890887490357067607559082763103147425855347780551137676498871169975900808214013242306332376051489557450952935271537708583485622376805971275280952610917475779868022179707938585904225932252809983796870820870107757017564545407645816602474129944213060648545658765494404944960440947149214669472779029825979377420132882549352187100817235012061814305347002426212286718976575566103732426663780627155065563945025892732596299523441763922174980424970472547643973464753720164614932050565737276025434872531912469105423079296624771710151667339549599888151399641939969203396911212844425638456985214423939073411666992606458518169197062685953503720711489787761898849251074282502501977154173046201779528871359733888728149096767251173656863079067535056499001610819549270983277456844234121961151974412084557756620150586975771131338174780830797386134677330534022456304694517321997802485286086198073924946881832239750443569259474019129224543954797115298707239578039913656965608502455219717955023031923373733872715522198449030873292094438273166337308054317541372117798232089450323478767113443713588822514506599835120065515856151600572865983589324197559215435618667444050599820672939589294913498231108834114446935428845795136080088110614038179869731623934322480776316460402046863012468067260214089372402113757852056161130259795297886068996490057035861834887278588890222345504861745543829919932074063456399207206685364250779183254086684454907726105724424136720078419842177865335375089131560634591814590732525715534074822398111559227683878858763891851432968773709546352898595165522779329970937790696924236834236384892637924458351035056600719676682150672516257466242593879561355091489699896778320126037793926943982275648029864100729718694669261980869414656521180982253030554657169374026007345287394194664830108689138140770954474356695262893969912144172965409034261117728685529182288814711115040539539763497285522378749808609779343241438837187755355946264834897778163541277073280430578365010989637323435764796328230900611675060236607961607065611592332154995995009395923004177583817612627767812125857180864994836088032229044251967255802686808355058344259651321665257134995415684052643513487095773280440664552334848983490248484563769641276538930052795161138458043297793674850661010930257684412977680915993548134248475706314632250522551847804505382544644890186665544183403419150142467230021620542497188163755889973513478798236922030647465293154742920480121136931954522200824479268714780809677331738122694723320359251278501124590043906511678467307021192929357294722956533493738952388437595587096215676683107445539635953863607784439110530313050736151541342937090516535008191555274088161506350974978595642387260606604225106129537573887276498740722942319757349299801302049362121558830583442075072827556199416027845907178268738283001961421583640551462491285563593073629019034860803355446564795198019751565287294295283446273398375127880485664643781575816961610407193537494225622195011382831157274252089071496087871766200712408485440967575607461134507556823777203221442596502980141451794093349585168523036345724595995002362389214465328953812899756278233435515892432891420990608620393073775929725076798191510936432165806191583911011110391312241817609932011822292848288844379038919106274615202934906396229727619346232513554746146165799593199551219852592562880272266885403290579241579823324320624294855017810958758392129749314123961922067038556967367396255060538226610936547860520508566446454114936230740412396506111508186170154367877827943112863192046245301766513231118781220555712032008312984258287902763701438620566858390141436107622149195751228199502596764836022277951716055590418623754897163966135084138080286064733451325233663546296521090078573604097007486702765387106969753075848706537649893119830568399467114401733166287166112433777432905445567024595578618813507311876456120340492635500552221892246847970001046562251285221694194540499036549641018217685618535497053396583316778029329075543378568523282857570873501152089437874401871598882437882839490025491567987935761537193624251792895178345659351382171789335265041829983192850953490508216839207667179492516814741761649259500081268508312468884016412464208519902005926251665510079734605598478730957926536424632995529838653331424509829798589707586860831871917337020237371573939294857973456193320998958783640489884346687415177264182952962182037356116159045535608088306544379159767899084306891818484907159481301394125619979861391945786089504201926522466569998968869551291473155511517516548771942755906730282409464375620188083761869541448734733214285832426894426347737507935180726812222501617810810102066664594039722259269342440070332231619186207781436622527048163147600384263124850270647453376204594867947263979817921686090487388750453407985098195798454337413376350330184846539186433960563681800711561408051069518413318055346868169352629013624155425389983320864939578969379221265828962209753781605427349073315777998752651729313652903844439110499843687017453913503418120784519251341716879811960281302335064218040009590016584213288630063249267062482365482127874520996013828024209703632040152673139152044217403819738970123513770246909853321789174849424178817563701306674460227005920353999638900580382471837491992652281515053872636763081628278043235056732131469033843601090858028599193756217687595260176739159727461363798506866815704144233450282354243310993969351560436294176373031938339267200965425570360307262513529085413476928695997945463083705728864252072034898083603863750603442642016039280952087736078885017195696181425285551344223432258804468088790348494443490615436924720017842990601029757291523226806019452082979292791173382071202870903972676406687022225014990633024352941315180673225964798666351380238224219027478161401956431161998452323360480077120209135245457215620080565530553738048117927766403333549104511357002892624923828487066386563851546681955820925145804630641665468925014737025763765370038101116863281907462415120370479054637052134866288259962902118880376040861636848082252694943382787022712918891800407118873650798455768942194712029960044930512901187752797537792699731502591532986771591363699034959824372047581657973839045064197595380945632557914936816006520835487328402105161540292310631841587173977213387329932227483016997364264995796746678276518246804968541911184962294829282821929313130578789992219096381287523943468115625810989596964079822549492617379519017549600384279996626326753849609254490835259998264055043574381046522056440231481901680274397587063767997353510325214541301928513634216833846299277934554462694654756828618552902052981979195308118633729654659670117887008726267686589934371003729204256011698689030016658346571322229424866053912118408989120649304918902229970037877217926310842597492894033725929385918507919050953749172295204800471719897617024724278286919879553407246887890283146354458019198295345928280069544293404930631974261730260516921117577023264894094464636402007667849377912244606420031931536147841936383044413287922113456139375840798767809496635765240361688704826245530636409502684507362789637385816877797629568674308642923455155450040736440981654345930142498177642523918564099061633467885467008420461441653539624777821803331396514589728689493310315895329697805672259334898022581173401381098319444101692351222593471072759938082445931460779690152712159538609786529640424437014968744161672403619646286433658057974690138447317918960463484042970428894225029038797931708821448039692872793490978058593214887460895676671141119534440958070794088994151904488445505514652395789443940406038564910291398018653476544422188417734173623845733769824365885389789776478749584768622448549548915529182889771808749692392580222131335158082908028828162404126166433262623473114410704417528030847062421803560232281887034164085516603448258224214652464550266680155055090733918711387731893558296618682147708420301392373310447944743194106173185175091272789299548096052900537746977100383800986126664711259561383652921921193399431041432630373114662514354626057285889188004130894844268424912265247872168101255963221861134628909888855806697822958109478227450533686446379162852517038777703659978668635178397951139670488360403024848707772192261905264665248361090956051385856693555684848338606605922514990759863811785823495015539919919533926846676238979934144808222298575884640462707062354278330283703513060240951021097110288829677662599758969078887850771334579582344367070431426960600419194762190893520391265389301800428217557449257959002714933320508744313927043013153502149390241366263466486968141398162189001984148351904197343125050891068825254770361670268866689905651454169145913853750186540213383480111976550871366523874272227870150641234684404181436263766198248400526607106791195041560934593786574181368800223029966450000123695522813373828028703996462534548040875244821305556266040571598023760683657004090710931803920821224500668672447073288784079601241405612981434320293811368040335594931365230873336596210194885498840748589958118308487922324641154517602576136588068015294162722385440631558073327690768935886927071678086470113902970339168000025552414596705466962706936998624422405317560631254074879449917997800591566405008037117628052916407586566431323335142901813460810972091619639241996328946034754484678147895761092864211347704504532270758981775786470994548456030130983470805702706991905947930056247247989733316243776174594814933153252332408155921278023914439473298982618729178227645250440292422963697428575628902333297011485249595710481830537597660686912582003472137466884372374964976541021908489803413425970752761252254038586286698080271690548160553235585271752781503991715957209265000017734673110987415347006162647382708454768956612430237215601208085278160775478013149123336212739909282986955397487461148150254840481527884329099816247685779945841507222889751201695646550870985937798119687849397549527402123647142980988661755987493101341709440682715313454656485017182848081572124301637828486750174877947442021283728048982050143585588056693435243934431087001641225419834687011299725873504535468177830819572993281203714119307885958058718008707885900241670982339495892073560321577362066283384784695040993317941568746267360953243585324158212771428125115797090591698052986649810198258506125754721492955518159860114937978824365507197798368199586993367274780232938520320035293263854863499464933770497369120936843405235876959915142300792159153502300556464849870581595237075743641857976837092982770180129439356183324942560046190257486868361171129854657751071407261601695581047475664443782558248624200677207679444311813561075941748689999156834636545459374078686450045386252289763074374891660224908301387674446672721348838079225751230980006250915700613148140102266914290590078324072994931914525046938286230160845373676711139722417577041544554320907814789689296692162407720510812051054194739080975516394025187583501015941868385895979538090276593205753715045118115818213724568172026500980635179178709651335181395017115121927897740798206195527195250400188170656872862355116322131163647066409565052562556680378061922788910856102280860480743227124472728140025316889031373482881270689665842102871050217733119301572763553843052147005267598290213064594556727953528984770399573057405669170237008709934747352714721624709271845433359217812921076252934289865214774768037109618034000275060415700389763479109880294464845731402263568493746833441077301556923914681228749390365660306756753056379658781140777404268820378416750031791344625598551207606012752859127723182968893828282969887987925043032630041421163142179929825397419425504022195836104537248413329611054135099309658529605749809388011414877587875861454827872163378457428978795125268993571708438170380310835285741879550329054169532380979181270039282224920693793924877444974222309326554421716863016549771174406085131298616252576812116557358192285949746170064996388496118437395508746128774087639965870034386737737245839370677185169325889946672061994377219996300582965700004698426217439284189536367512095686240011653542551709262527448896177141307423809293438488490709101945186091825133750149995159460711701483712868972946318092596087441210416684693688576170273575908386819239146216498170102623650666548974951341315869795802384668545981897044640733994865495658489991654514964940147877682141734942410194114539334742795986836063478419046539158136842636435419287684453343324063561976803323329850170852176994912880816567998871422768237032922894033531346646070927949500758428596692335356163320400195890242257667665873223885560312917374675402624011456559724808465872597853301943429271860066501379572337445091589970552812679306177649190012977781772550399794930838765966463543939789317252058608433621136411279278358703005561048117451687427037930816742505063589534400220262208906751638617602317792525293771851039814919478054118768864241593813772631642461810736700966934322048337776723812374516535341755870295380432169793488295808844820301135165821338162193485106226365093583364861755318675471497436799891329364969240959588975933237405469490683717984611432383296948354938986310130948127447903479802642716544264024137843071467007340798755418038210655534353367532572104833945894358413333328604689270967161358181504176095573619664014325583501436524295229802443858575451990209191026182275438443289760621247031674721894877996435795980582515633070214941931489488104869892556687584984221774847767332521109972658730898475562783616509150707698775296420434521410163090339087553536294147819656403345765819040785812895403620004727074219096264198465135369843251233685173672489052180398008912514913145068722951028681858781223547020311502979188855250204833139290638906939098527800596304436123932245132337703996207151239394522829320906552090829219402500784508517391408660737614650756891431115528527456008692594584571278533394243041249564470324965036720371139401886136946262818974573526044631190176978193291674262632008923284707716564175820428899961822231872094275046779612267952879643672318703440860414459637267647134586626925744144252094967789615946680707822707271775223956382297094138184688200044551540354415025344401484105574338948660157436718997725756958106019837282732798567589724271820157842129137826840681206523111607332262453558426937967637696902635877833170257193408599407502518725115694960931499515165822640053571135439303674692923921628207753805234533138296630717916394741989183924030508735935180230160864685556314794634054912332844818751674960323258676614377364122284179783554992625337726647859243171055875666499247146150697178613050557693614579837589421316987031700336067223425890667933575532419352552729473306379932416837417598871631957690794852859730188226559918315777623629511657964474049765205131751866530859785924946778674757601652024860874866085977064274849507804604732779196775146401889009245204683411502763128330856933013041113696310030476958623184390194916430564545545995515747936315993901512315444969176246633594541794423699324552791695322896418078124896146632109689520518642263633384970797468294840063342256396409500246094050532861657555537063929350188962263111714799139602322344930095246461239142655247209727895545133257777249431094185989118837908965611844600130854100321326053547962031732165336283771319650179937234318216087487574879628475227670147098425432055739861117160290772342316196506077616984854749546801724306783484049968769540970490469522576355512209023476853003181140557327031918153081750268684527110320490058321110749777862395229269736565678930541996098562719217412785973048329463314354323206319151594746555089087180739420180123193208085612817726562423400780267764307857672152422883867091447501991544171325169728351882185435938497040609861112061784542291555672397529213111067615405573885915815736366025949081726280759021266845553760939659339778739676321075902784062522382881168218297317796996741014106995742545046319994571087504454804504671923759143086038708634692414534103264167813996227708870895523097888167201845767020568315762783724998294016717371290960108930490546497291421943112130054341664312955804063861684752432179025562285575425579791173597369656517231355169128769713535185636718445813765793654431073315506547984171694890882335043905489093206251919569278244043693469667297025091802841282676906499161074384976066086025679304162182944546067526907520800845648522234137826985001040168413731641497559245364508093257471730067305024839452169914340167484196378908646046136019203549842070997011230372322433142822644465478800577439231258808279785205472839064840442258135943482374936223400544192828177422276426878588969467588554694716988963955752159281987574560230996044733418519964645099005391924240691439012945050882859770211948845205868355388330463867203428023310212188858887390851113159128701281489479486648135218722062037398787816815033850103440848461865601392387809744090081685251298688185831387346115162953517260215428937009944996836543048042354008833555096135816502590848773580060169408580647751732972913351773296820920000411023282413822214084155125903824158214350089528781894879011217649308410857853191647389281081878212492608715340075461556595493139441363819639353442526859888346695867280701288761565196364462329025134794559644824459275937988767120892834603658261592561173156692868126167649075879662500196716036829402842910746850082508783601863420993530006352536933241492005949683468430006677432452312784809268271177190893680652245938831850514500918215560221804160777302972892755419251924703436688673543424960213421099188892974209027385457398781256083672116863220544722131699958627567467785142142025182269492328806203426647238381863331045806393770205778640834650830380353096530814190170284442799265896277855312887954858872977117746427468973660039403946291511218550190524311917037680210932831597103041165000424806979038201989306076797606267786592722047085207639614207989425689981357332326757275725119140017134074419705399304337805151063317570492074418252116049658274819678746278875698072957616946601414990720948335618119851098856198947348927854609040917934022455000813455063205369711587810904630094275989319488690733036634214646404176227216249789876056882690698915226291539646039384311306951754902018727747584437408835380830840469258095828516181653511801539009921852045183465320732680533350391625084701238183769604366750071536952890401303874710467486712909080811818809949080819399346277073582675710581631305059202705369818001454775595313220443719803035924729997580658254783708349741208284167602310985361056898134121013498406870032507431456444402213864841074212828071841697059943573117585263511102034225369913944585796454323041708589305668875500807963621799669836453172475552559081093367009543226903698428144973898707586129277070071369652488348285745130187423443179435678592124007704941286528698434959845812123738635738188137206831763708087113604552674000251501597930578135174824878706192996167302595881653840731885411853928323124645041814560576668458276238024689031970574708636267324468430030501637987483534484110847120371417341990794612160589462217691116856044463514107775158515553811952196619638243233205143529328182534960732357518840269841077104969307085529178827919504521609227925543710171418423648625374337369499565832741705446181089659235700728994582374679833773212361020269722888256913355220020237185491634489849261511875287335533966049783407462126812811489387892110192489671218520731784005878776334323056756704180401276519362139905867444002022540208757539146977372406892602180269123551197228768643456281250664238247752341792363279884076609428052788002783015740180664644973678805506446968111828031414915851317692999116183902124224361369977952851218657998375839130402681067659027460807589327404721010339174687634981237717790720472698388055138663825033182114873428345624508996918574635635745058845849582375420640773937022355815063850662702060468845607259427631846285671229778361647967138330305736600241085639341059382015684656539870364270998281548548817240957849252068963027319723331233389321167013237818307709072477921034621011870139734214190400745439763672734352598600110527655865774337899443611842288359097724769235055831635108069327159505524418392437843888782666805996594366346647249520737554177113938917951953768694160521554099007315483586101060096029543259591936181509457600177010109843718300157847241563617284043166369876297246479681200439185516654132407809286104176645708047144922765873282891131935000867064116302654242665556750889395469315227417151647682945971949387625569477434266062090953278829776132029059716655500154785765473649772240475120440970804730335275014098027403294429085971444885767303095410265931221656208391721487289175725700794847244479052008204093412352125146557122546016115992874091964682633856519540661819128818815057282731637051382865450044034124291494893543798821832391899259006224011456158622783542965368104664798466017129496634864102559431685427664155349308543034788070706473381620948356989888222913876104287510890031082102316599143950548515801664360190095346314702826168738605012129438896542268150895639364234711905286637726636798655754333862914878622415343444500440499867460500925196522843571063875934057425088287415957712479039004196246166156141933056654499024506238390404237570178842231024266883090246554255382934022529957484468017787877765833835473428656849439406206034043602616443380433003228706706021025666315533218370005598041229927930053207388930820699372488321139769997162067034206215067646060776625751275635469278032526459914364386180480255304931689571234621705484184178346636174168380148826274142789833052070713045762581694722693174631863269578172407190055360789159720685652749722264575980341034853676550469139827985729300076663265795760918415289626463564540259138315386031478639904220721409348495138455562758540642525972233205709861215216945127865056859806931911631337489393323458610316494826981917506496870012690793367479515843126549380051118946343402799752813611873339061419700558854760912965567873157887227424019777012281894923249725843743983612168682947712043406200286442991127283949713433174222072873837107507536542376063889571785735179834972106336403845309587729514889090782758349970825123710614925374387415661453692080029242236368074147653391974230096886833297836298878607169399298351036682972755358216875220841092742434677277381351393888360764975410316439256409354303237857944817222264208266042157157469590245171777859780784547082542920949955526067247128395411679405493416946891800503915339054079025668209693692852726748643119564064004835745121921384509637201972876846851408185608436729326928558901605445475196202572108628488986295085810075544264687098373169115676993042466935592134869218008505489167418968749391169069748572408375727495188345376059443708308117567855230320095663057691433385137945293315435979868836831007412160315355385561513431502896848569312431294895543361232523332004063830991806891561429767293700230763541776968847463600671221596260923971083701902738058901245746885336447203375301953588102337366206946143781027407071269530536827998584781468452691824128104684208822913582655970376876790607669156025042968982447138720694496850192286841494260087033531140149018034484159150722652064953343266508811141012674185389845529305867449501885652608466152735579102304366785942136814702449178132147998598847753970665544406430246117910529497185792409913646947365205915997605314138330518154123337990934032867418126327843864901505011860490480327223953833554726801645427874662446011854299016946803505218526920410313047756086892696057034884567481966543778038159890085403766256734963635742711258600323441501021070714077205065759708030940809326722740670290249905815307278151292488904987748821996545612252855168669065236146456545893790441594473063670830037606150389512211405455176977140318382529797480176807736768084143449473263556901930108059028202280934470721441022189161218604953818754644306921461101263439263268100660374648383606026329542294703147088335001405082781595890769813242690890869647180011906177617926545168221524791816756036033687499223269278314437463703779413285887743159809432415084927721720456990727330703216380508844569898840775240393846727859822057850143721522878977350800454079146630242814897904756292687251660276902435672393497332579166528651086124900897608100778284737902447398809707115534885648155338365398792171439539963489356920208303549707158045755343255648828933011705549703604185002384755429021424461996492888571280242862940479552897525122417224398293243581372828378149993658666646721515162459511695349822804426867580787623279360632543145395409456402030942324923616635135000916807878412461124161796032500645440264305230240413834286549798813757339426019240441588120456558820030763501634737233578406847122477011088289391965954552487208791192985753885409642297840440640350838434633711333269833220133338654872859038076743414997464190682606264695684169115902854836272245703334790564914438903692305065981905582539049748171903933403413005080505395024801028400719076228183313908611209423084403736735188904411760608470800290789589362202230601869381563091704978020388653383890628191940226441490078537196016652310784928391831184753269818325950666101259051314190413048951988213066767571961927044473837338060065763627595357801142869125062878288046222028199656410411889345336430298211341429455171884428450120183975676030005346126668445564638478228241337462700864337080500141824391064283964721408559502263375477593547494503609582619811475780765339227336805099100514436548206534749895008933054669875496812037644176111998417202355305545578129779119709307108490851059085468897172939135590918612926690585175550063255510472624573774203423611984796446162847689967366103925442450194767804016579174167464509561083506322710611606563052873594773665703007700205814606488161090017746101925132533891294651518700640255749375801189479632111385501783668780931306230395746920031962627302982804664729626128589081306720829066499849183798237856998387063514304548631438452263657035465269740504903436601211186582287135215589744645453425945763447131917108967599750170327328232389703392499287309068105131695461904603054345696439125093050744626583940248527806273356484137148658910755501999520558813381183854259823922957674546208470110819613023177860125988016647639837540573936318271846938921722722904005764074690001204009543458888509497307873326766487249590498845777303548934830000801455289808795551305326963584746735765624475179607357700577310160856869686896234933111252830636997876777652724930401184623160105840173141571460925255902662155321399943619437886951924647667431204767630181930040912739615033477278719528910256882460422878488716806964430597264207474599679474353699444273322218016997024181540319043566224133696681863427008241071230809127509320829541572461559960239182929939418687098825501489885078583352874057227520319111145695996869903994559035880065697475160320477989556493713410749017817194321120709673540001457783101061256382728587081274697897603947021316576303868878637887385858492129919826921775719044829927873221010938143753276859376359407508403594341854463303314594985969009529251463562267810981686220818069363420731984367800740165399802064369110161264495953777216671474139042953597809015564488616553296268080046772378801467556235426477200569046422348418517436787880460909282084054845794548962398432693774856304639160660027740942603882043347061107379330947671150123968130764514121529752941515157888334982506623267550028335325536275692199610707004337082016936580771714872801489295958028381468302403203967992897911869460263932719835906016680459759538150079042661368008270443581604238208097845622579866472754000578742087505429098547322886466442597096392662280747309524589276079206771054596607601914014557437852771458349902736964966403930658354971683854151034522369422710451585168363839737839815611518933358900856639789118562058004747952602316486726873104709590711261521556157908619596786182267419470828425619484392922968045870208498702310647481870967333789635580068364687105290629376012075037903580782881551240263665124747705230614360068575219021279717114612526680356763386956159253233122462301697110679717645607824816325274325907067198481194240879995420215026769771895673348741869656761174439407913446393878042934097968107103234527098586383099189977913738157665566253367298917369858665741714249319787713244728694020104650657622006826727547325449886449765074388629646947374190753198875897270515169517186946705972015611587667398970908926899490137618832636922625854044160274958894051062884195170459348216714764774094362433674912836169483250921566036637807983325231296582753380780141596747769261370109145101339783153456004011173837139718375519800290509460568089189116953848775155744551493281945948977817758776308298628134899016033575480406502115444795988445639051045692361228470774562921124284444264786615011588181687527255203978772671093082159430363493876949935525137729827268957318404907190304726657836549735029844148326372199626276275019584635457757427434050863053429471062817580139323182504322121754132245335438309321683493230976104609323041539970042812555156775080241642729678896445289428866964368272645577967049269150173575782975514695661441151971140993827894522509133048546794552260224605830116009135396579399646027995868828033895756087631339573922737324861906946008406277215425372967035319580158723979030494233361491885254450588008117908318148302623078627901678278349731202025462103081521389136112451456545715483653555357976531072860171286083563902828611216709374547460202215192625710180419615461291935756655602019002438362086879465423894226726008002640433818242543097937822961169509323320053250168165695704186797535707585973453054833283196477211876187389210302251909401360636909263242585721531581376079044300811897509579833154082605406231080468481178748614770619092729498576027126775215016139073696003088439475494073706494443911104913855642049430358769698801703206930537004179399473946965367411517485630787651587766002546699415146712615898208495013660621232997926183621642618223195016468931715103676924475832948749142370419283397627121570557485153266395271305247926673151437101561886710503084878979138555349734867415977371668236132284856723726866977423003895054049072206576163301568040376399428473174290330882317435764320607464243644425276601941433442849145453915822123258619485886612444005983068331961173385177251703725186982880243779015865535289304892464766712774515224922523098051406477499828124684357310304176240240692624586068146142116287136867870299884449770253915251403687656031017377110212147363785331442359143280776412812285418765891414491764530370854134928653299110576083001484186336007869102759213847977568050721410289794947941575775223523639003414246751763233248967257066248991232428989646046344105897932751307570820646964745650912053456164940191859848208695458925832297430018884209763979694085005811083080703581343094966636705422923891989826668804107524007325858041105168625954260058468743178624907678076387820668736976906050098870197686432151044596424161851550526014154249277317087154655230705556407810651700293306823119525662420924581771894266758058051537554197852006902481998964472040688102283498634475248765073756666335536360945407504225615377123143778417102777342906088533070755139465229215896049480407261957059357460761675026158946679016701392319400250641835065717551300335273525885783719399561899362181019379089121119854487190208455646483518982963604515584282184916878061621765944195895816453646446133325871598691429508400897587644110835666514454684859664414742775212176824912080296182218214989832701289881739319068310167727002420372658509859987198541200374016359869303121587567974170617854664035269265742932050451334244165085672937375619905674701249240267063729968502517511543113912155452731271519662388690618122345780245097457723956633550428483081270417382718168802649809826848687603876936169243532416024558161680409953174762627872673528096932649367429767625203352150983981681488795791736287483738782130307633931762684463808462435956050663886867735504064909781951102657177239662204215463328247110256805518565887554970972868689689847179100704223815604689622909904888686672836099895315124803769497864766724659585001333006934750235847998998684675683839405041633069234708082121517176605482159018008796797230374198240553804540144152663799410769851521653290017572294964490420763021484939957145787028247844662563179707480615959448938485937206982575432792390748366961310594447471691636819438373681653204325591219606584889442843801574274675740263139770933589520294826324274535891567773573481957412400496977638120488843465533291057440530868375767363827911291040914413582690946674426332277258322887458366861884614490165040554111992839223317568885113566765818002365774952962312950784026472736066982520815375532300359395682895211235294392463920162407310313632362758263695346190483882390100079785673633267868735448213897190295269104162266033498803374035471755321330730082521242737400109707359740023972304414511769077601920826268523900204056434187343897981282885493881755533197143827607003841039815111691445070254268775351248068310356415132769417322890518969238077991887253073821370294296594238372973451965791877922469676588453706839471330891884942827042063004846143009095717056355981131298643591277052736964777935288588623255293337046280625604975360471461353625155214819295181693999201719264044729521127710458230363884446472913181087059018731105155032338754507230949608539228298489177186979699477182698357512682781817549185788300489944240948594789585658962950644765071759277957950069236739442240472000415370078566898221443143068032165783451441560613837498396746920398552810774407019046376123168537536030668412147461810978862233738454197987781995680234336744487426339051298341604711375601081311406624768893941708719754262785911087254819167354374772951408489637511565551337380971043813128167240454062679608686217803455139557897583905654250387178459712484175185405168466307501526044831986469247898965689616959361497678741529422202409649752957622606079438475044340450128999118582795884536642039674215313084644400402455161427338744412354535309956505030740812560474026425520401419085727465890380997930846621646727372793705181060546595174209370672511326627010750191922778893746384339738411360695220571723655250361162826016586190258753192442927170737532331324690124907049795491971290906862135456992741374739783444731124137881545170030995997898721080607894462601500371716037338448791111512371025360972905308483706727826988095836493965986180676444793153070164450793031430601347234592930791674154582794152862731694330273123654833612928462588858546242963148796041370566724644043357478260996441486321784193291274664608011513442307103797332463856211506779786929347459379779102618912725721322426708801405736455648387085608709775951587263886276651180185446405212459775082010455532033726163063902232987192466287043271872810225326085657375707662407498465177826087553345050243127746963348066955745062171394115381620907985213320453749512121277214514908763692713558874588810343523039885681646452265733305466607128827363284337292762653938574132928284325813316098252779119396156999064498531064934906440818166427738051448290330140095650896151803680864704577069979463369569830991539170051851525803796342247566371717467640499099675758164045160582660348486387438285047113209111273154269585720703347408967163771430877456852639795526786878430314670707949776661756968157617257022314342914257573164554712611691405201947000916354529377672093454908503833716923411437257686268577810836232851918072914363140191212910415805146773741464576137055296833765728196421682722716262799414747174608970504992813199457640065209876188753040797809249592955363614489911093071888436349414925593095344569117814670603983015002953086904568803675408539671647723301284523520389455597876561645159979145295561847594894891304059960897783408697047770258576618719499212194819836955337261130891739752054528069660039641707684254241249078622791907837122277721888705567049187336066310435710876585089508228588393222615181162932581024862819162437864621399195254831829678062990478667957518607371354787389894035486477549037454699048105171613498583983379536194330645761214647729253489311480609992659782160242385633132710122812663024934999688811212853633540592197495946269538358284399066593484940774027804879598741620883891075389250038855199751219333368019606629764106046245213117185252069400282449804212793373154604445231338649419571912779867805766723451178762125474040322540609526316816800147550272824672771629859908180274842026999749862005938643175970336538857023972412956824134629704072807211167383215800890450550757028954177662254408590852533462122752353794950732088422718762518857700095471680467450841562361603416480005150641347877043635128480847183195150187962745492278407629370647850374982021317346249475176284499242305356965440085597709645692538251451587651930848219824747805153367607405561657799896868573508538240572858372933670914151826800695780173995718404830519755636331098699223205330765704353803782899080432974344472609388375073769649777284724644783074700611484700702352658110086793633580035430166292342030902666620878456757198682864680819704510514708491165927959435419619441857004997330736208657856434348808043979125012626170927997940089165411487807479121759900421042270591273421350598808810730540126699684175840294806275090887667169002118398343131542447835940673614147326821270231102570647956892682120480458196511943885611566667067923141421586597724424861343782002980612633137037813701133624528942334830856419412824838319724100500968762886890521677816769090673431698692079422344328908061722957311815104433991326427484914772277632715002597462006611761404589210743897951181486518317290951471164080548730384652421886275729973205159927276379301682957911162799047139031870789482306512279308216244225339131164096753258630850196564886875155267953337326959300922139357408636070054297817538642429962132328637662411667281583043481335333130138812270416059844231511675635720468584650228465342508310612821829550477334009390269684509788887213774794272735006111325370604489134587528770056689144313657733472112318994202597943156635535591178902289182851831087549527154163688919516014204427967155121494036937152302244035574695378975965330487217140820787491021921212251936496569715551175070384802795090897782977747880391720848444727418997982776996225219253013733016693248055130050195644906242568644958289742919433816816877098345330652662919341784022350007273134161697854737679492185885490663932533906205759202795538962611035855494775414864786548941596461165009939281506402769574409202823737815995215700727439629463273534409372942945244066876488460319374297147504879704281909943397361456272056734050963280457766408452757943328216912748419097572613294560695381098393498490394110659030617180428317156791184848003146404810783075433015106107300853420919079485533723777391297656804513215157397963894050572186435706629070249244716428089071968802931849483875778048390493949905771927114247128863749619852911280693863854403061696146794217982174357060690934773990302945274353413397737619481062096275336393675054978728890385456024613917255062329089966507310526593487645084299960548240310551133109866868593286698485053950778260197122461434805272616700493616730346052065317628738519933183488246378492496954407151944080935569501239115491417674242044452994330512370607185330560741677187464211565710101959549664786684064374909074685502856351365135273961525476301496798786027346454363418498726668440550409023011689051805852515652139935191122357432577752695230501402307039148371748245138527887125779407059011797531916351307291536238179421876044151222750068190337413160316074063416672465763294025662505370350257159348717409055327074958529316104984073536882495684477411342287901293316854969608188152997643628008533366136575382882607272852238999232131180721653357833941051705607352966885061307640239573242325425655898874102811000856117647112286133526877828537828167061861549106165966767377855702158278350778203154301400667782036240829203924090120087735019453593555397567198559905085948672964995614384130686259704198340350630357377322361376021844496458553964785124418254412832905382577946737729396347697465652166328743803936693390965017957014658336819793401509439034871215830000039754124315641942017615170308714882622752528818417872873206201273794193979944866390439796503932050562982631316917711397394494193228403373168413036054999636517000028570112990625677506060617096624421547089321179172401815753026689646115595042752324558402529512507722654737574321312223858131947723050609357036101925566949786018467958734718956393385963225571801828508514855855592329666133359685616282543617127293921760832517595725349555359941047793081815488405181705959478738190372690364382343193763349850034921313342953767639827737018732893110989470173498385261274083831388335758180932941332911242652893766956604539412140727108102890395012489881086169761592469923326824890418230160400451696917920349289226067741961735319214666887866673864309156610925676975073166252390614204771889753630081593739855038403045865566045699732034783549445176613432157200170787424863294440720812735678951527369410100579772104899193831032282235953767630803176022902967773269901802258482439141045291193131244460859395643949398805261544527686099527816687975660060582611716057073219730978765525472671625577325323133546481900119141613920169909586207627822166106548139677394765275542506208502007526288514736503640157526314489066396826579767640055393200518395374351586885809388053257535009409066018903667727759560598909456580188003300473469600503976925736304751066295144127858727973353382295034384015137772818824625651833474772535746723514726882514705092211841368880287808352358145566747104906493164954489650723652754420284145501719269537510085216251095084678449992345035358789290840292765369038752888223898552815681420551307348473028489160269501797856221823547922865936120270523831087733459105188306708906514962041651708937495117457092700161089383703369572847159913639769263207904103757045087219929898554486840904937914539073766152469618561439217901072682332751294362439584150255914154457874615040970588264378896203905095502183421998108249715975264856525990800855835344134672034763798071179685532513440876342848615924606950607650586846625496860571562608461847214057266405851169771951472136706092203161795450282170130309187469778751306950902814903928995069560136852053358818133113328318250451111178769658685288770256476141551114251498564517583454882744990796270671021947937938374641524433021410672506780889996302286403651187213769748470024635400316132033340036358539424726582413441657167517108236917158197763515902335016419666611741772750120584313151595557963447311743225262433889814063262168036565165087957918397376769735294936038821775857788349880891241812821064098888389226677453766974359091647976160601595119665496011705762133447116048023358850910086962126338534167951055260594862513985126889944749497414367846302701218266851793417997224968216556488933725331519745853262159638119225323912768664423689884166342041479032635303677820452983311887111211767558816391028343652048713711422428983126558548806411780931367221167167106135765198664380980909371726183011582300640967975997457430231250885856911354159978762297616451054586031220726613900263073536722333162249589674345659348041952773523522694264921417785815890102370578857551785848442335919900520281683852197236832686333058433299821407851779549135589357724089227632953343568156067699756504319151500030355185136844948850449836373781462966726047034156741033858022723529126650366171213040499659277239433490491413188901527378831996854388035412106077110276571076536593972758258257965585207173958640724343634717762870191987750624763116670506020936541905388635165954932712922884721255105538366552938986592517654679274544495439689641873572963205976183893306958285397461791188635905219241926531489767645621022147403102993487492701246341891928195783261536055779542280299366048890019876850152661886185358819567330509164737489890408217540298914397954080717956989646499251385899144530821197621470132526874047466768726172099109650970118975943432046600543075350743741714155294017718270692646461621535030218970549562139717343413877560520109725613969652716597853267053737060176997162804238527244799715929468112643436675457222806730873731261729221513556579579532996486141287104613021514583468906635772406795169812975109465457603890319083012219053339877300043821632385336271871071566000488722439564349994006960324009090206698082955998389590299098237234568562105620589852991112770661506974502149753005305786175706166635344027375774342881673341063078333805405736608714201374047703622750273497249251256256348873072341096502000559011300041733113531411245625716462931348090232932003915137807191097600002320093283360350677207141625496283925970957695516487093900501678929206150047030806139800838757710755968010205734181582918849508279457125752866091965967005926556158199166891239388865772327105548337617231462956233285334178246007706771516453764823863423441432733866878075920386420615117388248583728323442851486052225796363252027604361004656390017869736209085112011210432107631914779502527715763216030144388349961345271888255600335603157761294245717228556811464559871060643230237011349955376848636499189808532445823523405413825637604681215669171352369073422426846354255027546971434117595619756002858287374051653610318178167066287286852670210333963169602148824771234629343475660203933682190771256715772820861498309330836561011313858549966522407431630065296244322258715612104737515073442185887939499234697945096350168633490623971928538180452938686296930765348869627509591746603078607153895353357031881263816114859612326194841981082562273837508446729591411392515333231721073457078390381567917113525563080000395142951557430176447027949953044995039602837699849410278039702067652370665415053911847495213710565613609881839077223763112027000751079613282004839569498120508939116199554417026116666958328285145539819119322813868670927435031339547636757500184524441970701796128445261293353511646289759498131716843346713381852646022315229694812996816818247130202605258430687243150910815017291859819141341323285477543687827784690099221748145614766622705668140274252467985305367414780649454196952222459831049004361167724414029520448898245482268428777500561335507312647709284980896457688228799761332349513149257435375821239144841301720557921786776726750404263578657910492825008778581439538537548995425033493008711561513384532688496195820686126659348781311054378960105389161414144860495208154890823519571861111037951257491668445123494843253825646455139348453849633061423472807715545827861458847342456057221078519868801564741853362897152837146749167309685555843960963412792959289637525149369766934874862353842275097912382304438941787317033861751592100395568089879842405333965192304025916093721016455707741423099196793928831245301529008644828763899211181157163167539600917713669574380461749938908532446677113848769969687086483798000977574172749836683455735160519794966794941295287255977899585092601972971245412733850101483996752376418101456779519172318361640879668376292512596879833885453437110176323908661432312573779648626533248879202976477984944982697461045481514061549997944160584383602828353570323464109806813083198543336328938004786532061808002513423526092507179416593729464489187510002226519076971961239743527419021082608293348409250629649551375689321592234334170842174296511218636882564870253324671442550451992918104139299522192628938912581990086038619465510893612742307136637935143111582415367012317690233135956448360093634920366680205279954710044276344406891516418896211349006332573676426514747933137344862573880719972929080308393090372695632173117326429366309967647867577586476566892746514628875040751090529660940328034564114296757490757712002597098975503035049829312758027426655603083583836526921656629061314912524777484223844577030160507044013439021196001738462240322947761101401944642641150898764662033154096056956985463460192517063564790866801280743462819945901132705487349597883112111758181343317004642583230704534758836330739420970182427045720616185786849960686981906897447048575978086049546297571895709042479302311117119286840875759755369810492932558695491919370294862691424084677937931934401130106289679939053309453736552347813436112904807421869137250384708555573884299984675853877943437749649533920717292670696800856246104904910030929313994990691383445598627265884282683782996815382924976011979659264053777069916632482071435844993114418045962992704073864295073868683663871172019271626680917271782199614893027828322141222560830360529540393768989658139811671797898050609532023562566483718824164668054518692504574958956098913122360713242653970359225452401869792918085863745964373663809373195530455429017225865724277662739812142360463717762227029493715065173362006492015345032452698997185535260874525730405726336889505517364720333476866299949506748664041455479644596559164684837844856375468267718030392880379080694554806528980558596620079208423446156214851964579481779333369655710880209280825718673847657221066299347664136740613629586434849328411629393985460655490574467199501560558208863912902111635310208065427785265721870701659023804683210971276112840332557988015732667885974808013882897727026369467798151384467583619351755840804548792466678271359281995901808668790381115702369793170086860356694486225799939840148521170784321471740957985014057506385322187607501918300152748462691801777661855330888084848141227126643677351797078082578651392571737069649747382928272833985356220321555375425428395938500665239560994236405273401001948989439121563998108961046779614481224798642888121753804818015770633625674600403399192764181774639525311090027722336535691554510581024636776403060738471118540002151808130183494399361354483377245717495381152532535540396646920748708329768728860272735667503142266897316824472037032734095525462477587971513058660994618485174782604740229772922743415075767269820848910238659143930198529782107182426222009482276672997771977243114820276418804949018202044331118480578239677849877921366827819658165188144466214154450418838192174273374000538962455501734524382942585142726055489901682591809307977864929016707536664138105630010032493861592393538039454787869779345553951674091061588480453470862803709677246597414048509610570888475728703191192422679618246978965549828426477038208828712363002261966765238865142707699925808038899486330681300585232330168863247904569623897310531306636351615025837587590184399298585661030383026832425073339685231116347636762654457301524212127367330495590964973398104947935657953676694389684676577214547477088941015377914671597999015063997665658517561703143482836173788400769326357295709265461252152655173388845577390066280171398110375282197335409068753484944854020583051400354737172763537500529455327120586334593418880731952494863862859108257269074275014600926477795310937854217952130025546147056314037599286172073826059840572662382412080522863748812258146919611089276774639085755938953542476150782190472970748237714765798974080403278112089874650825563707791597790604535833471693444805170235560323734051145820028241728464371330205262397491146047180452059301985518553200835345655524007933192778812906049588635642105439302798492198545519000124834743470173420051007880440913011009481466834905038286100025459102525075907973476731723259178393679638742554386598355184457268207851158146578572824420139416978507377936768008135456685279202753556943317610102701369218180938409332104096460933496261343101471753060911427874333709560037498836635455133372481683557842363562836976998188209508136494640072919238516806312150708441279883644485495431291454702229424706584901884591995662813597155049904912808430412503523954629202956728896203347592748325630222975013488864724026633972931801892261718565867978751462979153975752429887855718099760814445209753810284881648235440796205287153710238398810223138315239721551234589837396362800634049411253000619657397505650746995097639056407214260748064896950998511588454998402219052589111837445647245495510605949058830119935952945019500025765072825413038991221348534718083929787300074193059052897917890398599429908869352069573569992574299524313207799840680038656307258138312780649434706447963674958020834293502097979693188710212639760587030253247906818601264490000317904639255314804794397926793812706920713248899101341045267581145374136152858099742004519092707185091401724368490053863247813781664968016935272303012814591440551268665575506598882411186252546364343989799301558272411276132807795601831081739290502079665175994778379172379712121933694830215867939503888438097969041727017795763708600702106563671070648765338067869913738459897410273884540141321778303666845757433480570069269110941235356230781218215782394400451357494000585576807428977354668639025869562082202760115153540856636271849219243813197950328316743906870178236115790522693118612555867175315355307409611481859268323030599756812852582477331745336980834129314926122703973332231571996716341551923970454447950300911112347382456285304721248036713263384499176647023439953713406460380248540835658278602252539358463400300844834300117156127353940574243810337524513495158191519130170215160594783098634794808397195610447906957572113178262208356075023398273382031241704103757034418439487421340230558959241664608339503753564849563388231484069374157808501467898158895188799631963818413667427890321997433144974578380476676989513481499719623977763029921868022152545269543100223647021283007640924633977487669546053465502222378455380453610391206098925895836706724487929796419651263720268123654372470304923491765521955494917618285161076204236890760014465070058961124276980571224540869103500550747688852150955261572390133342772004588061483666429211583774026176245324782521428177643034435460826642393366998498284275323760359409428507639489411840983212569928602854845383981040201636626573113424601164909447947523503351539510690533994930967160622717492446994075097180248644760328914063297449442405920588865808310703325750917269145879176224857821196439077848304192363547715484092132131674927773684362447331662617736633014164179347349766085486651970160910788953485706902530469869888503805916718556588550884268180729632714428481016443304444843433559220098808484838219746241643177668536336882262674945529027522129214463074547610724364679294686250851706683165791940632224332847872809666215361693516290379923582574278381974576379618126412737967816287688126212913914027375129898814358057877762196343049657769217433875263144475092499051153642056502141293626739566106011271896614271600787889147995610662166620370597253257524829065073727953004987537002526601787554107522285993982413262365026806970142872592277531936012047875711648150452438451730250542351843248120593909401223692058867523286821640852391089676803247240910652534308389646681740669576626760791641478377642709340685308490056525307597495193233382126785724228965264254705188354596354285513760149754496191990984118021933274363009214225606619937890026488938821613505028744535990447930057664421912033145431961374429849978528939374915117843468572289331848147512937689207985398624572389206718251707610991145479804332602059973474490322725062448703384577453940817123218001049724201776841203765684596400734831775930421863587201097252180214740230112670712298279129849856308778742923532533720860734531590306174623852761933601875561384222080018549608899877881788921553577700848551749070409789899718160485751857554840110249170305522207164789268681739157122991253673638488944732694414781410628468852134739979521868944065244099822343437986563301187596742636990269110700926138885302109850102440070773983375610531521075812136632206459730947949460345421837174263019401670551262430371876053007143339718097264926992302363371081061496567619874669540910774130248707893092950148052011456409947146081062409655002796480293901990805152114368103098425871943527519266944694292799874747767590107612361090773779183673084292798354594040958066560081530523892926609563074786823035625785432999946411030016185659016241988805711799210802973007469931682021405045652203335620922706206274002486045243330616616145229436901993196802535647662085362582458704322345639546113263614575984139737696065457186118751893319271234018105613025408666078928621509403454568314340989583268935836783966104154919077730270999676494917627133683485187575106564877721889612058978632910982125294951571025777382074552054571071776359815932248944212633083790138133124306944813726462780472105120862809717457318203553510875356341388194989618558223036827109971344883545226781492918189862744447193545748834250307916986540538151607008134979360629670834861293706799123792046914886058306500281867618797394150538519671783288691956911658939683074481699904130907589072552793763690088592451680489584486403479791222017988765662383395907583321501134223865975223279671219400321112166716031133104773574227304024279517364853301755401822372558946241264200490113982622042411277499032696957567051247956169853302048449769370931866152430592475515879347037122246541401745602257248494934378148087945051477717225691542850668751392966961154672251308969462356793461794855841727807929697702280552143806795058587632220210769422211732533184033702092298052399632467277717097476349918833031454676370343514751632677998291825905791382492385700746968686759465274747321931337499903097750820548930349188975004320859132217175099992293384084150457213115881973459674633100766364779025207889625076441525115993751714553242495963203222766905946557240137257397949549247751437909435103301023757213693433527391353028494904111137083924959969415097349912508727764843647461912461658610922586262376706204463425038434618648400366288862094072207582454527048870455226150280026064438904275823781019938749716198793272975571091351116697097521380659617359617228929997449116813216633539615779221322687902395597145290397714545634151080027282927760690906057891971813977825884568532223514377692141459632373686990391002508703613619288461966459335955278441681182661667752986206384533768929760998085925045979412323981156479184930471350831224682434652554886591431451596873365036018043844014711897537652211639360296439853026339492092654537499601249771737087465471048262766751011445832239211376860149383957451405454864047440472520823112314243340252209200791827103671279988599217642763825713187380198010884676486312910002123817218864471272522913213722394688565831003971274867084692370498671052217815256100388151997344632839283593388603728073417691305664781856773489151468138155253510539924127929234067353008933959133637044450981122085704761385853965584758534761603218468737668203730433764909013377196085518140505154478182646815612847881144692746779722164639035458718952855917826306269213837975583997981392791192495085275630076270388213958884647476078998236915601184755414481922218491531674914829117652689761364069287925720461532327120901620224662500941411934054423835634217903428968757573672403771930161730624161208865068965336447001590743800794505015061252969109120058341753889830007336155927511895808362435448441655657820547570846920711838186563909987663320098230870097967058862413006890609830001481396298730641205072932189675040259868080612637201948072350297179297952334071914672239032424972415396634365321995949569611517947940351773110266869958557771786729198369261641148230533397562833823246506826168222416422861370904911096491163544918959346442376066264958120341184121929736174870514668437114432988335334650463645124716926779309550423715347615578161095766945908111939718154482334329795613729722590476399777313534529433893993322771691459729966810704602686609801238457129301736667032327795920321469305952121144464337861849399490662761713895472404853985342056470652367703110779069864333737610924994547783776639247979303451231936120183505296661203257114784141978921431679364789007225069570976628788414866674486946716673240532380605829572267999678823849957082253586521353354519386475980645001722758615755585066281232579940213083718794754288882205006289718561008400888860432057067208298709021257607800019353100741211112886695909297412383123782278499729244013286420524282703429846115524804941372331691718427845224664654487888546017376136220243761980359266657878673014040850251687012954071562098347302440039732763061846575024158016569043768932278130904039091356693063744329776945547046169526416054117622383065056489362037041502315109156120003456226025250602398226833418921020713286187647355217580821965216397218354259654529645862903635218042052857642060071491597736567108178562615346924950594425112116700055206050167471523664222690062459300309904044904909395931056819332864600718848673895172234123192778971434272370765318237912627464961017108734072514119419883507811968895452541230178730750663318538170104898554602127122729542343479375387933043243821407087966825285485631323589090924136963094747480572790238328837317634694808316332299390477530012984999512600269292222228885637714174011367457425398822970430527396976827029561949918462589005520431057559983274197439012959041314873715356576336215668494462475501436999990465735336151617882056570017731592761274800495493039536084243517494518719621242682006492136695673572974153851718571560231808652776281369194268813204495499713762762374220367328246003015434896391044101153290334040528957131188107240329255116316122378088951040432484606022931008835185727711132509119081379647554417960481442109125361576230178307393401222807590799774923014488765987120435960281953674349311993397551053902069014010046470435341547142523809686204193319946430064545998235100911729480661008127066314527063347559006551236043998516482805115598086480948376972800233926285323911610918119452733205974157002453682739207879532893592517822790668795189757877067499839970159046427267645282621695228905676420020961746419596302870660350327784601531804258469856670322947183267962391403556031077493652783782760378738751413759165950275859964209597359130813747488958701454758061257579610578422878987676920856210183762969974941787641682449831764423128017572652562898537541950678671110259868093332468635520782193589228672113427960382882728528895730174597371236647118167057446032591394970857520993092803387564545504374645708479059902061847223473667737804593488424365847976834849657385121444194480371779371750044758917444662783088447504628550821206847550936253619445525749935952394093974919653832716326629372791665565948252790481484082091402544289450998743462028687405741178739709365299608631370429470797653304045358279335300596835558832542600242001006287711600495778490503609024628366669815566901030655617788093263462875973844076328807003079835238051676550909349222600306095643463267567490254610467959197115445614146297783165101970443434437741455952563678374898923746036200263981127818783399295507288083811656917952499519162863202377296003168662854963769805645994834985968855102463148161159645063223286598286697315329582858160965938587673309706157103716614775822322914302177269496774431411631230636717068641757689438750546194259498667241501424414925031190858238906180250005517063276224703807186667131375999660058035828580183303597514951421336040189768403958308980326696182095387914134725258391653715035663239860284592617623415956980679234931130590196769368838681076950265894351436994183924532300891246853741789293128456564712133776234741878672889287381214072753520622780254056607100144504008895459063823531958638141826020020374820127703430215053198266986812660510790282622646241321402265662339057163583675349749877262863551790840441899243275894265376439311990657071027847781675297829755096072891117222185706998194582993380619349977868256903078876345609970746255344191479747181861613020304569222485292608520078398383782306784621954138700729238466406402232103071186933736628739848932053423925653713936055580852919660932937077398775096328656162721325728761190663983124202002664333050222380059740463298914695225369674449888025948954043110818781678436876690491934379047939155351420309725811314088033898013958690878781788915698891056971704564169149503230488499954895210899837631042218940647374019310647692250264200503217483466964385707551722258975215266742357850705911617140881019243688826407130397044692541747895805056285041654998401907740933899978805677534847445478209181785874799222101649528169940211320560112622543732118018344554363974046966509835613092183938117003391872653814864412970512329835060955230428753207127708359037922939398885485002894232120542372111265671866272273907809040219627439519528628212438920408528521965641305994901578403787230002641294472924057346892138822449091175125641287103407634289361172589420971918673600316633674929400762571927278950438586427108046782820736212279231567058616593178423418395522413138037729427980195056614381780521016629887971497085168404803573242698662318760265577198965111542767051713768274454484325007742908421213294912762101721033818847758718318398672789067960878298744364561214798380634556359948152784972188313844425439729221169640001505596498966982288639951314045407096870664861614080627654101171912956886932089686984716290624567959289878993206210588901352651045316618735017993932892472678572577431738217318257973586332363751687587029439007207889806114283336845291818830887973369135808245297740434512470393892794973321500633099688745052047514714374681307078402738760858727690440159771837332503232369825710706800220555428716011441613466160332751556286901342780226363546938648902059711584046819476151657938319346626890233049385286308968390572563037323108379330507310609410585387536310588121566997806823430286342300075468255987153892119834225932381216061827784617905257556768508844221269333866458173100481736266708217779825682005828273099039342210763691429360249734968226955847520807741665701123188898586952992300713169133350141976068552675023385238201509523667712561099308071609188288567929652148389252294525796949569476942251498398582615037663362009537785238362188864474581568135242685313513290749835644577312920177331146353867551591495665905430574472378879875968980916040062980468413462883165910122559673988989268919639794563914290560720786624404026474226497802178135606917912998797562801768796219753865276825428776573793901480117186059186072678826646468277675528351829909098557368021101596111538508560288673316150101300008774799135776628992083935456420629975895132700661806365754489017499906220421337767465400837748438505348668964169685744752100388248641309136169294824835457203725230614380225040194461832065427179903899710839941879203433983484260146411807764632447672094102318231527191388597869894558601714856200764208413931439040413641548138598124507944211882487572674101049478256755888897973087178797563140917594803037823552655811324615214401639600817987172430629547198353184552845893629862414800105273089825772287420847016096282059039368598720385652302781156317908051253002469471032281729289256502847482928292382397277816159036758425246244941461981399161572720979972203410509601917253017841775262918515634670128782877395727997555988343790751628845740897578490084169446255372245515435606389112914257714388695959512694355127417799970261873378634577548368106280841681662341173982645775744469496252338760789477679351024637930875105297340849332001760341240063622996734625585054892062307696395085511089176369554187753163366879409625736783798642602413542534801115875202452712327501539722544613238658447630679872817944163969618771626491070989179018925646166468196922738870029602094714838451698579918897373513605840317140699339756564268921818903169338268645037484706830655312909679998817655450451525755549438063882547510451964918314026489120559208257365042268254853581076979256394359235610986359710956933472144566087012886822959366416419849045620776371244397211931722449415883549383780462101502886477554307362141265298478090404198320505871994494739090325141476070505631956475184502723089215517289741050048420148344416957243422584759418144899909604814112423872557204749553159952239072114707952880514977304292344110131921064316030653977777203206272212571138947348322069171388335412714157282907844311177544545355910480659509045411929212751937439354541682740802806516995325479518466200407868370720605949067939510834356476122832144187165467042173865045326239868087382422675133903466024454078176836101805809889788193772738061534696499695994778627250683945445081703393778202163412192551907436420641311326037312559054868736269096212937376173372591242601416197442214266718507229246789904564732299810824265528298654605770751085505601485566200685164702301152209221058040849271381723600881268698792048897804039093061356672828311034725304720773022298137722994444896378629991131709787036847686210249145423297040990779629930115933941668272155171941066897534675514011851904359756522097221107820728729076536003544373157358082416586299377776314308087099242618186595342619887805170183672788922900998027132694654238227488620766592267555587147739222977822747539613236737317684476534364832881267303568982079293814890279228061823438957133137269443644161888419867447505208691427991118773408746240430714424783935946412935200250164306884832977253060524322298554908558588007144497747875044148600504088458953535461421630411738805328972717315695188060227727947743789656712832756870048975728352383763700890431812223403188762034741774891539491015549363428932791402913053478628455128523342704318454102177938852895220487504735710511640100816875809395411649115615692270657949638438460080673165411637523581883522098207210401032868850442966434861397145272608812099382275278420244833924132448362330489097825911537885577335754643493193124008651372229353131751315130403723787984977699956423617584041057859470535653683352804632768181909805251884890811987834039249447792170383970051158808064157307709093723769656155277943430348213824854338875062795490606218056712580065312725253575008776035183232597690855306636031967631070128378055520183754551329494587529557554138823626722691601658379651755905868768471310101346194554045948921327859261184605814474471591736788406994694635337538324824740132671907456417563791533654597639840271923565771468766885170878977861993041470342252553425358647813914309199054093632072990281442835436631658440072679116230071625340601029179525111306744469797030996823984070982597130463309891145061442478745840888452189989359023523742900646169321902578894989685230499260736850067955719361075528753263112548805381920512471021958482883234785876504968762931688576972821992907829113237399775331527643202534724969000318419941536596620808200601679710922455988622174886353592102703304231260771346709847418517033819146756122121917713854064238924329522666887318333488130694270053227651989523991177668491104791220093322465447366155034863993566182427013611840463739034312056330568704952511693966254907266621130568651577266486220405485544447320755248916930408860380996569498089366857434772461537306637651485744743380483151445779776163978963921724115735288132758014825446313102075192320939492088329123608928114437619500132874696427177843403959361915086710589502954542287773521862988808723928905555229683661501087063259544202529820469000116921963618698826486742992664913892022593373253708761693820155051761782029163892828340379997820492734274164406996720089823834167464578701379390142353709626339762525317888509587343825465077379730222446270828399899434513970627515859882043543382129035047553603577626279429116833050810436859232099150682468541249807074796941443534425681359109013037513588481238865304104065064105659967172113492453310786033252790287610474880283496946545723631154780266106767707521287933643852913511706042678751198053537273141545394048330149004782953568770858397306126347499010272452510657164732725897595121796732240617078938313016286322044850318183932058106691686175115120733223617203603897956509948130887247052893273511812737387332659433083201664625850298217709773159798780898967603787682752643859176264942497847917286741795529687400038894876059644628790105044696156907821346434563810098136937656472650740209387505506449267604198728205970995783578960447356560381420201860889181211013536174682510329581258285173319763316316587638268432604337012553827433551541968248251861304413401088912056340227936092377526224236828434459906523997509286912025817955239438589576493320027804367981121613093733628174152025551006589053659263428626487505049309902047183995329980666472995828470466642182260325160123076046879330307529914903901248331443858749197822668533690371538791505048357556372912545453751834818047453011915480463649765580779298206936349427542681085777830831825802511217538916427651711821812265960224478179660828824553641180223522169297878677468843502644535129666435896760085403865273665930106054905594446168363414316111821598945435668421645334527514707845931597681520117803432900505833542878300608166117117140466529284262733336179383033906603198728903159335431605439694909777159369678437090596279761798483585118128676922791243235755729938613694143441866938357333758285375045723464924772943064451748505543833257019296016532693904690580175831395110759466502600910899104728130872582491932523617312887948425849193689920269632643904066472139524410993565679209018810468739516789413661285909027045829265711445155686967311892164474881256657819367174756435169630697888319916025521905569758497994766150517969931544007833898976280721218086480054959788221823355580292500055722274350533812705737812390646221591580227590624591324138101300475064290735883631941727284082321063726982353201963713568364897602102074419417385306661486025382678339290037027705278866218960964081830449041450550564448337005197077108465607854143325387324235133771789002134986484965216117579732132045183303059279671626337310357144594038671809871777394967227417669762677266873489436379761915724304552803194239086720129890291338325827798389330844760619670240558332267307292745799384562082561758241660871559013720156658908133571200180683918416436929620240372795068002352273646939889815974741858159433847913614878096275271706645943879174810097288364173248049690634255427944106142754575825699440298427070585420534637031938532212423428198424366809738672069474914823813031718575690903353533639702540173868427328084091321703710348359462661102604141514158293239913048113785269968817502869337048368376509481008589328835310684274123525488658163518564695174561769436863014275519511832671697020915825543995166375228736256487969169751927340493075485742888814542535511672392814535549311911461241384033854364795486733040007297875741492561564823356023892477975976964609434824016655803594736868800055539887549157539456678613736615165566708102059224649835588790715869629939226060725167593630805263196543492588364081510257805828807736849601217009472672294248174683029068597152605741458579445474144090182156950141043244886128782044184608602940327549519968705662454083876061517668568400542013588863071944972101913056154482073547777585660471109445182718620788995131655225637006116830279028923626718452328697109388208637596690682140689325921504124557642021191883084635745870504732577564253863296946381949158202329865339334652036807399623584443205463597605356564272843346375869617169016891045260009707779729102472070718169303250685921948089019880323073914317023390140831434200725759636437804712969251339600112535559370893916556198532630819537936638497964870741441909070039786781936105754260557531143664293580987855297266803633482892181974685479977587570401649937330512876707806021131596937342465709553735522686017027424072930702657861353599622044057736259581726426468745134482223358178287004034741291278388819538312212101437547638550022064394476372894024867223155261800788062374379430421792987513165067179013637119554941294725244875363965858304702373146592091456008598988632795707732871989620346179300192274781192315876719221496815468639248991750926044294375162333597093475432890891866642548814997678769236081695684025494894836377787122887741212801447548732632478634155194699108684487362171832288308393229793526007883833299017344866317791761941151288886841045380631075954799642945995175058327927275551959310786377625667688934437922675989788067991483034992621924260395475743413640145380558580517441687787293716758475356005439456930228835653568027598177858987595637225411295097470871818385862525421020512238826877703665991535213149734324986929139001601218483051020772121799756247627270595436779342883437653640494683124797226887833289140388841493959716271530795719274159588197350257646379151233806997056279064785106916071713816683270409656076809564366350554430695505858199194254005644337511467433109248996925175969933735539100630878443603966563733744000972401549950408807127509347316892905756360580293185911693690471433631723981695099506229856157195486175299173038884374398478725663177095924153105918347132999399918567981135841835132648648299669122056851688403540229723829843525170196456985777570735586698087582171267454377488203660875199181065952284782258891342711080305659558550948896030120858091127660469034237148862458718906023990326782474104946464648335982676941388144641764758816840689780771660906855496750947579678843054140779779100178808542118976061419154803940416251484080255761992347241206725123194462284182684588223815787858120269735663404859525254751720515079462549946026493217511381068694569616800965876990731233123599445691244150652779009591579579791569256265195152251835611375510089929937413185426854217452225117527782672646147754179180851750583374878250034917982524800160279478536568794226422127155787545694394439027065373249556145357975379734830254594751209164402290243824966103966729639191142635154303163970129884436247432503426526610661039284744172886970983435469241224055216442407200638764429799675792354158225237922849246882836310966056013531120452267536565120824753251992010516163865052567903362015235411998410062200692228336230399629334485832105718771848995305208768709415517520418303172325097131142506670529492237890889598566421212275884022894078007738615655888337358680756110420647930290413992388420525876815456034391789283981582425256817020776692662308874511278573824213910113086553975800034118531020162995843705962105442780885528503390744821950318505073129357010958906622619203327904237514583335075486444320584093495758822447197772125238266228348080519925322458623868105769026734070868171574138625703004407600075453243098218438124931809828611748745394110536723633521835996735473439837041349483761649462003240318875436080878590201590905719559558372800622050444674192547652230122361370658756925491174547135499826944139866114083628035542944307014085959169906281371684866894339862034669148643382609859573344913932675513771894066127883793375183214711078514158933941239795883849503193686446367659324648690029796832053132797002820830321089760325543117200953143965780803147779905854852507681579163383708768323005078978849069850395287198850433072970783737596248631840760436802077368907260935767267487087940726747998581812196021308815032057678374066660456499622853268683246131505010095933264408355419400015501128551893334166215742905879473597250759213644985382429915380235594664469792548032281347462427745201250098958030499081572644357814827062431349755930975428889453277539101935318768575798418704309960201567507884766553906986811761411524855089706965369929024102246858606794763101078778582508830368550210220471152806414891602093572430156373070563072936966091148365785494573360248581955319107369175069186599911405107938131581170179128205467313609150574760421556250252215397354770453257396279931551824412762187935600274597054371445622846187715078134275024272541994748402899859752686689378488652076126125769518554031053099311276673177107257994679862143895698291522104252464469886688443962276418931084643797943724801664568370294407826329053824037535977382491656786496523514172267884890636820786270941190062380923961910957873029274555643634785454571593316213248916039526049531985250259359152235699571063516485901883228914040671901674883707081543815974548343224294564431892926383791670533577721263755691400231933599410826696868348823395674144156494038597701259076056216239123615839599833948365770673888659995872573774912327582716758794373887817608340132877991580630096102659225821413803777002893944266570717984473856680711008578732294252175885095373301396511255925136703539964749468273731033660283919756385381474925833947139974086154433901336334878092087422021893674508811954124169313578475065218230976281396474613366811006195894390339915824024445998089351521486783864761083564073936939828421546329868947976489243675903850678658537008345311415940462288189015705716444226872549184713529453525934568617443236810976543525180386311308307360864336904924316833167685848277249774798780356334241617281807019068025821030505945582394778305305132836405271061119687358037117421928715656448493381668785833712504494960108211810508379823306441598163021784289984232561604097737028983893940899526666891908554338970462291581768482901219299471812114344417887653012971916203930151757820241722924525320996042839311289904556188559459895942590081865922616522213478850721515192440602447909042300527568706697216674799186949646181961279080735416436166290350910306505482656377590725002427411675566843799162565117995256060994791471494170137613035975648997655229430151002972667952331722872704146928987530525609526366497248033614235710700836219532721127321124892753745094934504942888022146974500011331389341089786085752634724271772700997627431750166407582618115123258286998926067194151721501606480780073235091389431779011243795403090785049564891171361853539294316781743785772551800014820069060435409807912925691284137807748616323823145785708494140033691195248611856915002861737394432058778731601990947219704707189431556867021927593761021151814007098361946905417874089153384509042884199105970090684274333489539993530131905861364851899572876680310823273629426402329950169985960612674579351738084956605203685112278482051714808616457011430504289608686535287248338918264094780775604335386138329652555482186076034701792813224628833134442865312022389563323668819965031869644018041150392044856622958745672388042727668880176956303376872086428420886582101687992022024150573342581255844409196382697346970337983415251504943804101372624714294434281218765071874412689803447128009931904554048096815631787906337511709333112125018491220087373586417952730628988343829353936444666630267186295030918121641683302421915715031128285088257756223038051778938840693936096245372963221378023965145023182208913874832676076123306758053022265142227530650333757307736592685323319727605627825270125741165147015435446804099237563132904893266337609703735169401699207935669658380965336118593683769427963335907407756947990933008027336736677705586931079142467821839121979966284161502803992307276748679593277069983882087595887681204247870150533198708692634009267715438540091980778174820196185710954563013478574742091333619573941830092435403713621782467574569768579358823187668252127156798688286123548934066523525144651170387656495939120909519953726398193924555129270569181222740131294362360768058533528429206590359518926839036246306779078091496126072510013537289258407753103059715448908048947385735347317450741469422706470463373878869489401978346586131265787896202747169398027198132176386209666551204814495225549856844141721244624114323803488735207484377750983197127928327976352000964107406455386729713634883264813790704842961944783688881164346752992981128755603159744171015450728981493572867963369157831942276438187078975781911150376942087285433460794090253092258544535451414673957973746167760141318214527283409599204118168440870676580297959228547743703695628765353269055020513514957050222901719035939583738122882165394625631523846174949481600762914503105888440294549493952855093094490577884465638657319063988659039232155890880312316576898213737263645039561073462875123648423529713187832254724462872346935705333769845473056310314981851106574845979170256974632001847976067930435208255607313565826090669487846239284813866642994601412550457473326290623146995115561943144231624092733090882010534001614497355727898336532661944395315419216176305071527948115810327627312730826509642796945277738819657819236790373451682617123230689787689356784570636491179827842396534805515830991789318290707884731783056523805598551050559936011147090434283904178753201929658463957397305396014974431772449205472139251152612799680361995219631846065210812979834394750845517346623271280827913124784609130506372763314297349413970264694602530401192012222755336184656440750598183601335442276307668167400783147942559634277218684450799817645272037709923070493564562237644875833689700700856101433284797633867429459103095836918250466084549586983888458812687801550982610584276283159696373258227707133733591775073989065449266649048196015851016775901014510396408536703492597354068121323760440521873692985107985485613380361816251680998094564593429009245453171532615744045580316095377162366479046034281021738121665124066760224877329722820006400102425444191932832897686084996938202560514543409911812609710705137080334183986745305248186525394185567049813001858308936769150774692001628372445584441681790483206477195777463031663683293621098800929831896815841613648315316183511763231513827372832450784495256881428345080959215776860722023451669249348768165952810793624895468727601621315134848811361630505536505671886972871994479040279809024788205297580460481157708151501020555825863896653191050303730459811927279009027300259929939933578845884889179246716531767008337492207980189939338306870919380438378907746986086828058632215691293138115732045246328552425418041009896427815503306063456958304946921839044892903611524124210843885968503351972536058491990787622913055794652830310058572929227490357702734539633494987845967219008612244939262014806116988951963192780512315009487559127791313054206027418580766687352358475886813731241414452127790901927250668462257782123703570446304651528899989512289142135272549390912606797661813001165433673000612439825212555711812686038790912871421400748408089508879505244945614861562249097209558324953009367465841536625987012777804284667911170653435375413510726563025315727814634821547796280573461581851758510352001926654511952527811396808708595004953972876390798541218219545624735419560079988522017194289139009576960258510075836444535374411638599341662838944903262178131345249789772047184813290162483511205780059069824855418985474834150238993607675321752648474338294693369335730333504160162795923690457689122730653426076160728896515926018057461816299536517510981931051650091641676827769850966743396928490567961816230886267388406483818971047593546653088231554085731897079906690764123310160143034553718064633228338808381214325971259590524161916175718039732964125637956142515903848607214745853011163307192718696284876240108878853346376825443907746924055661596810242829937961051958740766731317734795471668293882905987975080698447392342389721487019608513913370404377698171658393687581225076600698454733641031747768306231316260705144589272431103922650490418651685721426508690259104119847395873104777735092471635261909312017565851290690075506912496279204174492658233546133154529608317880928992794048288399496547795460265098242979141805464483331552470963052284373403419779665809438630575860362246255118601260649061992720761332873001863144208252868884445389686023050680880121554454790254221066830855570979890865820922408768890066603909532785636429123818335173366393501929424267612732702770004740074585172023172620781134840570714008774481232800722928524749050514086664093897199766455095701646022856893765099203543562338834619507497680857048609059085923918699673698702453225968818977890703575407673715216057297139082668366188583811447777145822028126112593303345253643646144976749867458628501116390069831511848958241192011007626634698046045029694662850739978950752262224839702706235827061479232531267371255554840494027863757674360214681678510636021668027546393079402604511553806985776850232571430327472186064773128185352894793855467922804569382946031478555582739135261559657975590426716546247012471892862853659114122322144113908437707330337485937933093628582827948105988259442151550566530458279695146077453388880599517152674047773039429671631487772237250058862807674739284371172595060537991836017908687644490864765232284598437773625431472105285396274780148830028608399452788919137046123898610457516395550403114650570725481454615544215690412903568894536067397843821384022936041629764799738253262763006385364442412043004372551703530204179676505142536599240114254535296613962023528886935018698021504585529279611946348892827277417113467104928443121997002034280244512512482376178362117392389070383608973551971056517669723017990035745337063446450914339827487496340745004910766660577730473051927050893868066869361422579747985906605555423223426853357168229581771303012443661339384864578524426002662615125518787679179535422877436646350294385152493198560708350939882091807132214098205211310949875418729034671219235634137327354321559124571202224842110611474008824086342410980170951283226469295621216524669168978382645460309610554122766079351388108592478351133146888333212065341287440053465591436582740889766128699323214886180647464317956032185537837121009758640370232026344601153609184289751253408232126803618852737873768795585738718457004732719738433642387941200131941482513891036817108572838692636519152105079636752181292058462877143664044390775233348319156374062905752023742264082175671179624573304181615601606879196221927499348666589908413548819725249703077756126906999412068139877657015213341280725439651482369357466152049801945160993887071638978452972152240043808466652383173446117391210034600108104074801126709267699789195188478372672064941005270928446941390916190498195468949951358558205712282578538174151707184248868234318097161989429461243798264428762099184265027061459421226394215019106931760359105492226092389977113007742131511141027524087313723041479900597428545312136064129425087218155231102335038564269413725189074585112401531624128627397593476141596407971677834751364903605119555089054156612033867200744539940854802697605684373194809866519301181321626446910224535005231465325830252103594725838141427368136132599162072741137167616430877442586290167597741182712295843837539267002133316590164772009499437710252778285693359415971695666074412293334523199084443294366674168762305865351514747070574614315382737206024980885197267410351396015063735450203641513301008089447938417720257107438131006474944995885661432062780468027124426893306608437287072196996611156632985823425326460144991110082677656682971189117583058873374242322188131480364728405987106966533964276076127211915392363321520117917415334207200465225650914558700032016837396159998985332904831159411747242086891701737465334237887236695477773618234281069695556012943018626280160247241579523475925954850196870899657808253437671320302155648048235732687633391942633593789553852324172284734314145959987744190148068088764729093613328791711546023829972678435433317676176843917283764775248893268194760110672125258688681820229249239506644573870238368582371727489985024311107855496406105834969690015487871129584644074708226107548368010574561116969887107298401716173126516840176328630009320905556610312732059750609062012303084385311709505782391752393330458875254621093475748343550839527827519573009375787757784753997722441126572987704317228737421853113643295188094408826135453823982608928612725120096293413039779467609411857112858631113544604129174899757120930292879518886176023267934460291829300293161065903181038188311598663068782992774081909974730300047764465199513465864177195334787293289437199553064939806728222177619626393160943313446482434682046091287254172732874517314534318752137541929616493647851591275941412791872792966342266824831178262366149880272017373615710924726728558869302996721783407552341977654800172646460382769574474382434154718115526116748661708802069550556520007437950979268301409842703307037475393195282968932219335657790140919258913035259767071529445223973286797668624900095265063774743131005586737257125106674589519434978644076782709074349225922839392388974861710436638924391090762306208853158547058154625501319524023300685318921129845692684542290688294533778219329972844972670613215896068638432070960264545137011776752590513474935572882999774181568954664103797450743722521837558393671332041480159729250060588210100251758193647591011281407289992938848213975123234235887024649479591246878038287388990970562588081980118523389867447636987829656340777221856432894967293118650430753901842254931847005340810863968784176579355002439385480781501381126001599041320153425714606403529900689080504163285141391567897401908025599348591735561878089185687961815349161083488880342141614867652012061590082866901734933919263810448278048349665220727186757182989912582519609306898435509431695386803944500100217849509582261069713699836366991451082877692675725171923790970183968833330657862686044592020656880964553878046504582042726847165788890469055748289446655973386674237489291781527262421943521188404606191536261040009912707438781598988567117453353001349324144682124343113376731131121139185180383507748732173142970637724493227576147790145004599068029259091662163701042237485837145622078718856923640835553394484756469470276149358718446024497017120013170657116940627108742927217479282446721414358941777599899532656542553855045656704666993744802809325509263899367521112140644201286217776312350460841766182750137366094257405726112920311357841998186835374868537513894047997600973043691616880942223282762787005837184233173036474257910942151930563699001463356093149316014115560621389052451917442634771200258523396314747250307148286253519440260315694032023790065205165093889228185101106399338666330288087663009299084811328308035495438332709949964849185296870376221505223161509919440795924109344647671967238795579884218861294107167735736370387022432632441396817551378912828053308240393701602636927281010672751248345438090218469220377292316636256815329189104424139524772940592323517482301893428500875869270290323300015813989556039346964089502814571369964850002938926526464241050508453304042757608157328229419084509939484911303177261058861673534051322062576658229204012837544056647195207856544019737681275142574603169714259057244207416760812336350301950380462655928922629556254788291775494885702870945509498437868491762167904831500265099298870834517747757703460719862170894092183977279744048502347337561228924768291217750951418358913770998375441434298146533466993460161618426955507321644353924206259388931760854747444556457764034923530656318926258818454155994599396688423333361592145507836713654210269802744594073114913592069050723669746512483798919484451820458491804884646758602556546368951407309831875863617371876139686228327245278285886660761260523015681918688709839976453944234059249807805015258765248054458853652651365982208594007285126249432498523507925843130188718051139475310365500987315804118563570409879286308895892187200869112456083036689271214523993113933092452119404903994089395436457618330187513135029415447705217545311766300832874428726167917504771388931634886245055202232832566705886402838491381505930294741633789858967652040263352710773573895895000043368970044783925773578494954243221454665020269526231456600240144760060482583265088984297043563156010500968290507129672166017952986734025875234032076207033248311136997055472469635993760296014706205019860313859979463166228952641199867282224919637405238287249324750619246122180074233012436248721088254069196884464619248514895227123494462590118865493181398336562071851765406733393945572160029158196217196868385113192571047047939149822707038160799340196922836509140202473191823891411365718143118204764404515649626815160289593594055667648787069968126811055599104610673511663835696694355724285219818167358861119245363798997496097978259797357405948200680572111337596592282863103882620669648969793617577053020179102952930108533691007008751196041366051419168363146520582986253819166180654934242483679492274390497999420328623597954810800262905475609147230130578041340688616811876505162088840989353659776481113545409852640870477320890904519945649608719533536150848971254722414498885215027372372235815892882331984892157585254714682314636179935062204301904153747988881524081691613143856358601067534389565013592039804612007782635641552124032050549374251535077047145715652469507594101718260922566711839032962964395936516188147113246596247247617594087528582762851390241162460629698518954737137287417944710245878547139108210702975989549172282828226772972498130689742123315792066796190557367760465787113995641778595626443863885857067088924521016605845634460812860562725840182046997813921206369315655340563621785480629170380257287850660876880599738131370866079729427622971496544413077211922067220696084049293454179075799755636641011484294835394182707411399359040150206435900047239576706654201390522074193793722502087706126232591499994204534968292104824495816561681317814044021175070437630428340522905254943077419045490284961978601613255812038636604071742191045800930041699902925336050177078628812515138238642204540055282726769821710807226993867785583545227130425480105913153558178506571456977265630720178941710541062725848415849887423449998372866252083868007091374727157753084135047215506064794349275413200195726841181836489688234498785374462510734875249032704938988317699665303420939175405320640202704374512278844854165919763639101549656340290571956267720793078968494738948863805583978312663675793899879374791501558544483163217612075573490951004446669634601796757901339446474186718990136126488634525371779312400969013835234476776833342016774615001765576380150463016570466444413857307156820569361354217490522107121326560461214957395870317309339528847818212912783091190000162268037724782008412369903195533892773062462443754360688426981111067751617375159151761188423137854566161143480873711117373821827739759648057550137121044376831936919376154908507210284130809659543786039477640656152405460700051944736796951735973492119546520404893726378060715052827431262472757344589595355061297296205325909123992589464835999654575262505437201977533291583563351693949001778923929463532640258921260567352230206698175944879099663633326601500599757096572565533777259535010702928048247321669289787919042317121422085223917362290622135845769474725563741370366321257992541242961254798149623702443813115777914170700793969657146849050727592194051212047725138747893604481157792608302359992606685333359221244189845196150506478865487443640443042237379776717509715789632771834961271486433060842562879716833431080464253683120749379226295892717673565825507993097484025254357309614108258597991825494128059237252460019893484041454238512621010750891666968456357471366752983678065965512621281645972854010220872915229403898977314040950735293664237889635727355162817474137307786075047977339703552936339829874040223622860431759864038377575108781947521326404545485026306599191194191967940431598818034265300966906190678175501018313761067211966932765500271183888417866094151074876173970573941776079553572740405631878611152347615863249836202215516734610442893157271503220118462280612782573717710519136465117582649132694027711753058410643763431803351810386733408057535223541602877535370523367310548168801756472573621933397087572715420405075586082226210513841042930368668885670378136780104435582496674215950372605734743258803418936877342222856411770660945102764791211728812918579207761480714310709168991197123085720384299899571285870079039825904721827041930709194829431002667822489087043281702242851950518515745063880172764903007030332640799636573264621500023508967060006266034453119156254899469090848550498294694687972859265374418984059094423291753094690667177842560279492281444597424341107279276332859788102772114222031449876101893577022131323974826121175740280729695364744757303356216290634344933246833069271881530983340656941645423665728505309007890848400890848154094012122833467782470449413889612400497387286991337878355077231145857356547556492514757233952469418251075686383484317498659217488292221531369539142047978076057620990805668132222940123363602129304343953359068148141696631084989228594843067916847976644148420743333970943379954921598312117913164248233373975964118427531594386059952541160282475063404722537604983622761944077246317621082602099004505841888749747062547288718882915082026793055955018061016956439865200198277149269317153499690832235664713998570959400297237343194326783415509911284278051890365935616237133228574626120702028215778739220915186247691242515878083463618333807966483641827797515804543027536473790327356898512653206938971982826437374173901320570304511188449243539494719050506852805398951930133944942283154267620130394204707613251733156247636399429474041026663506024842354902688379179619993473571056921311958634828533851347699002896001665108893031911611650787225854482183082064182268621141819281159627090460695735195860276934515487181861031513915184187081523085383397048700073438481681444087983319052569494233044029681408457288596026165248331022123998121623165011470759551280848462834487925897211679076703355488483155419002369435732006607917699157054242391590849748132974097211405935059773696411300834481118719737185921156638398977352210122282428041098513489208640574281533988078229665844415109596784837956883778773718617437576482990750136500423773219976175017004572168004729803685573295967170483345601801434660849702032452897741624694191263809120196632157470514150315195384312264231904716679711144992373019105866467891196245047524669170363864586568205783377916068819898481070825058503815560802353205935578226622516729994351674094189568136021711118435257536929721093200502018728601597969520587167946332432596479888844709274566145833824074877033422295372721672003470353519910909218232518881084168143785678722701789466550669336833419571102868974478788662220705126248980908403154912398917921463018233622658922568669041616096015873302775781502213062481242440251569604242223489508285965343342200846250003593525464975192641256428906970556854074541857688726414410601744327917399281475894344074577240382830820982547128521827307568536603914456916103170091027953001362281688227689602290305752894306953147112702357758290478233665616575206580840266132789033768632009208362224530386635879409509572507397401308207131605760452185751226091898040776095150091124788684407975394987782781783210513353668983134159261431951720192524214635331878346905409752972246628513036591819702559743786303988878378643719761098110802153493073185808151851309650255160332988115014836353969690510381207298633556448164598433285989696902214325229192032466809603914788638570310140055099471755436872656117762174681205731303769213899675325956026864216377863755284028701210652736541230770807388172154940630382812978618613549642010176287455750664962437979341814697622943144586562533695368661000092461982050078413498935599659033502161435418034633884712606214887086158406727121550990260803250698444817390269748067486641407882536008819561764857668281047729388127506894079506642430223528373716619177044729736721066761570010363528853500527973749842946857605364735640303993577508655481002651986882812162317781261357913988471862897208038590630174271106371933234790564780340225782469747662612133856081500386149452676644807070123434471649895278950492123824026828404127542778531405834300116285385836450092049624927242491325937486868212734462511068425817903173414845019580979518468014245365245271644597940018528566690451243997801781830633604080837868652992977173122399141293271474717499492988978872057720543622833347178727631817197145930029769306980507191936345724747593104552174698363800681902663748345575886942633098985086529874378672294511542291936855875331446860194315455542235268407059241460227843291649706617902386498883365216796968283900742836791906716763811832336888584898550321784239973699851284184126805698112446250044971822791074342870399452450631517932766642583642268874106294456625761154220417928319633219846374123255229186952788140330369316424054716277182699606518302929275482730473009669331067554842136345882021720047632360074487885140831214987583891634914846047785420149972918792809010911344937269966107487713146067457722265180858223862459207035260609431029359869512181249471165336274667503108035614910790171606583630421750504320473990169875333872455373554600852402643225720305898726134637350046703110965655370317340171953665473262557880858236773822156918810888078817605445170863240684851523419107546074077611587659763384097302325082735801737785935583493723270165030925220515277357045258042244076179835515986226425446525348604336919152623273296710585041937446281874453464575551388567472973457737584316088800678014944372851181195943422450787426607690692799780309407778827230465434393674270942311605886146646709318905499436039767529177285362864676726295369501640351502700587025405981706049278023729201391569483435628762856253167273787894702301993721281292412475433526721160546643087532918935327762976273014941078263867908370950444788487842637828053139026259893724865804049772233770412568783628880705950095496424167928044965013767042269527654897305234932420344331565468441447383116402846422775448038134722563299318256857442098329985865035259739100283709772816016594496575498757143583101966531796858902680159984628355280634950207837500579765760055224007297111002735241950505554219913380030812347020700451954508883051448540177762452049972090518016566656053104042137657880403707143281002264157545900473431508705848796611219382490203895816164041663719425345973519632902534845370700770709260305254784733062226339727940114055309139229600347984288388408051263241521566540200292990512503548255957306333140087569745837432511623759492195442624150964562454247936985871544687773343876305175948931884254233760232456164442762525437233970008425979673416105787567194494579488041064629048188750660093033676563101987251904168304085572728507277349852159160389876210333076733670626946689775518505796051550463049904437715895893077844171790250596768981310542462638209013782804431945035097573950561424892199125964319492096271373608395553203323132108690812973816281426488644191033120655864402550535100806199711014954472501226634812203748990007267449309401179195568104132726491304510680277992735096413354579486367430060998190304559733203972109421008260842141007211347996177813382312531266151791350467748455779911563103501107935829614570335241315539372024173971356421166282964978077331904554259686118862970129848952314449326746796965719782819366663309560888940188602799075401010491371960892136593713807454429436271960564358737531766506948819121008538017483578361297523363118713611437330663627501309883541597537026206027810983720225384839123493893867035501130611451418034344210442689978587194512745131018740143981692128944318911341557890233499165886081183840883832527339337067640356168801771035879883141649215770769602098920900922703578831167440306867923077598453986978144257405886944710802989210277262953505349371951152179144484664043039662039032254811783805266856899595213010068834408524192955956899194232283990220754462438670936347387581232847957461674950208156900951095898447187769603252786728405182074323679055057178189445925936026052796374071476843690654811675050014249571161877099350408851841910005725401915186470273202461703743927531329473487346095188745490193203985693904959767292866207557084392818076652033753021134652839225649775287617558879376978942659011634001765011700349840211592503651855448673386333059080895099017188619290294059555453315844529616974540280904427831360145737066634283993415851956615161305977390713790399441094455097440850394484891729016191780558544807229412585167083777898337556758157646617916675315813662356180100616852154319734501262657699883649909878480941189709850486968150571978990856170326933219194875681775056821498816804116489405557082128871278370616292499987917098856854944886731244884624626594754718733216172803797763710178514118070595272660482843767395579949804365336948697522465652866934948806657287304660142476528492424412769083625013849137768572505861192327314949545268101320798981327368833005046967109696508622455087700252546850885172749039093588707909757286104276631104615335818835653558463799360352287171130944549918770709992882139237116176738335462140088167247206070121075978516965239773770606448337246693326508496944034461705454718918195580885084451296023281262462970426766000416847222039272279839541061485394510423538051523913025716024258517006228078167279692190280505263857541815412313547677084766322777356213841387858822812238175385757262667434394065404843309174896548706200676858161941390103566094961687078572195678494289712451623613844576934325316573679928236732034259273567312260060643415792321326517752508620499476242521358037168582125084852839927560189287757321871033030308637895018567503731794630985774145949719566387510781872668304476353044383948243837790275743669221227267270459917988223432816942892543535667270780418866226211011781384816702142474524968280239059470107463001310628064527302784879625201299358060126474208583842876167531800777785325258387489200533431562337308147919564970143473941578226156336378308469423446827222311733366203161251433032415386705769641140590030118686215951844439942874399919936852414329767894503213037604475561210530951838849699925465023731721372251196618425292660092799737464523080818749419559757222743509571835133944279211170151180262699951492195443158568053221469102560063155945171943631085957432700830578589924977194381283846306419411752450184035273213908084979989554533410395163477756114918958389354036354331046934023200471515129592485822772766708980290948246983911897327873668517783125035483585714126912479236542748985182188722463883488422327553677421459906128829897659514217390958513846373383623285404286223251551392819010124523440136405352651170599087048000377359182357970678815864728740231678242267648831794898495072072693248639186928150444076217689855912534526765458160982476044660218140787829826979374372625112030130029520088165637918655651277319992586620166501018319952821905829277058625228471840511396516113333792468672440671782450017129727089686608368189313769777525620086313695271304209722363235895841350435718626962348231415354238183612086444840927053756579114047439032681546591801175867993258137550253064260026709273145819129406908533042335600291174508511917841175975328320150173758971873722192444877648378020558831993124251656059291126250652369826497419410404125473373616182372474829210928860083059045471014273786281327381484933285016047954279113339851872479134739110871090179978390545699882932221674679480291040318166292822779752166214241745535324749530314559714114737541172524236490115798096180003341337416198273659996785650997411446518316935402239693957495817889819944161775258606497101546914879447947822956194031383656248711710101477052362476049255368388408238034159664342754051749443583232860211426946742666138602459529562042920772889718298313245870239929819266364455976506207451520629946286251887946848927573723349715914936648297813832178420284839558205002178406988157460968209799088494335139192430737275274471476155327281255869524072795017458920018416639287335012329383786679342008896721655344917890150797415726808269218838449739005734871591917979155842961510006792612862503507702432681850713512687500844463915514694735802302565693159091602595748864522528160456781813624961797735676236168034217443413209270580654349721029312012484720661021242351311941332846709068913066497800091359664546710002013491541186651772060176111960799352051500601594537438102398979045283342468677655833916429869959423195413269236091504617595188086202506945205662050642037928323099005267415238991910700982147198441424714563974376318903902449223667258785562757882948754392513392070227765420577088585841903981614614820942627656939556845859512552681688999733083911485043361239795628651227534349491224309415377393737619457408347363903835259127517602794637344245990470791418844710462742462795594810536261781292209637730986512035053903504939179632010640688319069818130751973005029647554076988096482991326659645745890237932785663693971285961852640290245482507343529782707845426007158715345706617423667802522684699473740808165153925923500782228677800954072150901312351930041717864011735563811909747837176215265908308253521257632110271921114974032983428678865478997532464125217828096296627173540228810408917901805140348572023348082721405577503227850085083571044485562451554194055836450820520820767392734001468932996350109900365932907390648154961164211435383536188261117661255935088403127740994336735472398122748940223359921443595133126143244276083491809416809846491569287147436527196773103611953281262423801826078317838989492421165527470688997283465046521253644257809119646171572015098486604636012243012102737536903302186656238033451307734447356811287576138099822844979143316793545402097925642325392730377073884008185944659327181018189095920494282813343478357885879613107652778919004403975927328509178433621189315556826762943044142553586724364538838160132535757575430865096596696713636684187199197036170104256303280041335747066064449037527574232413336170757717757494815162153151355839374551175606588178320638118575261470822094638709811206337411697546414924247125553429504771874609388215762254506141743597542954410539213951012195720261705802878950213911875094792417631370800582097291823501184736125556681412827410796591002079683974095551439295968925987170241634965526676106971387565607893744358599920682068457523442051388849931705440316301071325451553229346460766781706863122445528859762061929931961324757709623597779944953257994944954395052386916720688096352919734031245203788646078158695237688804980104473734751222289194626617702991600714211977962494091955648897965564001616227610694578245129546186837033645265638956799415352780569469346497042366405216943306072643550165398927247698121712207018613466524809175151396154226886387560686902188683220269040747261358074739510143293118538789300489798666759217928679144875736287275708318618474402310524388709955341684286728974241794671749899095940107387252097106932923503685352251892619337526110537332875183266916045637340497914254715218145547152414328717858772504114779407548045042836072058635057764522737084161781965395422732485748202068002153657027475980495377957113732156487562467912819677876522281490854407468715692079269101712488502871051794769489792914359143706550075901026132767507816703914696508805008804146257262825088692776096796685507751093544748988169264499396228550410367295149715100703358537698920461037564402745862407361851342857697709135336921455047725512757231072260930917487572913509402298232856192474626803194684614256206541170781761275812413613670892836600823871967291056945185518026362911516801661325037464963822124679186394388260161338226971849855568106054895893079586260279162278518134216620823753335054057163941033215858605528401533089400131904782943621907752682946381777508443064223038858646110317031831785152551725719213422319961887395875098938502510993958019171444086262029404838678712898788968175777232486512100866260958526850306424986545940283804808221055385179317556222867712677821965357858482967940715112940699873983245770609869237589277800334326127519518645398978675289681938265545196109756705034576722851469342364335111801750998637334129966739197852147644560218516812862791835487274242252557180145069951787192898416139793166059377073939208368551789027917091662154284471237440996859008310185934695495168855275576334803727703107000687619201535123221982686196047030491123682924401246434378969707729094517793509564714448907417762393243715178213311969512066512281645667950258857431495947337321084581319448471675980971739926445946181254940136877392911273613780848946725704405465314835645799447945156424605239539119940947603153900590373188565528101546031482730400103623620765565123404054965455164861450407121253017554468858185779192565704615165002443863934489733046372809069910188839009365793755034928509977977645132307988286637657900489203694874678414183514439836141359076970274788663279836949402841409399228908309448916945060185233675026032305544222756954422813299119429255669809120237469998144752589502397073542329413057512113813665987434204357002520032536698882359016747607026444777628291067098533395242150328539332313766463966306405153441292644545106160261066652052810407293759446610514239037801561045035642850892108529715332010828474718989688153226237391717965399176390493730099783185556885129981155362761213702355990402812896711180875177935053313897533373903817340278301246609272126821419108001701073675058035595327985676438759873319924771579296692808117709288385334143038370998986955972382050643163015389695111698034952864350942278005811869827409362983007924436660363837302948229930988702504940596310518364323308415531377146278771587690103013511399602803064716139077873253551613280272475199289305814777823154891561857466473161883552591279495301965052095561664934687603346447481180794978480393417063483479757260357688250222663892816626270313954328957121486296092268464556989173403580806845675166300339689106842241128154830992918710726307352010723647285349456131584489386034494775949650634071383540088533895174026358706349540976953648084280681255667211423629949043139017765327169566713838397042711246937330054054020170701335004598408309292866224801781123248377966504094094195057601638490909131550456732380373195337489903016792427538721248387700133638395044660615353849540680667536485261172524905725649715112499656776335751257376091566923468641160898723125076044296801155612650021988048220294848080457085219580304085273427588199232169909393686314998872293733471320216260908971953586187125640772420027917352856313783814799109575631510021038830358204862660372120398151562648626411063195938991285693522440573148679124152421997659775937414065294561598918450176882443403329756404823121143902885263502191767237762877561210187251386471400477350355836098966844455019256006535384432421558170511213731064918069909077492469681831081773239653254736428683557276561366111071572556532492352223532706332019148507679601214350480187538871920419701140197461654497427893471707207131980479114716861627749163833876652660755142551060820849793498201959847466544310766490111801654420536787260185072475273158519970273980262723752817426852841824421157176309294598114874239450340861891922249699187485106864027172039360733600142167998675809343964052978362390266700936872830113833771325980220164405594508533848967857721628021214460949483664143273854647412605853059224559143332417284696814450406798789460809442541238173025190306446284557644999793525363000037773225148057987671089167774835530665986582740384380286157333120521943104761548589466453334194309989278138045424466672128786783867024114694845887495820666555863839056692448540314433907783405862701197382728564082605689047860801962939040197321585950680406595029841436612696588301826442137445049580977674273948074429223391871566848478143038725917679946587429601341968696297502161333271607193611045343117539422526468221108311124929155819522750629927375773088827678013999422259366993474150001473323531516465688990001622272619819232304520875078309005461399540461838658045671898628256855431399853804182394189550680188982530065779839626709547209502947545027847679317261226636141879106457643100463288062116221523279560809158542874589830222632302719234521301740062784854803567987388739422372595058558980547671966198181314102210891328198094360771078266509685576567158679965428489322975764595321532447190453120610750190990032977492214048026458274831565298721577982826603761470631719057429138147071212666909890136499463457573028148285857766757692681663793181762721196626016195453527300065883326824373337062518945670705945536184869207272206667025228459848047293248042451252554438877434702580419844823975112157778459709643533651106073274538054674036243272006751412582605856095245518131406661312322911362144532926997745726772803217183584455557343580761628112428876635821182139486369877544518133310960708351151963247294705796100762936084916141522591247253511965344732466186100416612558775023401752912704346745023557159035398537738372245238298394586967590751914435702241434045010015718206707230689045894848632462354155985102164565495191945157510669298561040450658490734276873853182669781261106542547216701056510264762482973287881293972873704697080604515435175053470165729990449139606856653014851326350775888853856885887755842305068803699643899242722759895936562069044271295074360872587856718377585148695916008445456014671765540406739544958156651144574150657730107830660163423672390812260250057400222349680696184376332807195803432064080718179893996392828284992522744880211520725736938911758377363079882040510409750144362131727987999509652022095458287427148411534488451414573248372572451478755255661644023308018898038780524076841627922649992068081118900003017470865214344180149260665257833583464624867606184074397734507242867753667046880659541623123321481728303457063768025462751888132230570334521745084808348493922445767954862302678758730357405408769772063670349466085553647710526848644561617275866985214886999671993174233194232406692415447426900698771044627857671511097744394419120142618028926351639684644716644237966547501077126335302736703765829483156308317824977943826065774732212836195173513103270423861714965254407604942963593677039380030555738941233257825743109754385166849969981290065341941645074378934500053604643954976272028654830923675113866784588604805976123212893155822689073918218857576266907907174610215075142353803887223449738403342589399226104571295332084034639788632834907388392476531808550083498664373354170035759116198206945156389903773314642891736464182930405982848358816482005855778708934217351920594565335159963515197446667116520513249980399082370307025289824334598334298760543947793151116162850444544649675172002884305638745799537283368640672924926804766703398709898856574341691875912423140839902606498408871153286784284607820427338028446183618183463330440978087904307994892777717198534231146200532165687039285952376490212101068428545186065432756405038511448094548486506737543304810477403481320576991569061995058605314670502806954460943040927642739120218240483246236686790308778909566809226365454642754925401502830376438679714526056933390069233949195407768151947714306661615271258316431140779255700965454821373294205010080234790425110035184990160038855885341824576423794351539560083737671625646604348687493457505514109109176487420315005368120531504510058272413963613964184633227123549643786548807477157015585884938567536253867463812278968721175879332363729075899417053643891519757762623038635566905059706703983422282073003538717859838442888865759021549385399713900159979593959294405605825537897332835380929803877609539044269280683878214160707007976238792222899898250093604458986601855697142152234631668273346363075259907550729104878393460744217047308162904924843928283952501628416355322287194370128327823480906420538728549829570057756060616209726846007229472756629036516501055244938140293228124426353667892154735387299624880288451195966171107171166030738808125527008871770082196722481258566746300219623147604416267979405020792941258640149227770592312584074590371779019607087532955521824546817439842558095391180005769719459393912398405783447872928949793413507293867635254846920405249916274060557773246728841196459151683543304612094440537753432229354271062608942405058396549354881245145364184541213041831449353441635008923752141996890114680372539046333355095579555781555360389378703416650100663323225645263345300109652214168954845887308402507042175042164351140043863539095764039717170476656590498888150595485282316778365899349831212859191977982555653084071195362203989507255548256010514139691939274832731532589195085115074078599453933024393048852691386325731905290403033874535054050720088801966461665656036344967144895106524795702081310843223207251021256621592526591450744085361379576380870447608424934924975831525150469423652427996075145737972194917244060419906181341969016381960386964077340864174899312452380056837677101032746629037851678550061251916104670704890034004866308252869738372077937210971911153974472332608922132176077769046259870663722720865573116538434323283594466984202003517302310099251222835321057977254671723766999879862793406593023504374998395608731548513094587751203493662765732039938077546377897023095397130484028377639419473495859302489921269456984144581165397273985438151617698052279397387694461832060035856078821149280777423916850401080760883838964523048097697206408032858931601147765419503414934207885932675195661927534892374538732154946262619193112455534874879681213416226618392435656469578351838357943475576000134642211653023610756073515686262642376394315626501282619811386690096206956459705788401402604295340403453097325397043032005280257647684187953000233878570175072251922525990918236165136157294889519278727672023173398678886270590593793545989807853380979372713277861636163790717670705755058782123125632332663366599428155941771141987760867094240178832076870091714646772895210894532379425424746995996132727550881635187573373579847410235248485095193582876999000471067593893824831805106087594931567098807476541076907903467105876868885499558378313563493238316827686477403362241052613071998564556287497694055066725415151560164521860417498998572319136822613038724700569895368052067969409522999704693023767495493851640427687527061046155530016800461928087660345845002346457380425860348515353874625494415113400185133308880206198623879243553552645701087637061455548080058174231014946592502358356271531746648794820806748569657406126911217070759676884950081346279145684970854954919574447624175939589669526794828304925825986583067479210215326946394904159160763167754533900129487627484965852145697382228705889418761046282901573727713628296902543073375764787510036464355554609425623016253443905350098569045245882270672988546509745173618417046722964285355145886664189648315302135786340291030299668084672103411731019508542197659116521269592209205195312472952727110797791215946472090812368260845125543698767641988953641923475980103439773067340041607758526456941365285766526649017415026172092690114090316178445521383113458156241994319001418401756198492133786321471785506656040766298299187558387034671015368230317478947146496878058675270827921958926505314599443675829796877391680418555331757457245879083901998437666352609453047316407881115085168022506247821806876292869386795564191832889286016294582702472261980030817660535122661465041176513177031146690756062939355762804391779849130999980608307073792458383086606154522548395073163405559758522744155006275867721760725963883451927556290451285702167454053959671177819031179417504223856466076594816589144961100223653283798348952006592544432361486789063567543246051445019915970676501327700381115934888699466567053322597835554629280853148885985640291371945867213413515290575438490311876464803950749441401278865847957749697889680942922349674628354079709171939763998657354185699097350506969913649648644397240230812387800056015486927742614740927612590970586415165324404194540598819928953538097948909367829658380568366917623655875258406604994079281881999145066874236832032602476574582437856555204060725312353010360934060097433406883849942488227096337268671007171334601131291270940499342283786342638118242822074911499873038907813690235526221075784268301013074444791957023558931289949471644376803676586927792831329994147919987656034143470905592256992128664834272960228362205362092897351907450489027200859260893337682422033719053736403888720602948832141358872579050014686193026459844882947597720384006871752056464140752283642654661223721921387374359689391984047754507759087035256853626091178166996163352595031613268211243516614504771987925938980514118815857797802294781075818067896725542166825409525614240374844992245232698558230053418412234523707663902145434991103741017044681014835379806770236567993480064383275595035535466537113958812040609344632426317633620915008880381591875109179984250777923513765766826485303104290139481321664833387020783762305770158889291431418187807005732748584867271101185045352227202663602087624674779254544792097428708457908571170406762930292630729248440848393938062893388827842585530932130954340024320920267474141380397394858462007338500405761383725267524846987857007690434647178210082708932146801626768294382557962085137383550765011087368178125010084078020925832715269963534767980816946423089823824168459786354138140999071612663403517218755045113268852570678041741951644460968082834175888042525132183288133631926302301086816766097984111680305094334506224508285992281382244699891419499915321725168841451629331477702026190727177684311996364214254806002725058137958593847952286476723051986226500719671349100914831538025587676477475935934663213312449262936084197140388444869944247553005494549638797872553057629512627338290807019835040641147677440865018321190841998039123186050398353031705147971894518157777528416229000197531883759793519378787508235462807975965076402980425364928838444476009130530811248449648004190557279971242455046685297333161538531139515307254499201737815082812720123190462544192425238376634014579532538314899984294440352647869924478570088567177209457390990022250156296562037250903582996138996277019643635995272574086914275426039101113189791262453507235552492500807420576412105496725694571799444178979508903386072571538070100298396495058997903663663736452071441642659177615769407612253031035232359232900255760971708451096193566626658480366708553904530913879674484516336667695072946941821550283340650271612359102158958756674553819336809008409714425945621050004655354502820390831608307206273153850509762416058272230628442147015560113354490956010560205163404000996647768395501042202535365975488712620558439561903803284573001112264056785515350937258759603333711187203930176669745376739186995915487934860592788802522361824343076178642070431194553498861807794667817480721614572571918646424864267414877887820848317608392464788042363771835044430162223152716474401483647866470438530971824415376559990458754508118995420381634298120764805410617025297099680639938440456709462941256112823691530084034608837843030652992753389711856989810616301555441450664747558294347850572292520223017203593875884639582453501043660871316290946614118895664854930911730171347288326582734326210283350911115953692394783261288305097612156495777021596793426706137918579500223452158759779377391624844798788461484036257695037437930298991216401164123006458668454712300469595203787473913077870172179065533432835835022769048617345147010116755468070636733357375018235716962872286251927664461928990155866545348960367667191346261167690805977239799776565754119916082101265172678681790480652116288332239093433365510068197131414686566469280634164461094250889122227011019126991579873218158896347231919621714125573949259199206492796141188098829332900309777649699432413492991016776069607434857931146307719470327447589459016038496933202655218581065200803162525435102010018315555967359470582047564912766730391094449308261074812836647728669194178930236506194234767382026329636631325474149679204028338479344390673239286048030287594715525495255304578925939980330137444866455528952056759026020613461880296883183309296052105734424920811474151469439173573166153335303660880790696577496385813609597779060312421818775270533525213069513307905295116656187512567289391635624414720571532197198778759687400728233830424853883065837758324645565767251071048151905453660741268765047277178757150608818857230341433549577911390798374386443983892081620815984426587127950636781319911412343524432882768864773514584261798847838589853281664031706015707713591930345771081606638732320107404151263614016979273799345183251655164766526337962009683297617832020874620433979760978950245771370376744284749342654365000751761073503297027405893117599888614789113299505834985065965393233057146643772832797199128289692290069574758630493783803552133758425877004342510499326222929708973533723059234989473764276667452041055394588395217320522931186026771972787621327244743311022879748409023955895057987208226749208145655529761994106630296230121741196283955280421220479359279515422307622986224536551571408452665278654008939617635302352852912408960233572367582520977345314472878567252116478200261205833738277186688356726034879028624294761063480127065959747158598749889684269041954307950072915465218397021231192686909636745540918446763787917985877144399501699484906293356655987683509570987362482383197320404299639236887279712604901037643328230219680672392953079546168777970129341832520816489997141898831719611295730002192705959487524756618959861541865390202370202941775536710362652682505826685353526104192341064520951072596419058196092719742291346089155189959163845658149395116871750463490565186138680752902898655731538920812166729188094500438190314977422936995684987964488381347813605245770033752969483881280972043728624223481320056594828900756811443514708828364455133415999944869633127002232807038798648127220357418411929917184853389130628837431157398419621646887793274669445915795540269254817967881110621053544886947163763755396205216366500717133306596029630920222316873671743738907989286622934236314420482461396141895519615247320582836468063422855430715532388350930990560883210123310234931355774608335525136599327307011545797708088924061695210575314497744684777762342411300039973755517243011178178938410458417546742313848728525978294435277781878441678764898540168103114422596803920671144710040567642892364385002712875547832313913028627884947116599310726051224804415261896118204606316747886897028613992443856079347790626836150714879671307884627441568745581981229763803731891398345119566492045302583501994256274793016978029786647724827154402422207106852691220818290000863531379038255608646235464115454712582312232541465842637123665581192002126713625340423942404258606000198273479332595056749336738907132696190286745294161401860261039866615147007072342393429647507949180432503906505288251439142666662555083570833629082913689539712494404919161395554377815923487591326508256620055948380503244228262905629474739041896216273064667424751765000370044016995502856168446969556256053928929224887798022957691574069055170110901195329498393278877187759642413033340977964626639885463919366692171001444778316340594524865550318093304323386834342713028019017418195154169738940307395545412024368526681779770083942062714149566719939084736174048703227464422300864325719583755744205747107403631389154272419261630172561943584290964636540340568750079844531397319420100057554743552110204707820212046767994953186211707487158460551716520696857272659705013706935555841205277651570949557725703053973417683517375176949492311663868407774646050820780593644408954468464216237030746109043180576410369942811739379997832219916421383863404973149021940462698518616754452845044014013153251938840226492015194330195480180054367445302893609403186358857109546128213369289813599528649484880309150586881863166816589127466591985501380989375010349952305697445266825270350086573887966730269075787998701689087496027307454309010487738697506747855002587206888418580739896482633941893940066618361987294471647744979899071656444125303721191560110122047940276309543160144335439833584972239028477548768601579773199346411997311266785809592483953324595986916260944562932116301890211163105921258772343730844844902768560602571566762997959225424850502395431866076002683058250641478000019034783071123015276850973050664189518269977938233046962079863009770087794089589422769731661214979848156195888160872273170725304402021325973780026336749242357533782595676999656884178148267841140424658423329887271280735761192200376345775364567430424105583520071581428065494435033889876846386272728201708717056368963313308023094438936903516739596729631029971035142341058142462884127972142917581310080329058254774748530221256569102890351421614360648334253928280316926115388264323568160048776885984179341167550319294088953605644267600424845330265040139585897698617244576014486563772436915002714780873004002837565477903323747774093422785818345360920362268672633581236579974945894790145027102963002280369870529405662948429297168876545920799750242082543269034841963742236003950571019902373002660654478339467614652395187982593227964339789914936364597187602883286556444930311141107079246360201169469931149278805700398977343680336031102758150704372709429914881927839984909865303326864025490937600223453106921902660575642773315317118716362350162332004940191441832598446004429983869493313131147227049281168333365589574971582759146337183879262271441026478599386384507886631059761176281160604980725470043858864329500393374362930322946330239240025240459924378361840981413357268006318798863788384450138693475166433396757297978128079469823795090378992845128472346819748779615743506944698891268794418293915555339683342216648519825366476375513368918628404209599045128314305478939482549196829110725824762082143931053937967449841698497991045982773696252153513011382009251754758522541093168021806367716311584147472608067177995722675823450514501363348651077308993208553079367782990212777348595088148124910410639274133670216886058502543873810779729851051077809037180790714012058834527089293112595387239897797728602357361799803272405788063761443337846284804853169436474806997278316058346686293835188516665088396078441119123348731674701971851559476469536214553365947954113739985661612134748132206550201051385008299438094425581674915031694452306809655968200282434208092659829304601738686270765660041135615255837801928013870467211756402645509633820278636828636159377565409715410437618858556074010891678160261089787755120393165200347410468479477071951024385436344020003533306531149406869911776078199561474201333754506128993983188953117491373130379386517777230047100572079384049890014480950353418962863412770771585654385684577474780722252255760363601941813205885081891960439522698218316501443210215051528487355250987309953228244914248457253646846139015501907958947547511951472981305661584854516698014957521152383219651888355827854912924149746751911851200825977381664533545845297161581506606816842648865270811701512028182212497442242001391671079171763379641830056504781936533656415475193584102020214603928674936188310279827030664753524801166698987320858914651080693130997513005138934308956309973942291830286608972006207642396204210199863302517781878961418128262162290341767924624545049580044367754032532559555725452782293028073602303842193171505776780905078802978831782844784180041826797314462197835939929332901602217223608541804427735132656258064921387483082119301172983194451117843816937786913678440842006904780473855106183236348034605735475253240324584632652609854203203600954239006515142129994816569447619460765865281023308248658413978802912890158063983358389575495611124718466457158982474780003374363523930761210381542079333297464842481291496863026430816563895856786805115920936010242805635436333011856261587550648138433100952513376887686108133789092397269082096196321434745133503871943226669781233732161044170309190442707115144001515094709728069131691584535018659512665236380963119959855155560117206750047857261598301483084858903896693465776987056035617508777264673157825193430389262159819789056719517572998302335300680234384782635700390741581244552703588433371688363332344142521086211019116814902295762832381433286050580851814346648319468962460867822153715205230306991744459590554937045736190125400542083810668954119882470832877671749045655763347555012931822627048767807585846259915434480366226648242480154470166174586879803428005782814271464892446912464555737410274388126293610968997358189539694148228349978967809339881511515623920199408710073963715047310648111421301204773854754422744047245661412110947867326907374394020740327299849811175750949652078034377970158858874153861865579090431978172593890201197978996870885636721416367785563117374512076290072650119182119631634508532300034271382059293308498988239617457890017901579360547179755345123668273408748664828198577467671325692988461039572955745090847825123395747712557878205152181789149239185424940509172041454550662356839555211690590199566218484616522707280202539162527929122712538845773519159240710455066913416969700112111518485643519645463632997325801414752784855313549145092401349747310919147153190529624033172816635316985520988527957107971795878195473013035604456723182992655151951974241430876116980977310123356095128498359220068463887369869969080597291791525080817007352554056316493904391931495226918987754908694977340497500409541195636594900989316915248059352386094952843944898868366216630441651034489536115230309967543488808651631974365909206173009529985599255836586838943389989625017771597608274036567265800261088055978469513222234251274418528973374128589136138471671685726765124233025337598198100502572018583242833632558037381818843954987065814252957317456027609523513249244797022263488861705476627253080913834617253039978870623235864869478757230005394373943662802736337882060925503405122068065092777113988475517760498534325708847736028870822254204051195771895345976031123197628942840540584454365669857308482175833763823955341884090336638863849705956377453088451775845470436999868086081062797996030107378062484602547413421580409741138735883192405121130568468168850284257510751218328384852126934646249851933726213311608585492973151658902085451778725218641666893527379534881745719688250223605200360271280362553734219646691290740803303871987849362131223145781467548521054358114206825328359180226542976864080483980779300538333555937171575001427018738749964566535649093886170147847454780310441769417554117227405274278426096747107217477886468882619975398859360396704822309981478501872572801417102176080665530642292692805355161734165203496207711060403741889216495423275939127847076831097020681147049113505469849075403713623748551969831307899305854160286014215974371787028870791292873117612152690928693099799448088311451622254139386089551118045597671587504210432089520221842280233013396629186914194792669790415385221558362339765991482552714094390468991088284558461625691540592794080028062862637863643996804335672935962234709455730047156385844036811837033143423281701910838326479044745467422467011993739336731478727122446322917575026370068875324938203960774521152319110920019891754844438922878235415375238730510578898605624353735328920715436695520020490261181830047519965384979395561466679975106016111002545959610839536366602700315880871769611299846377176903814222344896270992316789147955897642292874748851830486571876994504831659583776001493457379318317408200836827478940671032799647287525668584544574121199730334242750622456308068138513913192186462649581015785464584239898967655123223106674314726611391849343146270545052728716139319206982643111471353279000621407928862873887166150641043947936149588440107966397692726101372051309205080728553855006727918633917685823434615737539074595289205418953861150218150236001339509436734585663969439424742265158168354421309186534287967991874901026971930641260293212387986570388587596291711119307316381993232006797952660006326376209563055967901291901250199290888920377920994498027428522988934266250351385712818457721403345506332245972288543274024355017459951067179998381861394739911291933822254795779863103960992469477721919416158134735889015190567039767261197965184527983211199826825465696280365884121061387468841191465830207369482476481328225031346869491281954679506825347174256538363792511731545769796257003626709371559940924185040294109481695630842996336216668355503093314020097522891196440734217135237582447746089266737731439325255674613471136120742416636682746965352541715096231606612276639048421752781947996187793646926110801932173377366397323111122910031138471478503748960272726156055995849405049879142234590142931654919458361077189005818485773421722031789966089306132751107814134021762671440316120847795880758376874293978394083555549623017802061966736804506785190465763501124599635522485498505361643315241108527117690707085740251246930720155686239162122427251850361720215530518389834099379719300548569782818887319870880281998137452022954995128084071422712872778213142134508425055345290804641699788802072316581005970662230999636824512902916975805489008411615336609785651156923670628913216332210809927921458937361837570670602054747953199915191985697681259115324307276518763385097132773093700867876600189902324809788265171616376747321899456402409883214429896895934515651462418975957408311405989963178054933618337558170008735385479357380498791215021028327886200142537946692976408893895052820242628633489420591066301837817905677090281630723699772015006275198842102637878718688806023771506766366562442326981932699698238587749948348746056596641009576627011592317929144302151510087389068423164095677909733663477913743582119818910564115789974866021280893823223694504222719883729861562980869984660060926673000990277326282650362644201127074961707952911381435157137896239542682758586992512346876976213146766870109434378128114533579191470200894028766810070301260106248585856970430944202485413916301240715567641791770449058226032572787082235615519935950576512265374676682804453002074636861497053944834449848745061214679046493365093619122967694412260128359622794013319475625323769736623048772307482661908098099962653624268642133412932439342787387108205385531928236802007431847392833282834897500860934404749346989019727176687579878789560914068753806087884997960038651922218559770505775952207981945317800233151291260349940232504902854502800425603405491966250663896791631286733660776817935093034397067452546285325821639631085890168390567402949641654860340131137815051834679264259086075025968760791566803562368379637990496092872189799637705785173894817272134321152863440192845943839961305861701169471799201515542641672193364534628073091756017831193231907511289269144849624429206823053597443818550285974792053546307830570934937915101844527988820338080123583227591117111460676100948582989460179045893183198666822937635060112928105579116392502266657288214210275365249134646453770279895943592253875296547921639840589135642818615254862915066046799549863041691698751524827101621675521524078879791852266468062586631963384515813979323019355534816544889789535887611759055848102567633920216068234009638036695871182340494619950461312126477442990101460223595675623039167547410129847993043674107033294621097124886141259712851827083585237958770752600301264460467835615668669892763337816181159773141736043456422121408554558547256524845171002558420718123798166277194711869898341722309694731725263962420410350696583793922608703636055475643923842617972218988496899441224160033671575759508653399096255754749849545852434130148884246852868145794623963382307742171636073069439442704114430981185781555355720270839103847920062173740226281496964604187582124507439803196621529864350052947601955052662321451981002638757476645253041922287898877761162400906735175502346180242350630141594952615733682067975167949856284992479082298213430484741865660300607353879824919954919276880406379769701813308509952161250942127712716360617426016926453836748700612108874565996514601711070818739464750340290150061542793741646859244311280828036799809933797661883628606801772575276341235295174599336564064256157832732376477324071978202239056875948567967724097328537444170023454659584493461670540244642448869753067196397894471401766411220343540996779644472475053316497501750927719901478686579858348626969264552861073959809411573837360503292931855491836428821259213215502985035349133786142205391772968867232631210641606832632535713291142650502359904519972501013065762608596558890838676897716909710644981876931614109336629180367359536606191280302490018820849731168454902490133078357607686561018802040191868978302561033028953790743218135367501274968142050447718317911571292119989468820580666784797103756082978810944037755692525421895464146471589413568832944272918413370943531165779013122344468260253759023175685632186752467749586058131749301734025088361087797584571582190773896815561835756671920487421003368302650927229835877148640994672294635610239574702659552232714871009325112809019293798244733764832361223346605516378484202298830919453590417447897885494570470655897799188019350385751817403134251818975764524383760309354111532550249910668168087856504265586718024018036143753852627895323474068026817953682577033184763512618605479839986259230833282282357340963601325701660538530247585454573386714883674440921165927623262685471710950047866903390396024966692663406712710693930594149309990014756702669976945476193425756457697977930854506791447424817463064606597430050256567042540497846639594811813444691703456989777783159219365008194129999850833234464411599023581054589411513323306617741538734021658499609797797949476510945071883725473656179971834463258413980794150636691360428008104473177482325224439684246819556668084426512673405211104950980612403946594190853551364362245035133903948692709840285127044423982802950364492587231956560573098996184002699217625378713223083138537180498070619087615327552881065997339639348566202453267980043064087076273060526796963405014910625898647045628953111755794565580817495087952242463698662070912712007880885601608766452806974034883768812092062269063875113295135215917312847149436762814161926267570377748658917180843639141924685120904327804203260325739725535340829782849138204560421318378645770037325129012066454100961907817857344132046087915237535631278451203710545169422187856133727094249544613767163726492071559811380565851672997320512867120575586276808259952014209772417997039866552764998535341516585848374286598701542311512859794236812422110462601697165421363751957530409657784126684220019849338052723126777541063260562202419501296920053280894531559654690469279144596045999219531632194719435831290107878166725714564250026156788797666202858633515467275029448983883760584924006752456272062515832829624062805752070011545470676506991017425910317447810715982410278148923774063522989662495471708547517674081675027763737474058652802549591194531717944797092239022027736824454060954719087092121374830433239877204605965576445511239055645574235234476702504190461445928822160468597741735947552403288075726638632161324546909351093719288788165399798629391978973808962076385428165826953739331520007785104656734222898594878803202756782878706822906083696467398494148134513286481600559525721306980758271339778808285502581277919919130361171642587291086100370752718913549031406795291550499260808489996047555793037677337072698843189302034815240609970633522374903611913001523309693103222444472342844080009561277082542305172796553992477477268648492644060301623912559969068766763051247219848646285609109271968721525891964467256776185875236804022393126764213346139987209951858519451050656156908838162005137796474986188314729061813949529094649344303585484582738980359082568832600015897859722896923275585055980378189916153376034761549998031240497848824782493187775275117760665578598977889513889057885140078087986090392628566805052469850746349734177929436103440016610129523203705618431984269708414424261982070372334844830254321085187967997534420253310461762289235530743850094958973324756050269422775882524681627594266984326672499975999429131563696030905773774428976495028318843886421556993838940975345784818189024763661495501833606910737177021709625029256748865091149128678357577321580434162335195269912371391743901717169327942724045974349569333344018444304437652272059440504473961897321696998406632069418874324727026505776037155817484817087465579647351686692417517371578340346558194202317799319781079508114454766642089205021422425846396063248634389635126678776061866777825912038324065432159150105685416815741329110059576758599973196678463083396575483247081357940137912177342152091006640540374545724594035883346673181880363529498566105440000754829970198021914229683009344405474396758221445961312869223746364030458408615173729175757504178259406570056337916998637869139871716495323426654088966200224286830870727796484916990890102031056408415989876969810046209005848327588812397148730059652968077818195131922657245746440410344881309617088672788478754732532926538668216755121589690767543008266670660667617145064344447158591231098012058367890774496929234565395224354390699317346075357015775813193041865086013271188605829808502065074641431914592302009210084045308501148821248353764388402788157056363458018575926290463375082970362787574010841196029397769579608432388078121130598009105046412936326394855021087356053410287788090197179750029679194440186353551002741198328443663467689477093945349486168946768250182209563877669482800920017549264647368084668753099312129359745458870344122860250172563324930620048733527306394366545973053803554195805852476459141805937807542806530894883415717858776949583851440902973534245335705618853651398176902730374695470580935762387599923860376673671158198625622118434457482944057823761298442989981848324658120951064956100016171182138615080618312994922697747788446466006299317342234471857590916451507559404564430065296664367783925275206886766063364174338246092163770514164642700300249087242497621498874285441325867196430919543719171311721823817612997550438215215976531007204827195300462082522609274977029511775845608410235580292661631063555438297891514744185308802720081934746381665571217325412816780053314490348597537669303879715276168198346460648865993655358543949630674966456668477287898228192122411565505769377144668026319055168854227401208454540571259973840195176448482305879319398483947305607781914262660261381096642080850873978097503770272766095516319670299730746709375649766286573221459725300949703030176275954991365690445832172159441358117732341881943946013869959631448581101667748140576678714125559340223273960553075054441417669331220411983857797500649821176884993623041926356748354455299949887739980305021584479421681048815003712101914559933014959311846433115585820711988990653386439310389199176863804014723979190883624520460781863021583195020103302933795502259540131138197754123708995831402963568584833205963864687905987585916187572354479953829460269820664788927441503979111899775025820234485031491238528217686896251859400618594493952958314827309185744481899562694639181961958794128099237816150531500531510786012958389912416047624261945168213177661107858869414876689263425127655552381291189480624069902588544695481522623951964562717185693071967503714413999612829518923212486170023894497191143089918905223004278454863755201702800740548110172109073109443399245015169878882805807702014758771129751959828858314974446679974209095882060500191600125002253308204288388955162358827770667778433812408158441859999938605341911764845771578951987627189722886124877561074987125105364032574512534687201680214337943284269590527690476595397530638949445317729452514726630484290291465788689162333853754627949205440073428614678531928633912560259711891424530030932578894975713020575891727585556338800288026232093865739587048944111991648685127955827887091374948603260649877418241396581563260840571929866271198896343039656441540051903884715836793924115896780379842912130827088768395725248019082425142813061560153278907361096784720442179376130836165654168506354383791151936013026283102918701177014844157200006009558518592188922378311187615502712221594227715905476899921700279407277438704360955938461581881836419188263387195251432250643210569469724960323895550207621402642946478646115215619730539642384658507434339663020171644947254548255803036375987990223850887277313615453605174566283622014647253876108213562781217939516378516686114410367516964285850108488242849385238996237925495254979688263510081168126037342092473396567832290301333345925673338258291050088421508235262784284380301641069704148264647958686038895599927076460252034204451966979277305784200314307058783674729937237264932298903805136481935340958728004540947146211805522268114205962841793559859285341683267824655539177329836293984259437692762130725766400331882856665418594352284254506633417843377765640141303494769782782702280693210930209981270394379054600977690326721476613008882322735482684265003812036276710642812610060343786036689950437112986110331806753113063572373388145985908852924444960965211739271601627315924410867296852977616135211536320211024810734635393875095583624238237018809775811816537367892713048368326607705564794473862119960771891331941179060188454408906139855712312511489862512557310681133200173673131277752690805058438448117046062815871070495774419728491895446650127520392502752692257765968785854095070021788770776445698502034347746590540677007006216771003509688779971270340634588828013220780055786505069125759677216722456422078575702538747424761514893974239670087154744342729758059050256638702198693059050398756585016022702227914220620659869416718189440469517671815251474834744971833802592403780170496499781187842421263034874415441215798852100540877022467225277653301977037657837152612905058788220299239340208319479206568633444611939412079536637828791053641530210758498586949366619910536164560527252492523689325257498922260902481933641821889299983739693282682012119260592762736932723864916667447837880683816530874819282739512113391298012415043142496201172100700873006246055775062771476228127843806109645469652167933740636383462730792181579367181763541283875783811395195886516193268635819987265892941876859739753843969682664885397668072681208203932855213077635551317172420916799264517269121213809489890800581689270163803009865588038368626492089273719426215982471690588559663315132946863965685924625832022806656984923675288274666704624814521887305901099004844542947933005401699918664799568221051098314310437218572549006301872695553182683285460505856484300614214987127094266243408173638815132859465514632323382131307415796535871709943127472456246629626018421855228475883058628324961735460139439567509744435448684765614072084062561486857206430861273697440714517801185534008005932026409145027422938199170152016938788459181615031098504376086739172632823015329218075479262423752180346005057417830512102358358481084719880175992646624447566297943300951305252625262623237288740142992696146009151628477764391522751478734342486573751440775871917127812770404946423751919619441952994760621134383502679120303309926080907062660278358673240545850626136001392533739250789818290226380276542712011476574658614898422510157329359612377843663447053371884799753058431745101067308275664412901487438391597346056487709576871673122786085416532779539901215252053349972920667828393806184452073774011709599948777716319211642198334973085743278231852528541053050218879780287532770353354534870245127459614967157402876060301497205067435714058520656197396593252999501401440352966059300983570555607858841320825221074107847118699713137389800264836347574116421289198491577703479489697569698416894297906665205396709023191063629117057647995507074031876363094911246092571574084676814807273896690434336058753885724818080415141545155937579197931784543556794019397658058375417614039885880773490352136945497349772495529983593553352849327703119995491517551359480927267852328004067371277402304852721815037824430581989443468989841225184206698800606586370725198651595261468264449571634774958682979445006257682925548731625140070835349662787596839336254654095142790456258761890483445885939562328307981893681963324246756680115067700736096860256093241015279527795833567763845677641499295333560613581304179670632122729150984552164850754949186814489407528820490408510126358722363243908180443935117291256130892099667164074819999363094149919664593871731307523982538380019877597052966997339668572503669017774783754891952456126424085632846088714894648469634682077507169978022698342615503263018958361364801508065457578331320409835312649866360691075713375196387300656511320885331716157672376443688149484494881663331232834991900353728535224204617843401696709114682849789044543344876951804779660287689402894363125142145439337224699938145342544314284086324949916896056482699530052732835101117367663530388665811926510566516393685738919069936717061620554491517512944380034254533938154083814308133965244298470658043346539543946771082285643296356285050682314253612095212487758119746405364330715553059650855423824062825718286227520068262189634698725412726646733690925332095627515331199131341349922363759050265655676437476596487909384363037591899679032666538574007948931305739496702303923121853796151392205272666924857274145754580595139870431437203512506342846214282356795989752957767723238683291424341268963408148201637378187107079741742229653867775375515705416254829228786812843599579159701769275479327972194382093324576340991967633991018780948163187731392046827235482705590252414673015243125149656693072817097723091596823714817465898919440055636069946499617314221346231748636429181777740076620313502695108280679974677482208928333621998219523907992997214270487758028995840775933944967068197548423126569274056766475486134855980767573228222144977894284583533223014565200416747553675404411938746248920248624380498734071661368317564895897179912472425896111358876490385737846816924722539227457873829197978866682867156327780100583873666285641739834475186705070890363866107913124727766630876652050767953180285712770299351625498954554737545952621519005153190158414950326659461037001383144681151316670605415095287872579638711119197867690650867732762863825084290713511035012390752424253978000475937338375193709415152497472830980082971501661637378029565833173802606088500425113799366487313347027811889321611031099690492520005220242431502569789720079823629210406181097462749427412704525349005049989746056301755481852620461282971523486159250542607268702346023432681274568809722492731711954503107185963003697113430349282361266881590952950054800194327097753340212003987492360104080897107020999992040836924262086722301795054256856854178264963878972411381613323185461426661348850744393713066185400819529002814408088368952425164584646958306371238189941768703445070063578008953270467811507868850906947772473566828735419358174169160382932082072997812326188283446998543039081888866711289499573790763876148717909001297546416339440184707577522141395730964773892153661648409506317147064612585079972094622456059635125999453496471945941540153290016571450575472482352312365909791069531075838096510914645338248235206862541314218045159484774753884610863195743523407199837528064895185355828916669229891848584887115084140452545167909092060809668871345468837550859159743752812308694463663774942688544131187444956263758170143826230799856809014474458035426351022453054763753522235963736770700974748219675345620457402431656446733650670946706323007583064106758834418650526830363671026104218827258271812338274489208047806881534141094355325058356544927048711821574361788446965764704930103738767164018642597116462428049916769020640677266298626449840392702907505760283084218513930983345220143750301705077108350805400413179736793215443387599717498021485775041751902558298977754370150020879972166437293908991961811880753003363838838741497728266674940375359682598860558607600059923849481050324593553669345633418294909212750824239344461455045245341867952372555570316935381827614689716669865370504483755309511575411916429452401339615892601358053141145081624677177791018029820214884749151676518399939857919144367047989406866916916386500777178044620728256005256291603610837124071132350290708586104678514244249650897539299660857038635069218581666777773812101995279195353773182897268016776211981691986510104532945710577367853735240112284839431701891813654089999325227367542751387093921252970151283745287756951356453840493623172324005825310942389566496781439929313107880833894951913361734709820358919619671734954723570171505934201021918505484901475620310665139654162748511223956118064414826612540423548275703088668431648138512981993841496481687007102624822371181969668187437109110652790169572797689977601356766238781352294259427340533919877699244464206213578062469811403692586099589053378556594964544448767631827696898388574333700019658951818614809157800392555077281595204004608850933853240105566998048293347473416107073987729250487441646459505666210316487528611670657462889245447347050368969621017947501263157803124342131096419507510284052791760041927676414029794992602200239645246242613867145446782934804645758501995071652647783090562972156508576161712372748614631929509921258634428313036519857992691211195841913177530867405008699728803674529581871983688860977528430709472629434229076929817873901629878774807049093942753896654198848143573762737445525840909498660734752680228009678555552121287281253895788083343889679926760837767942001035008328508121475530529475719686608073946974220987793933245666368019133045664953046333506785343332298244811911399491985334672874869274412653836548140821681607968235688516048721411999530985223683837508240124548068436207652400031242044953425166161619077651846801546990465002654860585741345693477496975215089248649776435746865814937363617369497040000812079708240528968882679693040843514344098580684020454000885358374048884144364758091318833331424023739860869028771323415619501893755078181852701312967964689813264181394875203456551202753134785753909727131413378608231950724146723481514648940391730730733775374017258846654271426804495208707387408982402548549356648553639613576012170678954387806935652506149403208119914092599628116303460293429107785236789271745577565744406071024020944507267224304470668808653092516219714046492466952882355720240588240568398742086995219205282985307194204205105180344457731411455863906955921582774579941376984847789039836135829238647175388679057200790184182655141755640080524743204440591853725864277011536353692379408151296905844048218773783308431192304447883554146921128944622930334691230294457273011679627318502422365836583501452459503484115430882976599639398481750827239873405580206396215674089488740512856864699809302115002933851226419095615461601417154097539227204482438937910809145616013289781329410041860043168256486809128390684275610160192309601578298231919458296464615874767247457542616052479470165570468692165755065186045376973983388760509634261048630007878708519737723386925030660015155511406193033447403426870833386271040599876033949190422674893017693678556642958937340937004690373986628896968084430827075895135309460435899238401217119603204532539346490548887285706960056659035682554141246678140265054024526733085272315331788668918262428366041910671293151457970396704662016197159457910911287645396678914503180272784114068312724250388829026811094362818701080387037564737933553949429932267453143430732614650413036355384488173322066987897552955069793048374589828700742785926464512580243574549992801911253525974925562427323712259818634086193570042179789107724842386977348617341963934614512398194227030328415575753772685004742059469779903740783706757001603893118726501222307004617226203221549435985862677101401169082976255287621297736853685761798760407697665960246798682039528334351676302535608797040572460149478738815709065195120083733632250884318898112114740348815341694387172218342096540743713648208174675460809652498863763701905837961850973355253578099184520342206280130216818136028769847139463876113069938954458184836743534855254302233137067202892074181181776299624888511750750492857731862560105755004789800844610735424856808273304022879063151615958548945545737619135888896377207345854017787212941919533394034018033234330597399595042993432195609635184770577308963900799563108830970062559285637435218877189442614195138996408865359360240307387481755329288842600894980052750918721240566433394936375529474764609844446334257041773556015804686811585433653613192780904369889869506818588377416715504894571581093031706095025038374665847601137060814489574285477576195706067759183514970352985177823787868463906113492976224310979822985860444046574882281695151907062655299279019755761455312892626726854869145088414874621229665682885471609635787154267103624338802444881404128208211131474694927213766981403997338152704292826925066708449778669832187170438508607556159852171981240823014998527730285181836454012032383231869406915038847989341685132353691573701793835333591046685844546854298496522310238643406348252322235807661291405861996868647972326936227492842125344266633243694809703553218937704563554725701058961969532859499516389119881979877183292720583465442811337223546601387559463995366345289529462637159518249776497985946863654444429177293110466404289053044517356500874025062404735093337718836224031367888381435209306521312883743378595278387217950209376815628709977411652476867722961057112737705784288641904552640099403434658461020714110581421713240788729402860262070503205639703034123706244156846554385686888055387875701175980040792062155597085224904686578252242020874354462241414853103342135920448297341580787095770096261697099907256346371689365141061814753369174529204703701897280074962587714007566376423469366933772829594807966685324242752181342961796560088469457074644932763093714056961731504632191079596919016982876991861813614441619236571946573997823096787975716217139343471093206454846077938253712199850234964855736054628649104714883507792848031603980349077606264082286226174428746669096973811622364329792054544074169342231697933391201736330354091422957262816494582171163561980225762102571143155104425197837276110277046704872766812961817961707789819101031723248292704147131420719578265366654298411585464274216597909148104978461754013323064748661281806219487952862490086767910559378849853384058181196655831365461019809600630323102409460777944293351359981161535400383448588616358009576492509882583195869749972061032165536881203310385402078593207922756891652792230456936479339259109514180267990848153041631050384489210785577188319837016952202762194218734517695526960284637915689400807925877103112962495074059902076279569691775783542531781517547775725444969151025358184954352349044155978648767610339459334640307893940223988526209324808313299782264132116157105115811879940033634612991045543391009288867259686590357091086453435567723996068945382274402459412662962734788004332466257795197424392091851599172867321611177370679237728968147336199039221232273231604438935612454941341476895055247448714718080464242213144286651207864996567369855004471743754370475531455060486862234266500602468208659549394032359623573688436892591798398616713678709008006048417930138446931389881759817190222226509669701391427299632812756186158241347459413714209159822371148517251452254750473695007174273306224559766811795703450315265170458657938031845079666962354767417810772834733586974545323290085707732606701780975709502794988106047285772742190465122724419457999231416856025802602379253389819463981410749086531323916351644857658962025056399169185111708485886700869770386109829798636585734994203644788415436987659566520596992881732783037246917658083512512761827625851337163386743034543595045539921183024990264918555658563762748784386917890506712051742517011708363449882617157884928682603126325530486362765809492182019016837876862691410799714740862061366025656906531200352117876751335493527685520122998033301608065960372157435867807234462972419846049798027207409374213920135477741739002431869932427531249156772614826537429214931493579724803917057536011820342455846409387317022665709480055081658394051722684052152732721107462395440603039823089768080110553542636378116927316730744685719436472710264968017060290800145070704719392577261115448935317099882206814985550705748946291664197479633366392168312076532537389332691870834345419823898204515401130701255476858325689540244345617970653266756362599638377839940956529641000092461413828793842838209584639565966710082909517243597291506545733688145226853914069627536931021755466164016051581959583362574127628329629104926052317247546160632964880400460013185664949789545261210312278579391684366255338445423118990215360639278354966366818435917217242505336011264363598717931284431425168030386477420744536087024879631340013405436264323836493559184598566285259611640240734266669171256677344150676681065484989114020551835019951795858380621551043550241835625892408503598145318199979915927945326526051397792843236856710402277533060208171244818317119193914458062448750640587779355145910901039719655184889589262639127094648622695815353618183952022713531373948808807880250260985430009292512245247156380599342536936179759369072334194471062965331738579603924981746305850926862165532068930090310806995265645746022350627437684346295692800340001639909796051588237185209125412107734012527814964261702314714508276207180172498091295229512062173282426775255094751169559327112962595013932310427229167367238184986268362106280089030349420043991631775486846030744309574662508705179681773435182315087462423494910196554955354181729449214017570995774075127193996195175246455847945763064112921233440264799479024492173680567335000496504489732684491962586277676251121158032867170500775496232995007653878261867384245311624082569851661972334389054342368321630048890689859826081407087010932648109106143436540028871776376915259587935571897854366933225462184622945537329985033889640913899239961717995663479443302085473642958434945935945275008041106380643609112910302001473874504521459192749579940249548362291040800220762195845691905238510598986466488774895618662191429760682193389462547143149839789037173794150242856145732501900326035380928254235701673135838821293025387671001627563686860625940203886300368939527459588365774771255808360243301802022665031389193488952821267841658011263823241936409936531079465670108934860924042408666799873739462650293606306290570697849411462218900903132869467937214184988034473963596899991629580304679002542434262366173337557755663878584429213655741302651996731349419387931475120329529326847103789372332426709745827201533224956397859731185657518254036433383527671987985687082111116970907777613609966425708271400929273965904690383381634225966805862419801983229170673493105188642673950317735696625479082424509392244569490242967203345411976991478775507532442403140830214694242938943546654796819154826837575430075577408359657059795952203295689782800928325784460963883238509561304129365184013679190299058703502027377871527135720190391933113565120704647900639783799289510220314035952023112856040384008101026558203899331244900351953443860432989517774531610126910516570386446770654533966644306751144677110662718231832129571470966696827002057096662738181387772688620265983034110166799571330592479870867299902407236613552861543817679791631790578744910959265633049850016860448529650526620749868211850489307804954317564077567659042411101166388893539624450894356322847783669544062000607669833473509897502497942582484770654671939247274297778188091883407876806157960696965661659564303165671359226345594654874818610216080297997225066659334383315601940628878792671460717878531330733410532491901143371164515534347643865756200523466125462812861019822826465016430993129309382573872584088153398059762406569455704720956532902432131243756433301594005035034403677838666504563236606326969810568647695539594863110167965333496294163434440381770097460148210092541480994925832662828927869985529108139944209044458049052646504493432227564862065929114297535341421342931109030193727349650484155326001083785806081838909804186860091668155344041131900733566729637888520126352366475736024925322580253512172906762887632444213168231493105133446929032199525855316829937838567770810840052953291039687725280395734299416100488724732679571789399867998814882966737142021391092483559416894727439005623673899070479372955883180945125092266747721391573565735705269512975045094490564703334660679832772921749726008096446520126349002736702611616534959385391226700636380104793373338175603474838116463167977703986293456910708787398261593392158717844036475866196464097172717126696977595363670683651469091419206761292335267335927540106446790980269929604644586924093330626403395332317912074667993044014049531410740881960637073247593395413098366623386202045670499595322895249074830885895846760474585462119868291758527146492079958295924655045347668577457712597865887229927640195912105736649408173801940713439902716561782745241475963759388265485723271980472153244177655152740953703409410999626625626312384538893496049573790286403683876888904054958069532671911203351705100313586777746288220486494159182577341654591472636876930125909357861850978804980810885104996091732527801868664242284034947107128645126311320694004748730488973404963755359630271681334884162987959196636964106907294651732905452074371042822485838061804772785442645531908350167568735547347868035456454233198838983478210119547434607713197645249703300477147813855190446521710418774388821937272908051492790305166968097060828477459729975375980504331054592423071502921439429157956232025560977576818238846400658076459933155597971299194810695068851518154908292944738067536300081406526750815359980038101825632479435762082566729239442337101529265962401154556527535959698962867459946810811839735687806118345368344718055426306247199266296073580642492219713361398439759077383058130545398200984630800936852746455069064954556194232699474170885694567425270312576481756460659836737770958291505833053253332742428179512549795470244709586091187562501112921370454992786306559196370268141673127838758170685701460071756688064125154731922617531486284227908926317079926837421521689313393567766493553217847097041334298783392696631627412595795627708030389825172881229716083912547638626655853696024601999277639573821118430445431201086261484138814727869455309723634958156220278889214119635657616090592711230983387963956698102085530487211758610293428272475720933465951765562108161465280895577770587828143231464006284336509841925903461412741059805028361435650681745461924972369752233190851044079764718188107929681126210525377508126379786459256244567220822750451455791886671524898387565585830454984375392981052347824511011391829734699411857673575094209517794256654643390154445256396003664583800656902222341471489547952432001981902489139078256614270023464994784879635373007591720200127164399791050504181603772852843785351326236903932902875409917779560464727391255713904927816520075883186212192513860465158393272543602125138510308948390028663759242992157729114637947355479923804340524771724882742757228873423492420636857828834933227827202171597916512391423613281774527085109684243249479984218420437000465464484663729579117889552962734981222560434916194782679982816083650434821036892580128557020235465101054213697839846966451312097575804727671630707349132302470219230590318938551359589623288561428851078126570942396541655375306259821826688043964908631439086951303766509279496206723325896707186907250856882829736055000428488537308338990838368496876655865286088094841146043256875973366994898007078305300793614446746859742408359055765055972443809669525832817793822098953422024590393889032021501486441435801096636859501681250342395516089670115332401607801970898311155958562434406210072793605795759195833335579447882729566351031146331395814573283914122063575443443808437688612647290032880560214254214369648300910570658070298974596152182333406934393081692510018700585094762921450538800101262335261318185764398869251958131497004416752227783579500505965507860609301523910954212353996384515169326005334906547033943385696807504227340304101326155579752252739940500568275456015551347034581179555543761934623211269621417975563178204608920780987738463078255734812784480781200770391063667947311916792708253949734548584829844131139365118863135252278929562270676097224745153641942052000197858652681015689542351165555433291515213948607622130878640296452849008498858365391327466802498736136777699458458492150448820248021772905219888713733397231074821928773711522355147795063802248940426663642520140490387546762853351089199678805438048912281827453638524319567606860076338766935717879430866539545375210864130453364453669765321017246801736006274609332562605370629798282025712690064695843129557129531622098763114623698013365564559749744252130128300826637153544397105266587980391650522579988988765050637485130169446646567802531040216886493183878396135421692623688245643350958355391633598047374910965913279551261358679256196288602861154108326293764729293823260686916234389452506573570752326955010864803957825468351563770163124962881620199799217104211093210128664011447791350196080596923941249869906506312618955575328320560072747579738969203651853925257205341801049688368058690176578479142880598795638389985636242216741976323852401293058770374242423214270098085586460797159771344445561962737204309900232815822549243232245464442312694308427398146444446911461922252765359012437558160742551677442613643698862278622220585232750288940904659204430380986964050279424698519789473070088071630023643841092369366499672368094786263307582062820407915839167651837087706938656156325848302940762599190448900620298931745032662753608989209980493825050258646390719618252707344986017165303989907456331914561092094072043577577919596928985999171486812104211873084462764345378745648254939742517825949077744781105930014297198393365241724837597381388010182011617926254166449915641012163863929604601406784344843890585639177466392042420856031975298664403332894017679633374139013081960063154078441169121952876512972202482867964897620598140538313822325644021104558864934262569966240366135402187843288153471336284598542359723945260102220432968267015729123059279963503465422140585097071389316875559303665844453731675760219178042681899679225379187447056883803364953312341093943132302022676988529607627469212237538422929702847920172832368916399649665928878509048176032201178966302360761813895750050846216063368431609641888378453565953176022975343116916517933048500894118220141961781845957490381466930595874686868219108664025550659089994770464139557313344155307078679520450492073379850209849446495326404895699939853244500484659886102102302550535122645834072985593054717855545475262857411385748421185964887511760245301282762282783382025306976567339451030122775154599565036511042735728044493456759090642337893608740649080043025758784256071405612201962709056366295028731172012713961942132546076255291872196395021068789169703330200198149443393721795714631523657701554977346495495924905755630277737946060663184473063278127385694998472585654888692914843708678098047476191078802203333958995120741453712913659338958993660650452952156553621184896643654944474426345390814432639885457797365114704082650467050945088531198710335464425795454183989291253018218982309131974096435616901844170014453539920227569024464179882782686475989417469692333594511540029017220093484957323486293529525211854600427638053333236737514793782277668215240920531409817836089654317581080074325381213430371179804667295524231830203869617374063396887768210494431709903508444302595807939067121329392095533464193180263464894755758435795003732239846470198654608986079803769365093455817282863415917488528688938694882731756135215898606707301574918341882400563291822068279704508128980255862603109261520434957879279675731608965359452987992634163336601409181015605504527909274402302072963267925272834014159676349545822624109153741291892347568286233399794801574255402086819340104734296460560052711282300637448970002199235522371043729781430561356502764575607896201830153997632028929648220280143183415377689340768077783938203626866474888360478441493485759441961286762154675610607493700187672802020181817919250916859996970928948604064561075442490387206864502127178085379316505367861915491093846377947852649140713849542686932612677502872092203925473301920547176696676924058947714909009515593221098666676412442237051640042900342459615327307179217693878920234357152707224025901937553928588583284375696151603703252773758201655792770771624421110294845900939006239324160570867143798281986259753122166576683682576019518813769866998238430074486331789999866082088461286196705849986845697181384623755245480450500357751502786357779932637495658685251787417509060893854446242233061735095721106668654929899221414433546668258361602275565084033822729681209130955104101049473893392485762524131424285202213777277975475095720600083007051571265891769823127800883557718767038715506439248052973792494482483291770427769189828860620427527044312353056421513954188725211994703938700297080002257029686488245455211937984255720698106490483086618472009077760407112903331889851950765114209137540965788765537175273769329632454371368488754048264341349256529849345846579088997595953772574582062626727478444190753877286068425746192581782369800966128768586981504308430053414733286024630440366974055690995722832636232194606804945486060838734295938687563925540798257800078165212709193710299596280585159586906578139992879156290097791406176452621683077127599516266910612521556837932802082747258571947036936613508663025486467878797843515728011898883754071771773882439486284725254395860306967855730346169684837891547332817865274716765037891966897262601559816364139989483903522541988768166874609977474976576987492716438648276215719929374638465189144787641795289489225074710885135662215090155674463091629597680077011011537231588040483408757809246714757799952828140220367784358400298171490496313946688142024382904009481901345552655966602014500274739210011333775148522866476600957997789899014526459104432930310344980649100578658250747770849429820663132473385107190176691122081290474924428218884275249259438623873153624864815495848327542980655246207452290227781494857852608991899038266432359183846072217304166550730459064537154203800032756774751614238634911545305746755018197486112918874124439525966365378462051643184668724314144065893543905384980525023219630355169650166971810840791468986453084348229007477992073105635811326783311321445451084887874281963962632635240210799129271483558816603902284183422879529185447524502105469093499094456136348292235197269100966420754926102624030268338482561639864211111540068505748181848214475525727129408956222671367216191760876819854802684177840306686499745653421238689786811701632936517724521223897019210142885641914041220829546847909145772168649694247714582429767867554821822926299178590649302346455234432890901075890310669085072484343230764290786481635672999584077056020864385658251119080592114103591651183479183855764175255151385148991907519498487518682740490184444087985218684605909116747213973328036824452139745556286789608704020559984326574527415141822207717873452675138894530772600399063292057197895547218678337254458177925568203744904781288079656429916795228934274563309841683319788516499570229562647493627954485013389763800497952961799338639429950939154895184392227227597005839235317120641912256722716580367735813510854659923574383324436729516038697733957219833992808419215627509566948176233605080392031091030017153579552303169629359330770368438579508619452378939354944166806570121532768506523683717152393005633029551116603310962343160828646916407571436938299140921951433599365630689856959466229473927653629283671659847633225963913208484028587999082646636683687749396319774879929433800764890784938176664563472754353960749446611023189591097696370613288016944013613672574277854076697240860378589148924228380059774014652534436732059493814669427934891259846810802535577509642292218263389945318086553610941398868942184361504144716851941651350178406188126424084037018885860742772473792747591866475345191335469256842923658306612826547136544220541616675162816613547990818344006992805329779836935084079077757545734750596973577286096528240952030451288395888224633083179977895121237272251726405810003881287333875425032368933933544041862027295302415061867394349114111306694556702932933748887308985798158819764688202587261430610321997272282590726206836359793423141542512907893153947298786995879649836941545382983702384412158754162356741660836418305850014771610634444547136329897545710968979383555026931588748351593784745508103833219963451236868634687940151518685843380648454091175448667479720484983867442684449175423377033199720036394856774835863808187517927665889404307130391780438055967695833375182388653862113548796810042281448090062622807496803544028633936009311910685570209375295314580664727503923000011077405190725542143031538389953322289959588406684866269523049904711760667057780223335265869115288997469765722548191382451584433585101907082233441568767578217386933698274285611110822443806562148252526583073338029532168630959250302152321715048135491942743918832778647709613991844348289950092951923614717357738913746391844489877915980742224934968685593193056042460336080926626571639670437962374424096898045101220585211590297755408802819899715746834463036735784818414125474268980853556516616928530304749012473943623987822192278830736673698677081446120347460259812605581332024938509915781410736263626101705381431224369848786793180430063174484115218313929837270861424437030742144044128245392841324293314409715319848420910776106599864088216075619888384971279969189627274562469736558969875589886805416303982280541602822006686658160939767767612442710477834827083736841165609334773801736808788805104958223809615133616284976246148942069957119368343863524096799464272883319417395966366910254936918171468237016668676324757209698973010863105813359558214120425293099007946567470516589721905528019163771262197305925313233466641206871243735798115852586387237164828942326848917010810088018216596532299732856952939634708797351964622436863609596029242947622003532659003800378077106334220727254858948889118142642143970902840605593203102162527513032167473233272252388873850968073942740668607375949765262408442971129435818671637933663510265464574175511100232916528597285209525204501844797532098290469986704435703642897690125523658382086587930833562613836666221764968622677332460450644571106861196205719547271475722975010371412669296850668184406762540315806573246947031869459243014854108962770437266866902758654782764850387886323386028990064058094469707437271975208234897789778268539804843288962131168091451007627052634310602100549381914666776345626457074379420882863032922853117050458742478566366347411822157826513307893163036054474022412444675064758052642473302927181493220506765232703353406788931411143656658749901451497234105697141629628406599194516656349070232742041992610221517040729291392167101434897049221080158273634188400065853462657208784154446640868703711865472726657778831787483830284208735883939485222413567536806770584925744429823121903794886377310044201699673342955326656086169399450830484390608283617591150375339815565238889459794528506631498025392354785974233766317310511768012489126308244618096244572235211415657570326189305648465182901883041822138950910723507037360339457295369977196332834549680242194864875100437067822944102840444254658104023819011041087202575122476282498980452631250686119698490858705170224123687164807196809131130248906410393588518817472900476186674737778319596997664485176064067285593212414091304321835289217064141316510050722427554912214509280661754637912167566580920230759609366628271460602239080084964386215586716877575695327929564574122967145454308169674461966972648971908264638186561561510717072454465890218519876317726608782485745561498749285882188184379133806542202227960303164845946554131787340676346844296561065413360151798001053173031317515991490663343554573871505304537039772004751604661424352846388126762533242660417660428647864492350917519827470749413569337919970228905253281133212743122784568650148312569570987404235655644581280118997828485769701020359349250451758325222354092518308771575825369243988593505435419848916671731807217652808638442092693874117439654121583396079669658574685818157001810018661958593324611032352122349575167669035843059659716033558464210884509413942809877782320008902101688165014549159449792477184977706691989886040199885848176005792921547999207339896014541416769916858772806909358952914049919601368982241438828608926249086012823389259075218403955703515936940172321912532781703388652493174804795922279300168262862600840446260918316502874697322822868674642567560920751632656759472185558273961863913231640782817802215196828799096978764855791269693812520279308082011270571510863525089541254672432805076654474357290081754582851432417423494405991500567189873839020463496217964661234201419578870382055905395488719588473152818647193598495389154090007476144554139684232827613785502506279905219585337229505189136944623105600725975140726015125119458810573183359225290510006075523154627265194717661504031342570446675084864275614225412774184085616595040118349820869257094732593152458189574851905561198449727214710286084281437372810223668561337106339693451892835322001900780065963296815254903382979167146150441060958128973803405604994190254351956579027830515606482855456505824703811231846490253099898981789885409216106017879988312562635233695314304911649302683012978116857724917170275706182128278455825592064102058828830467669234814214109988107593356252952869632026570614161938460436765577364242751080819150369461179665506328934105986940912044645982805405784616270954925191716383391703915861710908082960550127108666951277650428536292272553739544150582083893914188008055915346553620346106083045738006699314302223840329623161539770812967188212178238921085904491362649182356087889015815162670256696590127626159052378956925607581730964565306917120935520633249281923089041041777545322216928342661143953664856196305787408573909050649110135292223243182510927978900616172179865026706007533417800772210411629014823520806029699501037595995512491636942562713461077126420248184198369949127697364580550397933651747822787151114997882324611841501236825463704067594100896274987441925921721295328007289781033305843453561059247220648446704349248086408956192094535190766051087177739285744671524022270256643521681551036775703741245830735767472482610054954741179331576472198623702634578884396036376838482208659656084403073334015284231130447404888024638509214108171082655510942348879475567834296104542898740762448384102862346951888875813687346739681995177722607191108289216993873478044617915669817131667371218157843946498984817456622441951328306616195981564660386889261957370634597338183145156463902716447473682591302681157372469893411542460321262818862614424319228234446351685425090820554161813094141254448160077191824666008881247869361441788933521865793637979905477492557365310963448842218359148983218162193621222908883176827656033250714444312417183082990497708965941522775085500216313626015434842366166187505094765686244719264159346178119707105368848931277922311088021315196395329651300908288965743481456659572857365236941364331881100245533323472228752354814870603137205705092185947694845013599444623626853387783461492386670316120492800134159370580882060861014269590054240244794987518453997857913587875024152683374549532063426628586976022150506895139493711126656242486694340504214711123252005451758139408259254579657974675272497447618699196160851752261524111446149565427750543634830481155874374775866365174395681964032736341134231263981550464471885254349787974986645501602001904989922262420549467563328332945922695476161482375203904623018829888485670629733951935503800132988559133497108791189658235349209968922569895966849691355888363636809356345961881764708561921586338567168832642000518817363289051933028159359522766826595089138053695021715365409456562222319034501437636757249157724503101453898198264304403389330466807888032496486919989819724655950718475179679203792383986052547668361757197905793930600189467093765160572935990292710440010925905639077428081560940484487853846843929170376705210867763595737753312226800827758250331555574016807617895720812624134245061625127259367204177586543569919914615734584755924276518039940800109989574588614852182431106217281638845860624164137147621369698616083363268528049540104466135674219583395535194109055595360534940046807158693146663046481300169627379296213153712449889027576544349905893735652585249734988560248087022991501035951698181458642302282972905227631271643860478706419241268730231518510626645610460909485247409599951469083666352996343731699142776594940694892015638589614845467393244622161094998138966685919591747322681870083937963051591081356035838404010178285055029514395173147221519598401451296507078790009270041104575938197655368406742549019671242671527366826923158858124509866759208813537495319266479315957463177314682676919290319898878186182617298826689302243638821338385168079892132007754932209210293482073195598540920684111959550610214708108200354750041035299850749113987191583602615199540686441581024967072509520316431220254370120684742922852412018088560886268178398344951647553394208926079102487513201763977236763033622798277390745584079619200150478432233146793922678552099176358286440484011707843236697533826216336216094362443631417617787667437252358997008264833243600100705122905824439195625656729364543186561136662696561533650141317535970956394176304777583838756409951918728481111606245002070861274939247564734710342195315049645985330775798758270238946426089571052756878034136766633051506759365339015563062365774209970516096163793950142906953375847677702849927797614392003556205032953201763583505634307253448926918737834520489569404627677155556622191319310575477429625349412077486414669304770932622403591788588135319704256981044529645774968961391437006828562248021300992113614926227261819700364875276854913527543261838883960930732291715337603581599397465399243964077034838222888974381582487139297011510538747843813194596854227869752682852021147315267469167766771040355353718663842714951192450255655857868195311497562987248191757541517525591842509171053941111834629717220083530612731708438434407239828446078585468805188858209672492865845554868185794795890944532545247355902308877514182408298438141347481826811318217423441140128515222574248791750732535576779017929804114460699886308834109414102684309766188202855334622464772552363235329889449924904582353502538874779616885483567219165921316741954229075201484958044387827802028926038911639419665949174274169572564148928043239813039480391880469220888909459796642080100764745225362743651875543238146227911827320549789909931516807642481947628517608796442126669217600407682783809093327900334148432202581038863708107103774816102726487096866050114657739131639921553789531918793646295041592248139642249025365317757800656253086532615016023841478357180721003664813964661392332316640355889405412926422736689726041779739004058640536309426175042809358894262066069875341716914458645335899263857654127682494549287503025185644765193451651751040943832895443704032851388431836269196989367039298827795046807235987540401971777065726155156718386442985292264121761477838722122593547274307512620201466530598480704747167333747869322329493653739549307147715014470463564227682082351141291438983091291533896653320235233760327188771002312896287784270603696415840916388340376773474690472538989220540082171289486191651494132009777457035656027803982784710705259249475038534038194051603542576257290406075199517201547579316730175526612247854774193695197598006737312742940470823637392662146117079125917298630482071176643552641676544235952754683700203624254694899039188340125591052738378803752599506767630197727676344835099244095158913267235713391605194387221454296615250883009129944527207078316523892778827274270340531018890078275933775957301830753278261767646441653942773439958953007746420604991967206937639103220554080277916708272176471037825894289321110845154545026070227555567067472273663990211588737824843203964030518787370756034690672133467968370759724434853619477157287743605572041958312353620569407691522767946551084929795304158540059275870565745864883795492780317948685161085779327637183067612410600005667054870776598724315131488627378247861946040928927120829026798573699735886856410259873535737828275539066901317804123765735532542050584379243168700291928276243114873062230010958524469928424079515925276925406514602423861884106071576939380582086119722159760559953665686930620496238300202728097402298870199628636441704304321711530227151429719373730801441955140987863283587738301545368806196167985888918711813537874215226421605730346881411833688461542179903500728720567169086001688816880473169742433894392754411122505266489772468224650699734231600859911617934496048876832910283499908291809027332363994043466519425409916082110353763758104845923497692563817868386366124155736226627901145858350550976327614712938088367627906748814857663939615160982352732901050684880031451724509082976934683374693774510633572814109757448310351155453716970706986412913443889710832299330873107922467577867122660300955254243440621387548422207319997591372831826661659236645479411720782609575882032636340203783613999665156197732224634927741982223936760288778925440813402853975927438329040994698931858677288002034180964962397659512532087935998764430162182098506781147112088900242359607117367642741525860335985145500948045243286848726885268641142612873652000093553100120014201601162914007167964146753694027787931742935914269457287362802031367113438161826456967357917480229487445805707824150959224252239679857573127874717436668027271582284522616823423176791445864674917967046730346383565737003406983990767975740757234171668758223513070529488742515474362883953880663075841543240388774774656157548857174156284155285618906825053321876074313215187415475950273089875038436712767722520654493684741044858407507049273090745748575361660787136148993319931023174657965024296879938140696478543227348975575086696970949159514546126125157605680077760674470434253365015271634088897752062520172853008204926470585715935767761378322055984980504100005497678648388814867304562503954698484410203991895993525661358377649388347340774133859436248804903910389957085909365106583527028587408180022630229878568626170937825061132423647469297513396183311280285808672608336034711421678660243044382922567725995906291942856103298181111235770224602046412964751606319402250853175030920150986448812578313209841783587355254565491310872717360298967856840499549129573360463875178939923003130632998773688573976159818139418897306879276544943004439189409270068889557938378241336094367426716151478718629564188999189342975552293354533399579385398065634693015703591922225513983850038003155731908257728834635367639005669414096297167006918562630146318217631731305041954882980828785015475925633710160196936794011896905543750513032950338632500835296698703463792214559414583332603477617057260477373357499674036781877961883036514116052593264349801749019678726293575511426524476164376365766333042780850490615562860105033086106152550363930218549623088479443160960246715883336843160025730889196673219158187366033276367471453949058491269719952275435454522528476233611570802804719686469500579382518388956205122207603953235222982442487098164133296153627861503415185134330697774426067181157581029106968181583309554118504888790099408222952859857024646995152889005196015359356855321217554371414502043664393564961913295398608187990972236596482469747427710796107334474894994576488654001245641509740416808891716586405939072110618543183011535926079546162269897636139530404580312370403432220998459183345025230728181844517304458986743543954509664139924651908398676302247160318569598448906909315904118972423544108868831620034097442378664172797667133627309082389400805857665763888608520747249662986746063318617685969816025967777193313981784409388611461303394168484247723470184272147660288125115459504087410162346007660211396617388024599289856827834405135980655690051177099202867826516946801205798446821384557310172579480080933787461409322683959870509772483272210680861782590874147688581594607116690844713734772612966928012762227359684903416581022925144849344969636201848183966420832172906458625586959112875773718113014475960504712451413704466662003410301760276970776307076003831612647975620966418403107549842850633256078819152551462377985837698722202469896494731727381706680383107987509991525332507491564106470697495932800164883318072716913746549637084365696992279817534784848341106975788036953198563923686118509599814387553266259018145932923515886404053356675808132718189362863192792172444801835985887616412198876304790627181749001130868133687950468587278607358991196567641207363176317943305731306547374112785099626811137177912237102800840293159450211736429786648467298865300478566534429823482243834925852205341837225543602502391575746006468327971554941566536428850101152705248054515543233508923401600093548526781342208994890072335607006040572238981233935664161282276322353153772812968186931793296010781214770159802736845198153753750297712273777173849463424556801880080229269543528930811126971646783591481570199627719900533644855546781565784603217105863389421197655147464404293375245546388578244717653360201122052170835749558312632058869434597323451815092931798858539538074987111930690168674905317936034954985178633734897060014340515003749600811988937605688761173615508721772669434191342956386504694576800036933465279800640411060752312467947578863215722033617639105508979163492731339485452960398895433325696916558953464064421552249719608218493090862120000271768758255290498160676131139576358665411430415187991584436008095418779321596617373904071083427653196276492038884439284425048802130840236168957703770879384511168376285395945183221529503497978069187949288157801924205318882818909340006664529336863351641554070332688830143214104979324962367865805593382460008214749899264744355599601207413112282092356610741895310320410768041821492980096777180687943981749110184162151913862125799629377909028219484256990389535964116581800238909916034339262624646504982375038691257955335455139991001857376954766254274348885116259998935227785612857649298742190488662144831303265310105644400357171590405575552661915316856289490592092471832690873814845455859013035818439268355106541151770137578042441462935274682177498177682203019667687458617817562492379532554786042308594418444691053916222739421404782652148495422140290583490769557590279267441726074645331082443021849914770935379064380629639579819319868673109690064725778379554956825196773664413333981316085009124399972730958934430620967764403327536838689997583469470873154161685412833369465202479764074177497380753067503424414322148658243456731621841153691016310295162703867653667200913174668400263070180641311440191090578349806532357460832012247880225005101408830060463535848966329952936983959800922117424828688268018653095649667969828075154217287178889016788658632466989362974986544648683218719309371814485412818992533828587912629042516534195453923825589527492389386038264417549729469679189795693852856209769696701379745416143293765570957154412558548792198184715053752835596395820550561178614985937542153332791032458424055205395398070210709544027098285292998374985290792706189935758264193909165088169038802113305514977126043811106931975998181375447658525129777633574153481538307005201860903546348469978799664972484756760582375280738655067957030532278507506852681460815344849520916414250247456672676418640039048371361827294598650758890508846537553599659266899606324757921120511576031831514173743195171888199960825426175238411671807095767994930485110501068222767513467265666247253055608000146460773838494399406874920594618218846081134269699336921987092517084704519855866217303043371666645671848559572426669636908227166925753605778904620772011865219197607431127087294107089710344924996585795650601954107473620617919185881263134497318260174274720068801703132278007285456418557162119988085414992438900653326565132352292106727734160230079749219387184611049778709214336024560290803941290140416778458418720194732695149919747727781014253890669572255454945630968085237208244880381458850985026517385788376231530763107962490871223355297696465652766022978926323641978085039961247592313746441467841675528489239807214858546654744280096479451126338651003514313601942577905128027299244856220225006130951043330603962010317624621189120060459707231407565809910085929279751955339093979614384099233370056380806783267896323401267508597276749498002866172821650597204051423036922011801388761829398844344736225276105351826109823074829751282098194503050033853397961666669782708196329455693642236236980107679900460649140853399214088028181069683864707186441218929462901231603695271569419171031201942981003518499554650186045142574711651748567657136263529662360063437380718783466971237184507571943928635322450040015560193307111603664409972798917942808483088821231643958295753173273651877261075476650849826252368717892163494296890904308172038837425338632227470344862062643161937081977285239335474100484958864594905019352579424797033179820673163207027300370955584656050035126901476956619391946990207798477973986476941852632433216067061589831326430070149049867737409019161343170024615523376468840299353634657652695864510019940762869424563948089769242303728677733579719615216607319181971305756734006362769418767762683975063891099500829691440572932128251768251724676936643414380493423138378324555430462088546784012324752963739323537165730142460386711615333066972771960983173120376502841789224932760553491341854743918711046481727399187128121633876746915573912853092865116132363002476571794295173141202541304113391073097014345796828841170366458553415737417684301566437659715020638056134033060276774465953030550291256405777618026978203185236967740408364427930789774749983849330965635265108890216821220261819962453182915598457086512541383377036079431328169092821977251950863383707550276277592921899732239994541260911092836289056487296369694679485877674088025273768003281942507630145184555548900148377663228401797937189868358669811302825908814102490976160419982170573107238480391186629079432543425996064504119685128192961992846674193939905315588093675602681213718045902390477743003758447633655751586226023935485872903995334535199330817399031488890969173920720868665541310998293419362831234596200703060286854051455223105772416027329276128943022782491443274068447747476969241289221742757622393042427635014474313891664595801414221547548341706608973345671794700714443968665835833701098090001214864457196292250796982918840954824928638399410621997386440351011032253713074403348531733967280310953029646311079714280526180619329477728074473287718833345425299240361085448320050612002505364236163207006311730618782071458618525524724198043862409464949793411837798983767785416802754189591198269540101363267685365875534865870483246206593552430507695264110491000514240308458783791427720058806780712528906173156805567092962453768122885937415468023811263773153474113135038880258685067806813493954023319992601539224931659941799384440652226679736435151355867512872139973632047247289971643495821239388117438195242011036085292925274472797398825931230708744566617463619065293024183911157222969468835901023347613426967863528665651597722029192638647069621920834110640522014343463497508460811193867260529088873496451835539900236366864299065958185609872068955917210715405318236643710022024542365272375825149270450569378782652874678332237817389475025528120748126849917460774989796693499561937957134338262054356817091658736604111856468662494826548269187111166817517914442088044672781493220040291665504268693747799396854407762759116034141124879818122103112460464352387993014880313046130977557948972212528899452177036130759469902576589567396080144908199643312951498332498472459161489774193217906284649964641071835306762085103985198053419541665802477765789854132509668847041397524036630009495257184632623852836262476771735154085397221098597148156346995804269017776313489334088684532956284643082270657755878600707641079640354035205748174729923815757042069726881719253353008722265740542923191391809092969092609402279857007991728543605609715927627099576745912799974898017013379056394282211615000593457713129806806128145237380735464387987821395467613021593815991085619558678185720837707443694940764103708816185629865985112349610163232115338078016566195975405398944486373828943820413441136079173410625156154848960312733294742121827347437099530589319828349788406013123002732098006060292494915106650479110000966949885635786674341956911449168228963253344011248369610145712277338802911304132368053616300187255222708759204905970256979428270588109509038209648915648246537541217689713744579577307005846647999097268198190113398683130640100640523376373658020535195215179707362474192561469654850621688836675788315288850184730405038359001057048531019750351337324086427285785379997537069383326562454024745830955078972570791770308934231849475897516379700948267872040898466899544392327967165844203509500378205817768308564290719087579044748007595218636317272900679997498775341636353839588730340084219897797304070884491033854019795248537528795742654529997766194267178086419101445542124695792577328405917260951710421474159540667951274247196122497935548779901817737873393227308163026827650225102082617936189485674795467795560953073603433443893592600691444605513978858760200154854743491164184457983388510901719317371202556069994292185628630575427025603359298147175736395409987662373271093522075719045669283340514976076429678758554215598790722410038385776725088976728434740312811650670552994568765495403018856290386187363560505806366398649803365093144089712619796629102382322560767895459900875500776304803749304243017342572970666747669094542966929777188488138521829171841733278633085230810058390392414059455801450422894394039595075580336816173369804341366399220687801218013806340660021392208864538966655802143109956430845323054935562865149835428233857396614186410184640262114554411080933174095023206749634389024264369667781090353327415207409047260921330015068161537107518009109379804978777242642668835517805528635256875322473818187372196603504352346032487587161002052546053036482227866369837421893266491675294229378710750478257680643822357004651211137736742973127430984981064027739747122209227955165151363044181805973040983332148760280938559917910251894013932990027559697524518759862453088127160257551278791159922881035457880196589942168624455678281453589152823161116113046544058023659280298400223958118094846734301346583627985908433228549417499022073442263004349716894797934844200308087921540092162660425136075415732583664316290331917455659928120724934958814877979898473638768487158179496509241981331516331108751347219709786316834760774778208408482271733150226412526151287798518228058718798606277705731950206144403525649221323518558896188463021801455954483967400000833927268850981388045893592962983792213448243750350746102778633006040665272556061216964266986614973738604870357251617865273655241015258532455770488686155392169168817963809655082833789654165957175246356885754759318408380125789879272721419907974524025416195578104262653651045401039057603330437600030524967378886261687220008582449614350289163596914985146925506351662919291475374604078704480904769806969653782238817231813349563066363124626935752189505937375184636970643332374714739358781077708691448626444724170062269098883027549498315413344940870531103387077246263315915518046890411627516477200015635252507940874511159327595527671335816148248596521305266980134008465418487897533620515655951650302526884456374713503131859457369060101967981166547578099454489684231139495410693016519449179074537803258195302511020622920139234169611264871374824973692339727224881641945197212281099668720660577815837686804153336322099527254426200627252370886176157106217696153108839632223767175242237653435736540238768006870058462916085369858713959582397061718614589728637558932923536246215457065246108139320083591234941464788793618013526606350018171457353849125114835530786903324120061478063824794764388307997650806158226848886570953943022006134083112216408949907375508522998306802815496231206458157315897346295750727774939228128315302603603424455691218053285626935858996416336324571083529939312154301129643584304710279745384808931624926121719359281826509011334581662556831392810173950361656475588328521920100058717936296032920993377442806938271452760806949762832809061634693235192166954862712027574341482432988919183426909050086704391448430597942296414357505146564606378807719620135651824979636830669558746977106838211313846835956953795983647800923065825055849693241338864793742782012459647634815295154291085296553606224066803577438463840742910195368905009882733231485206555487954492724859680688240780659694462645436681178806069281861005523819292615909413778071398518026738123503327511759538419906965414181295602130270574764966212486618545720199482413958740940861824888210764532277259310027451656711772965276953590016428092278650168465423457154114151703876563711875450794878297937803117967274228191994110683734644450716906608072569299302583261810211323791603478702598313942471839463617541913193436064193491885358690315199750569480519891096216603944606533394216173477853170251190410055776913899337722843113790372537730113081482110072934064423606787901701849545951905304548983747885610354434530138800482070640704282872177226861653471185770503555502590281048970172247122861668123735551343081618031135680863844194664278386709180526104628263236768432413155633199228617679332702915934129621751285526534379181971417481736439622317526148018177468418227745414045866695084844118246903365340430027816027206190561749863367346824946785792805468767568228612322783945985877116831527667000964625181251401587300778149604429561835324147737129328173366879743926859633077419083381108349312772019988282445877386298071741263561043964692084040213342420406420901813833061007758906832642822003106784341870774991473109146549539008879997653745676168041805771918139638959803043839206574470919783490962029315064138070452349770017999163984233874076896952667738919460026442642364245982966633561909933951700271747903637560625559194353974462110507111765711940759036696228576704650121942941964813803509779804028742749326072596581196074835620098949751869370905039557047974224344509956643754411310021265369972250628170130113263775265657689949048386802592694621996119899845357415211961479432125184330635859619423109910328073185803943143600232402010761568081107016784959078551978871376216232350197468385592841343686064686113203858305742422027516093796947255782675940866321591170667824604604417302833114306929586963164818527930867650092430963263283352036302582590694168584093084395079797871996259713193677612257026892589066008098947816975418986368929011248090190850157319298537899713663027978043281746311211277397252346641647824599775550285796609837753685170698253482897866854579613057294470786932150150315266226475162239936391632971304600258845159301060006110707852272148879778202409007019855075915773539020761572191788252826268034512727063985562311512405474880392045690208040886753033303766305808222376464709926190367209052830069270663024250477033671166402395407461084284990928416016004768550714083615540401742578963701797788199123249860833702411236156732497796090434661038965371906977504463508031474617316092635590206170448795171666157192889084189198871758504715988888189270687655719078119682264493534039447453526049055058520662084387103170085195029130514690179864161691753969026701849081393236520577128423254645205719589241126697391453682991912519086981440851124548705786558189693379990637197352570557480465770063492378941405442925721281635376457010725226380417230419083396031418149405192840006697729061638971650567348951414985809728211646734001981639907334977929928958227235396994064121445649090843788499222784587781506073029518095369054779883596421418860148522742758037553914919761292671607644684283467822744617847303623642752598520865246558301187673197675022764925379343305160080769101537155141768312941329989742844677771621961038562582317710871938065058847732549093772652436211439437508569987945729124824643644880938008458840745898362138778736856359908750885845691875137477231775975775625116473263889355269701096279591378397682688834778409188868494177994779844075651013325163090879009094005704161829896032442596494354488622254849764448157157965302399049975877202569662986618179519083066340309463132867662856710365859855479229442690569129750426163037892768362485802708276673515699236379678743800788412327918599084664783562569311349383968660244001729980895758541349582053038228319500168574695914766033611372522910898585676503551340531506648378561597984459867546194363087337790231339371788926641894925575920999156721824873174254052948476402828930311573209445031014010982931709509159038787744789647341273149207146779498200484084899425016007500606542952048360977389709844662536947211225436975755013930809576985880180227427189248555421278399412825608978866973398437026310653393394785950213985308456881170677961652412824469921023519768708597772668074076514505028656863940207935500029301458512227828368141028322266946719666324042420383891334650278634642683127748581389348963181044495323092319523335946466433290775760715345546437771586737113994682361302107066691493174465478949138776834619513926904254499203992644815635064134244341580667540994807585764585626757591229539236714182614417395817307876185047642195318765961526500131000595256076962484852915420258575321376140011333072862775782102794669910748215907234260967868971929899516583279333239413233543324480662209233345841274507556163403541966178630804262902993815379333134988174561755046048819897909485171624377964663672364132262107205492130244196434107911430843968216439639164935019614518613952986122061806580429369769774128132456427226855081778958586136411313583277965702197338540892386286944934350342864950891363251044446060321503716362672039544542054347078037259899254438754836136037981657007175083210886941290992274749934205651635884925706692992009018197575359884701023750320192542447269826311596451053594983908642332614473977247747562760278805568471154706666610406081943028373537787080464207730566786678908309114958897777663555502847894934823705409662023076207806064931627001760649117959609425864358141945307812393729315191502369456200852511963033945039633022037983958719812045234629426728319549103101268775859902399019990232491895489058494540589570532505885249184611756255236154435668988201924687529575038926303286913988313775383996934717866312331926590321532742499537415660649952805254393508073281880788940035837333978027870123854454646502200532977918464147511823471618750809349993969537812820810596533812138943437532719278961358753158815396279722130236311779979318888587871401229835698311258365321562828234101978755127402125616150497028714353226248108453148483919340821909922268162398262324557046720563635981110536934775064227019187239059704202456404122109033615552362916959401180017641736558659914527242945297105823477239131056659620340663407101643470218063199430550352927843138183019382110295590870592146520494936293922949711062442634154533191060002083331938049611085701123792451394715026494155994072617628886383619026760206917567589244498986995579633107915611652270849709866256400568964900032610669369577373648890210080974342859516278314771010004214841142166733149742414175322371365313188326507477587327293792684132920549445418224412025920891026620191125351562703859873304822314858744469717892687536644335744473299812778825008268501113064437389304074630437594508722343869503015864451768545757373350083043543211876651978621178957080583382297226250624085180901857906895789597381275598654136956076435032255212760518560790239713748749791573466432644900881751682795966129977885473728556552553048005691706843718743647914772620098492438128880039760979870985448778462462582460183536750599248757675862962402249550360722057468455257991258698530137827876554908210770933740488674163147384242401551935482244205909819130538942358393501190854155190894962664372745556279660918794426651064923632467498483767312080152003266603066036354148686118214197165021912369371207438214699724977953549446263719604007583071824105092555258866993602719565010388944197753018360572671101588015724959124196225610426308735753815203435983616617090670325823025095005291378667623712434588677480673590209468683450024333905100167912706444514446887278003145117113879328792561484828136304542716183511706516573057740935950560525603868787583704090979844636644573454385428966090891916437579260616708248662163036703506315395776080208393129869424607891678441424002041117656420696914677219574942713922003168250655488583225024283280068730632186017706431791995360128806886200925036214793990443740167035553829546313544970839352793241809357673326395590749357023957387703844093667043240617325017047180107506924446002992591990170248356569310781600527693194626507915601059779529312886830289917106891364902405918700765566581699361488249828350946937828189199725823891510915033017010698550706840852853302472923947425039061473512246232395207066388380812287625538540489808375082791758354722908354635539304244590523296745868135419209560469828738059800380076843723605358608988382774339563977330289760692472375976940915218797544713496977451866642966947485869882010766873403598392608171621316689742178257429928482464783363549547458403947605740918075016514312398841164710397115324599549037500661877771494303539859613191926185146836676202427879189173865926899202500002635681837516008377206498968571534371467716114417833156980182958074402190065962604445125844300590098559330933128340264890134312464287037644581421883060397600218958842033940409571654027759821947439222900526215194094176656177755375361615219396368319568576873118651727904340540209207160475607109813160417203927361481732048669221122582713497980114506593257042755196982837630479493428722211013234922435413522395575683039084206910146082995767814048439731735977374846968833811886962895437703880986654949617416560996103458725152650980955878266631977252974389143786398143686643930689569489125135194318898649028238783630440918530469366148145826877231730507162553541882839671190832214184094800077629030763393557943909929074570929922709094413149986319172247374659617277937742225662833488988962698262321250524041203250473362540048255714884730539337641045339210717825748821028028791660729364402771630165989978569456595686670622337364825257272333907648477456542690494564100427934989981883434264930502239611924496129703188212817021522394812484300024114547614342221202645934455586641055885678586546257105568633845795113393598675223071206820836836607093578722993467986652349528384927005570357536938425649315622049344160645801934859444498117453582458317668392669854875996007393590034364405376066849115312144516982267378107061804925189523743856282847194628119890260514443536245145657695428687398974385093174991645900731394354923776045476327768500004141918516493273913845488094200247656336700762535838758168188791624710016957806624209681729887020502863829625441620565421786785152973442552197881477604343516097459794562940387529394361173170670267927756866735165697340719804488228975077554848063511410584939312758015352451745949048482207670248964185421707312570946197825465017940173180891978489838100865571271176549434188905602416357792516111185342917107980966384660938635828541913066316509941363437865189341168086962202319845926999420896544865146835675301522991898003934180883027597346784253292375543614037762019506071906026126911765988397120564046404389570590149891448322991140247525413261963880336020702140752344124055874830380479064790382070557520932134691964003982195768588395001389332812152726728655733041906508897404670902705726229451612402358211781422269790150167439383902979496306652157011807096086389911183769815408954717846538841984915595581225201717897249436176467560648921044537009925441521901656353345440317481450239051254155724371270509400706620301639933472826237816503585953048895767100920732868270351007620548715616993256066453740667398430062517947471315422552714015388816115132163525361353796496450292868381002491313967622732263873339265050102297257665072804271281682956311926508008650140807001558775051256475391972165908806877214025875242023850599416378018988509989405443385774384411932333130635096543312929478305142314762133239884922287245275269018365823378365116122407579895721316485799500233989855538173762213663533609903799316309395041907485556238843751034918695001967192768549543383917707084589669253138023121384787625787210797688687587222530328143813858262342517780844959498784941549031342990180050182057360482696458428972286792177927558580443928472072658022818481211865943118954760541878155079218347354976526473574385720090489701059128043048565736770361585021679469126139476253737222524261452416548654910785428757046602813723908603513228288657114034440659964155468579785790682324568124346688793107238120804866401083003153109006219915187515924184571678510394225925598288029710325995704517729750706446131537404731446295157793794915914017318570692613387002835188052302577005731795863060308820399584388208431033161837432337248833508384731845536940983280723340441630389037869087593890129892064207443383800502553207180851127474958037063844986336536133255869961414186280379162774001954224343388323596066913689864618600060768664532371609089959134178058820728774457331946702617901873060380384893557201858528302996315762600327028025860433489265857483195062569018426924278450905586441644365385082296041487792119564167387804562127040565145285445096097346286369665630146535462802646601292720088253947348479865533915643225484036460809136422571575701683183637183008716191151127756465008295698412042828206302509475733048612647495725880393260188297519974349466856924984408221425257573920864006820500658284664158970718183333382444473960217074601037316880561379169183116212365761829664610619805811513676435811665584932735666386122371048282352280786436000726967195420792501748323394566267565516072695907185452967818704985731467680510515860351310364746976493206805804671099954637161230102729602503659961526263004434678844238280360515987555761701803528319385631738309414627386686008021258430591224933325021032322600590485566900322930892800018068006825318894307432880713816340304800628510919073009483748047951139998525529231132555757537320492760241931630247185432382192603498055283510764024546264583494959210799053905279180730040034264541501504004582733517404110396097935311293184296885766749507605111411468805545625861566576231259735138224823113520319403052708421216481659869528240916995198838481567041958595318031169566010392838064783419013076490834589258359846316878350846771802903147872737692372777866371828820604905288933578748350184126840908778679315983660152980276267730006005641458690779043526066377779413639763059940172274663055642082089743315479864729001267377308478238256911188580832860152754358718317570167271070728746622701948445690499373354475380416911790993571201750421535797765666338002686280626031197619839467518828091518522386955334369030508143705525282752674425817601330353625358354995761754028411803174465285380457964959389162523895107803079814969439129844716754931639392494338909898962185847806653605901499635953272591997162136013765641757924973361014668724765164098579360941596600871819012646568227045915802917400947637379498400002691062650815705710651761306047417807094459771306236007697295445540831749858395024717017435467361734053650947993142017491397516807800572858009118696184959661149569115330833119027428564319976715140941879608224723840036461548739463366107456173941376602010949902573769237350582199224510389021995336736812742557403823616318637903324001039121050012403546692089390696468217771873632847021045104838398304169580093727177862920374894708600132817071803967328807375295039190108059172633610622198198255305037059311205156514229548975176124673667133003833526002399971480172194833681337247016459026842448663270344532234244881853222317142385206852993223122730314349641095113834824336206300033780071581255345544935904352542469162992847992184641687512932775284085561939866093688285831009625018053647145741341708488582515112262568964967305367555268680648239770449921314011929219570368539630480020588635247727620569690842583146792342142170874015173499595522314190750843958525530789213035021433299904033249654456991164573229916002930318515990459459271363870596512575224946026351051096781077230005608861498518285876210765464106421323147672344794561022513145361973931223959878646886559555425591734240290714905571212190279107469890122431125110340997381155171922474824302140927632438198869146435174174580512188134378881849586209163574187992942431817386299459970896569961597352736128156401261349956421751577748503747050600950206339333948053035742990230757587601694916256151752759005765691797666629003473358909527627827390622384580362771673363936508900797477702742782928878111701160069551071528161300342044411465881623863107192219526996935769472049532317468552110399614273175945519510252670507240427308979147547225640661687650772631262832446220257060362235122649524832686197966009410260071426030204059926810243631232459216372939149019372521421387670371945527048470823472492132277280025010920469637111494758066595408896270939239102544642843244788955711428239367916875374751445472892320560718837533820231609365398379648494606571542353829845318076914716096217760152163784440601828903997709518885482165578448163519918248410968775064053415878257856168006758875929728671266598017679895784608892202600148359057631499300387098710908647228007862999901411296135982886431324359224352862645586523656653066311130910524590289666880227438180310481499110233633366649841812838308186969727339618582067854780281033048686637197717526505383558496299355031585680130025537703338691433981960934523369452460231661923783282257648083393648698268249875350483160068927629661698563592161943098199991876972638833451771367859660629568712863571897639025777043610190112013772779249663976369495175804016758917121497652113480848158440534442289137006542885553221476146741927807245495208751142364133963701343917689726015660872251735129118507155623330589108281811894058042622505741872384418429668173147106092182606766110637665427346387980578943161204776757366129886281209213885588565868061766529935475359251908074592222690373200423824686493396411732852487178514599684763507707039860077015854978569923229720142789997193844495747339634595522577007053273359765888022200201491540227586157028225115491916639701854262417939971372137286030494779268600456986982785284197533393969676881581007775153809154932018575152988169100225190878152615454222639556379697413754087416032887612676620507613705659580426166257644108319732397675593505870711765068035790214786757895966620842438295962352443055923692741411547572155344711308167281627607436446462415186531806433067775358435153873864593720352540135667638048131916043994522270116287265424841329894159536592159020403438734825868468600461796415238770927825931662658480237008717646324037712035291280369984394219331904875525873454386655634936517944822138953739397968231044526147737407467070846615891974079643579290810993209072890329635569614933665249530393439701749907169440023799146253341094393977217363955827137890755597572343219581701069487424180944180385210269839940703411465563807969035460519619429673580075760284970729113597329854671527958001116226918131578858905643485319714267334655108307088821369139282412785103736267760274186468818191457553460279304797410919892778476080147939646021882846732217226525882598923207583695748494418445640876800953268310217313761663017363343043762233234930214478343873497817806881267863123156995747781969820651907575809779379510673406530610414287213827783105900253370909444859222636597290868446683993419946324931306119095920397038799593242840203868867646799820217849935441206653632885207815891807942847883762064145008045816170411581908355395585944305811259073202865026724120638394198057760870857823577002415268607551741826862866085137769029207644985936977295494824073310124771965484591911588062073844159460713833397796178655125879309499384826593637399934596482065969162824987629822439976021920093567771706808260680058086108363702040492763661892947514935734224887247126817652102863087519286866065831234964651160547226151269049795037010888065817949622317330268888675491268796307731343484339957062505478327623130626730530200626651241657960081254555901457176386163953325518107244709094615327429241590691101977612122745127284585277371209161746860947327296430993151371714532188365922059994448850991406575506010465513175030012561752582651350959924810339047233805773160481359745441544110666274636773947167161706419485042356929398866727207212880443085192938120710267155515992505216663167232743721677464124702971503912991082454753197677570962596199985941948499888967658442054208628706970780271865378417561727936925943876708384168593723316490187927495195764128232914983751481777328271583331288348269962387037851001287071952648157752252204566200159885970631600994498988662704602639899314048419284796906426024820466929725135548582419836539447180551668834678283097849612137240947589734346624643227925009485132574983412422536186082177329131974374018648011472340603711030517568858008323037851496537254459447554456033030023609638294189500455469931088649129243493154702988439516942983965572221476868453960858741673701098266733420825561575530584577031677199261912378547638692577880129258766909333718249268869519911223299625105987727849714513931189662218653966128893323680212006560689962812689951770309085804449316421382109249692595561778239361901374466649448497002034992878123307217137196685667708064182199797515957352334596559372914004310585964862051147962867370038009895781331608914526854959453590924136822595957251602546471547925672883728856141143411618964848042826659859148695594106490798104246590966157155640796125470654202097079010082230017382998010933484326211067667283110998846302642056620386649837198012910230717683088145023759208406561128461387440888982589011513855532135014301693627281714880869889449339657011398581222682070789734668948204107437692531804026552023246810600304903316411121623172123758853587326303178534243268913596044590915070013299882798855538263518970157347490408204739597551955570839867203587645082210926491517458205174049309020612936770618594992458018563630622520318397206483201646975337701916032945357187844135431259658843005111743016335242159722144857804211375667840971292680267382339649861972209871515006401475644019179956393482974879079399332577279177542263076271511106476018732488148568704676192837981639024743805411606025717967625740900842032962265251866543406988363761157574293507916476801973082448745952749795332517156679127373355764424601440392424475786892196327425490633360138669997246275806635895254931259283272425566973235650651820823606167385884395339319938062075978259295912166398060464072959996792311633273598854951158714777868140193655303767917558733356948709767869817632792328708127874568515820076046071809881344472615694300977265833520510756451317786771379390046946117926353066324595876465275362607684330517765268620925771363328616510414324934400280018452370854337112524250595080891203745503404550373767660955730162315155248568926815071848709898303115616792533127220370879367685603946612102174786758515596733283975692307184468693303575117945771798989984328520266845291977911292734951520804197483630154338725768680351660965319893435695282648880583360613024838849842639097700402371256218986257695310815662111064418100535710185587717910260498324584072928083522735169005006260351156496484504866190591904975059271590188947604715622156923690710548001785635962198052541617060119805375971974227024691515139397972287596332061398154352655334010252592907499793547150566813588290193294302814219154154278807751826318743013133523531672069856149045204673904076069670339073135994636869917433828271958613667654365712853237204476975888877050722364666872799105597641937887170475794996252934681368804530789733574362232901978200746500846736281853769140245073976030319783793185217620047982611104082364610602176589028537237557263192076842047278864248573955020998183831159603584319918460101694796187947387460712186695552815472309489039156113150690379967499649767899392579048338790992467627511131584550517537324791437622835168163786931389404109340201886408715831050116400514089699566731775530395355090756689041232589064533758329108438667107862648909694517095789353138056666730883410126290644900381764546090402974201135394811260230872098525422467126904635227268714066939065606779463276407705662962684689601190007318358021490794036168714067362460106441356985421822556225721552797724719535043259833741311548186478292587188211973026953763608008309314266296547435038051882414667850430519705642785055892074647037810121622230236687154409696218545565693510382395616884307352687899269245353169299497735868016752022377260870982478076924760347927129343110533472854498446799660214087920597823146756755017562105670739320377393434846825249341307596067813003356818523835949533286583749498021119986708216771758254604242907188993869480448032431104408490382011779720202725985141278316105595836374680631267123971715435980780831756310730998588041000710342928914622103376025264013791868402075521589076904814988797941156100287561147755339318604844417867744573822354515152726306706462709220988620072504911874291396366490037405796320462253688879931309735513689913667825738658133071838148333578948222935451125348685064239798945973057361813221910981339674320840108983962994495444140768074703372060041635216645016158352413917954460648359104333178645316250242089178581032278234342805672361623578672224538006091778434701157625364736406690049821458670483157563815245091485389919754233994480100523258398786408237191430447518780489943838264974491455517303907371747271280666730285781674751317910612888534202526203684020824046542886923423352047479486609393637899019851511090394563930095564268353385595408585619831406396140698716517734524601724417181863358180132273243268753597344497022613780085079716083949201484140063692352705324837940674277496183246454456334350000463377300953015685991703432017771193964038729487558155085793730357539805225789371554290308229903052715666795048250592865617796769382776285975028460354695311832703447723691556265370005537244259175331585843488519733973108270892866991540091268828161001298106083181691171875870418345096176804305423232084685428610250762897877716588333321650301649088639384931777919187305606067437073279875520178211767013318447439566645761278954439027850014836651058510647199981312358029155810429130753276177883183701324280096955799804509413397313880429741936531694006308592861949446419186774589871350136422906697880580481280329824690454553711156258680097647286587468451335871887541043804942892751227410695093488425521528404045712583522647432844728580787571800133020338947573578178840005885502611689669381222861744638279769651090527783227688747644585958075813923071106853196969592179838212288661780312622002243701291875170619526798908431503950732953351269758507901890652536859959368661287204422285952207679443204906286316218428928135464714013643410462161363079936470130086517172700798616456791976118600326180672076998965152492463658562803356977727164505358006904979300348050472287718469452011742349574977012363040256387739364811810665604485949556313257276556909303544638834057457688895136561932712433125798640434719817025427569462973559051541235838403963527176745542659631484343824619973562441817331601938377213279178192284366393811273992968048046973672849502551716972951772767775766499422564100356447369694661878613725503684331564651796835713019729749390508766621599759960330649565789844076656102219332721221568398816627879521571322477653942809823478435376957164252223932060344764486962894874991974229019336938270779076915113588693727344902353431503457779478410383000449077734067361287188252227881106247729068283380236477685450110953095871360222962820764328151682796008547772425505518248380888362137932875233830007347682405659585417383053753503392611601554119673666912695076798929320958912944876865044324665372807452796506435944416177136849592788048960662612586887031226302894288315950494261228448602850195751114298764958601547245845855279972180646363952837113163527220042468895618492190321400171605337908378194621472913370034082264164931568140914031435859901877227868069776863381070268156862599993287768294946175923764040182706493966208401142431752976705183944027014084660193710070877548543664219080529171722698768063871379244489738337700365046522925536821679885782895003446877734222603969783941085179771228875592857373223895805518859205210991231539134339300897382516793136094622709643910945113150333288439289244353018130553732856220742070873514790823897737143533365499764713111031369136357553394770037111087592411601496742361524826679551814687829668894117010564804661158868422946934687062566003986614263605666241501092571653532096274806431192510043293054428822350175097962623733453863517963515891813547319877623357686876246569759609806436305627949784077919593149060756430791216235353306271470513705723579332974201410948580939908473876233409597711208865489606824269535599482079675977461483619618779551852049703461043971015990937663087412083264053479412742137400634730344953125343467650950788034656727421290235323752609736845466645417263279809818520682483986930018093858728075894553414795144307711114413777004826803816298136130162202367158233628246863536369161385202361005293817082876955734744410716626600625322174792379330465016500929120105189734939708968704349242112451941189248554475697815135895704766279730864021259691664180247327720294003648978788885985071558335141175696681457028661210199638091101406564175303233916425542564805613703925781702688526443026553711114103001648398832223631160505759179321370843940226986922796645887843271775248795226324329588438098478708200943901166231148754068662178078335827430957475632573629505602985454940926676015775262391209323377507239417419739937955823725524201682600649811358348187515859097922825825361673733269365812359014592534284585118912285701121067974978418765981213921684037444115066702707580642873314431844399821514550194244941082376030526905131319256957883968304386496144361208132047025199734615418050574099905716703321095273303477992081074890879651614539619263580262554044012320718116739319114841056229226915338874497874080046142517621843602048681347138156064004440926266623979751302927979973347299398795619918644474619466239032789382858629851641119659120136165836411575160616841798692184483505662843494603985443711529608871553020565294110903551545774965542898191611761971311535584310054526245270103684036413710464505320576908922665833296228189194452185824197548408090285878246746465243263437275305524062894510644497616852884892423899411170359755656300087553091806535608572581748414978404770253914389325920592506386625127295076006198038733063869595834579525369723567556996009685916555524339521835770230464388047210121381488422714415478832743398070857875426277123378761591786997140530085274838782522563323081217708291271797706973723158719090789465888463033646780788044254301666866794018262953669930090288290020884712599900918145341000491965236837774152925913590519332134130928330581358798204896560834760551376121071778077387072778241984510511353792030868828212752079844149973020237915799333182044677763095413776475452348196405842792732686020973334839792082730434750278878989904171354075837385279252696733210242148074081693840723665981489131501192963485001451002680155465039076027868354665080278410127901332064339559295110416966567309796983433235254753033616374210867520391813569131199495995566457895674833631293782740820174999117202568032555808064715199139910353920783979756897442321718015885354106190165506135756500309642730921472879909265507651387213740061114774754534529454960832577164000074109328169132017216084315039744974140148068149728419307760873973676948619015721601224408206921812182624703725479477321362357555955310472312838428288122424998507795188716783486829064072268633613615677769753887434300053509875491097801469146965293141464406350987440294658838612041413428053640711952535806999045482673736935551908995397817652297933750831014021078865486326929810331761606363851337914501570515564139524093847828793239588349484864997631271270757185768177621299167683157486747257606320217362296465796812966697799972584414121627471336505757529150687590333428079342515199576297336268649739952490779080390771562766816267926110469163282305879172820388202185013495185620282730794726307801870402107115292840111714590111749606776706544468015224183469779666949598568268080173075576115632831717032636829718746628235652774602809205459576377220920018951460421307664093187011897580694636783302050527331356544582957922979578853043339370113108361643063441090051151565482778945589230608111509760898925756534366582052635220210446555047859302927179267163981109357162161327878348956784407025161075876707499123118145452240587024279997375397086817669042151588225686021196690115843704410379072218902010426756256794673976332225380834336671705684356857418561615723821307272207323003178968814073245490718524374278246168905812461161355514649041496427292167032234320063615463835433103141338432222858517242171145562886930840432688694915912404197621054823694291095755993946384641836456021444966768291987968596532572129256531420541570709251956517498231297798488522346242254044907911896095313886351859832411874646046705059157716647988318790829740543187609631029535969285807553928485383964096701675671608945388508170283211350731275315300509903597063990002540888108953997429781815798509008319385629048763067360931014568423868516198406964476265742339478763148130537869164655912577948636536133349320867808271533318096283037292062773993121844902638839632228338082341381840155261761800207861346666782352097808261000404339967088043543349878406426182450446822235937678183003363276548630710159949982694029308504375732753917793810629582970054584085640089941431078739161297634658230710900776924890000822557725181713954208944078686336578098350206469026051473451877988554338319938374358679584547952914895176084101692135960106254894799886125689269585815755381450138165814015545956680176954282099862358081101530809779314444547523761300267642051603945810515570131244322650532290389394383082224920303600844285928551988080035052065160773931863866744298355281021148054029796634902581035262819079474345235887792772287928413229711497908834206954625658256065936434776341637189768677163653140870526170436933565929901799952246626713003391462900046698626787600499977035573148408511263704536712161130724171778894233720305371073167393612750027676076927821537412138807525143056233526002715033038664849289707283055039790796279022280885265130421534570781994819065481740128621822699882589976078972856645930610736954977681491196063568100039001574535381752573519978841701926347412254344066038583389585361648810460657753999312899646341388841087542648833586532190740130968793754496185222245910599602526995065366915276135386921107723382573623263532518858714087637699984630255447994273992450370273398341938217703304798878631451221652665009769132692213470920605988371092037933995528402718772216145636580033499319149209427340575968682536891705407199594284613538573795217920549591588435047308546473820151376797684649730061064723984389247599950567081199043016240372465021756182675161210065833203079405954292676936951537410714096824354642180365231051808079398952797072169536222035620835980414571188977947742973353334366758970775122270790033600008193501668494119230291373518004403061467969594261760727211855315063109824957691851764534493814079935301114727306699900880521836575499663728939145057126410311865442920940627391900035085568055478077917808095242078402819355434741762990763471793042427708243779999863282048091703854861557588755766386929823887779873046213208305259500221224903125167915307447008242227409678830668903048008192175769367446554760439246340187029196720208582277253335902367848498105644820011416733375218389078386365420925151841746321315558379317809178258953976211972231305699122305329893171613362584120243714240457177353307816458057567497336289636819436818046467789115384251099895938565720840210699958930309973948902619672755290092799717693222470741538374344764596896054059007310948638510786448592383920912590587297484284265676549876813915404508893486726539255785717261155199623950801905137093209061002126076702916507928323072172965276718595481856197764106728000311518739197216380816641473121180098227483911668981898517770313173469963000048789551908562399952696244058431447545891210873517827391631334031469076255776114848452339574551215767040728988115178367581122816383322295539850894777667472790508112971810320726594560207802248224374920000700506742883344401577171038643941491528602412578049973162199140288513970158650523921405198377951810336452032142790113128287171236969160610315169746139406679683680628522917941708755372500061354208386763491471628991602835221338765989373892659491089242536595697398520646734152059051951578106234709198994205728594022828899144712245831030493801851707036401517517403400958227959357496302733623650448810734658414398469041755034843968116466059500487351169628596307654764020887688399124213248146826360611331854942706785599351071842170746832901756144589933156903905243311297790232091721214376976415645279762708064702772019432476349591160109174140631565524171857184025336828655052839061190496721333644521053030711870822933574066629207388397657124681736098874496769086921311975878317375213099998546529601941201494344716472924105411790003634735069813357638695934572654130441385075410306792355803989933924780601260281979558106691583639276675539477221717277136890810869929186214009628254384289921646225109766601808030884105495401952761618962152567357266415810578964248787503574852012149936798246003590390976994674302500603220123657175298011880632295337506054843900443907652057933910208183055281924731840201252158841029222031432901922678482435502703922091016526586509666294327097113913243072921444303349019924729639294533113607377091450081407129440195255405446907719056071764426383507948874888105885946922365836778546584428871504784894450953447984480464581467894471267724600400102959531082042488876810919690348126334835546221932121527513497424474843563304524712171686462048229693867357206511875025191310582099878636557268607709892203986565805442998879954931587117447354417255945264473335694938125739878500946040573711503952665701720134147629547112310636691561022031206298824001338415756641857172550069504139110045906472869027831059733564725941582691435731456334447739309945143471265357268030323080178953692697120265420475138279553975242793228870045868721910899809083539917031046205989756158717727829059152029483867359228946805567187325221555738532334010108175977481780398456545639549359374395636349070901704196500672996568932580929470001037788694738796458904511584618202636918449763521782998474896600000043973323252492866858347126673819823200636939361741041826936306967354779649180811039277049700133162302673458471545691955339257534495806649031508399198199898099133078189447345133239826088098218678701510370816665108865819526879813952440627780510798052675205465329185864177351778857750656026217283709619069944133594372712540741928356034134339272096699515524394349206814636122059750739961161273672547121948474108360781806904966341744245219973412601780719515996590037648140483496670163028607744153224075124258436797917980025800841966754070280418234236352360216265680970234512572814072190907423448995409915027403058257675584992372682008240613794948420360263697361676420962108345696183033837737525528615900507089877434304146898763893685157888057416221330891821138677928371277679552468948241631164555703520686183775618090540070532830955863873591987213598245563794242255902271079319493961258367421054341026137855871271942468319465950655324533384826467458704687877219461284093079148206625040466840897141538897932017514226392071550257300809850642205145628256105278135620399111307377056634921344981803792962938227010428878759844006951891458988800010076178846715139057923411842241123186438476816748591838939348110132383810960090158846444291357331403819441798542111290814011927107162947462829240428896707297706770251433758452241238515558843144032525405020981055147336626452517894044728246688640095729143534687066637389458897139789426313588127951184433438979421735870979974048296023732076996158277501925845148083422127743693480044816462783299661118551175666955256657242204398566846361088234147225801666047679013008687636643552872250731635910591386807060964075412181063370779693712480434037970344725573631229350201733368704355753487687172221163257485918717904697176550297603870668383270056718282936181528335548302017493853179911980450366964565380669823889996917566077124648745992141808717784807009636771982930199405004700610212142984675931279204012897708870326076098786837108673143539138688227694911986012934598872989609508339500413213585107802236662408380934217773314555950344516702010937725804592402352690932412435538183181782804577006950491217942853146577036785186566392833930539461926543034994994511688916825604764957500749370332622279510803755977314425741405500671196362144020055492746003585361612268532513148282065273087391898230669195392848360182536807896599068139223543217662502009768218408751143018213857384309541525402667737339520842996804471872658502030880363175408145858130783762373893101601133739407775484088262472587854690834645831213508143047978345912281469993876303602473440816331308083506333587175854915317974594039229792040490109978768872446155139085114729909316197269215133078966547798651214652078522498492423062966825391379954498999087430773059785110257480990529144447822243600363548177942691170847347482278382563501092625670272246307422336308538066770966023409273573130147429268324866027686114480136635363386065377731907378407893759917382802760678102734425691761430940934956227485970080901893850296146743221668397454605417161857312587759178923657977805899128267792405813313607240555706722278880647697427075061240686727501352671118707091359779385683229203160690746981216790810655773686516654727658276795455499545088983998292469986606948952797260510149758327462240268202281512604632762256487636217979863735736400675880175863509958194608077229325146442078956416400236796397277706508430542758924807061008861569472991237145856093555119842523165357638913947380251441152292364554851944434571001639237459627181896408739527297157979878412603271471422317037316835360338031514365148766088167070858350122489406526512498161850535254033902200131887102153443548844919430311974422639786930143256534098742512489727521514674643326884493752351266376208218432467779059605834650583180396974649501515118367087524763881577414683873133881533619038660089650222969651940426106435670943230408223816181225059814604523517609242016058524626605227786168982493922383854484497724043236680749207773888896905736537515882348718424344005623472143706680097381933002878938746105105345737432071455885014677875305449616095862901931379200280917229071952139413571657151039163092734997060536432889695969895705703140166519925948011701719238744706963229275730949053781680925924423603405415474821605492205739677575878739010978433035754843161050785385925113779977860221905019754198166269566478065199493669680009057072424963839821773463503670334289882624992171279695677742149978572499653464215383922218569147170642522261742395248090452243170765366738580358375522794717090098286061849476022940932814694942939237191223682710811554634048484333120332407636619913832910529159710726858353120227684961216170120481272595573501284837523189116352508295797961196028532602842329404242288257990719720290880524739190791548883629739290485966283516739351989334220429237246061580937598137221029418399897419411025886785094701766295220845310945364814299306175843686319034685090563645757546478133117830516790330228972855618400626375755026761932633283286086134637627183991442862031460937994995036017723449167846342774908550561205358619029335861509125335795437174288043821271609024702369313973893737236004987012752134184664367834678840329053107974755146649122916182931253027467718808265496496590055042389467563799874056008720730427759254467724915180665774241452913385991504810402391349632933045833589986739621329945750078324807486278940012251739486313022875191090692130226826885667538594575530632171773319566310801665094198068321280569293369782300108949067265484815137150350917693172272726457565718678490187254890272472304846496620396402415610582597723725432385611848314505889162751948993863822640669519757875126299285038565783003765833187923626037291975480956743555036915966960339868808808653397665585745969071819368478444806788015067916445247542674453614345699295931408976263168427582951567810757377477154405867839321271126046751869301923431207236313665002011194754463440211461602782051240833304509218625603425312325425011236081449356835500738228730068419802242760392621156880799419656499729868585696752916008866845107747502070267851545917449867787549733248619625474421214602863928049078458094287875069860826423479621495845643087134268687218176000957343970074345842210203653333430201726428802074024587747990358407503853745902767811456134647293923698110595175629331592809788386476246538230088259452547492524550868138754425540729930330480842568788020232673397931269485730988090289807710333776323764930379361323546612310719488049750229226513542661167330211977965706576999229421555339750161701896590393593214158471677697877046195119244001936147783516813911770184402751951307557702530010745363748652486408023488958742400657292335528045188541015057278687554777655206305421716719221787632595597981064815275741601108769646877972459385791828281462857348448922487994812809597696439246341463761711568557108564723909729355865658101452630923920974339011257121412217058088148464091806947798261125785057964050939342056803878354506866913923747772029939258321119316458699033704194989446516807771267315047159938846302835264239619240814626788907708938577286563824261160643895586606242806173164514524342337936916153718929861579622921048061336946947775936378325226964547501975457037787041402784553404643129225870933912620620895804508341714664029929913089141923244426507838260336115774905413462454256881124826624268253411473765012366176246564243250977369215784954773957514016020650408959582047570997065558175911884419113430835877030340411732741765062311161750095219072265410182014987859934118288710984627647377210580420592562463501671443780826410832574700356982844791266467391296358663544409564527009942695359994441789984327621972650267859133733976055737521147606499963722274100937014652671865659099404641405571413905216542773083475758208478865250861971018393171940717152105926916073780655863575299371313891928929925887522994850902447527188260918510001584298964170769195530320272164183628264392408036292075517283803976574752082827648422314865923780910117835729286630792864557072838183775807216844350374415263588268206987475159710353859796713054238154886853822176127374061184631468285464135640064866191485704632224372473091630469132336007885155906165065840979214667085818619506279287274498385141657565267039315841561892965054028522156332322778657139885447547657818251595377286406306728461015649915539158146408115577548540841026898053744097027490956596183296075045173020231489227053150228839180089712904795364357920022322373760841011020963456598223721468291975314666458927952485801885895992440716433000654744185751003237237797198748271098783840105788141167506990434102533967497384505894875071306328243733759348240452563245968308101384019583396070475862924573514303035453717302182844707694642665400048774318049195277717839257814376958536652535213694182658944748712384246478588228973638198300725314384656912166023435341347566574328250672717173335069917656891156257434059411406579273975085603389640225983389563408989040076986614024686589518495818760648637095650939024932396545902853517441587568769307400754418459198379266132966881030263592057966426653814420112606587179633251851812395094933572455202666922763613796249962707493618187511940280750959631083289502511994435730924498258739682761030355392608585361796991840429412695720542529891816590910922875097360319124201119416578363695878944022044598009018148819809138457426895757595408733977469990224670511018065518484868131268061746253994072663690182306666855757358297172260051228321323110678099994933222312125845103974065499314244499049194921452228153300175120016129233946219627620914007381091328228435649865942303606210565588008172554839118908366300540595568114565755201935810309682938964987004409148069113941757282213472033138456203910178050430198699936001882827536002690093945237862183146989059251409357221064523799901817696551196515277163599080683110383494012316612326360457361151873071805502570288108789668170999470464836435036676358011321979545541804010648259275143705647007748250518258862168837799279826584004615960983021888414242964176648525334584889901306629071394680874680908069391551487222357573726187573560096026917127842333785817286675440428638736183573568259336760113444157029635257508075777713185718430055204750025979489622385596222931196508483829244133624892031065339712415763262069466866410011663034465993425392289524817020739941628057475832941531881317187737319458806249238263820999468550361639547699730943865311527228104133875356503490698494557505937840729936376058079971194724112481488469214729034174494278337109364049380308520662360099312290666102315331509517485837775427827462801069225546348787335241761646769641175741316026706383854410998112869221949654984459410103189681567842936497114719736249291924131413873160493454781374098081724728909919049069253427390163893666412107368954006069508517772625243849820316762282430148014267279664262875304928025075477021575228307815904326175838867964735660948204552709723037190382224830211262465988415222768004185463354112864566660860108747782464711724582590033288772959670022320479455518807951314765533110406203349501050987357806019302318500650319429125242178708807125763775044015166482742663626065580249981214735671889007956643417686762278478430769609578906475832465837919319511709910536700021559617458948785542044781359374796118307114995295686358619005596607575332835920085489129292029869982244311023478851037312394172806529700953274250546240820712918960951309295359203727267468201495112032086045193143869733757066343911123308169941982710313728065554627303450753677573493047311217374510972937988289577641820454364021325846559693868173028135781093546919307143741595134419967952908472087823045139161640255663013758707847407928501687515583247431370906584104392549754095049470875776129163314550149336323530260325223603092099466755803262296292450518034915211208709115328031811730856443788740742076188431591460658382574603963199556941960283171112460349812507902582948979596591542755855563667592444398572680181429577411763117013928416487782199364469966915503466290699786187234742097671025387780940050047709387770632346941058581751007203627431127348677867818697084741223077357442507320134381814624234313255809035564948150809657279324364299682355733999259864530242287542225848096265323667458232474099525176346036509806433756020205879228741949971290593824464936193153973849177130575841698332266502066791574760462884407966650328603569133180177187231892268019058178975116342846005042114282433691302287291327169412393740350963689588029627927585516604841881743743049203016019158837914506378819767192040745720158730226472554729486402620986370678650682119326789629835426117925603370085719392154018342579657020874262361220316469843825986334596451485890378589167417081878394312565199579559852735324379161621523326153586260885351863420869497697489226055671421757315917987267738282972464092642623141578280203989007970239554472883288823840658410940749363593827880031278699692845280121886580394550628163793405410810769041154531502239173874941789448634834525002091061569875736863315859070943069015600450250167742836157300937153321394845241858049046652993904368980909684129391523154679005604457782576889668437179388840521397754531790576108098713657899114144288611025773893307730860077919556417845951104584205315513301620074361896585736581781084469595674140233527732075230025047254700913222435994031125748594028221873025476032349933502920841705779823003735937970932418661380133381195768557143785602614085288062653086371652869635693856545182074855691273853069367739451753571548774695993626854017225863028247867279966963502473662000964825428944903255332612816369931645053051242720098386185510376903795787879338768667600729595016390761819296180189203227419982425815767986743462008402680930760218126928450492635117604985715825590639501352246498502729969822013073250780563343422307272395995327144705426696844522212689505641364493947413895607531514477233406345630701085017942421362276739349090421642102474691486500702798346646706677519585676230976386877350083183642940546626283452423973335479474338321982953672341143873639579168759711295148870012856692620178652430843377232302320843446788870526287749539732645599804912482324578279240291832438676143128216861224353276327466057024443414202778549650536452493099263569818117271256177841145077170098838642170055968072573079749206866798752220963371451182014097308311411629647070047982529634435125671132637284214633350398187601628532493905287751322054700085544942562775560089154112954940626766925666445234542583819276256539154538574150130315937142346646722909676807710871920011361497867215789020536940672882328514287975408687071234768713312672518159911581331359675530540900457660716384502417014677185600892935471056042618401190040033191438607154948564222556741930079746001643785938326102108029050224137447457949261163870584177423698075963585090187698341281064171689535059450436659600651898198447732493303778178932281775436928936401322876839706415095472614098709872097316660931632574169460362515474268164962804072704734155731382657435887087778072347944002027265195747303340716284091652781247673756465999041275245678931525557455694431419114787115315702255011294783185906841600024502084937170934487890701362013539027137228979077268252168222692869485102418837783999519366444273487479903030780647471864468160031719755745360400331131930612050302651212617117043188256840914464697250766440587155796153578865370597981137432412364402741228583057680313419380423252092416635799507206757386712579938783082442351136836420312542191845488968613957456080445353343455187385071063958093055073693458610595548288404939612543193872560831490681383897728512499296775866497392365187684653069740310004360588194886653384721616921890246943715897045118027286911033514555674804451873073835478904674285990445583987901728587147278794359212937293301154629667131089329612428877088421026132373565604023202843725673771280337316683718823087580086689591950239199204997696545219292510615682168547081531711939865608924408562117101340662632551748451438927158185069546807505383722132978715009977966492383494031967210172049005046420866050297006465770643994006684745730289778190348202317458837418834682189984965197662223138881645556029944443335625659331339500067897243781410167148809603301692574880834634952670260790636654039918435591663858978732240053846928140125696224552377218821794542569311884574658875096557458851393493510633594482839050952486753655402257545573143813902670716439355522740013360693309741180479213396727402007460811524324123288228431700755536512485003748975836295214440924280319360038751456141279900079360789093916460194788600244595949236168051500928671087815486019420456169886264740783504818269523798455964664183468181802532260055229904555481074209955469188013367944547350677662287357029583575474512884427638442932587832070108488663080173741854611749718759989536814871944069937466358679533408182249242029464947484432430529692121963251582357075876659534545844998950087231800730603897708320311410961468812985749149811605876099893998385725720055456341034832213397957103175167403040029188510444659294927179544113666375555003426160077597901998325905850931626360551831472368536965541282965724610888866882396157216608951183300289275349531036462464244596716664417042366503049503967236898030988314391725346848281084667196320059342936995547977023655858627468796693398096851506216468037712563660601461184871113635190871045947433997118808123407693458218455412023228728629979679302698367804357523197846390457948391906022816713933535597211471866281695469145645295444204529806230059157246035534353870617358597255769200605431405494596469284975760656081000726469558103637010952096685902902785651782044628165063763748436515391158700434941075770659496895008762530415150988865233719274589585342420672502894195148966977138423373837901651693483415143970190671327386322362252310901521849892062893009425060180090395790045130076346515869034423428119682748544165596821363654602917032023530305055664660910967410936759596930755295247101886609796181065713626957137353441042504402290679336977907789778093548311027826683378687172359243704943361407825337849797045039851927904161042966292014952004030732163304061427479792683958706869320755003826405479253221461724678589261804427471200270500163181406023015231655361696300776909354328551220981506345128316339095770240099476541570415414015198960061180593644120428833458864342034680555510680562393989166596737152329376943971462108334068487624689705179823245821873455846955337088856385096199995466223821501116599026150699220299104423504602369609554556576203387403252761754983857341878016227211727380221446116127906683709926038651771727882289438461793137786022846733447933856507234559652046627855213168746524368882439318688139702094622760350755250006513817840140210601511849875838516389667223071106226588213281298636348874385679531183816653942231993514406125905763062075257830301945109989305011105731168268163423972495077124656084677112235782299926358793341901189723259008164012148163467404082555032839437711221086530053362499394517564779611587383332626768862128331222136273144426294961869349258161511303868006474521463946447014121259551804159964885214577997304459442377167171676772711866314604458342058767871322934578104920016218034349786945297973436710271866179398344803789221731060128608694593329127682745644850300987504042984894551407387403638588242903780932358620401120227030247763386180925677597026869853399005769110594132782963219512386194050135888382744261488798924219665963214744422934605872936430362498648078800969340456809744908120776010887865484990531992872072431199394276159606162186418124318036636894719028938952012932053380633413342977697313004152758798763476865551374962172826404027402360092703027527403478934137008466262874950081799921131004697992777828164089282884815377850303876582166437807604802141468890965994134874715061806600215418219485320696861490197787306747331946740868049408480986084501887213557192152805132424275528471453717215438050714746559025826205741362234542885542179464472625861798250099777710236316715018622642572921430721582607616900274182226289496357292119515599949976074917648135533233622684156064290863899790136739217710600082439648997246647186007673362198394229039201715436448285138001627428967093916838334818711970501238632455110396382872735232622964382353432466601982454901037107104326032143213345403632143433210252043581459892657051337436333046560296150852553058814424556827915549729430546550369083095052743719774572343027018002866557224407274349518171761237114288912508180482140352523116380344560864313613671788604100824141735869986090590058239206530180050065072444166939111228942643910416299048732603630949837261544193918571064981399148604428924912571060231624315147157965566770044425642460639959240165299093201289309836395460709401454674815214607460386111906409761362984478470235966862814612350617891591512796218205451194848440518833600518107120258375420345847808750268969295156738260954482841061283148826648399576701741820050409895545774018066555868063558526500367554139036656304002939877616609238379789313481385903170771587947257962177185225400188374865671904122461102380993328498026625928961654149065833816925526797592870449153660487833241120224459384308742277810804201217664394878750049104101148823588768787401951222134126318117425368503435134023106631396665976070490291367199371017666387799913281718094462422605410008052585125795683145753899215881341664442361366632811384500034204901638130382918913443466915528598160805359991071172715876917394596766093535870607920876522974746689144186333327998314753286220815649445869628811417688397317033384009489849143553881973166112694058138596988825716288862757686431243664697281372239210240899516792960208870027184692838864377719222376846201521287270330681343298012710102779891410417504347671363124307916580399482218098300610564778321713222090439305109123515023753170829072591164722233399687456776906209746804047037022654429621915160148681864363033854873416359197780722952483284282042742947412562108076994568818105037664210793568771875795188077633122055512628210086253015506091241998575604395803389250751777210770948667658824342238563380542557063970916987700469448448971495653027929274243925456460700009108817077959987724492487308708712783325451388305861588981916779043516738391861576593884979654964442779040000150706377241032680081967527038854891588616083603774513356728645858743693026190504839610561707936267996673323319456830901190060767674944260227578015120542035301724616058079846968126440525690905798959134527009532334886753690446258644287750140220336187403678803206426109296277003114830433271220319075472470489765545247627976818278717382727477743058530523846514713263395699227936196749440503429343943263460629327720135370749724035634748384260801320453553428001479584515885963664336656414547279549344875083071770604149974736391464802545899871037456378155722586476369695398483916241075531287918714485614335233337145528173770135125456360357906716133838950327976474315724316459818271368378544335012093807314341474837903034083084589168239921597755097726480064314393683368900385562405964049688863407691472886016719394803625642302602738098700579440495145039839937261509089480015330225111536921765904949438709652682746359096858278443052864460900980099410788139918843829674560924754335354700660131870796416205821035945082372399756593359841366127114023516649235625817574900050436662380315571841837812350108035227649366350157147459741450834254926422717017714398608317567263502052871691132069489282934825439494685002438449822617778896479382674129404179550473882402507178112977944100829426840873229538058999738828019263896437944775973028150400473290566794470019069385392118239123116231549678106850683909208105299905069445508355229456981131030690089048431204955498661204779573275446531627486569572522561284965684570712712414789037611769741539833548610951813604897671365836037704126290903943311565377883643280998444988258713157359971204936553561023095744745413639116996010193738446039545826197379958388414285806630423251510469441796559622751715500629414666185032993426406834729596904915661811961876972773827789742393145137685907230408784328907866669554595720890941945358944615564273755302914570035157433000340600270414032599779370643989813138743765983510612260086786318985890017500376044460256289454042189687272803080429345490706452759562274160429802876321005834303103950835371559461637583097708485701527868672451689230863665042882431645435755384253240184906515755460602547550543775583945477413155473132865971895677676312082154768043012872413852410569002410976627165092340339947807544460833254394322700546660399613855984512348952709137856547758419254538760546350169076069162444315405434237762550062808743405276626096266792280810284794520361747340097321613749256361322056670609029515062454594443978255961845602911808946489619753769919997593364489179207858968292725256813519336617538042592312709838737613094735697581160764587578821243651016582504487866368906368008442124056209738182064206574410319133476418311540951254293407628589362964371459573617947126283222800087977750385685807117936981928717118308143748937066778683888789166000250230153085803376176044223129372283077009247297537302104163568300829198558254727483057987314749863655785622514997418574612037622082978887216554412486796371392256220379703459920357290302947749327464144171719531185454291730682746778903811826415090504873952188201142635134223718711696642933579842045553757126501378459780522331699309301504156016277597287493012234047251892214031611108074337084942382226777761958189423339797188445389591520445941745800039474467730500229075500645715311292795574981380040010060636146670046328383095724176711995071860456703372493724486388801942260302582645145355936481796729626284682826805946997503081618789833693832255641257084108542800812832944738953275277012427317159437017921610484979282130546104050073628674200755182016266886141925449798763265898067258923786947472240805360446738564179888716660717537325547243165038734329062860495324974347453103665422895987674739255446589672042134904502563105336484804228148823503161711243544112270260017842712294813512845475200439573463838988874393588313620135470124853156935947814239941469483518499659975485089883675895472686570506294360981530033402454620958735106040195020629838030669078890690429297874378870169034939966030036400182990767682454658973894130517948725632216535303132673511957720701560385860687576342396248096809780110586854522213383853778904377663752001625286986772696577824190725010515670308825172563895636071972520398443161644773554401791591625133408821716084424631021009457160123652398197171511284687737295911119245864970344337189123586902153329226417062762125795553671204735178765367723489566788722780146335896143816254964526570828854398787338917561713579336610893578151558261268606009572696468290612754679091232478070495467016819022843760549297341494671836727696262253870025966023118470996767891789432207011611710004226827760756048259895447436695423342470766735276840314396213911180284332229392569764278901054287156147318742559774148474617880078160169068127093919282475930803001349523401839649994056017893395232499229418973734027075905439358533147940858840533207134103167366602581917236479567129475582829664601856632075126667203335339873237291423696956304379044888306996350848586210991277340840733019826001273318782708464626443775978944074379563348101726903618550472665659661020725350451016038983330578017944196728207474547768325968051827924861729306148099551102589002980425507494358654546610249873083061809499896322733787273499819615177804422793156614634582284000148978422654312163315600973438161936587207470990191980615140520732381630550992598582117517178226996141570089637687912337014256822842255924178257808821589718411736906409749875226944306996665162416617828001434972861595957724108086882817037877352966043523383262622791504690142546449480109731591316845642893283820391225417495852485016634606977969379302220965764098928101961921070876632323098290907435779691190439111544739849820603773129176619443182675882490793049591604940615581395172341012968895876942875815880160897920125803065261300601228151809578459491285345757850361421026411285504880082329731708967147649071533279757573580552891547088876248383905200927458486008141026663377341486002010240598094575574134079253632417830754104920288357364671967755879802158290420177972570381589287787869819774336958548471552272768627342474786798756898774528081601526608459274908517603708850056113772470987977952031073109756715206067230822706267196781066961309221341760029607388176584283989931558817246622757163249650175080398221090092383737725011725360170767830164632069624227279354686005888294178538992534587927389502457569035926667439576732971249825397964590169676007041712405840240587859991544653804273384627918033062318299277570926000222624397935021011758469274128493579132688476290193306253472134302567614140347751906341492818714885469506425967031764728484665088891953234492301214294858122055398450589876566818165158490118403961902866910256564256237298608767007530597552291903038025296525209972223361208620682830211603123800206703614632927755263357131623022475364393873383070578399105057596996100800068812169604741899609878950456797023770614805713057183485002966723484951534096327928075995783101754547066875516168250309457243482085571619623806199321366199784375442263657386308820012041257794027193149725650872714143783516493777929141559274066793589803208523137919492978529238015574233685959524573678911350915377825982780408995382937355378616150732799572801868815298577350208708884493493025531674843649580690553394869133111391679777687062490560784028129963485996344856133622835369362216905203230497020004111759772413094159600191353282848070163517582813078558598987924612977031559034221446904648581081151412935261427790571222598097258883200411626585357016674522772700800004989126530038518289381826433947168898072807109227396061776150986647189748610056050808115127361431022819935853106044909926293591362040070408867324157292766571248116896539745963696118752027192555612242102904911902033771588349466480182409409846522117066813261505461172001407125399568515908406978337810948399847025689194845385493213392952041344489686884529323152868392449159122715653731369030707145065941154011334315893820757188723947713146518087687987092136836785528216735073273355228239473665871441577151075608875486559826177852617208922770344354483792164615014002244674754341599986363466953993814883085840364422607546533765486502775166280686610756634907529281420666374011296220092154425285294291802111814139747760315432708678235470264308394066257070548341753554371819511919760330035487734774627557092813795352475825393592350590760276881283399826627357151842531374508731763279388648520978137344486066364813471584091118754128775470590948385898999974314867458213429279985703012432286666903571970596517284213321936699012972396892003092843441471523637209358731592715670014779472768755683076360951034746213628554430939169824441117303085271988186507696112138388842168340537999876501630571093889885524887705638060311287333514238922079804916084995139361492801734030962738142191465722157205814420299428740715710723263239481665010396880927535859395337793516563283743238554115553174434666664610411456165230710367761151416351686887468922113061874177196113378916494357968953198114883966929812293619912024236256388626740730415033263727149145021231232530793815025882760765572167478412572113551356921822129731684160156803323484941052785749255207988453102685785866570393263963005951534478999799522633442356884429288174588966056061183932070931547788013958921058691087337543174030949275610068373131642590454649794945897162712960651112257236867193996403493786216204365432991970921044299915337612619157761471012337401816418324358866705113791630755731614980268693179086473172434897395887242818838623183084450823973326422618238815500737226628328566393107111240919227100747831650922895433061043214022884802013406477090351759160807518637489199866750746313398459490322772145079293708651571274456151304455818993268223194409732179383620479208179692494948054307558551825158091665037627048208169416508409257237125555328491753561387747537321266570765453777498237202853878769114772933395130326359553339503665919680968083633005204185709409433065940145176135798314712989021552062587410713274192951087793195327992488250675163493901881988322251144305812118391518403226235074175834530788617163175195316224170083449590651589941553846464134995783654723717432897721231608121918654901740818615021768629781569543092783202844044495023404613125732710135902732871631727894220529675312138068739320616927580067472413013553118557513472249567376784260969052737972072110498815434518149517472148806555427307188272846941601024456752081201821365009919659757026338078387629131386306226629375270939051629232592653386861256964514410131858096857601247058791084348795556960902951626425680152068020371429912027804631825632039604339345826230217740127850554365294861945195598112401684474113810619264717451720462137939179013212414766730480835720711825337860968395152258080771501400008802483147207610989738769553000893910179108499456020438340384653846333753110143991604471287119240482922128761437303015694699971091686123007119539943283107707255721588101332005327612589043492929084174186656967017381553345237562206192823954488713779558839028000740017390813251568382252879861742073546547389307460254756476978942665166654543980176088141961129026394233097451991306342675992270383122772517060484649495734110431592867014758148870291824199934633959103883100593926760510947062291018590809597587576504371561121987034981340731618756217875577015906882408034903922636745230702625717855259334947242674375221336720862252884151291238450419112723175520787262991944603786779353497178004360876960670370027429947810927968573676968906702223833041203970102451287418255723412022752490481982973884960229742353031177531065421854809766260647533664722326229441539370783352741193431577946443710272853157921868584923102853983487743288739996067701471616299686196095727197590916525012832856362972088047636267142864982482197275554859590742373170355005682413686745054317363664624992326892266264075758673626997368418041205649147501742398627168421503072223193646462133709962134959297770502264234935336602454548332613786015470628112353035270413793652594745859554573391892019117808536145993033322876840392174454944589080226987862028403904895997269436643724917087701999577240074619154572037650330337450218895569125775036322809320268447397064910288776751070798595895251894196524486648707369688196179881310198720654032869294696084004506416721478839941611981941564009579530400040378102676523920228560168007659251654119634401509319334517933069420578685916161662725512207157757248838353851943476251339945898835427172650657887359033243816335591913487066480787570921961630449690319048372003448263619428776925458236193644055393927329710328810268485655065351725864199939825863864741887333328345622647767874372962889471628831830172614519749351170981683511003692257109986289773208825681714041170976854989628894697595959184480491762778971836387803227372121133932568490861449851535365900982048044980284021690612689556181123767282324624669198263458665934266487748387248227224919168682953234702212164867260992897271796641577413465680151251413618368343242163837543199449730717195777409304044952170797056166373344130488198507202196942069940623347341581117199188288535132948503366559402189384819818357656080733411163456821331298396420059273649524026847674946351167289116109734923261179154782510931523721164736883122247483448125059858740498688842236728334345655547548402537888681238712478250870347909849775250133765607240800109326231482514834638344308376446726912708473346177557728331952782366540785246422217826323764485343776628080488123178244658074148446905826848295344941859441052821739679882933425680121715388674821897230727216760562137934289126276666230324777115668413046359290414940028922446136263025989292196194987273678781091305119637923130565971095723302090300096277047087523938580622445563537691690562741651746812005322201954964313106399807830954647430516394252513534223604011416146115033877939830665906406290114539325529070732613719050178358280389757376716555361087984545563845708561638515398301579374553593362419388789395224833962622390210735888488886995309294359491159099324999957367675757249741314352371120513533864895203616763460560257833160575466361286813340429439379360985494337952791375066090590632926250504795363314453642481469293553905946969509983797813954432317256368957886342299304019375635539717222613131442797679852223381820201753596024278310788333254853749395170702719485469676934726551630261661132564592753869439635682176335515250604804246649629246261246878968573562764415574300754163224555850599628600031224014956494091815768953257903621536621521414671526410319019082374800998770000597641801706339958928199163052868344357215548419801279567642885036481681255813779261724418867229013493945921234996440332287020955414319126804961683086540397898109997782404779415312907504898811819871674157010103168813813282323645782932876455127356360821722980008679940117218148620664111791503541008218061335795480471079828953246258358937684763288228119099419185211732041942189214559294022104472026441827903582089340006667604210816620613277617234679534642824270996600050693863508057875824770281934296843589494076219280439855253201941758497769684255549755350129741912008190630206567543070745690593722823812978268284386826129349191650039749562706335902200443191758655746669289040389195218922810639224393694016689292363982615340329922255049264187745110743399928419953840465902197493482230552605234411882883741462175635733775846845964362258085312156557320076244369150378523624164479194135462241170532072814948632689566207613411750746812762199720293623103671183900450756347995492767138343253663348298010510246738064149558403872110135009319714439207239883042761889002004123190426578752856550030740637998560288135270994674537889366373677718412929175739648572887812472685057974204612790684233386237207732518992339033481571481275465284064632324717485048215088617145289146508821012302268676876582246345621903560738966443160006510244664044052793945937897825255947015873277678326946941738826475155428015611286754409806287638524714075366959808891638082108746708756984607103840076533201860855572833748401771874111753304590828347631185652895444877133855937891090490457814761761445419210507406631544407176612771672418552247335400899121398175233304312972364125530945405084959968459379326583941809005424522195936491042620992997905203395525526135564364018248179633965993607471473297227548788413923000068807865974822152427850568211366269555068255029018875746797615304040584286229130598726094385895327944261417190069475691969719851360584677319976477737653545232549327142795008407473507784912873467994446266565553784905867795897631549055280375340808644682993314077385743783318054675501597004884429659425247947920261538987863093328813488336045501049992998861059565459761074171358201181649048226598426591050713525020958675926011134083612200518141194789760650102653461581234409616039442740903120172076968937281039116559280125984245468480136094137181156708941859594662939812004056694038910894293615961711945066303993232806329443359148651992727369303424951693610031174885518467542897047602773360827366684469181405124956006921334496761897368384929187105106212172710597280556991046648752570875809319705454449951883415594701484186494591495504292050062179051604165406321467611311754623952846512413343629101207797051804717190032264395445339939848109914858125695385825697474497684770074094039036234183723119396525358426473852398401865633923883157699535714774530823537378577981698900659408669449467308514883236822207792934354215485981264748037401301925045256851616188168876941467891859171666430585221018076119424342268253701433174898981507806507190573450686549998784773209957844170074244111805716090686231577938833018943055322732457114039189817782213274917120567704887097199288913339345043436705018635849163933508281200759001073970956202668459102729381998037328674397911830464920917939882655179855026723068794761483067933725521541090589367324668266794487926642098908868360091029490948153640080647709204542137476819522953160483657311395204439688775369455408973180744690788824725485007238732886573773455411685911274792301876816389342521813609274864423379128969403746518327730748433409215176514701881500761890754685107631716063883199719434892684013519040782099994972661664676045873972357492979803244819597528652059085974275746394917304508976027491370310565960580788758208394274999533950514262706014362456224408622118979994785546415645071890874305074133915723470958556441699325135323513589123061844456469956034354952485276507056650223434841094693112259305870017976967914483201581606897972946331040067542554453955282281706860125734578125913296770110999929068718569230906560058841306636081974807756355318431050966189580109010216218613328612793866871506415489476152357365727275757985199835167579916389123129680785298066203710990140968286003325385355055834756743412664990252342318153816990309144262572259957552564959347651581055525981616556427419299200229489455767109753285321692561664004134320790497880985612545162934180206601547585282902502323502110288818100050842016805750742344899106802343453038181788180617818911087896972278786981666317734224450036209086873326027314795253307290629574373984731408537287379938998025467858748999905099183052916450009316968431305767891469809021765064315703304983621240582422944022714937738763687999346429612935347715557402710057157201450673869818222432186688510525930890339419897652930466664497287645182950701105562509071303216893583443359683660571829449115488491597660405091252136201819610771548360339520439001250991456140435401590189716354730662092203244556777319471185570637032578710348603932521680171336142338822825792170354821228111960026176100041234746799039184855827160118768489081065624377553156988465094697947560389135126683479763459743348709673939027468053994111442460831620189174882321489696500581814693523356724062774495297674702485290478623112137817787222709140307535673759545495100113787846355299437353623344622607062574724476836181224049363676931502428930065514805426701035397748947294337904902079589448513488479448831119340233404394785657710247090953523192737803822172360381125038263679064908806222747641937867377211301176323787233422449394307655583535017865761385724187808595816946498764513967697244408491498832758885934320106226773883097734546524133340700105478883296432705885714505893533564716681795685150296323587572919089579096909543512215919366760638717241232972234078009201105841646215528196629148522516324829417798200302290698898004444608027241511237272905727700330584968390945674057484192328231683590752617158513115872776068616696410771286832759969715552691959156351636967854353780760225596133261112283713115716081533642395689338179105977577529148996155771001828319306108639817210703211905238608618243845332589631971108153458003004402718277928507420198659418947565288727716738060417407653815054153342067338290592755069238469168841040518710636047745388968441970499377070429590954087492005045284233449251515345589700354821053985036046527324880909139934766935505681444948613141688441830321147966018622677203749362813345924677590968419257252705519917069077772614216817736406576677974831655935285168147639441521388027051947002391657965110484755191829479325671936638695209126632221035084146174469889094998780130783836680084690565717800754367416560800363437662192301713842379045042093833944940989115028115633594096609286362378346860803164096019640934647456940596729015340001539355272852585993492225341799513553477455719526403398755453044960421704597183558007309464548341066227141952246088402246020007224465957870280798506484230859501897563896343452286243811146885101300727014606434168270443677878993216926769825732894038846581630944012749147104157785143745381818998657589642840794853518383483216238351622118798303617288208288182748768283444449806804113931433275872617121239573685162269638578031398216557262510649765626322876521158773315255425096681502371108032865991339523001530667983994486039046153300704477377761780578743453170660139322836129211884794022316580571935067750615494285002568964320260969647452890934681998153711472084451491748572941747815135353349683375862723996578360788659624713433031110692472409121300554162076445616175354861600078183796899658837999536221516067539558378402215392656221047331623823447411070357493991782748395562335318444591248874100943843577876936197625384652769101909718479412478846912834124457299744757582497147831353405314170689461163214405869117839281848500491158519449366075611461936768116073996185251924873276134336808315035624162180991533303625998816157781736416052225816507860550133387208099844137765848145201567184824226557124791611563733649895404889229890219904224356113020508605085808260695856389210840268323272293972137134591522782690119603781551310105766968428885473350468162237928837758528120931395888671079220073175712157927459169106086364622526843986777408587839920757688305641120761264144680862921257335217500629794157456534538666981259155238635242077885656269373177835545121734711396935177550863073942212131421285227182440273047989827341828606357094607743514550982749534203615304920139076180569364321854244853294375570889379691584206776559817422319827989834007449680587462341914704294039119366858950954788398184956060091703168788221033265388218261040232385127447457732013281725409046469325228142000367359808524700417184489894580775019469437685636037303841233976994665935719620811136181640289009326535106891565247161284618015053095623351160570708749405225071053024826403601181900032936835165908100841186770190137091369584206994788072654549207233194135545949935691928395166070864331731005390146211630951953211461267448838585845801354156544285035951861940360349796685456402938628900683213226002795731778496119537665745157204655154676756331525006071750814982482070795897142703848564140464189754522185235169548010972454408562884763535350267142592075245228964074123893046681967567252612505246000388087010675438012843781217911568596695901207050328222911493438631538268116286533288198733953695326238503272264533635299624511158224524217471845532244042829322809883566208851836301627712807675129814053941295810875734322035003669425614861894074123976873147906641745557518555858989711848616162919759834727419888740131734638345852972075217907368237037626873585117734167389868541400738648825776941734031661972684080815696260138947366639914539763883884667495337263800891228694361348258499572554791934617997637028743976359799999565912302816056251680251837329217467647507670262810040912672891430638127992036646884764052238919762221627094708684773270350775574527138567398867292897445985879217909151556437291070509609098369424792633713442287133161949595672322742421175130443266755542154798560308977950695091309631387906116341381038688587205625831082803167218925946221715854590347302455878353672235775889645775431824141109319048223954067981139344624073494518777764708304311045244998103360834824295686095861285732535297799067764047142548840249461434877376917145401478762849852046290213438227038201401302745478640786986620500048377661054440828758561378385282194398180667934667730103799803368568935467289152086385257364617553056866607109986522574215933738868113950673272709524741366547686793157000845561425227785788964288524402087065522328822468598344230437837110127093023405108014957518821705738298892959417400937163332845343988555043381556018203989247889644070901531722613935640691009268531611985419699345709303874775481194152908771141219176859310043222155803897210994743621911103125379605599456442386875903008760744322535562366820069862103650010190222119374880096878860870268075533125148661057635949223027864809292504442675411579335663266827302088482465257496169230801884136526277206137418910306581507951333923240662691985736705998755950755122031871975873168590479286834496709470838634916104491263550022610430882559042475833465680419504778168811186071411631667174548605429720042348633490355511927278496514484326066915164421796294400454086499249625457425287824448537084003652606674923548698519651642303878177596507495304342894208380732672478628721108422682159368975169392978571418632045085367691193686576430586711193862736591860076242734040368998195109062000660924479596366572553489838525646146727867568654639079060805039690684855129842267565298001433674383301647453762618695323823576035414565335685342741828406088195163813468957607395347620096776965328965961966838132348652850759399425319384437118561000961526853984111902828212296620204907869297711600188196616329393814042364454193426482629411656362805314121208281487816142355524541684802177122236868946321046913621112603017187427935057941453749468758084516937216792517417670104194143707635534672313551828640758408027182707761098765565442467015133483815986109980634400799556366124271591803042778455463019581814892021191932509256648739901450411187148191265282844816098978708666180774460460178046543848324189368571271970021861750207928657807979124192009557355746936954423075269208166201455317587492044727525469914497885182695419642731611943613744157478669186258698632108576807281325848953356031398732930498403876120433050767435189943746969968664653544287080602163653600109710874852376817018683202935367899933017834929616798273797068712114478563111445087448224360399406795315641922351344704034829036499343930497924514838981686243024754915739292314689778849467937176025840037240387668354184605218636932028400186878663777023570715941356965806361693954366860099664049285067036269411487324237329397106003780150242462522516384210543176705805135814590247924424434884432784841045244269623712531732696391671857541899412120824968869594975900071185657374177393428327097390179546498699599203525389538787509294062673686255541564648142428747451689118719952273389830218312679088009109867854777139495459794762379549423980892022556409191688404487834812164925641055500790808584703459670775270520722600477323174930089614294551253619681950280363004884838352750632333009843978392254192713508597870613310070279102007707552287366096428440635565793266005072272700484142524562516970330807419761181366716353852258673917479319287066045933610058812170152632945963821143475497871418788006484703448150364454528824749830558253418637848499748337070619782091911812713989918816343632198649456100949563080091531331861848937545855845928032571592084251523493788500878427772570405333895025179394110705199240884321910424376322157504356460860012570392807542351642780059833441444335702220335019212913567041878296412587990138301091375792733991861844736297189964214799284202630491679479303661114294228456926102379774831204535349766578927950485905754877394662200132868702935937802816019735011853611018179548232326089794187279358479439105300985198886211476366839052998570843706952538956411472659290295873016736977340193653159578855919503068042139833215975979237470988361172447159775731087356925132399530228102309673259899615562509042278093898387194904491938079040265982420105580638451460641486633017069931088465416253605169969962956769209535694558275393628766679955263557155287927128340746688155499381313850448666329269838984591951780512233502123354074312064348447904606474673517402681440800148784608290574919783820426414366419606500421567930807736352041873164895520603923538562498195916724949098521381339649913367386053520159306802102322842323261112325183401963382323610703442706495174644088367584117609879958931073003024044082337601619815730477855473850884208152492946910437091857170732473710803979744832217876169045368453949514464296257611674419323119796484525299322120793560311202737993523445882929216268212311955449571269108679263267405389742825986752811688650712895944936742468913089217696956796711598493188553487074363828889324273647553642483488788193999484315177994532635021352235248328281108756695770819725079049945202442138736481306965682807231755100241622224322809592973918890000717322215537528024521172680352213730127846611089983687412285035564613307403278791496840580752830419605835498823204899046654246195270362557109385917855004640669397694385273010882861187298510119262251780590068515080577202121955999227808813123062975178601067803707781570183157815689805893601349042653227984291671030166009297587764701858027474651194288605693199630858310185646794215559228947111054107808656865367428200536769534596699174241318850548804047802083275682581852586182384492256565549423233331784342850377416923600246307559834538533158647501287020577834248615061869533219510382097957989040896446155482806605245650469246946492014192862767536909980256426314411655574972270030277414178569733969251621192190427181855100759890514024680766416950438112043846894119769185219020149880627234109747336550015858491775530880443683035004410236741820120556352503055162514620140561640851960261828402485801191870491287440593188898121205985928998543112051598594035588322983051004117185083956143879438294004389119072300784489948294393407985582028977508944787133621769609736153441638497327088521791650508687559021172343713617366236253362978280146730711111941097284300212719271663340250685045141340532911291151001942830398400737981278526426804162515119706837506974871497893518737779142982034811703699438182986800627546479809798842365511425402129210288836032374851535796126039210949966083187280569890880656679548815104550658376406481899978128293635799026939955763433155293760932418332751617054532919535643227237354928111611229193978962397409469364126456374676049569408220977032430237649127137409279541192973216857005952297839109204671772451088838229807358997887090574347145223523427875079671550536368836157958476430774038182505629896246728618955375209520575793566317817798200223295677792998629711508688596362098889463323218364106675541404183468471314184026393068459411699425207126898719841995473740720064458894616430367558003377263092815921908385976158904640656101933497073419858048634248782625785955005417718638279140780801735415631790194877601782289605199535641770050190371447383090638595621392416205907919737682316703287077472768496893263304388535683141845448155484808040743207753078889328299895577604783677610947776243811439889938050175992946479874496415783794632896573628129585348825240896798512043081939676533733023137390564246507500316268904921241162254161219505317089987620159840921577925205859866647976654363134963598808526688879059812839591215614761501315184931872068297335374098710932006390196840391071763987913541804438939629669922322306793904027303001448660413080651477160470452258687377773018682258972101838348895188953339698023246063482549552508450648215435576926598284745866836702763254828496457274432584203695511077675309352861458689491254174687224124394824056528064199442152824221368405876147156617354221371405909933572481251941222130609850021951202756806618151513952381651187866276393462097613727969448073292791270398023765860896404439702421805904546272329949274304863174248337471420858605255396350208439222933988130697653192929091767362802378912113127460537232808742735919846598481672015341794172000898799398618805760389382342536967867096665406761576291080716942950608264985952747850823940248564303013955921912367901912753471294124825800629550570744965743682801792604005264597751978268519683982283408742778157739524434286551354004191095750240978577534663213869147034380007764516886005114277580572683815427273923725621673673456075567443575284020315587779162028118272696756479997265500070158624525895757354835077164134676853165638169526619976644642248755718829833727158031960697984895310650042601528209615599568024732171432241537058361646096940257442181861346599891016479480407117869988113309898973536010559269178240508375098120178535652581408659657663725289269639343020122220397092430713047283757146229127193011117091938382933502933974833779284207741263867098147245945124440203733324242186543307798563755911281090100854219816392007475623350069475425255932439052745371089971677878314789070171080150207466276212543722901230177978175396672762820415549794523048929824756898423366456264719443038483488497637947293478963948686691388115120424007916382904530699755935809994412555110858103802968194785567644635338593160116192799480209563785739783430680837104366201934987298237303334695986458635071118948916867991046059660733309139695381323655274645895466549772138519325969891279386385557937274725336070792061294459746150069125407527006307212097996266713422222766351878069488479352661509995987840689368209341107591869784394577521127335460858697882807248201928327744719791848974543078977388070897611228818605872154720926580858935679175854407103279092469441175300681046523668026692141649042273467530562028328509906840907236460476374045534923198143107873105739130717178193805688418318047179911276244425160837220303151086130293520601987480137560278913946945991047510750757805299091698105719564437978691653141916733372442147892130468256881537222735577365363643325626802264211572268825086244433613221580772987847073021856303973345992599041111115880664007484960625340836874619662331406422246618944450772190305141532612590503356050189849076001275295014076071317632746829641319586268149317066415623301428217525726477751748555694631280589916789098915793382107566014908903103770097486076392501266605787867266295981722823148410253245470459582018955175149528361696790438314201018326828695374703277147993227456906913924807799142052254693211840907436267358443127262970798461846854216678462936770588315875096115742334354023355387728300345330626235449042516768815357059218756196238848833853974394484744393749737237672767111754842116363455947109369697659029189015769352040988081376255539237888378641187887810898971766551543805054950197256667126885215251582552128042202945185955804025725322808457856742980790164484718662535744171401097003243212163859417864336503229791576718942546610634596670238592426272112753665041814255872206632996514591766882582345542681901461011048537635238377197274275744507052879730524297962307825082035193577574761769991778051293774412934756962659786217838761856215105115096608451464955400917088103687955701727652716735833627137905797540882693262649361921319958570465237631624165929729196510702389044046266910786092174222958638949669812687535859898361934731965583662027705912452976782911535204633018870021143601822794930829944991938057991639620141349362986771044473862828462405821656833665438987690920516703522559122544583502928790447611683781632479329594805675256873272558781471652631646151602068112124592513702319634267526226799505299471930798831036329062903210068287008118049400798019204122492621172489661823308285284549599544709586497949963216613470083320593879705117229666974757369595579174740354555464543495539567599942815463879536219935615528206146526509049328465399210126616087129067461441168272139829308368402269979876703501313446115543830998031677962303019966549949541660303934471245033463862588429415233889546130318287369849602742387666958760884694336084738315068989402896786320266242072186680445199379271309898783648066260320775154502375466643861070423562692203187693265512467232069332182224543815503009605969646696184970971606164145341324953726502854071991065944772764342887009284898826278382534945899347600405138495969711941848628865129335436094521706398022842107544067262113846156523686140669164205274180379020597520524236540706302011904396555832669877342007841489715001772439566241808818041183043985378088721135941972705490400228519875767595301222347939991842674407909481899459296832197480417536609262155715540790021171832787154817194000939019991923954846794435478871829552321069863294341128398545381134519646985448399435595425817600264093534225616459350559158394125955299327303024604968546960028609005211874865353600571594191464845348566321896310860473785226384260843613153170478900746921634370462257168066945304637880380317256984832881393961477677632629948836671905826758101916780406413401071500812183958158046914176350363086546647425735714286118148308270363919188552092012946582599480295903578374330899045174104854123590952906328650663603443861423438338519919871683801572931322411600194211351568024984059709384466848689219774683399106018640742435470867136792600223687959554093565489280068761951321269122647562899007250248945282491004393859884613311534648057658862743736238299542374096050280333054640321840596985314395143996963853792935790562887686709910937678908733138526972126374894356426844469122898909275859639552265301550484111652637000977124957805796621870211496671253645895902907094062831522217058915238441275743567425939127323600322307673319999931571440196242585679639526514834992826493930424790962794571802664335093486537336574140043168502455799353357423874216032375456127361337733975676435249105007315525039723670985650916349410550652399033542478156071978347383689859376083567730287170188739977961368112486944427589490682281538769232971829322401534670974439241275015905234100797444595126872172569665137181791602767618775670321309288720210153954963936246569070287453142007648642768499104193962456029898067458596591457537060519884708735866936494004390824115789731858734325274503072660824957403668973681169654387239922546563160357953240782610966932689997145607986488404150767323492065741470538547492242087387058401780301385598642797404791661659410713090105760894417788494604437793094264795852381707042600075947505757023040397003438458091830987582280152861816424819434383986142408537032679357289804102251620733350538732525712871283379192184748675627806823788944351251085523813515712153580110686758928922446597845975221242084328010729981079102735448261167434274785822897538017245833033012234525842031493210762016394930603131777690581174694115441158984887556576745438973235682832864261902231540801226570747792833285766201414284347283217405534870639184286360036284163869575581527130072313690819443697403110018994564142340350436728283699826484090584542904946829531070402281937674006550313012247794977112057064007785771169527380540082242012487031244383026175821837901665259731443316677032043357225900541785512906756157533516493831201152690153192896012678154241923109366218658241042554387763141364786140405202012896593283403920678734425377295839123304782999450815883719641139379244093872495428928347582841842945607166993275795323814539223210693499502313690431410573818107174407586533957571010293250093323596049894854634174830158150968184998750482068267543766303147161843203182703935618206806597347334639299708680670810959706156736729766020934731720301451187089472883404444035069948770810602980828931304815488589597151270842406196102749634788412258005202866488880687481294541471132844590375332436424765467158680790473864455564227231494352699319062828967059345620066937987214167060605096661990235987692830108379169775427028919088285421300481924338149954439705090483904577105396710612367436537501720508704608803415933374443791501892600350124923612425244514571996396597680952551226730833806557954848662446653948445705904186170830796577300845814909486159172184474311906923159462594297231499224553352245391601030678561023211276979435592506790854464642328257060823850392981668863718566223934269650532846226451879988089922506675407114893214126136769489685195042927540230919641334829216557152383902726573542272965507949839610645030510658251856604668085638969315148015878247091587414996666281499228772615345829630764630535582563863454821496691823498518845339213284415343312864295436624425935190535391211007441077053791419871173384509011638235494969317706080833173309552782487485211851219902747374966199398520970901157720247175877589031358496498390881936905930988236905809777250935403846352799860446757219756590268880963947175359890354893118731760617750285513582802334512377724740853019697595528407156106505965303460549753527314605828770263705037099544983017708679000190050358951241652230310743041100405025198953148965781006183836385495207292122935476741309238819975285413625920848354180889725814449791030418338039087769819202840306499438299025932613183407005564646273422194670686619800961616761559966383949246693057295890869155001566880059181340715350642871695896468157776109302876829827640636231812314137325655629061708845595897627482454107329039676749638880846557261636710578385108382167064930807365178796809462526690860298118600630409542064219079298646309430303989027808049008792518047648579123142228796013997782408007539129661883424322110161961360402818650377978793538887778391416135427038669028340137047475836038853493848125943225996096131839866892240530563351871993156803081487159105243333790666158096100474399402965835751784131368194611160415741459538621806596779538847052467871760326772867700865300838162069333414093405668376416375064679366359158666331937154546084691033711844835451545905581844564180911715298640314090487500127785831827929129449899117415158506914822797868702310788517865559942266392104164740430669705345100929365572909233870116314428337341498030500165214696327450316168430073530701887454896692049938529367121110998881342119568504957224917792171373513642813824624758233346017356487359377978936161244878894075289908067468338731880382244381954601290992423535922674920593022191993700754199884280159778928861822887028124868453679675535013689003878658634644201884325024285291168370088232033089636902881989497608002689618706341813640411559933656961666481938289212947525444955042940806316906304058089514661294863644979566253905135446585465984054479974161999100201580673006556297653295408186657610439497396543528402260762634798389158925345709399264669710435537801787751516064532529385879852598158910365563052862751625502182768417514170647774528706007740064805725374224123466318966058133801142748510749882045295916406841112115196702882517358137640491818402026319724596995625122972009513217151707368944759226848938646421338461472957481005318333378276622059954758185391184489788747927629467088096047313403763802309690884872152469686629337405125748851233542720314402101303982847203271532621896331483632207224904260770289857824031079809177317678221312976351283716006674440329209584101755632956419562521957855400788973529345929829151610266487272610647751550374581302656368015364379669527987458656791370348863577873751061605668012235780060727971488863814395031587133340462373705223326025497447171419199665972063486171926625866468329781135284850643317991724338174925873690960561553395668168637274720847915252894374670571972276723253977849682100116520376711584057335630751402617141774482438882689877374617893648851582183455955211626810909008673551933632990635223397920646461932321552943337096552412759035173475798428306961603560812964139352925950623798937704737618104962935207579558888774022599419141448994196597036059936164742131012120891307902930980436118428245724274896104730744884049505901948236602808281559626441770129164594124651732215595714940642864298809556967134281599233169776627026675088649385299974793168609096620118684323420845877410103259368140000992699992759136312124272826052930938881772799656092074650079797596956414705955493290766064051163987697491717690066230497941900655788042372381759745871522878756836511120685957130502373224354095234219201115334047631393896857446389369105528251918427800814595512719804196590483023449003677896742796860804102659598183533420625490098311387266513879263917149189437933276879023045514171349555328496834023059926345817860922893922127584728255416018978380919133001594788816495410391931609078166295178159225451389639506735576003645639148004752394599049451689550953330669744552402476686768339815079118316624548484168071712350316814909572579249123566554248058050021338424180711680735920371930665896242400765982035969880927019746314825014014039198459284774872709809342989202650003960725949171407889811614003855863117844486621710101488297579513965219747753428373806627533380387731643190932607437429354665884575275877443873130812393122771541762982556527326946772958421529469990433075658737453930934697904248071574182230492378445448306488528247809288403113661084012196393906285353244801156994423441411625163191035133808908161884631355473927741226923778029198987421186023517844652722636604634740998096417519575077172956002934464613916634452957435575103280237542734614238914384541238176949842766718931365971746045425783730415056373253825865330775994963128307165949966711166261798533839680240354009818451535183482989972086950600629673089014773711577052741715609790648094995142139311420763187516405833307619291746292482744533568324775892299459592930974701669617519083733919430888152713315418848944468901478025669537065231001427783613262403925496899562260282122924194270668700325149799922587968689142588038805533059205907065810456527860840534798072539331206425901884736440631362642169991773346711297566076832244524632629636101094959236441080899259883841020117823449501631253720257388718704446576848024785286851004926683692425647739884693856703271158036744991399330899158469706543778902894558080414215222370876605116562603168329963723603328946765513011772036534309742679860475128838619029339062992997656068200868866230264262625156504651791871936440231940083591972057677339254786565794331796421779091890730198604762605436701156698995481308820835684963745060896930853875533796571560166769673177123790707913256642517946738957435319359952108448254639749689832548508669864653526071867297096114831286104454864563119914374564745161284509267015026575357894457009284801897687339750215976506596154875924104373400854501796783701188832525159671394091653327208650757925792641998080820456602550764889177232513171338315388233453587377616977535768314458260706217602111098455117415706604205804713253592789549861063021638957551488941616242686887816579529844929860091603248480630798227216641507723766585517175098978891651172202729569561528837913223434768199887293464420795105637434980043100186679019265816054738232715148835307277951264651425479278073793062557023556186435370259931964477064932127015286813081543805156230133358872006753515759144317916227732223912711887219725518659390264422351569747208472580190927103919075645825340187937360034000276025817335053923336098553474477160259481736347552653118248188286348348039082844152638584101562128984218597454476353404394330213416744070403704759792932924452605772655544887540524080190122142316019019478593218724882981250869739928332647280125681703628026839109173250590592327927173810434144204494268996738557741237787218692556218081121441403334968827327654448378496597719890626569222302247820018246796211810386800008107955124976807906194783945345644090777424173437602709609697826870383039028655100575131593371652857379147191210505486520515721666720541003796465548722847456575556350142976295526516292614731279843219476560970139718509058339011019801288765716414793414077108182321457257966474015024567216249460555335567487231588080059418186114507127044695803262621115433501305912180923710928338340787399691888643976002331895786485322205832942119837363535391935795282496833324284577379751433811924521872517043409025401828784261623438285542024172431982226292196050763741597791844962458819813804917495609020574093360163823572833038977876253225440041548540335370964205002891873487026032373866846936794876368131082269622606373762979952880695661546115401290898615520981050396916766221784688478703877977414819248052490738211721853127874968531539511172100715223019912612476438984041490155799913280698404292345990936529473274584836973684737722905406780102371387159591093268141029994294043421798253289090381439744245867982053515644492089814272169805533347420892894608530876938345784345723806817399879836919763781883273145652845375345504891506331260989931416732410302806685811229586936912607919436123135268786231546628701007661364712699861531341344941842850232000893796831302392759321798736826500001480834445426690711261786242552584464644670313170215433454845456746031976376977402284285750651403618098315195266874336237082335552536730935159108293562031963326630130061098087507371590254454734161051765523023078884356557222961380449388803741157659137528794591638691017716202305200455383998014694564649172250701609226069708673322812991526522111113548539820463795903334651949338841922745792333384737762181969795636285211636839009712707216137526512809215245564867910810756390198915728616702910838839037789507401944713040277371534235406739306473243532913350956328000863920850688620623413477883880149780963257236331965257317582499128274575944411774004405982363378906618593204580285991824386503740775319975493277922885039067943092137166888400324441686751583917640490216166297768651086868714814548174438663275278765587853770314746495598768337639718909876621634855455510984508912646571540953414201827650768577877194206480484276679808273353030161271912328407483386674900523089999946339754803257113932268228607099959212134351881408385243331073281687449769983285007485618854707738930336246130733976564500748041009869452590966596471918348059490167491882522300463568027712647373707902335685951000577166843893101347199254208138953309508389594788935433564504507123290785942821156082233388144899130917554052359146991557452633151101371520833731604936475691545720015601113971799002720310122682042049691962610047733959064518964769703575540039760232486072946456955395547301524086668584363945746650655427737129452316968901159114087985184255047194966322917062740720660363650910096495157295720871432776755016968075660423274656565174646789918651649758132636253151378991715931365353783877931826902580508460613107409848058446377348286119162728597438733749974142469474528405317066043265683859975832391157117564256846246887167099756816555460850246760155176473511788908965224739911428846057975822052804686312175420211898185560637036750691418768758784927248283795931410064989041515467834452457224165663366395491543704548213949167797457467192256732809441308632838372294021406308468598751958812188482781443816921878464384600740341186809933967668967368247623446061697269601380351246971102341234779567884102180329135800481803275872545891318534017586110158661962731591937086737163639433782633667418180975446485044265222105078656898685484724512343470103584988049248653370447441864609986181173413240093385644469325880896426447520325260577160752945548786413497401898640130143395992867502097258757015470748603454613923462802506023582179347505418888825256498790373325593759818748720215522521522923932426880345574261218347950556818896430843550988747733540701074975628803348101177579681854641029421415673742232401061338271813862168568907892989003864010622017265638814047426875864959774268277064126208516782294648069971926577752239480099859560099682407367197639001069726608879717397680918318793403175939282249516644894046427739916792114709537308892033360297834028194715774654177504504174397800584913811219521103775184896175996384940864230301735274042604447999633146709689626721881663375479211728853520333613480896478899770554635501136498798438560500919060179132881483529635120747054691785644649431560147482077689221782265374111346414435571641936404142842123270154512164384904422882632895266806805375250681921991439641441683061235651927460905847693717297490754415199371416100786520115549606860337238107695283920725365098234111437207623267997358409684369920473111209443109100335668522937416841405240959233235882861621641173466130014570487771019227337180099107076289348701523600773857064742596652785148397510679591416140453256922176792577354052703187571614953648155183936332429573054697490212261419444907998335713565998795585665413966960785972670627868318909195888657109406846082496127549893852507625090675818631317574946871315092343582376855106795026404264367808215015147844871010743801243803077451688954141367616534830734376887850469250058114918250891342521271767846819115327466673312747409248900872772253983330063230585609634370825318358348660128109380997247610009766890860539598364085676610302225250287622615983554522767502422425271973673138511827670775820579981128939002068847113082838386163926054166570758574040677898165571819997716172576405145034510724641141862430844483035334748672345288681479453652961568200072420162148181071364451017012682047246544916708552059132383238535049768757873249641472874841393954474484605515525645684999832900242509689043899098252914616140697575259677230511361917045928582093918017916708273242562084327058384776436928762649055185337600570253774710670183520742665525588874644309303057901870297137428023858641949674518502580305643479389674764744559269008574781799088958854838865649389526791176050821776328865017624834771645635799060323309230488619651938466958682318700034432974380558305973451502840951327436601387171781239358614657452888411717448982629157630190565215348041864358281899694730965339938259270517012854120017515235019843788988202673639464568140162382502569337362773968225977676236958781086644937360305373417195987866908894814557207516921356013055101397544068014852549431871907172265362718573062169808453297018202928436802574243047427338818429136574937734852192744584474721447598761592235744168171018228570771761240686008564153000867834921956127454726405475851053123876443519578650555717490301591665023846233830570368477865678361758209260447188380688804018994342011176556561966168221878689275951366578398305986293842311648413779391286397150017550789288598547513457600296874579016972686096239944909838318066358535276577882656586789721842794111026883953496894816794979771308065072555395129341389721639145478047438730460906610576836433863336381176014076687800573343107766353884452419997638818238444418410163994990841814731706816810595586590399325865919913944268347893001123906275626167473768406438323832011937409202366726969324569848391164833763996249083750807185343227672824610673932625168441185226079818312171355998282505200536117747206032685321107293797614637759221146395696328743813528311250887107152804967454596318547018873530336759182110830391947560022255899704356470297635698858264844265889752941778490208409008934602158695847263051682847974972099607172007909492243189693898089480738967193363683323613818627306459674399411308135779717016593471738105460512877293512943808499397243109636455213033325535778947429967182804889228299244303933196064435837352166217930654892264914505403710774556847337860238360289795289899750816221949804190880110805287977532690508947834840134070718998788709975135544886375501186874171025682259686151241387654240199834538990139009171612977848175537727513292158098791388813255520811278291110883576453830662719777120103606623184031842977458372172795340321523411503621363377012262078900769570624916576413075645359534725558510732902027045480171834803880515886328968180621277046536971816481507789200352138846368363890378838999129193495160703963609190450930067220857386638918836649394387369549888256629832238757929218267871738580739028997998982013141075409180224354296727401477510260092288609037505681632287310733578889771533269980624035117480889035911171636401537116145036653369040155950470290902996156128974330659198077205651988081839521955398676242124731161806806353162250638932698895339767376866717572568315834010214621124101657640581387432406255719878917405899957097247383510497096252798524232358193292320989799788907457288832921689130295756309212318669253888681828594394782588933620838737928892919757277384768220021823675226991778686955588389731277793071108692248307473373551429020755075745209660130889484349793018448303012020802415164196747385338136091532619326662995322681772389239502870705223847437742492781782652057753313333836229042952368366407444060126863861141935663764841753760458813008024382282974218365858581096829169963873023357791672904398527257326272580329773924877427735978971043426071233764213973827529284311384666536494533067348810898688226792198554087009606936944307350994630753896678564924379524320617796252187503201811285532830001418382261414850390409673315176267574205121411935729689079475940242325965669272533077139945093118352908915310805983966523186241766479390533101445780633294505955065471301458492087699106476422307577413233747608137975701836896335741236642038909800802531459479890652606398892453203869413881879720088148141707185565376087119420763421388667585211088839568077695022701064688116811970451173734712864855655802364059010717219464255214533222857835224339889758649249388501536343934414807109167731352877630563476920938432536014404242559560883422156100547070107853074429154322509586669529716204553855682973266964676059971852496060447215659273267131141587157427491232443978417347265954131293451956662238950889782606321027577990794394277400238475577205945253775411437227964255277506821450896504854812618154730322974351928857639470801453164394707744101541967002210614061482527431740965742540211807343076834999095722333233807365063504180150036343260568014543614351886155258759135658139307697207737842504126899738893701794122664183275629747017465675127394951003406476292225502359176702832319257315322032579231776691757152188767489066764935220843937605194975555327892246837432885180290070480728011650853622958550785336503896596681271481041323540675295472674908504720995052295557546605255330119450417254896187249512202379835815971764923041129114071792619514301421545378868284242444580625373830718416826993564407673189520386357569797856702667676675517001652662223082902913618318622346092095183962894780084632211283400982410546251878023605881924572326905023582225160765696682679032685533641594377224626448336065413675071550183306541449471795829067931943202287550331086339364868042329124074399834006103717293564027786114913589553020403275365216562644895633009801306765817730224061106921133341516667049350637618047932572633684079880123812346904186425956445632787177393409437736397596949741639076525776309202574802978651670765644421959056384110482745585268853221448915073329390231057544618909330534835809053500720977044961130134001824987909174878737484444002557624860945625213726009794349879646460811738078295537652978019486943367063251433334629277738457919302879726152052919680409275670671254670563177935950365543306856831327480752404642806902551154192107067840318969625435710746467740394094785876302147950680095321035091073579048813652096968944977446129978067883859510142739637841233207407912198414003169989350271617240153770900542050309141597523737577145919693012795966467214525161365480292778173702775096040822874744803522401466123043820374049623890879010285431806240124543425970487277054828538373371413212329936632003862868191639660202770872014699783184548206860210836246985841456247049645488910381321952735357688276308928628345899157471994511034109475699321513106045807672361175376387437290525917620396943388652291621623766210693332558623412277153309976825843877273193312436776747085948588731053863604512618932141817367433405611390191408860843421200078677081688078499988542203585091618046088715870371821720614837494267540489992171394227447422873746277847248553498659271839340660210529590414866515714526804811925041936836586339729042566467891989620392043323890513420807195387612853635748003241511624965990315504658892417985002920448156799879775906437301830211536892766843872052120023532200851838791937030844015481558704040084530025155582714696645777336411289515811251109354575496018165111707047600909872137162758428190208008459599522446539507881908532358943110195304035723501773258426965519604352605031755627853820274226831636557856953788161874483538085600053697502424625444130394609455531109635632434635815243911391863979294011616625802880483594445997716889630108616693338468748458009079491546772383545823475229907162010375847853277744373522485785136081781856656540026101732250712842801644964529950334535844261595274373363874937161641737687456415184738040657730097185364674000777003000971236327882859577058508573523812096741668170365757999109798314413212701172115704682346545866037433286130044438008760261077340667037504713980298093279541075997965016151394583731905743571333061886060944571114824253352429736452252659780319242528540584885636022037320858555880066707055392604696417167126468626002127148307915803068711935776363358090714312894520621516743030746276716145962140699086921545887582248144100691241335142481185625523741311133442805931550867304897348648020180862392480750914185200351033139346647011046316916333695197870642473217917287094428617104830011667651916948255987366919786473131746615028594717473870689865772845625063300109913385685834163994536553274364651831963439858805178035155242862644211784926179891808914767712458391483445918127020666164877519375571804599839817009190344743798699988244942685426856586051521121986406769378162297804244792884686033982917758114544026226306747222107942467236867670401011850938757800642251544172095380765756926098670366962405624729636315458689969398951451795217571855263721603547704764565793214209705344250604581168561108568980751098200297048937058385263409037499655134398763712367719893457158572218867220825026855195467897832434102317690468132066541370995130836286371585861504584862625577351314175912722533096901035268851299559918460801090735716391204981633841097427836681724172500251580593442593757401329191407266914170634182789487603988231364084256012756037392729039615641926185549457209139007672129251039515733646229554820786221339284639713469583462322921967275352741679207600308576045900457846604300982161239635071030724911132471531557294005659055351769567824563166527291603387359176829388480089991571085242536168306495371989215449437768875763383866218291391559295553443453093484797575448671998981245079131384459496676810749661397723743901726231606744060167056566133115774623721315459525757928374089640735411933968801374972286098995156828518601748792345659732794054710699713645973120809349898583573123502929954757089029831855359270132858826035295529017318415065127172863810262492842563532278124444750310876314207069134679455949195658416812160881204912029276291977108285209702621294287893093644909108668160182142841460449633551564530935278825554273177674241067433459925005941324824593261104267087970189635369471713601754716964896074440033958382705169207540494008325881187180827073503037113325668388353990438513926959859497829880474108465605511759792214189709115551369326843847977625467514352593126434163514149486677159182549023280740839558507352253761392437116787402459119300426584114980248811717973082244083258828949603589520422682524958141434302591526175819336084891039126187870401806242098510473775246558617986389265744773468171712966451734073344891755169037465045254240061644362636976101695868177175118027057408116148345613214282715142161994626630832316693392294806992160173850601975129311304362330240366617535237491264350296621451488614363701433043088995159511982908116011251742400146351717991006055304419976840790598398515938745092664971311010778108071640601955067822944320934140351647753206652632828101975980016162757668334656061148317404633875265023839748211471544765990050176251113662078712269515677924793891945683991785269704773540266909480743448599308765422451489639402746303944493457240042572087720608919418412105681275942321440254470180764774528271314763709780466394031248806925825477913586463142925358117366113699152553496773172790348112967306907501921307325491450305475822079017642575031846321740108951480782425343231380848788713442478523070913370807881355758608025846377008870220973763037774022516443989660488480202206106655427560474775675023622938556328877214668323326599001149508296752214778748233432981298158065381059387396593008876916877720862625920981484096798073999417336855107444691811072372786648771109759403307982580579186776262593039741723629693221797699970524408462817977105951331943107776680580853826313422151330402649412202359004135383505968278879721824450427624408963362372459916070041107618265397824272093814615639874727982467760554532063046705632350867071886136187869596250805310522280966004052317162973004609241332254776345115885058533121358276948176353223804894629534949992821421764727691311897206749263281994486105345479327218764089499474761121211678504533528755592722668175836613401432898674731060779940027947812183020003735166082373967876052521496523527708618908169047622586200725119288324782549043392252357110476949778191391123651751573683260199040779489898324539900855893463321081428499811890401844497968219878231831229792648372994574747864541214498155694524270938654752196432422353894346560669128739235511141041887398689811445019451576892084472688759945275134211625314764680302541090616462516639055855563481691093888298472264919376391533536612274899907998148443155164306398981130899831478810421623607866233793617916691231480582610712444578052578007789118500755525994647772388759548177238907615087487966132975096004578136336555204607952851596621186870531760815713189385431386174655785546841400049558653543915622805051788097704886026725081284900395586510391311424061377243920088275685081977787454428040111006083523984565603715726073895815374917344151218148918376049356625057319527391601346205902783755469574500296961717289535996972581606485487015717579868406234034087358955084297303306465880788002014096590057739296374194991500762658149169328303668075877835203069965874857274504919310467901982640549792475946056269295876210027545238067171770767930714537349411236290967468868027043011729212062637377890891507817467071551603209993740872633491266717180519441276024417982113059094446544387949634572455358516718741829191615500770176873268938859698154206444586943242581479107619550142122612085178048656168877434758121542972136706602533098810124524709926065363564820297952047346018742085955524394657800761384478529833851071776184250853612117989923235778205817577998814460477567582060180293804146439970711957303937421315319609461977370536926561900478298312034031152196872621901458659578057061046069037274644871424732257209810680729329527104979092394051131287055933708838005966221608003059733451208704021834992739266767951501166232497167700463434530572471031004212047639737804176199444634943071136427665372573080319140600840155693586128554754903815315344941283434752877951195967104568952821364290401898449759748638458185250126673187998748482388753331333124419493694120534248157533952033294107460314377973630161568502770010947792847716660972388872360169725976624996670055109197062710450087749809523704515343434885390432441353763770420514421255341390539364898879477690674567516968129011717225850060484952475920534621481153949547093373370381356810245571881261811829712289552167779028250583121177165857537453519200334772167086642277533066330061390138559576105599401420265838798920706819455594020016338495658976863680329637136616825028667011859585199982458982904360799422474509306413753102569961511224662045001469378905435823089130923503372184702379544412280925079638777570642394938906670829116895275580907629605800673157938708801978148295502802044255843399963463609496305911548337875859082465203423787551208256819790072183999893221910392630313813807537176946943795469779762565521119241812248042743297259950441754777529638839492056074140581144131955160415100826253362225873368956199394868561114020109903215770729038249926609642515974105988323274319026408224675158795674369671435799292262429488179288547001482279631551101947602288098738289985503388499682243367329445869282055989939674917414080990774154299035291729323101372273979303096338996443846736863846378961062096482744341813589525922811650446259022571712899387370319435744942534240501306058270768240674041900302969507189014379407331746503298958092123379979512826460046042582373473039133444519880771310264631388318324839037540963122317027431179033080357531957758934824275815041550586157605769386218921246448207496389976572227626729416248852392821501276509655099714879823361142086178760742762835604907161479187593918392126288703978073142340229051212088399448772823612650113899606500571604898642171030963927754913296558029069186588930531102209899201876302817827642707592609683842745052782790945851875369282753499565790792127128822842728024616195227931805223567610238311126273130496144928776812392154655384146638933888534660832589469624964240971891147413739686620120556693832192510727494147103408668381662091755831607786719605175356515541123094825608273679061293215550885192375840318488896297509616725392817049132608649006103087205681666782707584978275204570575633342578430250517882805648091039938300967932499207500786504785838124286936138487889418345661837838090592453698580878710044581764886019025950246910286668848200479368984526032514154572962723279705847367052360046973224335459425796041048691300850089881019520940841291094278439738270582232376047841057275232122353990432965332110665407897171672590750001641231970667374577191653229078259195844859631996201509417520769638716888145500620242691656832563749761072609468632612185104928563513693235240166076704043161739423670925443857393806665263968799719794419416108339979017457259377835836432024714679329622258827013649086028907497694465376278648703791239202148267809007001376389854850842008064045135433281231939682483537117792763334328535267322416016307810451971995053497614114648553371911057144415968766390918773104442855026109065566517533987038838923934576336418620319906439725932529051262664814864233956449079551871117611290777069714056359534503290207513042116071928192769362193519723792937763273574934319210291312958370709282117525203395859711745487601114573417122918224521351993086685603430785712391090015666982171019185099476083915859849002923907845276314662349769061625067685272151520997873283317036114897865805055404868803187045511325972523272466341243982080969228029502628637217796680129297597120489907151750935715698971474630459984953611968127350105045848362729697296500431875447213999306803868898444345750253885274068668526032590764754086467977893361310743853933139542005067340731280050862753740855548260198635770762049740505763330210253671876775719806205436819927679645797717249196216874185155551701913644833996464532364360589014362013948345466132760756421643016580936759998159682795284062238226068087454991475606929640112511128040803019554006589139172911262035243823704000427300037280497674331748557751076223268015201578156263781314449801871954715449362150491962739822141107512324783829337977812760091085594734140702770074717446925850459999121535003628173473698864569723556488656461725557923098159205037708548576874827771041016854497602827930743985309213784663768523555665874999286896076740608983799104377310216674183421154975216937331011055196597552857331903276844062294703980927170227871938939519983253846629364474090657453704902568924958212260252161220765535079353551193319271887285756729561101501868094530842223716988984339866934272205733634984303300560120932192780369264682465043361770434971564154633808565490125278420114731706624771718243999504238872630461092231822577146152983149250105936963043454210222092387861592059904626638418066813411162783326834371588009004118815520003135744641446531584142699905749729488582326536611085645185958857411971441561936780669629067490479617801329099369342059566435074873259348663582828162574751054198259492578508306721228759607653790118279814074313941939476450599266603391689306601296483874670944273527127076094505869490301973758101225393188208777058196657905384525758938873681704660816842673920846683349212014942193527631084137893106263587527429725267285679668798678045102767719758864546654767995410823584646573359012759083231372849009711819233611453864580518333590710340616850490624813544215645996546971748502326510891123672663007170277617450912909857457756530265045047799210804830385033756311629143780702900864114747047383633203079866112770431680030469175662636153091016034989193916703227404309780398337192642381671308755482687284643682035310725370841247232994336740842057623870270934928145601450329051619967225674385409744979315108296960754130419256789224333614913675025232293775937786130019066023977254545298201568770877784026412738611204910798164558687736262495706403870687817876100760040640036723354238976927507673859197124226888768425784006839404489839436016394666161715859802954579389966463152549942135684129581398904720760007983841319501639354673780165327535720947105858883371463405212836904769605876491174356387262807455616129072443454284367173033741161304691237994504776893611911320609060060741335939776044670205268277745388616375691016503065300911015383641707120501381432373604665581046922753708963203409187219759792816582830825278371697182796925634214033393527101660600777977114076718940600214339284861547081133263144042185980309677359839763136694369693522852276879837771179892018465029139944857387312874515798635010997856982226570440881653672332680261816071452111713611467054533793993746158828309337258270570115168874073128744468637348056581306459781233930132357135859166858873085833785371681018805983987754284039271368839329439627726752826383355442916605385803034271800018869293774815657324131142046780848888848073783998805106620849974485330757625831111351436899829127081562591081942310339852554858528435641549680135575973624254180950833948718215051530376721621526935154372131979737854386393763327275864388312888852000580133555476941004295365192748353454841837937072059659361775081309971607781569884235651748634347877455522710867905038506537732126431666547773596515670323939140896677340061440889537785917042527033421576364604872353580849415054004577453460176647863622989580826666158066373680646843432609326707852222721016245680786093580249820285165130589571811659551344230211633261019507450401862053604289371766246484227332331037031160920594492744046926300707994527579812701243057274661024050038324233422820270852243222080716524804771973043152411919868113738760116740796822927322659329824119941311637811079542210732405585499432482599665159647457630179853074428821415622283609890375567908286817584594377515327177738622939000454383650759559873580243000228933520617710457577366172498578520527619012306841458794610713993687748390814173456492553371345701871674731380204185493415476273880405783608898998887202857956915877571030962052782505180963087823606016116594971744467810923515215940689896533271622134627874219148672966713858528326377609843298847551612543345846764683146789177774631725388296834868391862792365506898132740658374504238708593499973614831384090907242626793395188236199534780933849295399634122894196540558456723771308382936709512261972584422900131194068612534900682091255020304798389549937299618973196654687328789779617498104796369455324405154412939702714781905325963437174909029193770879397824181644511641033046383329239973354735911428795486798471644349107378930673651348740226620232290033262084219033778664400591442857718977355571389097722717634126529663788476128165412895401568425054067716170740666722914109328114103863884970865345753086692699228887108749113868540529853276193052758214019782079920611664532887278759672705306950861475152374882735888447416061319217634866866844601513359087757299816563201995779963066189139909228549907610063005659742927739787121211799724148085326545577343878216855872947821240703846738952192216519301971043979597960790048283622337022121763361945859945448730151856063825388640473074604067028760807769516254931095144213280638431248341016633039279993449826712753508370783630629535528476080289092427607294959434203704577090499574746601901946635229624228916625149871870885021864657783026592969450950219054687740400024150710541870565558506806396036096411390141667642687935485355351944675766076928645060709629609391995884632872472197220597794137494267613284525669241198200923244128714879620537965642938148797680234850879651836949959835527335217587142585638655918563025257484277766558815263394856665825482090114214861639856259783807851743180472005544507158137177543582092747917562155131251452247531975703113047074019746908876063425530989690387741703669544414985795044033149690621606013841036113699522369051170331243382365145867247387256791629362404766081878273486197919022633823924895875401954061291114567344293533795257912240449262382992534135278163399616026317132884960832252895736395381655363785694226574269403904593288345085275615886164922045289961272106501854299834750542847723424820154141494591094559469333061134350417482032354985990835591522089488773225167263881322878909780286633345294436727766131316878336156006024328304650714030306778041830209086486157086278104452281611864795379181739515550456616374556139867376028008494380180444904816146496767492885939829896529662080936496666355274004554046836041294074280804598431399006390820559045713688323272795180591889489257722028981821815551332598290698628546816365081432965132410540062643650951462728545994415971593827672627663971503271341273798304170934591869367833089086802443837194458862480196139379983725133680332738195527311789908487953998128211775613513012760790518226835276630702239904312436900735095574760751629453754903923893556785961860202466416607704345206376162990992614608214184630140685802946558899856273106490304354155357199349735949886200125166436496969491467597277290072701564383051880542176543667103727044947078340500332889653280506979336893461956628272725229359735897429860599442505796016066043558104668678379677635075333905433674199765303089318659593122528443842922122360424800241822870638925509140782470422160995785450728271462232027734071227272993719865057282446170238795787642099178334690978892637386127356181796995179030502166150445877308703291052331163510426937107869943957945467458483479613210816651829113220589736557707364628456309068741818719302834110565955624998414593245659624049707549325646160940653393219206827494223109141300673982846561787582632245692196843485866003591235561705721054520930587624312811002082825594497238514303069080309108501216298586521702240479092186862341491669322693837601852500316704146813760276607191689331324330900393436956871948809998192441770854760390441640425508103737905818636960499796182020568716600313543894068058327347358533269406812175940821738310174590994256355578458807233754537039628356571127401035899505580977807490374540606026779109505154614103917853283926472021354342752937732078641971898618726313756526650426537224683902820628146565587265213522071403751760270071089558645829008765306179861057067592416053632569801236314093929717130435323557994522795614735773524399416815437156250120195297453356302474024143976977735238755537852360546141720984772652173765755948984122927926500914416957292847437677246983249003769150813547489567008219885490115978245253389908727239217501100467827776314888342233478730530051296840612239124093257240641650040180869620331523176701011589371249002767677146464096974077308819328165510437442348818941745381146533906108740904675804287758377646183728532530135492895503381126999637334496561792662793091504418855999172133884589190465557815294735074837328968692629454634211495014169081907062703525715411116020414626137784671754743812094777650961223938143164483324962961071563584266040428167580544219724086711575019035600510373214971372254814577426345225773947453299340105709738962198326759751680221541500208806041040110889372878109460036438395023567994052676883083334222502581687650619135517593890840032968565215442988142754928627859342048469674285081419657459606312735841088371306369476917562417699891387770370564586470691975369724726489244139388980202686294367675621667065980800458300369489561026155872350151101406470254998034925665333656993826553680564659864830572052471665803981695425251805312666086506275228426619727576479474844542816738545931440961155906725845202008021103579734186322823702634949210331102214369921017463260663742222283886285888894016482770668925085841624627444383107832781680198452627098215736802975557763652601259487143573466484395595221314812600196024667846298915070664802457552990540573245844286097079632605316679318395812436176539646826477917354841501392364921184714488083957258880994919870259849134386271876539046297155632167664223791623245969487627314225909106321815937324927710250630392392735510402038663211107518965737279335070988120379692677273081225939978883935783270740529467170436407004364510854602358102481177804510948707613620072585430494077539419206910987337977405599260383786826939741396135306244017801627407556533333563801860821409664374960297587471766609062452893751129285354182664762988077625229993854050906763079265733962950403257407998168806296459072693318579774354717046248856903243774558839736173762615999678668920220453348558139605369655546200777640300128933385318840359368763787781380892499719149304948329221003984777808177316699685494087522750171008432385992537475973162145148851063317743481559513778780857116655390091733501950118358022607417182723359231172620882495697751906502782620857235997961607352877090772079890815249643410836314616550220371544290641059865237900236730714717485523634069738742042787555110881196162053209507329722400358833147354492799582316823222405209367271011558858267714317580158675512998229975708378309466844764743855946773319716898817827999570385733756616071916906823583268118337793281547640188899104036968243510846248675240654560092094654771319077508350218239794887297329012765132820346506502108798966323253253269107967967985546418336184401993725166023545453590914198735209146000443976400795500634288783139294880200326766482653633333123126694983558875228075929864382404373904782622973067390575265670642396609082856106935333449957355521768994362291271425197697115154491087604708950511114359600031893456860470871628755920547912679433727469928029799888551973685732402941552989319262087558053212518330307324529453316264696207264367515107936878948131393001475323457561928935141591484878391141668028422890734658743841669321114138952495128546005960124897453318718144524222280751183968869488902292132777177965192138180585486585336566558146826664450984337801215092489077823539600180068194484473606580757475389176822868051413407589812824364663861066870738113600830822041306062330326811148292115838173558819943003757592073456131365662296082864705267730985053027670985440784510970881475286497240256859799636552938581074424715644999751068458094579381852836655924427307990116984643069765311221810120174538239954313226720023434701643723846175211118361405846447718251302195416342447704634637749975391595197581517245779684694575111715487228865210219320162138316802140083751312773454253911587556617108040428011034947464025845750785890357355434707773582554713103021375366392213196364689251200064177723742659867789539454800555448047836489261657531060083389089608858969332315130897265402558697444823950576401297810448145223979132954926053193126511902384839729304186852400228999404432850927517867981348048515085354947383513982246078120542484194173416751410814540613491609910317117253845993106946355542253665491131558582080037202944104683446497316179338253348455222513863519203262748905445068110965490648687563418644202658621805684248841232877145138691869963371473723772619499904003811360674681568288671186957261207673125846870625683067228714934662027113835268811866419484555701016240502831732424246697584215811621092998418329701640182919409750161611572876294529571792625263886473596439643277106408410675007539168439590805711065217045339212093290888220973008628292030039406510339222399796934008878035383490042933199504910491168978610785158327385909140199702825149139063197093151877352788842001129539428432524351067214387274006071749994404121893626236046454404813832275279962721391903523879716163317317503264959268761712307199844047521517087856620937726042384331497601223724765380568725766079706889872338574344782745040311668841688302106915742749701719325958341591390411244647633795473983468194062113213859705139988376913309376858763040765343314162800386733444208762998129054839739746592742432862840604815457710098938202849469242759094657221000832835656829098852074025109596164226186270516601259092784264616505963174956942564009387306133876919512116717397833251857280594543030824348820971774536614189657198386447909282955253962667185985001805148094581212655315392246833196460930307931527169742351105620545016327469910309756415074086868883046221959820774666220224033387694133781330820590848199199974320095186748218279083073382276570758864594315060933973275775678952686198149074847588905243275147911898898448291258840491236225086899353081732282948732757341438776189743575412542737021375385826877735988547581571970763048375981960979853007937435794387978084424754696020671763616131395207061754414647379147712753365184098582501904664231459337265465645465839097717727179387854350408680369318213654591438629913267765578153874079970982551100088413730628228772925261536990244095616417568545411840526586213293105827104914537782495883877686813361303195585642680755031966706863518413016770466162258731167420160243495861150832463854932240339997965736198466631577817784093457862274042225367913058390826099414152411827317685988644185749823058358235573289992514870576835439747378135675745782595429240394389427225003376390876298649844524874113506344690881964846194272698317919830685331601364229253091435182921181796526036301863920832605373671956436639895891639872681018829448118445190199335489528536621260425071713648298646139435086283219596086353648196226544356646486383868402236864704901592493121295516464120870931111324613678493640480452886295976615503188618192202217583971640779268406471261205996870608084391437232528479599006576213352366967753792548088114494734924840550809409397279291005361383399030714651749566266608804733754292264294730069544730741905014627862599738540011055153937110945529079044117361810869650275507147540914740335427930812564146396768211930958719640436887347402555007298728923054406700899873669380872201214048940222070042245768219186198675184856050104684213684167106601367739625522954718477979656216718848488709083992596219791659619414980975778833752838322297014945617374703204461499604118375536251830240053209543632229215620512592086440762390585987082347068943151151460965753918101878748535395762809565749058253381033420512788937410257329126566760433856921127749813698273417398703873294126229261357671673818478329617738843438604492016973660533869617262358273474712684433015428628293759671090832069386224427434568734980598324141470942510486888530375222045141289169142403367320466808053330635640994506147440202346472507311648898283871711879524258021059323830103323358072027308750511075414378434371548584623933444699310259829824218241537156578710229141957812584408943434651366833448051148595806107970106330244424066796515352335300556008670760930786727497590849453056606065796719462812343634143663479841519211987085705121703219851655240962330098652263383553499714685706826705551938525359403629705065927946668435430102122944174283092135507567168470664438357556376791939789795626214345227040019977342329526668911284906877791198286655078231211241853894045604625209839210742423865681696907404312541204383941060419418269723592627108819780829059583166853984625790435463220419128855477392204900254879816509311299889038887082548048943148943206015765606282826329705731924193660280814351512460631283505306148618301509962068580992756962574966138479984258363598043588069958533295253748915389842964297162683715828662933287083089784151294654072099723602974518002135291097562167909358850950211607683218029512067271873624424812680424897597971451142762661217183509115865337598546044552383203924091511210888254487282128668276961227833670860589768694935673471484659996071629942657837850164573390596618648118043086035563397681641676735528542469885699695613420059207379338041317601548089186359131127315008677525014371635199236155247836320160729730007364983767601676869881430156512209173076052880241254654352941105936091489490904819595009372969740903582255043624749048636499975788732527865966941508073843536134411458128614154859401094473992202999050792430898131596681284759576809838997315917801032918148083921204961014504062722885266894406587866136877784847402586612786314100069002570691946090652513242527517824048045724729287533633494879663031858595656806247846018501681516415306645416981462759297151988818817107426681135430603218198725042568604898075611568304179441252782545654007426182824296017880970907331635215295763157111780269023173862300237208327313976008719651716969278000693030711931098103039869382520607864423864926081695956417935146401524538189419328635493131761360571765839293314532075090493676745125477880058359239007088835201552624784171752809678905345358317123101480515518030241633232513189160910876392730682663689896445808397030602337240521412193698647407378514176511082066777792241147614948570260914456778590395228853132815355525095124620314188392020172523382766643314153643780841879908371214181079840572982118559076334585448136263840340100868441481803092238181641879068581105250774113897817214052879457180632299857062255849361257752413936074346093653936372568718734958257591729545420733896619387588546972794629568556283958040573351978830317033130503234155131735322253285355855912342808631451139242355321391112019973816367986072569940161893464875268309961649586708593398074546870043328467763676448218856060575924751260398890505507726507387077009242101425816158648765237115425899402947013027449599377836795913054629034529268238620363650300573297699573793762795124117172305400525626715399087928385120206547551023319722680981007504859809287768772743034909495626136348264423978603414469026052291667365208475307095811798390344956615027833306917837780355826446321447507225160044901971196976852222460351100521452169358776883286027991428769419601399890349674988256151429139881389165852218569319564940237378384226628566405924015541184938707637006455938973736950579467105037726764250105339256387521872246863511444453337707456790887600813733557205996206638440714680243875260631752479421925547309482198238535567683303330430778730433988484095439883524044638373974744194642537869066034929284673896963742683101831328302762786371629981881948702867517865672373882316944300658294132176664345228602742812142458010133436668255076337409714424973534240975114618846379732870526700082354632464457370248972736527782221224515726499436469081470191094803535371513161123711465937597210933003565384317960082466135840178207645562341199518705447827304537812519694316411926301915724474876984932072833263602068875806593085841131741067718540948178246549901207372117269119366680953590324426161200350228360059473489223550100001686784274857559438238649663537272681832018041722978599205946561235357449642615937725979889200563513021776472977133927597462764564700289254751154801348661951539686269061668343285787562619803349649783917745988758143620874310704766535220464549341657469474747272018078948569795120130967070142536870007942618676409693295557567183308671764942663484038758695915136793349810065455082025418444762478804489603774913531766726799625443114958259638292280588397260989410396392645008434128236426114353887120919433227875336254245542557025130944609137916158152893018574603796175672476942173175771709005438805028242658617729504162455872461522243306943007451428731446477039070890685945470379999570007612006034274584948615210016311095185992879394283473474247621745114489307194552076136570412809143182766428254880269084614003988370789761267422434427517141882362337996984103972835206714759723592747968230124450487633130740844320304181306416994164749344684583111326181502926933668261109278523852602643444442097819863347195388692899162709241377162571799337306588246299337223275491084187789083497803018303070601180118482144452597467719724885818022980317964882580633556728504602054973705563361665205871540491288346464821255649286653636631999840782981334942253706779411522519150444698293126573481031113707750944732870494693451109168710976363180928879556829853240875144653800905560002322024061637928000871342182445454253119692489001163277563994088594825311746215986183341598555283455389849053793656943354676868978922541527151229263834734999618965687455034393841939973851357167064896241424350112598958772761667433339393735890075767761314630556025457459489124075217262851407458030891116732378113757364502283055803346210794786681232328620159759678210491082721310382264756284819602112942743948041022332375655305690829272233227859614928856950023256256567884070994864079998728058747756435171141061874548049633024968227421876740170058150803837928527048751256944772838939979987076086502471222645510340342347058652128513834587113573776678622370554421487442631818218896802549002425204642400012816403865883013975131142941636987540168659899608377830464023266383043945439834028774625341442216215821145122448976121275341067921731865768967495770320894057041149823733091237817985062056759694554520713855504493347686332853169958860343250392739347207415663624191762039293717401171426241667153569596926712828652240375508429899162475736120115407700446128538023935559413448299434533964802215930790714343981107533997940420558727281756057663875654920290474576258835082525927203941268800747560673261025297779590821019791922616521674566368679877639126985363365147833584559361354444054799211258398239464278796853234278777688414011418559671581448068688487265082285157556351712546831563744908755964242470094906899886743718175045309341743499402872575072566984737966405892166812663642676708324792293762761451798822976448538067308872077709474091829288683719777355092227370011124121328070631296951080469321129048075238005999790552369300506188139123965016121364663880873102477906136741625517501989526275447979347482469094609753565609332042710319768174411294869596301522262691252570813420624156840055262347378041290593149003578748271807760752718680276991148389216796659628749447384237208081494400067454761851248410807437070681386548079710714740188129198616923566040887619890085821742603462313209071700146913059824668641482974769357666608777443530122336513824811379971474289152970980930873297204291983381838589539583684160809327440481449996631106458535904142684915939197199040829222448423198991687303325792298921345067167593164832245466819779786157484765117641566933542639630074418442859978062612588101258230853335393884759035111953921418122708167519586250008541360129812246260959270961585622977039137656393894833956259690451593540184578096234244003212160914379095429329274605842438179435080437308128893048767784101290320650636612637314141336521282756017085794936035953163964037148901533761895550346766518952378338107102983940005295806868504983573906351836845778684308982204173108807567071759954834942535230810092771391986859975562281964232750769565876903294931696215848985680484239557468913256276565449058450268807700561586278625185939051240345795264066628182193144080488280060472644627391625821471105981345434026091555282598514798845474804901312154125933227164967651883071300864782080490446120984843379155794072925063123672979218695107669466686226580151005184234268535386217159789261148120706760217598028888234952274584914271176479162152866519816398578024732030025147634754511898330362077564129370168204682130605843931588303364558273298210385910450778592310790074268451152812045381490852354805078579942303126838222153439048224068750400312795238752826786107771775937722710498251432780016975499926021435608144150770464356785263128380685110006054176706403064755877903930212521792340896566683769097626210603719140951150766306099106351186095854032005546044907788559289784566891531447019590748315562335057760793429442528014448504076509177322053254280342925068196899363143484004477099458416678120062148360579220078122368770769812266126939414081735111492148264362954160462202227284357279962218967259333782949243254309156379588276530334581621636210412871489185215373273672952648286426685857294314022832799275471619131443180315769552079831764194537888462340495785753023926642298675163212273652849659576869910839677767323193628731695742253238019684096432111547396733915929561662589022578145223213244944467108758428263078171277292215891725902199197662991117079049855186867653151587288820767147332906705680682980845335830843493546930774142007847144197557741280618139517410072571907920198707053226316311546021534135740436972687353243485427277153136995822613514347685830294239030527446474376282907866529832758714569529330210555714713466849973239414575563535517825431095569859205896076581019125951096004710988651582462624217418336536192362103099416790482628687082049973777197931771393605635179597448003042409076451107681703052820509433011849519941789320058084297168461781792130164341980782156858208575625786936354321061621125762341278412080265525261304575475552976515350649405702056593696064755167762689541033099135384877170635157733850791833786776331871041121837781611821940628580519968356387730451686192173874546841433258261864985076109408677541475556384450478759718297500438067091156472684148248556068402937437250928101427232781214727812199830447505004179696846994595781859952105066551181263991016637344670555235279610624581701265640290958268423177709584202632781970256184762052385850150343253549614364801462787881164255987817334895105752582349977865527330597478732266129867966844281745256329962801196426566884070912392708100280597131403259235691708539840711561115911245715758802455733115961846264051863890285799512584529688317534231987935069032737045838736060129885761826009332459547481078964046372739988520317257907540171806403492222186895166126643740705384154008233513162275399462225647861303487278102518955701658964035970472312545749283943856721756626851929739664535598470938907540224203245379791738835149774413113454313759975489151545681596101264899080621322438963526108853713395742287412331610953606436246812664017906139203435770311921972647839116272878209361591878779999250935274641025868847266639717500376411573931007362285344589206027649751911456064986778839524639599708336810856966162203972753392810137931430579107488883785757098591992745762653615377922527279034283570356395535386279883006880530465029528229657751261425147001666713589711386466944645064421066016004032007823676458122371679909024817693394811132461874451402873455824990440477806984636878383815042621182809112789570576886111180396932309225138069015873782134270110481762747935000147447327438816714963977483233218125617334242078663624826715855944866308515687470222972355430525506201374356249645924302945973576752172134181582585561219804257172073939661279713889853711483837718546546483837106044060729073467539583978876704005364870596010027001748627154306723894378557326044506216989428823707957131800082008326933194242771351795565280837842032878764627276673434529108273339289001235183197256247551991683189564899051136453948846618087022810709013148877325949334672961621579346460202339490237632217291440595383147308327476677182675391227453652578187970247470446621934965896796127416838078762925446692655764868560888061661901738751853077092692209921822727976616637940661687552356235545221616549134881825918285192949246618286506219345105041638715337140082023742581769177444831881068443919757717184625758975041333089199457176571750738893370725697588694405906734501642577764175502060272821094246855735682750253927773413433426955583124364224216924278407971905522327784377734767302682984121498579548575797557662559783678481531977895528754444302669867830250682706585563320045565615813588095706668661305375783938986315662995395173955124793074465285086855629881862293328308769377118684954540097235446596016107978820893153106877575036199860046544082302811935871513794794971032858820382020238390502898327996311454709007564396908515156725211698179069134270155265308214915464666607052344095378076938363953910958966847702868226478666093326003635172617349610772746146181106595050364879178188467567836823782476542307548082805995865870780243750330837480917081221977318798856427338833405932844458595396563195074112889637654665805004497303841175870793307297613708581431925617296086468948283245619443741531503616933694443962090720915131484894090066106930128356664243145112641134625580870261017054617315887393138110064638157529215472094111619458681145983298736875105456591466924670004721850132885872225518444499260380769566421902319514095427716309110647011979234325686341440455621085884899530440603298950378714269546824095562215204041477035021627325088124673468232389072873914184705400806684609006925276906680943762788650851289595347271220314089738994515858156440989681055487901744660945979332914315063374327912594792279632739646400376802276374221884926833584301128650146649942243944595387646465640799883758099679921325800259932943174499529610107219714455392860167983043497116038712638803863101079141939375254000509825944093852981697044209574695435145102445346125112916330077850492835898197251860410615677007105448675126355812087894774751822101791581644162910700267024922304479253805626845953250491721656015558894111425969754863004169151622429417527182769590299036641725554324675849263254953735950276254368688156784358579339582037638987600096489772560342333798522046953504392070514030314961707508985427352323736494681484986700465941432505026160690995282617042358911280153977155932905776372309352234582435969395627054380182330142045885653756609940796643258564052376035870739984139591678289964063360726438969184235293271479539534331168229504610445961339202696717798980450835785043129317242984978492193879891060643205893209274053161772000994231156310874414329290120930179741041259511931527504615425711358736183529145096311626766558466023100118893191522353438445289687295052604364548181467750328222529130466987958621572865131141178430467399700590332681520354012495739346872004357945062976258407826203809528829901465359995938981513785556403358098679120530543123523271494331009255767518954111277783412387179526274629116419110018413055531261972993048319650404330911116392139527195632329885891141061485110114447994773177071583325815767198033581178580292092386545065706758873750813184377772342111696547846949140380707070264805302141617362995232306571725618478961367358645317280856194810269269732830751411351829612848256651102250794738091567134572308827547124414893755982989229994586816979391838279128564255499014235614461851048245016898211187703576124298256148554120967799931713123645426236817212525763335214321449499637814513935457459919819268621529999664141196492799679408851197064721583695947605986274687054885248008054408095899424052544332068260538667044514562346644162814725017498218361546049006844770042018670284661059821610165264655853568787701998307458542548033885821507410147491104493104039516424537421157838658259685173670496582547873280200518242843610269035371939019366704981553785680144545291394956726634344552768003390443187704904793725568485527129558381064197899421725287126539948917430999726900742226608630412353327135689587073500141817176083022762191470231815029334383770386333425660473930294548430905010206934588384969044104014452350022749149834756873950659481448067970253824687971520329190089897101215735331686983664810607149858292849146378542635680743192379220142915640746903013209107540194300496089147268808192533650579784409644414767159654014580177302600590689368372464980768929388955096380914966920851963627390290158936798002530151153795148714273271004582221672976997974834759751430223901187144502992654768750363922910150623874962293698561368736490954409720180661131082217954960562126087083259581030312658723597199089790614306358390800025085322462024260892604311449826507186588734098528143006561568085060999172807416274666406881663962809640161428140099737855881499815810440066070020805874900614762029207192471187140829620207793335657570467111965502603517108905627733745208479517807322843531638266811287365543630785706867396835665177759770754397904480780564901298705975056928180296052506961079732832944967995534316891999429890151697632930676065932288887267067629223930918478850228587172757132011126515675384430563483283118536669754157191034269061723497376153345330788349302343608254788910294252536160718569812578295618869440585032680790960694789925424537071307178805220913788702373977518735224759014571313292406388941905912960349822307925841774693392391571823532222191722707674229023225793118835256578816812535419215084331119553925116210578270492851076795837759452571011015030670865035642792072021054003454716920404820590322156611953038082133231349326034776745337845214136742116831386148704697387957579481401940478140254602069492298064372363558365193839683337540592083630621512164892136999479563646705034785300834055819988495328286771600140900913959612974407556508434520287451570073017321378883099188392457652877108799964696207090111653173881848076584802485628591999052277253774045072501356088638074516819778699467726837353333784060187170884282545054408729799109384208350533374262844478113029530064527982840132685199262398790499065979334799569754309147188672479515645889844330487930350028525950411937075438122365278943100081878503152464735044931507183622554399417931847054986618192211011890831452700261217517896605790238591245545632784547437606650133377568501529101006431066662704255929084000243490445020027678906100383081219728128627828329375457966881991766962655028051454656192185951367482302349600701630616615128455471797788208311671677265191193672209289879613649585197905443208562286534514717325690694211127737018139169975287716966254054225337192519854128854995215745021850225861891868650964190939019963703826693699558498578913645025027935861354058213216165824197418078677561760033939154517737913402373812565591518310486928766196455756471003890801874568026916759891569544112900394977242925927428080758970343928796041497082580950168459217110016046682284415493232481949138979721597488631811767282004907007780037566832165908430813345476493471201574310879611010230707430327228672273650006818555072178222895449474239570033352656241246948624128122314089631219158078473206934328683939665993873389850078670471052883295399331413066373692737819606792161844110179953544392253173181605174701996024043922918104255691975090692351244794875560974719335193933571128593117914386506253623910451579733206583820350338314375951796917271195410071907999481924524228880211040591677208731951510656531337472552506215939443744640786903421550813016540554174915470205170613597150984458137719264607697435207531045099598807865465212501620611532553858485248555874616828985848509790468330734557333836005522302852293977646866453948184829991882365725063542752490395765385597587604581190966300096513146706101063591199128939483260962220396037416324543149240111541058379554115564417587660459456546677667579547328904085088230234473504930127252168146698344108040331315545614503694972880965965915180228349930170421758287893862322966243772372507369851293479139295357833972553018471126568780414601327780537475468053800756275248033987068064083111885362245378024611091063383515339867311751810513195193695430136864645832881689488509449326581991200041765154650251552203989802533269528716552490720042614025027546195822471625045907348538336980735899168886642429221789583450697609872725194805804314399303753162346214979356715950473417460144403928185524048789999102869145760452860493454724119298783839547701599974313443896869044271010657536608822761747393724305602736076664253456840260848690814516352696415765037915977658934841631913272191115182995631697237315049138334107371308536507051275465996691968113978325286172950807682497395833366075707324143903415283839362597931751069685497725125351571830036220768780155382283338999931933874900504893855767422280081313329904387928364185186642309351066241175675548751774008418280071300000070451224204175738388541122968685446427910561117566565706825579279396000372077656025340414392286757349135208545733616362996401527565816942025555619773934370308027059324531386998206552324373162229626992782903397864149902375674544939213040668244303407325499404273376827889080540095539661945915847932658126604245476551245612500942547541755738664569729633712499457236075785131199087464580742341137728147836931054774076080105416878638249627534032361707754825830829265085961348681351582092491564877708392072798586103572042778110380422031340309383830373910537747554182383792869070125154740600128422497570957844358446614496569454838783714169461391493188184291747424179551200606247901353948615629126205732654660567098070699722376523200193592294998360853100660554814002205990275236531781316666983706948332563761798905425589306204739670809704785165498577832904776641359273070886507176580295336678828526400981363675808053416932061761318156259683538281157232988755209170427512427160436941573188183833543015721995642401004818382917530935000409140599677510230137999802376288787927176853829210142537122574210027749857907061753965263506619473479106055214526931939506112542627897254114158254691239264758704812486211019065106435939034151590637383579586601899649711043061469061818368066696255094326298522158514158869325755856651600997070224713310509855348774937023687426957749872935034485751929570382932563751844859574068675699746052793558245416651490044460181965189309939034114466344050190831760599488573821403532286215152875160380701631141572516781694909496817596158376081658327496740765283042055208125047794779730537836686883453020979940625940762084520761019544989419780568841702518155416919752468046823785275513480972734848043710706135134561732977047058527767643956971410955496514883871825483985477326905302070498487032756392089143618710269881986952135371727519381652749625407414491039076547671819049360545499913809752426683048957355034255968622858870296205589550360908955405663431127030312201599441204390797262374895917897143807860561047804995359858084267398114994794942027790475681560757116209578267546316835438975291730264395675583364467668256480591470836174016610513239472715643997096097904833735451050379902810492874063032373329678696714413033344987604667459068750915165534349764600615765362065866373406998221073858232550166358251143358261665886491453874582473230824079743436522102840774737537801549520582749980209827013404253373743887648061983445383267550450987555172468268926540574837248063736230156261637004870127348065212244222508203365669027206033259324670077062426166006998119187336159870747885407249064322146072418233478954909184733230335633808581296266070431392655865107894181849145971576589219371568234126957824721531459320115200067154528368309606651288819870712587827745832772857836294720906223508882730738781222098865293752460706290111170409003184941516428703058873198968149997279807948196640042634263520319550000530096598720094722309724343111752626546786712659394443249087508499215899398917906649274852133043263699732963026240777783394227918419130558570412991060952728294827340687440166799365643647096564578113774580996530781679955085483606007482158624403439062129165417152959201022472385756368926029939830670487884040208420389831036920719434438922576425916728135972019797844815641525572458857294972094547638459170733221916957643555525456658600666518441442863872790213877467092011027712953598957522968495918902408835158299124829512041992081619773514525609830998981192884351719883891951259635680359682921142405301496072723534170437759978843227744984520707540727494657534499667069559770677864926424445668853211534559951880711159072783711224112320736507822940766473631184257503473172831926842798760362787455066965623463086080552545565805785590713270523250762736114153897777099633683554607686691985836077123374188893635552154564936000419398394917609693125627256054474550819335147531695667768122816328777097457902426643821934991296422269751216449703825462999808704696253037799480821104401454306320691278678387230100876786124866334675304997159244989499553361328560908805848808419903340063315999558932550236014463168381312785656550699626865356145632760760314026439297738151274597900085253202269379992115299577286284135632282666792530006417814942308529673972915125477682583702575384341779553494150286098455591122408343104402971502018970175005910196106191444725243996292366424391342815138544654026555674426973033544677440088695181221905545183297939938368493070702046026051807572746966643512571348216335613288353864023649177830775173213280458667227186254502647752760668381234037114621814020206737342138457039508053121453637173797043272110740773062319255537504519164710625270038901527964540250816546408400410349901023110345535795457526406162218219898882130303417849902979181741601276329403045097341657554696247313514259669596939522746144477573839064450615871094251899022464950017269278412650378656601040596055070552637616013766668179923890106497350278007274280240669524539873517261521885515645654272153773808391016263186394390552406532517123953452839358162214218322371231298595833765887279416546417686946059555375328200163566078605262523802033582936722580721493828070090811070558468942203426131685711654448598295696378155421991555251407214070316410813409632729261108146165183187457186336769292947319430620190558131450379692760049154163149747391489569551059384037855581193246011084843781073217539335285470280075273173794794143576872132496983699206955720862356776041075773105566525074715476905541682835071549235964425826788818194559293959782878316482172503691030825264360885441507684886758546064363149882592912117028235368916730869137059202464402081037200506991450802686078688424815877338413611070204876854855890633360967595031000028377761538005919089469741628583141865322951209923260061126273373732830675877804467027230170384527706151862259374157135260532919097493425176525940396051350809815331656785296945469391509450282472700253556395519852078851091282606561956042943156186701664675826040242175733145231074927001922525408544340664026770768841187382520099480199715092410681174092242492160568498565694089449740874098721621484567199184588405510344559899092781928841749652437473085728355046867974230627659989593870208970328458086938871468754094861635656165801294908770900963684601097658568465823804804057346761536551060849397189241784586299106694662986637104514284737568271035187927666109666461919346422124996065627737169563013610430813261549360878579141428994590294326573336947483609266970087057067307181192585064262845619585827640030943738732689241213404232554403813549844687306429063234216123607105086894509140035016141846321666099602469347060109952211905263780115234307001458781581386035560661986006399701701761735459691666627712105865677945500699902709862652869051145117432195754249514952361503699696866837517667693369440454877994792523493471002965919781964999482277844620465640618776793036890101029343636317665085962108292749034552324256196463836971560615693266645484178318678619087683827803949367257239010637325234482958173257685866159451599194541406730599207578368135464393964227238685698449919325482507464923368021084971875861681038605789534519675045601513412666293085397837372917898122792811361018640066436789537043511664220877286571097356709366421382981707649124714726613233570190347302604516932563318850074925148964774521582301587946447106611547995373797040303086217989489194405091337831833285215661761123240480718481850529993443415031148263736751412154533358080346587653131866268729310014375996002326858030900794075561705835050802030959158825293631381710537637707630651287297401780515763224837519705250409705145786868729513623358620883055516175669733012716354185673348977427184521847668943196100717874503601766607001658733658087846302906021827582103134363657850276029755679049795795655169519347901252432438842281949579530379989362348319619143425407618132840281568538601456514000566793216510079056886211005198017527400547390673828345687644159952841103213082226826726175439911174278229314750793531009040060624821707166243953822256037498032259298525802710156680651725152372945105599331960125921588878052281209979476052202551630309551344461921500891105196974377136428634694230700600414596243970879540284775441935312070248118246654808647681558914325025464838088196909975798942045245399768145740863601383439749521138113774772509109465708928798400300476901180805820352653498774715095432255307739415636557174469853774074660730818712942251705504415576439902883522253652886001868796971996871540528268830734956247666500472546450939578360934291247263495190658189859701050186848857632411679636197668199444875851228729349475805882262812042243431778700747860076100027676361227201756333332120912760741185957755434718180123237209054879741697631882826511432601711953459979852996989556766467742967443957548745793241269965269273274109823629459498119722454181261180007077326577147184922611975355613572000582060458992979344444087248872806061152927641257746093544475326278150766682089161555729959782081740742289332042577741154051600471620335754449620707725581710681776888462298342226775796485313223769341631333687545092662452757289153982461859608118348400918417348988760873614416480277368603366157807603001669740648468722336809225925200116403190933315418455154508739641231680023780421957096555122240988610817894581717314452731525283115322833354186624030104027394949960278566709438120358355307852653344409712327373048777038972378015013198960884379153033517199787873692284990595226296322465205580955955423518807370033262826932419663156227069550990534731767143009914453724581696013716913253208539903818406215210644285200756746457836732662583128103340028174796571654632526314730362068122220987886934825785237957744649916368974260247251395734710035583089077691577209626065648783422545067128656447538534803148022781673951907756513144748091471899258911324142309787658760419284124620583280524012621592312062884537572043464912202065547248248414969838044519804438494077817125359974966421567929590915350488484738481888961619141182688510319777055508334639269600896124201039425153451241929615967574547420054258154687103522572543840382994264214425643674802198479753763599200114960054994434888193479589265130883949396560961305937443321193609909571843983022101418146015174519851987784245222422381713322071116518656939698051755507882961127709596156981792595427566946333666523727376939328219601518413439647965768960498913209768843974543518707976760625553275181922276037395395227852121231609993850794778455674908542648548320279030280681812847215377391432186080993601295846683309692589161768552824577277935997870835704840344730260637520035185194639495052304011636368977252265869921144369747698201689981063383026302006816364227036184976139827264717048817130544752781688690387207707803162410801193824739636873343539450038154617382587390962805406054121718615101343192157516558651107344707185032419500554496933110156397356751291114855287160031931464885532308882181490939748971028417054271906295869049597909833945678056544659943140740804108535217068579577948729693712947871835147267705894587610535387314114062712145550530313898943926296565378823967345608724372171870706696000606930969611277276010654639138897491432506597161762263339168234236225638454128915165687025992334162599108885435163935460798826467532237152079831523444457916698884100087475561781463053485229517302949622283349200013444668593106742854639262258162413403399443210217488911086410081379015273749708841762922267015803632947027113983193215785113416936515088403115952159415486162904675511832842722202995984390560708932902089688506147440703474814277867917877751644198469950301329160052202347340060062039404176952757231934527137466832620533717334966757839778592331709281450484306787836553883805058915537131312870707814085242487288937922792094243848517606838783306195701932034290678047375022575442217212578144866189076472714867792194934067437869941613312993809642460990091472322643250623286633095741493399985507328247211995463401787778430632702458019072707494350370986825599686990164276269265429124291325787527677612189886693314765272130713950906178254682393393422916828802123696225944829224529132611122967370306753666561417900603870993925984549421079055609007197068323871927205242119658145887276381353904082253122469384285781449026158049780834649444408625712420213210087374380090440161068174148839895714420339724452941070125307287245670832900391862239995111579481417677263152545831929990044297638419037312809487147151355431563731740231412845436124579319665248747953684109831874582566722399398624315159636081690420615807744599253272820427014738988628296231758428729420235514742614731210223296883099604497313078562817818007182991942255621462192289621426445918214567038911075344485562485162582035488635994956875690052830239029802235912839031763749672418050301522412675475472393867517529105059767893698041210548908373349640147944874092226896550581266161685843551372613024176942436501171551680084696528206802825451022223842434240601309332232829689645687660504024853524429471682080570509643085135759190534561864848124005991785964370932874559769277051434678658230940679504240082925315663332612184583037799401369096993357782766676929211733421546113739707674311413899551313021336077835787826595208044215339842654588144009420824551098654628742953783737629421155696777523665275259840472223841316924059177396418435338229198167623033462503360561616880000153805025326060727145492917522357881777175648607855052549158809778150479051715976319646379026478722842031230547951481018071764084369789597010123329667590605951730139815153145888304286071857796401064072558367950198447072037075026475794251202977457782752924895539162030639501837585394860605496630099070952529187512333616351208277204507573782039209984153703230453221733880402434126950481560863684458306273321638373068166611894040595826611933511840579546161822161634673926132168663970335568002423182778997705041530754189219938888341405705863914130867432078111098885835193292738068464193024044427769669647644831407248005481669787196520143810783797369098560764946017060874950897555887341468970196030504666401902583930075618173824082462859557370274463959042157018950845322553270399587021046144510841246808170105026632916875796486635773638991659161015251610942442680356099413230777445393438664536837086545258922492138409045659548314251703801800497163247209244667072652017872080514319836901266504971503493761204096224324685854753223846508566919093330263882110318365338547805631421210960114090162823487157735147260694541981130704602297754564884372532803942100578029576071090829786897640570589393165203093207507971734271454844160398903281993985083874900645522379710072693834977995143485996947556046433893724340480811055444535962185456052405366178306711230464290468018293206189743971179449224359059403914268907023027843826181850353609102372752390414754683381059416565651255412177569969491880700304086572570727429794941002775228830283916970719218298236794627050915063696958557155777512965605535230697046378235015051997040303009913522570749745950379312146724105253838809484950810799635437251375315565945466105720419789540256269971860822089067481521873877709256408979792645155687544480896497915021428514355864722990159762593696240519654989691581070099427805377207480918295034845216250869166525367123800543708383458253291843680694582552293556050134906280888881652527685819672227483508331912234920436128301163291681215531478696046501379477021394310473845662968291146418545457887542676234103178263412382317392787881543270448977627580370177717612753791853307149015171621951414126198223557332959076869465137493504496869149427594134444278728740818524000538988688573482245210303871578401901535196338998505912076257221688984676563692434798187711505687524380490719952870115935783122986953078958006867755900113503193675984974599713676692718695091370408318205085338691350842702681955126928669311142349313837025563052843929030199074871106588122426651188083275635748463366087896215946822118429405932604617140071683807587530138793251376479620594672070542499538102734161002724833756523400008596722919748226259127836174396081501624159699771953665800287732164935383847705196408056984624167641836957811915985288742202171065913097750446912916146936250574839455667300803508084231265965450469951648695003767592168600187506435727065166467905770918396208115345603160091415633951312382889331239222204035786424878623361738261223230609358167513816168063278636609353583874780743962972528564979818782229754226434881474108789870121884848127821381784322105619852462011839988529208984205183017600818323284371121919904578983440219082623799234810030924415327278360944247717124591628283796043732268625343154351650658926828079444891005617650693863558745273341897339214351482861719576404785691469322302657109049820096598881045089363112146920250310166016418640941480242654897393217772610818247016214581148305988028696058445641017025829989425204946240676186547349046844361734004987189630240923813838397816022489134527504139246761173809109681541136714392076303881137865986946630907970615511229605711262621099681346892285146324900959818348723171352803449277145363541260509153759801507145183557544705508595178982090374519405639694429538266321115008927026203193520819370229633265180549842545242325587215406294432751715946156738038222652822180087503424270953829929748443438988729790937377210355108789349265940613637209616871275372944403522706064999006361168909287898027179101428714330895443904829796143859415052478003654992109635687492609108341657261691883364859805700690346090374834960576144238155028927595372224319076314168256174077156557574058602906607752979119139128453669606956088924391639072284242497304426416769754229605387846508341243170924439158313523066381707989150268980428721190624461794793180067380128503718076445072333935527209759173200936294140209478288257342260045825607279572356993635313331271762106432185663901542027377450351738021735271990843530529870128902696086184915666179392951066458722019478127927355730475500834471630771136817755571649979842121842861310421789825185762905882448381217977886974851487805342720963432088046789794760269287205017264940332525591946005737538593149995159411573557112780155408326413941639473340100775610397802513325796139653688240790892797881016156398765807316764472217446447685572091869606758410648809897403823524336122721333156131226512217931090208895358877289652273231741301579532829882663797988830296425087014541571161565827123678268426143710976138094319744900959306121531124650813121982370903025437561119976748999450028251189663444577452722552517507798371699815392730403389631396937497149676789145035143282010464544783266314197234570741077703855652642018421233540860135038044149426947846949229058882536070434667875067532840456706722075992704512235352045419641349953043218391540097461812137962407978626191411310961853508912884110194973968762638452155950712299308594338937274655478173527606294402991698810961311241344920383674008570572314938870818889983675255542069854725354745406887872868345729396935616057609599459779406905454876983814232880363470003808330845212294597110778705873448402248877960322402038611494577122397723358509343133023831241031113282597245142577973812444382231892964062589106416682360071331937638780196593231060842434650995308022574378472692082436507269953113258099947637572376752713423352137312009719245787197012640990641843282651340065350590263265012262515188452546533279735115359231211638194947857766730680022947921705159272917340826265412624649620284208316901254707035213432683762377968791397675348600876158136630360921947938633369044058455997843982822641863151067083768314871433861457281025611770859550069833875561196159582332502805878798627232056604086619255031804428327158660329171111526796813764184087884679954305518819617889791752768164264401688593460247920963362172783261197798065386684827367950574439538961450511448269944378161750206964190218683050067718414940085256913092491784342155635245533226229595596949699370800332634942149723717110815953731121181232815598257606021591114271958849981995274595985385821279500347847885763726247672645364179698091596341521044711584668550010980760374051010693695768588105041143037910285360714512752505917608137364073036051941638998528508426659831371333223741107659886680013290934923313475077160923248265051698952917537931000659037746640605562596680386330524232392217293025669451995376714986702808221729511260882669300513579301661529326231508237515387570554232672474364094800777776486218080523263544871887736383593388487516270541227782873709813469799308059809666909240439058512603174788943951631429883912110150431633199021356088335097765277622523975812111776081954809452776790352266074328629969807264775775802613860146983835066258084704297069696138557690121708979017208878775366499105826936266836103846773010311932703586801717948482757516562683729110514502265330031548903258816401972719007658783292725464874049272176245735330027355514144439069149406388075486387619781966376349351870333357217425568936227856816045936513131983972489073296339834651729805427386944211279141685143436666205311758180255549150025098892464770133262170988438422534533541643361419764315354733341863045529378975978358990421329374346584167185903064677033896747251282454745628403516325748229451155801520809481673734092595993512862837381890616097780093113405862590276652543434191727770358551685746384310374300282997400278599991145207196511924657504489530971978137636964780898675013714370881299827863979720972813854585342572618990271622626103270362770171573806951115356130572804466802254986510415044836419343257538145134874657663438223665959767320379791129618991482797132735937312481711663282181191339335446150616138027457061125495007838130583017019853751119241313055210085236862318096606784657841076563874633539750564186901486498440384094035516772901945176274042036609485021365016246880213355044020124156984562517726908600066623735328211744429755418633587897443519796043201286123154181757542909772045019330299176559552615264531093051668598714431835753710094934509605374970004474374966325714591350788355277825892207836325037799076173261883771451529555014411488079206729085133940461247717191798697808311015101404149811473071578608164066702483113626807675703936443697586472817211520622448346192183572430643805751674146654763495893450402364486028237101682444416032684943144138378937761811164150257412610408863649627437190832617646746557934100584008655415188220377938632442595684312370805927977399806050547906341161546795962053521833158878747022361079177530762702228974525303657060338779999694130655786690140101812460320380220230790655082541798313094282362715385792996902055775897871344511064466086246107023280314487452087675186018272386208096587632747714849971408737404777361219009833010689387243679106026245700592330763063607569292566775411614505982249160984555488473724317350436709710182488328427057167700225329975243498498820513207512579927859203843616572264431590832708723899289208228666837287433644363356242073592399924320966440659972993581355760338434091707403745098668056305192526280377999346180270263393058523865375265950367034762172960842193404392787013383698730803806433792612157635209961330634693467442759984685081382578429321656531936636077569877725458422568454695476559141825942415670264249363582160848380734262437489784403218284829438150427663444283526598155991705356954880819328273139025812581751459472445221390505921306669539706050166817083275755223464040535854336037216348995095899584505798939710095560774806290522099282973209248413880968090597206789367107997865424073645106636791598137046132625321897080855039071163022589537028121486963190324989648781519826558450423729900138052133658027582057236454421747278721094741757795567893421773527849506466510534132359352370166923046687020426558971617079747466093077248313972256596329897767542349077776056865547087020732849740548942115712917966408848598297371507446448130455584086576052798953847622850030150774132986620962145290856765318023007221380925080903041565620967134693990382762247905611518185991809887687268167724803898698537632277214703875503705684730480235215211673237025807962391083863599424901675275690542862551726613253988308793213378133157689720678836140672867163880179445693197408673198845824525898177334141810758269996752288424670654789336500391954457873802039048616546317796113522473467175201415537779289348483745809060135470246307532102017898960396778802048082074079843190143660962058402711150732849907695063753291256941434185199168224295946976262718505481129298260220500536346651323437082105146995747050057283527295366636596917239102472057277378573678278658340771244836978628294478877480109365733787152606234759577666075717195978023992362245100621488514393860838230013056727123811611137239100980143116008369958951822674663085013017095338385097430024617328197317075340166128119822986956385987413183911415138090320749146973303285744336654132721001597241528885861026510228298769876020445277734066830357798859331494034612925888499364903354887546251989589535863192428557082341344712503649964929217596382946839966684937688678300137109974543746366536946234130684233941047875848087066616487771294451689896427100401221914387033089630897357614656415071007158074708376791116831539727848198727210918345862606062906580946227810319606341234242362830265287374290910201806943731219697981523049432411190911292923125032555556895744752945125668168934200218809562697482604152707093489724991870308711421851952042924848288495410198206417902905279949036411872435500686112436180999161476950006278065342259442441374858835054072792925761073893677449046766837017255077111839731412139811235966921611262492811292969266091519197944137930994051623447533301916131870964697195787972476347632783192577139573168678650573772577782339205348387503874253141889854221160489368514285463916810400692450206612598418315117787970129100606302835488120690918883975198689148552560802944349019183351251889086019623757568604966199531260836550319059192542564560477191477074934174057262629996082178569874925221313290798789994766391855710162944239546134473776056942870702089718012822457194760679266897144688946873047546918813856666237483789956877738557367063046757576927142907798981970159192403860396134306959410430978069932993279530549419230428135032151997574757087773828496216737908650214772541865475213735169014634356862131319980801742023668621276026090419640394671679964071792163239573345964615252148965803702144162002662221356739156240752655436226162294920629563846603635665363584774207210002421730667592022779108627764942070334145617188410521495271530894178214710527808867468469095283352200406783684696983652131633533897124665743192683456100492625155519271363238122020235082378564473914247055199332075519927949977165829833945077033370983047042987209413584637422940260468204295715813765528720344919539337457522754139653848023900665710326702680747804010685141377902877500387042819992520312722791120104284154114957580987163645194098981255904932746647701518224282693677003651970140611689770232985140154541493860996863647962971889904997733730939328983246175061942197613720322426438149610114305485634773715516251085472600555547186963531883831309200679018605621672820069918297282450542647270731552657579080615772577639619889229858880865876053857945185817913374949554927031698874554524070817409854777558875903189710796406923162087197465912901248696379693351998674261522904140853207646477359239052964218384996874151536957702433920097918111122110840361534348961197246651924769486239413974891509459011197444222727835875057689894191399234514429431244443695503414295487183369321936350365757301084684087006058355808409971648727990567197606363165530821036217866860611637428711809531034857825865228377398017024651298149812323957868478856258565807471141034153689089375352599459257195700868649918282334449877003487928484080835837431128402111842728282039379710194941555862956697496972781379512106262054140050650464006988013383398931052423428802513219436298214156425814807658688916727582337656313691519714833190971591531358697282944703634661959567462388145187084582489426152721482183004201332901395273366113837433485609538732031721650215045967228957719231303699653639351992511002067778383840990846075193791471319440550761886443249258191682847209742741753533878380146853467594514452289715528016020467260384816261637319739312613853086382417098569610835758619676574251947733173102664782797464191852079083116656262463912258588036913989236932713381086160762617365024043135397023992958921076751902244132899485071750598280929173202689634343375248895578349329502359728777169478188606255565610042726217005696413057127682954588991186378538473414981529234694325548955747705443261261060603638284499721071696422090910350166246947731298539129479493681294371261812082823949115772761000595098482265726943416367423055447936185091373953466291448119320613009513290512286408200673180598885910383014629010135170336644359223254710749775040603238099355740267184325311223688142109370359234432276121491511053363908475344908852900263913194435260433907463133636690505143058185800373017690441434671577608636259087874229287392740982482766718854373236235155336367356721023996805786030646463903740998932469646943293636611518560767495242409495616301199341222504309719547559985775429040967003865413850595596627933677283378290206832362004265497417864822155465637783595540257356556492528703475427594597122954761312267888935173890885408338729585923893259117897689382591275180109158608753461014168214691399645537753964467086444944358829577880193593718003029595596476363049508619266034375795618485144811550790629596966937123811017131304124163733775084529199483380196184172161688280913916913187762511358992968857926453844821625541400238116626932437523614853915298733491914749901416963203741329062035364745973797983760021349680116601448103466169929773492557999016138786351913280906658433155272017032047862646457257040157400252850987003328727645366562157824746649918251793548289951017392705106590361439544344646536115818844045397773180326171943175792070582771086348498480723806059310577834354768755722502826691514414262342526840136853727291796443644760357398594034872985478630650691605287711805092648451896824171558039320970474367950419016945922087237085314000544434976312990498236214593761346389483639409646348964635149325453121983064230711969828336684218937175871808519900579701991989028952791475360777483639462646727985471240809777651213412515849220240055306218684585524320023489176258080448399980341415538252278423892345923916248001907473987689193601801554295314595059436322968361113523882379165727843173616354660732943026735744679865365095380705931802638646519707510573621999848090209374920575542761008805835970033037404734847061596866873929467462404632368533313220566113658596662322692026322491631554331837892749052110623946207464689814930626893366218092887705165916935188150402346566005787733073380705062657098797788507708054981624356834239814781270813132324797322849161634208843239225920966127379698222291733412861749024001281579239207035390197041816915737070094378200267622779347474082311760311239721872962496257910550664782772148682873625041588010180751904906006967328932119059282087148163368786518432071967903071766087786527887928960177269475931870350583957487303443443792342398324536575847603594674203592250724034526800139934912360433067856762764074581657508766540161250380373102493241146657676433766654843173214815517698926930440754911358088867223990129204989388952182161377318241426608183455573691340426074019435190743732769963352050386133886279271439193282909245327274668058024165675154803213956947333929881525914016835925102235116178217720775649091156497236889558872905552733207095743473620206398852924455399870429715887273212847807091231293992528184210210564794829354766686534464914232981180429863425123991195148042610974756890190284871014269595762457553962626034123816888528581362985639874527197750622441355026272473011942302272174501506589706370816022065345784743074141045329965913718405096820811878244753754109052307162823790933592725103199620775583831579754789259678478428085971684843359657368665241121120596348197254280552538364635582787187092901095552318965908395607496675551819501532647890164722520998291808695158082816527805757458240856310259978286308677651985075063279475034479571831653456436702176894658445547324060581809243991720908786769822268520230478193976679878069052591512884798425045367679443551555654414307524726638008847972571714461513620343105418281646364905491622394151793667365583785278802697597828126111017091223177389034859562659801130694851159444041571249037588082083821931974646498863815241342699781285102709642521573387079413739856796236877326199283657745713581671449549627837306951650511421616654151459376613967342117193011126921166369117866321330244555516173154557541389956228595865217453329667706179142884952803796100971355084785281306889058765304757243421263717926594763383270159348170314157567911784985970032320488495598254439323567285804367991046191833191496317420358227343658308470296164394365603217791971316548511284511008846630518605216614474884986477702742423459508056876881298768569260325875022508106953538083793832799357353335808329278995829506650952808234181629740989410802403637945983498681862330090419438231946337117408690751165092691931539189611285671040434571354379343155608780905570533875831027366707455794394528054067899369651932389183051829715395021960613882237439599990876588902559074870946188974098232739107753756524923571303647597793777608517724890506918234251136721354632845452014472308097466312499416811219467807819613923634577928034808457918069197578065226625247478051414218346900189631948148693479245710221995262597985429693476730579825105818669417307034528137709744823651412684248812736257515318488103147285151298443494009035296086251200265418397021655951574890031378823146628488510616510403310806750988430811046449161930080489565144575580525249068552894689143634878219669268058588280510487275064449682441641516802560566136987129377716910888733843065537638038972819910939123125630200357823827938259428265869014512055342756134082624030827471397157031282051983182038311598562365589740295769793638982697735841969943155778131039859681097312780850177032751045064314445578475590547920537025435632777962004623830455211578550532386611918861491236279022566356660017526756208061526778166477189347017400173973403941660603132167834790369682950046722886997788242559036202967935095263868041099489337994493629614145526196736770218214116819965833893569598600977988291036616180266343952502087720100367530175027964806953856846823837280975324197931168415863974244643755656857940061062328865003664247985155147119145977050258404856090711461885204233446802484945476261104463472894964070679687346801068755416078032984171450713436929388427866122647821457296363676592747048795703069622694876648503078143395892786890801236898304997629132960866960142283517660738742660909082906988683035816779593737922201106559895226215568721770863994314045373274563276973710242451781517796472448252932250350241215930049106050158182988979120139311293909972358802241183858545946386286311306679103704173404546619663613938978663706713416411569740956488578604824868755937521119850702534428479170254645115179975183235343363953648859676270475202288745909648365862475114514239482489095690647509960496001416417281380268337684047359593194281654512049095077573750081427632778371679151569798482538798907969054540504058116524911631423372238317399974805833211908374239193220764876036875651893213940085675962338907701796632159094909908107011999242813349715437847722101199928871772370494685937636989692699706127173277445848995886772295427255678101429377439594567301611479107280453651218537519192931274003067239599769949990247256104339367815095332966291228193003583960092664808661409471677163151873325349839775752829129446965077280282008477672048467910497296615925388457444166366447112415091150948299357916304485420021891569613977153578776618968784133384884567091765075841825168712538122986724236835318237294214276093785481409985862878014576236413277804694577007178454345158082606470929694233670492863200421446599609920180495746324785242361813545403992727893979929264525134982345070236328192417253429206388380613363090195313702608129343396134551338066959398395166715945265687088812010175487257775989044221180932084213584997121212075015000454856432694012374360499030808065379255012633282728148713857238849301624517428546088198848302472901911566895954179543662001207104660001419248082122237846300808880964889733568246079677793756561377242980620958674104681349834458158400956756009156954536489542205145427197546551239853850270518934606522907724914116431693754691170757649681593840019961894822944570447996872152369153947862659793567103326587760938659676675887005312676862323341128484100098923104956334681285354022888634184245716502004623334705286391910881159409658540716734019778964573578670226367145446310468673979997253699507632849044264055510087818199748643348350696921355702490928006323261624462207347493398910544860197763643316154706766163327451926536028683100578578813490714179623169854642906671673524128581869332416226686499566836664706524521290757623721828036186492804311621436809351281966828757394301811168435786897948809114257766301923772799364667666570252949536289016448049948300646138946268589905394958567679953171682710507787247390386618085862938598381990662504504116597918989500239096520134634691571689254483273322110539667964502241520663185042910803015102218461767844465100966834950123286783147625663563713330937612862193675966628380937063398400951300798528186063085889739353507651814637317968552443616091255457901509598697150965020564356232701908043285549966702206154763577969193037821466364529528499506950749911413572075112920313595492583486329388212256232663435030166638511580378080136626213475962268995978017415471337984873892107518251466020348224047449227138931189403490968074530763978270502855840378365748026260852284872606469293798630850675524948030416890849004521168549608285986191573849778769599896732655283015126877902265411040106738309313993955901247266282674625882797377910561521292247708041309030452001179500307864664477372055123885887041536449362353642818638199632434964322830712276072354925035587051277783773175117940117140226403010422299340016848719074736837748572736620622446247510430788363953122851950929852742203299573071530976779649372894350240344928440893874150559136622195720518927272696055560632256754208582199295439825245564448318807279574922908197124308031043385624617067829447835626069438879425331190701124854264642827901841460877306644911319648757654764748440147098625446325348330498442367105319310263770782601104793704065121380361267240002174524328527298256269762842376543911812709587896040359478257420535361710367739344203503454660230272772706942582581279892200202481943136905439067580182303157900474425121386867011802105215955363631177228253709116163194083490480794042394990804274063919084958002493819676017017666482288182627896822090517424702675035377912206272585294586185244928614251550024629116205523773225653933818657808951853652147941132620600582533388940403363659515307534593946323328185596132665625499064244822332433655553361830766037410613458057199051821115205014970323607552053019909467228457763977990593364232566400616771815564966732652828926514429991157097045912679463294369192611387975917567649332222168935301718478213110801097300129715052958175788500746551178793304152815313139957020732010737910886435340794383800020302949956317494314003876863431156847133881572823970794742955051785926875592296327827526922136040680462222330547214602083380880954689700081728483293012593685700890692544185532085307469969502592164331568628639256644491029227279886884874974247638268571410368506698459394886621367849557630471862305687298811547108004251901003448212505463634291008945827227147824377910898880906212921395059785523100113915461456435637136388904219070309317148005979654470616827655409253869351345425983240017711102115770804046363954468138966595066957310143903741559205822723717808203088924827054858354915553293755315707665110594727211243199951760130760368829201447568217891617503939703131035686009357747000749785096401504891475566352382894825439565112768145488994809152316855160603834493844037981489094900756483473202758436007123830195106785266281027407372052032637936353225471209015364138021033932941477198500875840230768344010147771995435679446879263810087135364390231095489443757313722401508758864545565688499133381123053533625154688015192037920182682396810639307298218289233274262955182623772433813634023418553956653114105415291716634618604800768308497094872855837591055182259468369425274466464230785068313694958723938790128894622961307632490033852818136664516735621484260672238520354408690409541914150147452021403527044959616709348980872288153936667740733854824023354509850648226394161374222125634156699637795574178559050667917677485536217086432386161818702039837856224921904321319210224922450556659825933850162621198805456000362882479054824258609777903828888931220432519608576851634070600347339254512103121677143813643671160685146096384757894190614683813835105975952867597255705377173019488577465823468720148458745496010210198627070090546091170456245887633403251991850908329013998012283256225931769918556549078374934755938947685712199876545605232807087501074274689025480283653990646191507810779033052104765538494118093533488766220122619105909907100161985378726897191067472742982580562672792118140816826567570400244226335727886443267635608497443651400869577134830293073950878830588746942796448501953720409738637993307147233838950494115573407014423686327121085062633092144085222195961684406541909492572960862296093668585736751017691780396962217342699868969341195210861676336137492467373118283142904907355591732802339528159430345642968092900040760365528397374814508863492794781167196145977669245197310596800882090981269953280662834419460369995227863200903894668209785964137342702130582324703037176889193356208922005662753021272606933821764456297314354527666385262885927238785834533902446304201088632240899502738637147372983596967288293023097437692753405696549189273519887132422286912090722212409270527067178923381096585409564980479356131469409590996329919989375970697560324784532395313599277187268558757232831190392388866489894524090435761682871515303029882597491341263453665593383377925820052978537535903248378543352717805743090028894783686651905266136598103250893822292520331452381102993815630696437295606815491570495130323700575286565750223968255432474012761670166674132740833754234903008655575872578890608562089590456202275884256424049754966698728365604869625966840662185635051318655810943819349908675095546570332670924679099571843256469749771536816258190290537301134702696023617613671343340581074896932802166769216601252352796302875010164674105872399281240139792663617242720068847501181477625238955736222806970501962198919886106046525668145469737819558237211472571824092262017032960002840777776771829455111477788498708313637062017573468046579108724673941777961366691409097584036899090777825945650670389999753412382531894542795058534177741421680058244590132321998359005184301039329587685292091350472076961751885842434929388707281020573970493959594891590743042038262707192964322277321820114718251307588551948948064510243173042846180425249533750890111620514306191852091160648681137561088965916724737672739421701880758178916522696135268927034249753743634752543851044851489854557559370090916072475266954918572084941581396461172799268098411236710851021759039105772864638881170712717689836349795332380944124809403413101197503330124383348814250432316789001389444546037821534284706385765501330081983655278230432833713391338649110316405555953418504166247978609329614481824634373719254508984246898586509627326012806463671643955803331323410125306641420696635277485066122148150484853850125809976396610540420843714903551175455134933187108947657133101148289936044084378283616277753167412878590683799374633705102619075425487243973842544802412930523748054454191958864832032620678763245002103605263792567600389567867367134272055565889511384497881286512497499933516694883621316584657215234416440482103699218499471816139275927001602293627520498050780664437323304058951000896501335082584727052363300991055137050055463513283209029595578267137497665622279652833999896743837376251653803629289431919366796368918458352927359698772242016878722998560586545504152585317537388151030059615159833555132984012853155986021062661690094502807628699772853860060686049702030116908912783557030188071056228855414669345062672114379874821383988422728059096658193487219903592023027291221776963004541347612634800183824284710653664042813495594998000526169946093123426916714625464620560041876442734454054366053069832540283261034067462583734486458491888784890795594083215590781427367966315699983826685070321621784788719107149695292987673920175840845265062548649900656325617656742837559686893608046006806358686346190218973646929244342074286723567873452280430411283412795900573134601328579865876808378083309971646079610988298217737605907051857227507885239761193639900076157545650368511608247699473455202857659482041959593067279823660964011356150236264407088287658749267715869017127946642834875635679279829509737121431331531417091940077830147689092187933521896961113141782358695628001493015357611225438910296174416774794142066288276442932860247780981629778103202604652973100095649615714633806221090847068296667526218306088662486202295333302291110431308108524750107350952009056224137103849416174136049817186235388808900943225640960344189585459777020101353969913586026111082952008954208709564069463180026692790067323420673197945456316175845971767447446471592978136119181477746286151274190317995016664971696007638538586575308414300196341408740942021061656560691799553661478469784320114127966468302662868469242880534942401363139322983770281425200699644176810755401412841915491730041714492196905988181400121067532116360194092798292156206783548577875584427361472043298323709615358986086513138403823896167247397897615953892631416105394545901035975321840605915202111542102781673723696429808440409546744495689858894303485359790974234446272973613754414468274797878104231025449587443684048489152527350980851181196923407162962448466308230382483845451521951214058648580832755614644051617907939319899551509241483564244264115100053083832547138210417164963318043567102069704843686421751467441349970349130249264499049340862616280967146387945231278266694539247160878376092956838571203744079524962214488911203226586597374002388547649250595027072775870664984632728099093608386695094087293477070037277069375972270339386481831223002048119085921995157510773657273745196619309076340670603768155081801146749597206951627854672520098687725365554520191015449155106284275105112636920223655338310067238253810979510133160918184093370867341889464504405404601440074361295728060298206085487963820772559376118561904793361829165082735209198148939950642765320544180783661146420650825742892660217534975059695698683049502750945763391893087036904804449722143961735880000644623235837094038947317724645588006956239755095135289013364925904451343360964037340430208261218227612866755151967694715856431365800357310447361115151897234198483491390033898786533629695487173278643990907417885934386359428830128201591270304769762027700713161441197415753599238670153292047192501476540419369660502599343015920869696238320653870332617138866653611847619491312000308478482041313671220919360406103415206126533283429832293968771383759852984846258612579107067440460937519672681413406484155543873478629155097624391299620070514789323275348831738640355787583596545383115318275681081487704129669927271132194382770196911329626517293405697328088111273961267962257274755232479245016059187916734145236256582436346658493870658541790678259463371131891077664119770723832754717472044013763726305663749657321111317992590377672006355115172466566316678626443128295993063274055394425030210691518527580407268492701718797133625812296521073966294536724131017177689552710287435692439657118695562105758660489761798379437222998113579652014288971875764709074575849153567733587332469179368913424449547109020518647280161363955541247389917607404407594188624906911100342024003240474242064446046139539709221164208388088752541429088694153098177762707414116635547985122287395760175054101068727660018079324887743660663532447386197863078460981699140129477018443060763492324161622532046046196422043144528973696886796628541753378839027092418765829998302026718321431039154534931510752845249398742230921691243931660076772902565484052830489351221374038745546369160680561844621187389898673867583164410402330156174186442499645927744840520710860735431646702972675639969478425182188382118063484934701554787292509765362127368362042905709581598837002160982964251410554033964258010813583129468239575362517929832396270936508395238238796399377512777547522423638227278359976107874843938270413610909998439085285809617239319358062188792979399708147732112283793876279040756977331200137337144817000091065750557220313404334322597000908213007587470953869716546919227673489344943065752539610278026367738383903314148331433230560287882524311914173473376200401546151301346511623375717893306361474113840975226551575230673056179362061004900611284109354569961806573913038431553308377896613752085147167188392804264301498260214480339658365681855651046112099878464662367020243635455602419717920439832018891921308152515205627891618209297093841287132130849304085088905215316772788953031222525530730250744537711485530948050112394928582573589220137130002700325579548296982670005390331112152936874554028523977653991723252119379054795522742054268486024149271500071281515856102413227335505668734402850465159439613928835054374773778549427588083015888280880019874941673508841888212434857243539181617311918149051697200353797965183112838945304940571087427743591371886693592497684869637586629580167245074918517336267784381267871004360392870323158494054758063806376344529393382372952651448611069104765905771185528440259796656033955543851613399644551407633386529136705580720168750216972223635568389506839829974740091248583742771897272284424463728493237474999035987658039434169659816251382219638175339291874447650258864465012718210525445043030945468755409054589592470768526144746246668396313994735966443447873617669383565733097888103445251536408655859711329883791676919317974582429803735203634351123743918740260198613285133641320027079630940738460427543143014823593046665557471184665988334168294201020696664905421069959693567441024999541735446007533951157005798090918098144311783652584135376012294794942091372032511594319025352877160184628873590170829715459191976201407084728124665795833263024346896169624476347745743834541898510220792028072970004315985585680851595592643929136921301383674017819774819312680456389086909321591272921446079882438570844030199100432578367824460637100098131505884381402414501647475683248565912462138635690107829983377158147431432575997351474418539798204993978350191709295891073481085540418396798738822992280293709048735233416026605230272703865589545344590256535164220208203917504026090956277465399183136606047397145242980395331433014855614520752034055333381580633713022118784055462705237510008156229334856270373444979367328044352199816158777088669060272233558258115342802942019878508687598230063317062300493461356708844586122498559457013865510218809717460071834766706899950678233950332747797304665821328625348698824831161473703210404340577514933221086399564238430027309570155409117202190026148502344379229583460843763068819090333191180649727863363400420932896481225294157781089725242060734138856797986744296148952329458740340589425915970779627609711374061425212346174621946705136205120174028780943263718853966971644736811732522394928142265088022662145522542284689520463655387881256837921111954808303697032900536761152607156922943441661619968249327330399423023232487351670200605228380887374853879703838346413794550556261364337929014639187669220316479744080153957900414828490167414096130017928357520623477905979502044158520437817143475725342269933258265378511176954857157034981699437300244460149120750565634656928579161954375850711160576485376797916776011727319878680941419211058938226788389886755031685841942462604307962254839453799891341262993133648817024400441876263809535632597654888821808039166545011303181806229078325569051324518293606528993787787846281434877959733289474970856928377415628442049170034198250640666138403349545268518701488940766852296715954388459851849063687897129481344474599034691268635979129371910377430839408082813363014509344344073758636262330401088266472189685005253940801761505522944097881929541356742048501038023660320892035568749245340256829353753982466571223678842336888297143769917898470428635301384291182674585014434236681791913477190808719813575475030710380420914101528297331974244595137712642175763677771592230798383347319604212182645811646635188480940098041135941422612693958110573610084821558853287698443399423915499820758682205448118471769291737341749608750339622786766361214060466830250767822102238193085601211700989997421418751130939045182043965219030741992394185813988403912466167074561800984543278115554232503332613189523463732676692801073742427222304703186348074290962536779748215215957821678160996510358749653704201336222446444383359466367167207783557545946254661280175199547260095366474282301098143280773054835448805040140281683420650731172016774012037279708211395546026155466331612018767467172544536813241021206206010592628442806111286208090919893674079826773281233200827420040774825447844600714163616302658783051736393689873840495935287295016336239428404286133765535809970933769130972932181642300358196470659664697775454515074724195803684820093707974468253845761675018757296721597166148405851335618199109601792147001859887802301350334753990982822741426610819797109621189048478713093974442607221402873649865604687994072759105427680225892636959756761278505248438126012617190733586874589228083446179283783657177589265644611148033035005019337352459433061208782623568149070478698414359603456759559725315044806441302233947197824588656141385801850514444784561937382958915344166525343971686039766749378401179559449930154475948061407754548556857670526266868402610352538778666301394668278449704086710243667772719214407403384879166565604103951140510992939828295048048855506425561900332004120413768724071652022466951943942399500732072836618652917029399718274307848349248763745639809406789568277489545873897117526219411671295673780314706397588368176542691894963577980413407832287596250724055099116260793412734020909541564303920301697826164531884931623682574356441434293316860963142431093074815897447515571892078361621064573598500650196691270932537232151953280169277329841104200177900717759428266354102065335631107613841643499995954847898821996136155784620729498212881798064709181711726712743575498334925305590073411885940200463842235157778656741966711053613382735568593491780024347582619129873857068478243792646688139841771961836210607932613417524676396059834673502748640406667801211835921621710773674153793450154333922232579979271438536874470394213985340898281106359828190200112038348136813818838793211204579700587870257787768798543965036808903597495157933652662223331644854920801716743225265786036977088127977415144154496579875153639447934886901751120314627281797215961309672623864592353171344860437114546904354799622612432692561883105727727346822967132463434355793534387257459181604067784466498162316949131802964438679649103176185356289070372728410409115203446485881160625198663800102221907208956712925341582833741928282643408766518795557541186157582713076619548610992652424040989306538347095504838904730971682332888947827788600654982618174773093468850016400539618648010944575853339000780266152101288144467768949828594895138501827958165566269951073169926373331855943974498228918292960691501660434878825562372123498470191586991196250605663236329821670380197255323144702372595577624831272677601945180040880483455358267398749544822218263413474135047320988863855544622382921991700576974746264439717912968215801089594592028363518553568817973239018530388559607875637770833854448409589317003312114909820732712656571750179983799477923404951495351493551272600316869072797268488333844790655172961334396952672647963668257601338023269309739473956401469113941653369667992261180949935590558927680765051558430163763607318548680324084446980401644073640850239596264753124016987140018246360382314870164064613197843644782275310213561695167558050132228443904480254149385714155441138056518873391415358075985850128715112771784106451970888055068765763191365423416634971474592192049186533024847037971406098501173721136293071776650682103064876118731439841755138707638920434144318298911981993655981688544970024717141461004341610959895212789451817294443044495460528090633924223886099657362002451192143149008287895389283799179780688860057549444997520397304775532001525064821285495993208642039706378626386037412457474423865028538210983603018383936456852222213344657477067238335503369826798440197189688500754034783713054873000986530955922806978401602346589848220715478885895358496472504900070446802407011963649223683361969034257745128620100243912240522796994083275849393961512727209199384088647775734882832623595717594008940652587672424715560475950634609099430316962807999937148252507795825059786041418290702570057838329874322797972813908961213995608917612703294914833722090696925386467232865421474053779870463965733332853328388786221141091508277441527256556772462802055844193715252989262480576564092860490332042361716747753853019271109991641940843983215841585084019492209764311318748519498510558600691499506897884187322889741845103616222312663375988333403573512986003575102660286621813549413351579420972859009530092542606895888838721185291280770713036743714803510615932226497026035079470086284746587425795314541093257782623796758580032199568287881038181416281538879703798925341551339657940500027509210491944907850793104174603390340295109610550252479870215074916308529630960453277935041051397173433233128384508754054213412301648751299838196286433963289884938802677996869998960375894969654640727944498282950080979695952019763656444667335748114977855735901371693837158679484802369794314750447574032353063803379755193758386661962586900037213705744923834811155556906822113263129557420085200782475078441649654049086350052184856675987289590048884083157757865700181313608648711602373297432779008086613442857611063618080639969762111775437758414359894215403149168087751755034707765903795315952228084843276164498807075652760505149712624618251017040119022430697799681416219991014364877203646070745510627825245323831060051494067012250485976008829679456084135450774522497616701691610370333054271774480456164210810412811626179334544463010820740856672535264623598536514340067596166631408471272803485767884640433392218585857378203196486411230468638321316175117911888282673658723743817333156346813051414679727920625044211740953590906501959356268094006871148564957559302602199488649798490676024246999516337845932407328434894880724434597567491066614341350004707037802520684293523919829940597012144244840691750357863478159675257431981648783393432167443502191986248643514332104430316761555501403528670338776361542622083179249577610234351304404834046763642995844591610590692014525048785362766975072239704260573524204365558647455409994379124807835059912855761554681943400460275418687345596421118872116801756395557908205285466577157997767225389171284995521158449122269834449162993581038804039300095065752831294924419559387402488845390856746052107690001961133019935100609436694924766815755538159907179906745124963723064221942067937379296885801552328230877075881624883418082119117597458503387504684486669061762520527723630753380474373894867517122660739506631568536304202531359175504720345437745031774882340981403048228417378249362382683328612667106096118041919444602852488463355809640102820102365413241535855776646480261911547478853188378826310239066435655196126607872508146021768149916849133853552713115186612158643325595396136898891339493644835134324774273474888891482488113736161619965640696647574734298082978508611321225287417171037953583262952821962477713192775445797145390879776965999316155961691603651194442414102723275933814974432358435803353990293316166914599986920971152181436070861316208291912858571481753018262391382457807666716108912767891901626201651482069939022141848293411352320387497800852418963483227562685630977007933040988484500556804861918387955114945862145355381476760405543717188294611147687634107905562706373774258871183891781001701418732968419768563084575171833382509220694132700977596632292214846794913558283457632631382978186105147021700621555235019512465348959474561545628859245404677048822789061201435963367056517903733305296391823239588793191094695698221853377154208981899756755903124205017905250136009122893659010949592629742031289592669025583579755218450045717277218486619714707708205216405820780312422541090386790525689794096338183382418821751066935900912349443065268235789148556620256924302002928948469352439386754736247849201123795012355633321078718401513225712772829258564889299105077079827572025204063077838023700424228965463766281455173075812744503254606956999445035746293787258004306650857133302538667683446168186514487303708598317399368310484419817999236540553425762574475601461533621305094290327877009803761855783609744759165429245389665024345995627425059255763304218377151525795874455613840304046325598878924929406725704044279053895185667344196702839780880698353463487287360700051584872283212518524825998671651662918310062851466866947062244294625560876693588233403936397720255465576390278501572534661401899544971867330640575336747832230107713590592718284727810576172277262680178698929341415489711257649743424511065817481652819360269605525325232052448911948833136581868195333837173060338045557966705810569920448637211210592661680039658397501223123810233968762968767354689299260474444866824748649307463376233387584868379361769894161796894567570648488476659770558307770030584835186481195649530187461568617931051009942625190621121454648348454961468178842322871431784951713003597991229948990387850462806820921015392991478724997083071062456719474900805857734506502691990672374940743171079456210792529024034132839961307767790737496003055746569283033014842024318374328857157440075704232679407879170831852478427033902084978169580602422538668502932342397811992091342559964582362736014701713500539645783584346778531095705025657086707538229366013845205765957317250311564428551178011425841610305816611504413822296470180676529208356214788505682587111226458158800984816417743869514024002908694077563430017214108116992207573526703689018079353112114241453915048549434539747849150443686462539171532647705541790783939672833552940367424341151368911057658563901240136801982131401008182540640801710305226545054798255937309742196877544902385494968820540604448576472660656919186148813507516242559047578950882606740724141317290180514567249909571169473557129472255358062134892924671787507964684305378713513595049592901000926974966104095783661468862886666534979241939607742749592812929873972079064671661947052437166402740799380494922537160397874717629716761103567573976830079789136120580394745282277617948061223527889932607853604375870792479505372514104426419895208497534559081401572237614021484298539835782987247074462835063748481797892048240344984743889842648598807318159477483974109878816562065434438571806318126864204682712769317652297891954718639896423081149800465773727724414595919123082113855381879213349127746457258509526216533237949044093170368897448950657897241193149930569673342012650783750630794714409345542922788592727638611647132018871195194815118127020587290179588534624820818581414549334231990673160344613279936764684465566788993046439425198125817565840259555728082563104179386375753368729689960030802546857239921864632300431836228896628671269220918747131037693709717131299042044276001149003277653154204070016916118742266183050902350056786126033051307656982945696603064789743198384417675019567745239230281688846024236724702038668136428362599871688249527710375690239064084843235119468883298043161363526819838531019600790096051225062192612768254564177314795922889886088339859819227939514806378731823815613544767612152541452336250696902635791333293823828998692243973172086588504901598152481711596538470370064524241054350970721344823248039798634428560608497839605799969426113083981520459220405881016478509945507440146144402551946773350928694289990356605932208827327827288807333877315346748800891832243746823280207054206546542911263848402344341744956244364638915296039201065818033158974368797915817846323622006478764387865098012433595415901211855035408643840091305023764959343954353936258381180615930747054389573614039469181580932597627288504241584384525441142457462716205651906561186187114193495371900134759125407852732345808283058020809761156645391668550342771001313409049684397638108888554203150418283266669108164083147892866845633655875277049857872756569988729183509775628185289906704624923018645882197987428250087874596073499379922419450752506813530305229738095121498915749283003920396061030044055750790641566810754385772519007647674259167409593318497364169621628368813664943799356823025188079523921419930297033094090475249700743928254310143841383830586120655514305508846433363441087367606769120584410805572111426243475500634074072556659413001810156473697375021436950792140883489295159144762845453413167624650908771897801765462297539017104441669304921284639214090710585058774492217911531871528062403813313579876509251579765366526200444031750824465924266822766200753714863167718857478882303919330035933381707199155003156932555110523020895699730770881581610750659735789813869118083507814373351244782966987236296886259700994175491983887182274634617461659003913117554930614237317753913983964834246650289319654280569828456700374840972763498773304434788124227295348165397840711518189564577881867597861606762418976729711722739459955739000429760622845624753991116950546215793491332483236739388610631056118193256194858915335143392387289015961346016692987199011048824412412028983439977174793888377352360610894749392204325377813942225232235564017911536770071240594061383205501207161261020812041336092348578353530008506228488023724055197343639356973098047362362437826885900828547424311926807899466674074343834169490478839094265400031342693805915579189856276868598554786907152635862537133998899394028301546705066374467692159767090838890150549605126843086467682224074509416609053050191615405372036972845217143912745475400003301789817269077834604710029772643096072484471678324115107638771630444412539688924641842308561672453319152753022472959922594551947941538059353054940493188846809489683099402789134279089415286227179554460393551009305474593787163044961628412341584844550960280240575186110895761447175386666411774231839401201262982117395618804903905878054129554953811154521525564225694111056482471086562476934311850698698066267881584528620441545418917620733410894507621642616970938432517531170302551211905402290912016331987162610568934655459762002875544326923955803668243689873519336718908680020584731160762530509599936139103634988943328944741088260682771187163880469718220143661410809661612875766535490236167037330859658898484866647420177352073142029275389875085654146179214175500738240654378984031938041204361897158906561952226027945348690402509190965251369310540887323903453640330688147452788356986956237079616866556487308731738494946735112303540036829350097411758388754206067790756187069333545950756500556261605148850270691059298247135063799444005464202813582408382520888073750811016269778284616955508880923129867584392496403831383242275681221822782196811117945670101182026718103299043568647686409088302743002151529465691541719214463238701732699503037332358875810825013267504213904946527659476104132519926291658304099522048286643323749715815691448857769955447976346479609540475168375990741094787003375829600708001003571512038838157557500361400780989722896655806643303168737002808382149114931678056066491273298215750510293015247347857532759101933622187472501542715507591322943902758334245703264375902238744128907564011852042597126386214368940982811922643219590324419641081737793771610831261013666145984423438816723901860115283097216005015260706185209718176095175638914703429978277734911630269802813047909850451122823446428909834471307629495886497194678572524973450739400639299901623154106700225205342606268180274550462419976812460425745597527912985924075614784767707415086853808504468114285781839336028653444253771015139705650079283695891255666736355263160325251307702614163796523948160868994994576137272633403440022544462948633977110164410016638092222510953997298043367277029073923443299416914617728711278097907835144092389651929391297734337334857779743020913496253090730429678673203626162211953157861466539240166108430599035861174605257548928353949866486476943825181404787756731730940549312324637409785913980582647475265162635851268979271832895147295197705457893129920134773065775723651429444932521352857181646056012658765818476845902147764356283931738757065858056880659847015073097162935597687266382906490970568731836241469581932961010477029090350932546478040910352146423896809338795109671605380498818853475570371919987899249179959501151940617785783512824117980001296974719342138809960218504675169949921125089423842582840376026202941144486379818940712037389826086946230485070059322142924990409789182641080814894619103790054371553023375719344139230717446052226623980796716651092777290718565419229035786878868394903510538583698123795969799846576609904043921592357739083256588846372648586630866852352148392726636936734169390239553222231611287955390470509320939422382103253120745908674174080509670952113847575835871062973877110728544408159906511205103442939595397315750001802745470847188455436393737340105210494287295402072850639984363046290943035831485831139622422912815716827289913984282559720494327835577302539794347384188814812563733785213711200824483593861851480443022128987825608006726338787589663466448945215718351741374002727104997444596579139391417852325244400961903176550763956957759402447904372116145494083237800530083619716596478192221542099196551857053481063803326624027102991741110499032765894624449265308874592774210596843112658888299834984983271362699110880045489382631288637832793821815315556673270325240126345323417059520783485951027461571392345672459958456804107223197569782506851215278615053647375311194091140209593935157775673531640169473477731606277700643957199357892230789013760546334418474076230448693195112930265648595639695860521240366252491905720067381940446960764534626688711132190277790063433796401503850602117609776560321107367156014986623187293370022888209563173305423745290215669553913355272854317499682607363154519626850251823764879357323735765153055812997503810606942942765835790977988571036669233664877135030105648579663638451074950731773302466008375509105440540728380984997820401994344745939897327363508209851518599633290002909459843627153616191907520228902517970659771309263214255990496313712062430412446422908501531310750204142114893710704322433717748739092959442765743728841268063478737948178417019372255462141222203240681297743222927810770347733878368259896084706042297433660284627510728944089583632013624707359180571841434328227332395945521922080125139277840468410975813678550853940586644390164282465001899054423475874207389029182070600891177279779795010969726009080509108585735386894866744610674224908717687464106123523988828127872212857068533090724849632756777394967451801811801714699853898842490615023683184176407708237910944322368350283608830792881346572098804565287796892455771315597154132905506476484774300554064438806390694893465623019551773198662824900745878489992991678433934089182724505928343128497315118769571446106013484664480821419327122746787406711255229468832229483838739542480346711523659303186948943941754090510852347373413819321292926197023640550774831339571263958164639083608878201652720641519196573132974183531325265781403027102206042954288026136026729142316125174779992703359545865581363677689226426388856651728134478158869595076599672753980091861591502256952022423222711277862304649408567363683226690228858195344338498957019583345031131749844336397773562773162077051234673005109369268707125937089062541191980812417966683712007730439738234635706985911290812233108297600887261795251095014803693990564976834653250947908377596305549496416750341076455433235612415056606686226955368543378420805984181616172189262528706764428269214224336901016240773549508421171022439214528856434653939371041341843888502537783358646396001973485197498885721379152126901926902010796526511141660074415151344619104475427545802128027865775406064436735134063784186549280677194004109900023476153523578811588993791088243851116175296462190411807592840850457634927523338423002147532972024253012378165609502517351764799382489559048287638297088114071707348368131932395190608020946914235176745892852067410032251400689139513298158232430345437217219627846077855452488429800620009510474138173437157919882992814756323633363782457999740416584261112354658419874003366274316802666160525043899045048020119231758301173843689810822457338441770862780424723001140900282514855165243038011259588894109819541047939073960672611165070376639961832545197448589646050391953338847055737923999575710651428788729952822829980580918995270062393884847613533603140705561422730701545582077063717747721871289746254078840303767167960753577291915941225332154523703770203217929027358366189500370969261150942600062369532818705197177444307818305212851283097349388979345439210378621210127310849528131733481075004484742382767651179834477035880809475979258537382314497327927867255232810160690847955634668436203502925262596218712284388597885530308432018958150911558300016707611798072094591452985508784328144424936983072447122118514068617860890827587916580095756743531225652591528493275082747623012887972496393470282638828361412246472663349252120439643736753265192790059042394220856410322145945488749128649690553395107453529628017228193005704164826105054607251566633453390690263578198047963921998051730667834240755026255998459886748943153136482402212663843556567376725944098506778872607703478415517815556284163576653656073792631260173306339435493759230738628855544304774267975841718543028588519133413854216331910110744274361680013718808545959644368387546317064781487162066818871359190356266418089660795393646203327997366636745425246853918502104696264951591821560875541343971831970154146224988660332187877912693654123462720905338162421981028780616660344702448639348117720287628828986738611233672264134834915628538005848283945527794016686718681117100337513748036199613914677605087167604703144302743056576956869629470700432191527397539094808192894309888014720950089493531166731261949664423533785436516539689979067582519398642500532745026985442932196586999797213190928541932960653514176068643306106404441614702279627579816470282370366187170116890152010526992651590261584985316212711386976644914289750307762329814391974657053989101488076417239597093221548482164480490369507748193485773982182856523970958285706234920663753893377287637456582310384033368416673368853032925120947115378180219497643632277049550780758208725871782424871717637655423791308535655089750319350034367594739641087885226057975587680985393183496902020684997837183344793940403889123005257255966062111450967060623793335192044902980831087964182652205965223475309020680726247506659362004346365309858916240117406601043809078570914942052814053581008474277178570246268134940803933916838928168698471639574800231318678901846139141786544013095707281504689542368290849840931871409646146354702091298004660497493523894802681196257661643883328005024504321238638036797933578848119025141290464326217559734563018558368264337467674215062840593743588638551342810189795990658765051264757732262193791349561948624443433455174789156864257153751115119027765751381768765818265429873197439521900920450852132801529857678208560674754614021238669245280910359425339770346185900777307375308631003285824875082195739119406145513720136310775301668309203599533506072343606567126679049058913033475972474962310030735239286741177393930240154229935203878066803684892311810606972166893993222025795784332741471064569132996565410150732579262668639109847419822633233531482580266537372538442585304665804436594243887657600176520054017945074910443695274180789409565225092613615864396455676433318746371777002662874400271659373454479938162283898015428952260699515545698164505012861838523943312830204428184976260930872457622302763894013446278667336574859918569618177542818894513918820118710980357592685516201830855754159804142064230802264117911962758549780051527725480859175265694839700062220203000160261667241184443126993637772674589414879331288002361811393704802971369193304675358573508844149932381058443431623002914901636551356723677383854686860239469447551835733775627219347984125263672828385359191824761098987066618866324670604254524379240565011241992202304002999306853388576849642020264110895094302258988373131479808158279604663674519082380500392961487157798066528795114538461171081137898301653737223363449909012338420576091586984777100936821415745418376152646155699150611942798251084467034189066660516299072064639458208684896397263636810456998219699798300621253977724785917293293296046065957936439123849409752764957050113720902176607730653475817019747685280264266508762785042433928186336706212959907778389633254395541166571935090997995196221737373959374449852797480096857148281249411082448428969491042790637360633899543512741392711826829033886743984371508543513650677955105526241613398211361998223021740805154401996839473320290358584147557043396630439472668373645344597385565226212951252044266505878856660696042321937041038413943547916729361384121656666149056881337665188601295507457588998128631448666810442755621035746445861227522768697276649501122784373076135559650026817997324909128964944630334871577958992304950682612068481289350843146651595052386258638031972131362829845565712219590691490604702530473552954137992435177556320135243961423702319238929722722286731447383838334366873666681335797435057236089138052796869832720731766993121931218219684339826115765630486824873313113532597174726707666790363527705726754644945015793206830148032242652593105556714890671094872346206736198813226993426775541270419534018891034510539889172659779206378114929683977366094779329871215260614651071362784891508960244835918149198564791047885997408762358046888508293738893548854453580577792513193809688199450249899661261114187185111788877097142089373965085455045022232332647168760329462587300779257162041615540817917574382814473119190050617024326648529976836448580108927227318979951579023741153699478643624933530367274321006037611416967559232199282102108589336896789851148120775549612013044041235892266664231012825801610540493901107061690259969535415573150732656308619781316312326787484725628732184278524644616365377294773566166733662339551682692675513677399577238632300389741831102791148633699018603408643724674647699576652326833701078923432333967727859586190786734894863322621936074605742654800480903226318371700637264932324320028055381793126204298320118814574694340553932647890892484179586099055237565227218339946375846301201268098918303668722094561705320172143623294326888846039660593525253356646689861613376901322501100940875162734882588376400841654355498046867876077984212296005976970441940231160710479415621570826012684758345144441386316523466478185308671372981651752473151724979288160180317160527625980897633010313811788635280270008799615859352783442214484425846651655111802716609157235906999044595547231581105837881436554183945143806000203683603829351388526375052854559860577377689178159893639321537485969140928932808557738127643995044378442149846618604791258474447727950055249239280587512336759131457685704157431519633616205451507556806074724645505805614638778455815111806017285922934195050617548823275178081949593090213536722171367406625075285468898038114121205868692868930131506648217401989264617665964500905963684613802199049640122156749466784508142329111035862684957987990292523100470332174250250021453463359170109315714142619457190130754806469529610297738667934287489195288933201237404010275735105802066472871868380785171030166939548115777864117209943104570847316825728684877487661551919198628207622619593086155624099483107893329612043471564349775028094726481674524677391686594898111379356921196198843896981970975853201695289302144411684265467639831033695129773628582523731349271381838978380950794317830263308270729705697982077144291770171816959361626179140192877199469058713715396025271254450964268755251715276431145492204412193807873607184331218816328763261601696485316826061925735622435829164704507886933696360108977101527969205933409687833239163010700418687352236945299974672587995838306525629810256979146297427549136062133378613874162645376874568131511260409199773460128044561608516062634037303396616359151568351763963115355080686401859461715756811646747966520575098220537516298849305670605320318910898665567629799846077621949466156442233707053386045712683015444770049953361888535072118781921497680044103821484003555937867508255504728405595647013755816228957005207890761039596675632666356906165991572968978098762028262801279181868272464635085163446879083312612838495204895255175944242685568316387848651042345334031554605347431186720095563073767689457207800438179908851855569386350338988606001451203642351849651979728454779765284695761868342527975194186306793107387733909132332742405074615323276150146957198051555969511116643840142649199560358896056263598356298192707339671234137314587115195255990531504004660578663017196705468934777455319140586513325382128470714873380292944160118053848561570910861359645596099950855907690264374650995856566858125708685497841927556506905008768842436871201202110762388008509329097458608524717649734333229021317325859730383260456315071596405533146447529542448204296572218226956825547776286193359138438211481007364072804788341973696219294370070225666530483244744411934895648661848683385708130220021547803094580359865664219022711556467893747826356643975101569459204328117880478038877314571286569929890048448708054040866865941661196657096961082742590015491044963940461380683215687660107269056393368065578194991913783116938299804321553210327149247779722265051509425097498116451462205395357682493433572338024939565157064395185445454530389466231459725361446698120355893964535328339859853013173691297679491585782689947596861089021297206438721512629639405938052395939324088739012603723854065434689221864971139221455980339022174816391674275124067259690870470145082141907623144001516263280597047026280511838715895692710831442387216053523837413491802601522385925333717866940226816459259417677106893219092389441347998499951512898419281489948539648303373117772287872526622368824662653543833936079220730393986607845226012025286779684117251810206350386328844196746129682646420698361632853817963630475649586097383597901565773191989870697022285654202694871054445822388507303567813837130762100569997429198133576012603675762781373222575835231995946843179058395576846985518500223580244011642655316881103502702393495105583935039051575110300553120144489416887681393988920985399873290593698746818783212441214650400130557709694617914687498702946620911329704623803229511231019251635690859620460165032655197486146887313315256266608593963553508952082566242621917020135001610478252664578348255010493383784220727950273528820487214314709546952212684122361310156965306962169939845297526849224899065451777297036844721967384162686975463061021979549220129708326289923966203281591618157553369732646428000449116127985805659475196292200321189831747396229045722470072609740917406118507733700997347100065675470233866502001252823819445938786449147562960008409010648371843844962597244411330153346528644831008849503421287388664584903373430918276649445992663292967935897887312147136052493490598008341221165086947193413455993633073751029974274720088082092099048608710511665640349364576087067438081755045306181194348985316913876869052414477953662698880350422202905234355899693186659994729250793302228980894844231034137072168081360276640455307206626519021506837769755470421679478621323461814587106983114058636402744151846408338048400462777806632206421791869475894840411937739549652270703674500754042952953677357021507570174253647080358780684372571523492841487504898728646330972301075593904455753511666444476274969197868452758527573804398659755987271074753699571402772793163960315376707830381679693886423340142725419644904837814896519012518870958251964879416610079197501338475808199645728493994372540466433867430832890597176501874529737107442625916364315251964827445905322311731689181691169456288770149682281059525284209591892248324239285671902663672402668617224572503148134145824736844594343853157260358900097618416404610210468306489512841941388591990259799621189019793618148768508183564721140614817552484277521332056133917473893053361658126475417181620978820496361782209699323374828209163948764787437827650161711268073868942029766428623978130245086639187315717006595164230462020488541872368666647595426447906324257670308870692951957611476870045869808952216394507702641315557827073499803004431827905790837390565849237611498045858416340549948479269333693944195519783304788170596372138586659787305699630154576024834707305333280749063432740785876566275868113018170097584758317505047843522201060883709630282443860946425165995488057541240861729594655167419780752143706602748006606941019030281014687563180929809708380718914896854932774466305711748066693262383956050241073221481083732489505467108731127836884898367946646833497969586915204120244846797493221486378424020691104989689642915748158289125264412454360946149541705758894367862080801017599897121778396644236365814063234070083991448165765585706304528829881497364192560381314545538767942064618454181098395775295188298975456323024782656929742099432118710147502180345584608711910615207906546619867682233007084707543562136852782925013642617151856201232135489322764670500171219000965231180440460287669923672075659253924719581908782523714122443304588919237057283419275914185965097777062301523424802269316786901207718272742776057968851377735970987082705155595606721542095704093087831075093540811225180620019389451359078742262632584684034199978036720618461447765385340374283943088930938748729124556453510220761117667152499236958628023737374918631689691950879300323506738046661526435789458178462253400431204898324213282715812569914614126554340906549706637454069077600379297027457228899108598371050491311127703836716010566193791236748654283173489445104755238699397126487946641945187703025078905676138401566538329478207292745336555625738258554442045231920101284722500063866102120465292550319776167913976604053383386117485869008095019514873230418464224468079975044612757975116321481360277077041055327731847371466845628277207610482287271229604813900736839070987838746784922409369624057540554806216231672117717216833841070793961824984979794115823587397849280520164126625491132194251098306703927772099340467891745422141197733169861452531945283161472645659449580496826503889083185812660673014628256569175751225563804378299767020073123654501165266590446131670482232290202753806941799458007096859020470634384666259372463503975675290108685349687047241880438274587039485335749086859745111268248528693158983755636493742251859378458805642241974509075639044180042168848299962257887816536684469657084229699431149606480144846719188571456212358466532852054061971971999138587080859188404261759965906521877712469100242664711028265360138618553823557083108355650260830265203504392924974009900913610034555996471458304512874757148011097320824525664917544035625840467450927146099240917751665031776798830882608741868998876792858657119324506202905392140549164639409578821575502915361645536294593809514476344867462873834798186470897522647643118387477010592054136787089865799232013491603370733706338535117563900348540703723603325553233912795523632862212682636165283041971723637226918656794319952185364264542742429487594288961553313558517300023086568282073888736005832773757864486915139882857175197180320275797873919884541861788146782541804294246656783381914000129538763314422839911168950649989164189904081315794741722445742409409211458803811070590250407469696099475375746661722583874275226536824716427486253429013093669185985491679300026413162562756637897621599863917289630586088309567321015244179350401061853579321592551434531161027993937209250372128809739448795986510774773342054956390501179069512382682602152169356785070160661242456702901813578602646666780231961366330490107265938870683733899614926435798155655448178525849028450728425599706424291509421227355393848864123458084371778104240885505647559947583162663156102188038374631905381475215805460581077092260135748888509493694242231665747038840009781825767091442627950921439769917865157461058765823046526655370885919490819837590121521637071698015938516208630331445845468461977902739250666552596754873805262927451177077662374886578936243052109303386343814865095082042922375301257232142358573805281426571664147716686967013372061594812676003128835600742260762185863922229696434701202439328745731002034453897527514767687609332128585894218281059774590240038120093748223195301981494146490389533023590932291478341783206483708683711840002239917750848882368510984027577917692744973447266284912342986226824119766080003955556470159519635607700656206299237087217133479034047001649971930004635042387340515408878908860129539316078978034814039383893620346868238452586140955462603365130410788109009010800896777580430429298751363701817160828523592568006973153779641530305833702475364818282208944601984607111622825489871640200604456520912948706866696226570000529065548412945184290079348385691896315633680116519878775044843983875364368839884247052330465348603235004050450358644146061937565661746266281263587879276859895933771461257389782941207339751410819261300721274509984447689968527753602543995056467650977661015115208542343904667434998024927613899661660692536299531538162166167189837444700732583487415084541126769440486955121757547550572089142648355967595761547449878325229810678095710274165234783674631582907013825981719561689647891301290538070601373920748582893728005841409781723846193419067191343015131676684823327438143338886552948163967280030025942002167567175730046031388575667393728908652113999567120900780634967761647570992713748556446841700107052935213713388010489642182825367715141862910277403679013820142580518592710961917533500680837031852996219619406991822728144221880023893444604120741089256192502337959186156771583197072192685185862419052663064578366941319257213176886520290014916466577299904688941660259400451292456592731249406037633089775298634825059072508211040652731519171686881478805218133844636620481886864917835196523612358296692320470139166099321835827659686535025943490979181418029566730640433593804023260669994055804616329346947969141019310595661012620811893829099836396983135410391850460645159093998279319208826748471130959475649189660836275555428615118776463033775363050844075668194752348438805855441946420742217446442761699253497152136371913454569985023160644011990341270866645975940367631485826683607363032475782041189289456917107685145234565553625821130368174029389754072240134953673391026492041245102256488839545336412051577438669273442678058891182453604592397697838270706845580461129884847305975791157176460619096515989038475671619989314076983907030229302965816390985909442958812607629473997718839354174663544552764444132666814987122251201460394940381897556326736158209882617957503194138948952070453365390195075005457552805684398225807516027459199151639807633479204030659377169900302990363286429082187940113060682006547100156477606429137424520126338807104624725159644786402997337924676665940921617257311779882656197522539787668856361144498865548797438806380555720816805068038517111078028667155964656822072826257413884320870893254407006473859790924048447192933056587383140847403576633463737407565411296349461518947220486269956749012489898166343567368197302442162131259460562671293913453493197749273397551531520590058833048814200433358544906490465673970654775524215335519944074455712601817372034381317712768202508879330754457349757350208705582469794041865707588102640793337178405621438432546315776667458617300205509693747834608952387245639199058017800389357170014211265098130248620051146170188491472315785151231236891147538043140745688664597557674564798118484824043845319654450446243227136165059469327690659869868811600806342218532754085817044774324709289297826467326812990729580222117966304172710215474127171932727636183394579930989448310573289250054300097256690068112036545592928886426827006461337842560599594197304565988122719330326831704623730543247007671804674498648821062391002916884240004901696393610049863672777249752142100523269845176369997206847510948298945506274772222946435897844476981883477387973151636433308353385502521822469260943363204702302484509242244526613547978023218328384712099813040454942505583734196142601428393972130019663980149626177121305409416758323771647825682290489522154109915260932456449176308709491602115804431012249387811596249723420961425684491860125474203467377636900488082842633424810658738661452204234553334209359774993959503860473595940903735736392093266337414577067654967256664002598297805055248572147873432419764411791889167379187090617541291770199856611851248710605962980436457277556832575187247684735171393887714842056822990784124973667658923179273372718199735050480127168701124818614320309747607169203972261611504344397829845965854929859855093163064164535478671078976896087970213167646844414414305956313791143155237457785687966613679479586189911742443470380187337011715248958625891984742591474999077782637641132501043969792445970566685046907960426712512333784180991099431677765138014806801998594542681144340925758216189925122599978071711789794892340134264974553447704704901141086140818915432841035901059435479944872324716879391628896627861056981703643095377262443643399189682205349190516189206059550254140024655876371668332212639423048822380314278944891049603291832123765913637791905354977017801380805721040983237878791780909843289440360006431778605343464628694234687774134395806174220205866031654464090744695903077320845426334842750068405917573583359138027598692722861658632774942525449545820704952191216999335939036706051335976872876534477053198222759528837130516518790046930228097056597538162465833250406781654681551229777430223286230309445384827232419615650883178097760126743619632332589964736390517253152482792765157725742488328517666286140608446599463388020591090832104737425735766213496723868916555948700033876855887677782288412084306798181556068939901262167917088658680152024682226769984683846969176583323503103583882927722023463393043008379995616598802753880926353821088799659306677535578718760588509156475654359263223221276475254154179067733577815282440787800163495653174460293462547733267307016222326482877665000823189881043673716883155834856166071682808853055553370683072925931493949661754634618951591911725999536634185932125852835650933308280630378201082112618611848547218171326910486472914233866425774683706720523331580785287483506363211388963896305447854293888506026631481678306266021314271503144515818258607589254562827919381026403072483265977184126379756789265075219770868208480933924773913802269452208334657210966932649529309965989738407370080180914106043759646870264878352288424550491883104684432506411329312730852033378540390861951079813659473861911251036183119274220408944512724907622082352355576625201065937401657813833678717523053888259588847927252749004412032578203809151132650437570996576835280096080135712025999112138247746921279720966257142422151426821182545416472449090180831634155959659178479173849617254829973207074652969170082233086237031393978459927778358758542226772256410519219645197150207940717115485630519565229165612785939252467095589589285469145102062059114045662208914569006371176904019391882348960735200407032776074334568967760830459403489298988909342845672738329138161737986454765240273260747961733192098247275423418483222781349474500569963136111544999976979423501191539478037113130532124708268713738582489617057342280625526110241421329459612550987415027648549605702930809247159849561094580064338938612628186969177538683783867393362433767661806082281554763108673706537508739631436551070932128384076252203391722819274146203429910939039304057291156820447209128365231442554395891194609814927422031825981091011015336624833652890240604403628479950838757510838667035923295017469691055268274064449056444860701605194345286194919043848409097352045662922411618074460738696456665127783234711521726642027424023330896165160583595071232803305801844920972391007479116705713347400998346444033338636616817894795888322323551988555046941771255458907699604677562655768718406238293765542408439773004818822756682995657674740027461894394136978721824520799152731261125080231923645570557768841674280428544624918805699505632277740444248400011627507760977082770725230671028514752613709756426852132543547542560999202846931216509081484282622832189881499372858542434491652136180241587472052361967790807458236588663190423251423192019653823105226860041864677793516254012597013210443965131981277322689594135337525587357244219026541135770266574001081241304239084961365680273490679673093168335579225831424818688827652919508905576496803422249730039379864950476860273048839980315057616133379460860630995477362335643176773769773558619941465546809892040380940356735876532140460521140084065313578305093183440993685156231525128485689935274236717010762774665220627624790537366934444235013009939642781685365842776195100644727874179927752523943686162471341783035205115376818135804232235510667989259871784884415194390831789081128137984308409873431815834771457542994551885815790149743546783140833572848148206964626772086155172718575609268408174381083629416949790401515247134192534012254689762101069070968169375292126554528941155966402323338501581094346778996812113606440538684725631135636696696783773615546316650481962855140033724765213008730750213988332803185139834907095408620785480425806016192019749956411641398929436527111533601364564036205033053014138208100255035186928498720542385818942650897904111022888040154548576700069683661009112890908340267217698338359091046178121283169362932251229616149034986216818500774344052538387889126648683989175103747602437496627289876069776289610220593870504051298362864302637796939280573217668126818294903726735262829250783362748574827627886141719064629095747411704214256051751658213622988075101078448012566449813120958350635686572936300830090836566401839539587055777378477091877984447057420553775591354362416987326325984660840261174842799496965634277953089918687141987105914918330779314013351265926758693689666442580100412899932607215793846706498276996849873894003896525456269818034472063647256594482187555799381509089341667486771636004961631623904107371397298344765008593095191795793657920585579000768566839090849355653180984070284144125905692384268897379390870302868072756314669895504923591987851036469177493177898363745532796706682808347260233695295957630374463698426972255057781043208551250126308312139110832681297367028201837354090149123373344634265501574796966147465177945429377763932988177540248580770375462335636285331840867289355974052740473447610805246452441809784825540822523399436998166262213062303356093331227462798139775272684839710550955619489672203754022485739654615405479529758543700348607485780561183104284092057932239020371183312394569832604544187287901260444714743812086485319628285938254395414506306470678188563538520710932007399478517723181695376319790040158234539671247323440778404442434449400086482170127630145346078428323295809419504685861783185616805770337657075725616801009294694188427358004097548055250773001261248837745759838213041436616427984412390748548955651296586792166253511916817177249525100988200012171507056772059511968167889317182749294318890063773393120542848641154733533252957354747111206939133654772748258744877480704195227654598550935268178386448151779663001624220591810536988484776356131036371983776194083536209004617024071337103065200164963315858693699093723074636854082106628011820793221373728233912049587264233038741778799475580651459353405967421932905609370839531210746594100718966756180352060486407102279604873338958260816171583507162812628767952535083341450847537971050154383996081109671201999662336640813452565255306268646230941699776484363983271885776709001053850126662611316963124500534941147230514820901341747225512233165322464292523481576000485282076764936583648500370606930300015278668221241986936509235857796415690029803454395550081638529666279680127254304012778363163940328916385323790939337627105374968560545115431414801731553068966321953388423542107958314656071287646940868943022387743863564965039329099532310731150294337348000757620338364663603323444053935186991428703324700336836250358133544650848228681390435538043522305709263151842542388941344218208737525333480338764729647557266029427395985097660565230204451242075991131341641029476386065304918605999804980951569389049186296092591857830441494463417405642358899359374163752896523136817030845707064327168031339385668465211031531614747667466217789719924332109952684349107957082723964068992001962656392613580872679615917268482520747019832043406777320394361824395736413788405641822206222367191131405001397629209587242747812549635368042301935906296576462087654781284723311298490498934783908004599396761066646719024418525961807642939894921003820139892031758431464464501596707733420793436707662744071473389729479831348629773492441826855842365214538879023344886083210157966330142983480670050982785346111202953316424534082269253387142902517334446170422042572479369303864283667553303286609485170603921773837311169942584364764338137884023051134003546007667086022570598641255302711065864743183948512457169029735351644840481587442862676372701200615646218052825647520445199551624488921408735079117295498097615956242208318953445304133666292427047265313936086323542697177876466331906456716742480986917043632880412243779339431182697382495000072454786487550509667704047578058355631648115133410797481024326778143357465968314149943993846529304227960963170986073987789204955052806747319413132466871294887438303184350089407310907234937313597729873684397403852996891409839405185128161575243271635961541187265737504037271835634906730064139471082673896993768725021974712272475698610643075893784858280678492600089495326059989764647572169340127422960096121773593093442574362395557243751939529354604657875339935429943573907151940041189201081015742895005202555892341158489942329195049164138019787403366844695139883243863289515118448775889478640254978309060234740800182141088998724475115291412967760791904706665353196780397989068819291175642287586250662798971434573702115012850497888056581444657093453879371513930940399573095222838412348805831937671131226522362224169994711148886292818653814488721028334807628550639609293377323246593867597201420533151568423039210031331731842719172530490915363647445877408835921901093317626124592969298301897829864166005332348284507824575494040925667101374745972725044013787609333995123471318180651188360186220405841658311522656736528967908485857934826459745499403808196780155055162496446700844751109866882607553575329563314208435626434980192924106198983345799831187537503101741921040898461580788307210519457050815830300301597652111899821642402351896851052548245357461102224299575923028171056999139353100898338084987287841834549484285516294499609125421320847849604976149401142740288658528228327780710177075486570478474665125863609857896723621737851677766995562806252884026411940773973629869007366005510248375032491875791027936729051419280982642588986878946238172210205018219412122934638266684108092970652940644434250874920547134632260079738083519683958516290770629122203178961277520896960172992874376644517807727813329234922052695730357888327287560358473126267995596136564516576132386496155161246194799622880995012658108654244045024441846048334231007348633306068047676835356947428318081932531108082780245392116311043765004024984948643665992516567215013845729595111923092906880042597609164532697096277566238857125133968912436790666896600669838349418477155168254579251214884803390319026499981233142987037868133861914489554367997340940007840317390271381100981895099622209422739447538739511846413773296019059909087803410640569585240209797196399249718844435734298662546400328157544821907040504398231788982210493952087506746197941292979616104863673991163822461358681399130512280847561879709018616465024136889750929601726768711879942434427590317146851371427581000614652295410804972175589174808485555698628443332833198815242312637270501405690834044312316351936795720849368005476819692432387803808538594910709739896840454653724915726137175488980464580956183505012037708992554148640981894325240686367330927126798266081992764553946789790836401838693745924738039051700501863534515847375082813516380195341667757881583360348226929108824234377413997051280462439071118702811596293637007367838120389931146498658655682226832189251863372711640686073326329334631773220593199839599748531362353133938848816346445922317660221324225939657558569686241575533733704550658831522815674976280407319540656297947889494356149174765495589945648573499851087183135097682698162978528580720029071656144744731381701693378193114212728504958201755075490090562818587240303801357537664739405334582765250503890607897863698638440731651000611892695777427352143755616456338291019626860068061639189236098604844946023773743607187801839915843659765006559043543542197759036246567426618229573455581335810238279738336522437539243908354874851322607629174315063902831417624358751289345698131988745751167036880793027765388705386137945429336878939228793570920668393099453754501733650742116352094369950239989536016573942827788036781976340183594954782190927034860055249329760536614814334109052435789430973233276438815563555331590295931360794775020794221773729135182063772885469760464417630400419271646262717954921269042443546621945632047613491562341454954180678068871026150456971859243204910329630602918653902108383981619331968315575230321025582921732729089409368064348371482465092033355726862183008880400321498351026040549670236767010729502127747189340623510218982651394778085750183792923652093953415030214913242170470622419048252998538327288611802604826137810480861176401717889127150563329858060913364188098825877239145131834147104919659426868474594987600231456008486862546282555183333986120226612036479129522921149810645835832011787617352235973596418400687241256145262317167975541479631039939103113443064329651150430946627683718190589911224095154173153345489606143631355187421891555472322474672362583237957248475544263641980244173121798425263540868495611878373730996895371399081289414441785636492288922348985577171428667700760386517485665056707792722022479906416450103233558843205113093086875716590816389356314880337375413842842223929899993312560852035452338874464634076498175037464751502384164621100827956864552349000723545784708266218424775129509374612298942729883395970395676497346166011743609324652250297090927236434133100363272004825957998350248653578034065594871455760747532721056620578172266506012108857987518408124594953911272055881945917329779294510106782029818420854599766939509501756178135542583022216233657318717067155756163969172019564069359792586994207416429563578797807489955489954103199793425357001859558223378254005174500629327839288847498484037725649804889168259492670304722754328345808094304280135705516312429753001710565285805884227635415141483602343496146780301473304512384766277674264673042837212198527696522402933781558873968907437100609789449994255113240104239215981085707841429082677076462223405783216386328240074164444921390703915614963860716608323465434681930812199832772449686301559596721838155356777139473590451662765245653902377381736111798117603199973677783052990357874981843482630657510415408728423669955172160635118104496081536018896253247715090828989145407419563500385106007182717671478518115543428461933319538628441970029063623339260019244884537775576623953783615346730310280544163962116421539439260953140065670614585799950412594128991563001852406685976292273370781993879635534507910911431122391201172223869084430534839113017938338932015125437214535186695941071499837789955622451875129312951550885722813528602727424490978688432090633771277778653861187017497150340993432347114299614235212417074585613219135657712071120875838356844690398895854510563014304426916064255058667480744046164588651372941504566023960012842421167468279353561535776145375479762109321483838555017118706767589989344212814663514244542451523894071665441675743796776998805418029373606903109493892570356365755639610588932334990586201078238829791000418995679303996825373994610505602489382224328124947896348683655241075281081029048221797633162301802060524801416734660435258331926642646034157637147590634038269729499725847032249104259490140003504873124689172076871353480437015558876858161100605606024434333384798932445977642057844692011888028996019108938463837718880480769516852319157549022449485159076452955332337098874101502188753055339972882408037254646722649238430465304617695118465673557663778615913659978348139289506400484551285094677253208594403732471295465371220349893653683977807288202898706461274080460937837537279319642841990580579388052838336016893145449340289175578880160414235158508453684454582346647185586714109685561194899164704656532192503217081419843068085950273506482452393746123503521614494908836652318519774795382862440888611201684643941870197119837856286427182887566372413983309729091133346752360440166638450117923689603167994252859705532590384859746918719768466891583447940383452859357299011975218016007764946979229860486179205465386250767095160327118090010043816489839600807579687648983524870547687410432494190937653935003504062600017197966341919830757199192932619590183644750579064825625731887055243974135323811519234990823277406782377951452948869851835736965717847559626758347533954806453988520913793692586343601484152171689060412611335106596828690887998726946020475185380464778239716655316184906327618435193760150483324935816030958186831369890787246063990517386939681738366358148914430263238585469267999888943428805288986390226943534088450803153983547603386974754592894606323951622064112584478981640747624852255761565418671541042792725170751956765647624893493740301613507637201194803204247201023752271476929581438582209265831540570699286221391839215617393950458716005208870465951058575521074809913263923042576946771255754156686442154303638915841912269346362766614960275446545132683145226594746123598847898119047614944915276491537619210588498882321628206816770625456415947590791977991838474904479547325652130396302277831517314857297268898418744439896662882957670920020852161910675124357453785867589139064850623010585657891997267147311099298233051174405516857200274848925992178837573975105229464117307168981474042450688451604466890193448792757675975630726606533269340904467432971549955889404506842961396328721704457092992184100482368107436633581790780349254448170500084666893594242806878587161664542200005110958655408293999492599335222947737880995070482596931733591652573229981621019860223234194112496290403156660527273909230126883846157428093596156201311688504988577466852275405135044007735859236592631602051719358197128035292116389613220111462353348284136788703374084819873101583379639963294920175580486499784296715493274027300883827116348408404112560514081413115095403975727083320679092521023474543329824972653523163332627924416457468324011352737111437639314774236137892688263044804842865239618154236912002671722113213357999682095823916434941476399076020423381441378243904334218873059675347206015333388371334405534349431241541001708967725052282580870584100943298526657640067873076817316249675995681317563003790693882965323190503226058196150973673265113955694544725284091955952529353643908948685376439643866613335327483368242001695040188194363673964320527819810839926427056645538405966810892960223619188167872427728522206846587616026135811442748302103358848013027223972519893822981432848646186476218532245992293452834272233300810796338674872588007148049811404146682617151543002457170140663195353467953564388364241650717734445580806427854512545112037841754027113953106990584049783713903959693688408618562519387576987735645222429898441746336719634918325295811440296987810457604689784666234702357395097453499143485860492224827368267948001019523225518649662180935438926813988565269909134201659296442411155989087167575920309409778125943626818194704860926306997650399907915236505051932118502803608068541811850362479332937293093112942855398085130417991998431374498163837976384768157696202370074997373955914972040268930123232049604784978111156148412326142344412301795813691293269945189015868757800907048144544304514994962650312216139815475684812487514279970240077197207339683884759903141388521555526806036656762211813750689860836511767628559986115245719380255552511663258096921871048895378434559153200376478984717798584139478309754898199590027105543702493806547649414007250640038176339946828642546567172313304272881927423834882362395427747030664761748067560007166709834383147216916531455084181752560726900659836614620726265615084689314598974298219016793244578191042167089180522545647605567599556121523276508937950908679949468597469760781649978689970751948428850895369919728494604391951172891829191211218047853396427837581743569123617312606354795672506277552909019794316805738162936649383375024329030928599619953765341790298969024038527755388582999958379181349981462141032413227055193393326933491615321359060171782010411881310598811050993516987453164606837997777431887564560864300416242633569946146334551331639973922829740720692608247852273653419361718119964842154958473687995614271024020732342809968487656851829497849943676760954799231665524913557290552131913021870948471168289670436985411499959706404369686263121546622243623390604912381454995133662201877870474389408136476925431376598611214635202778019326375819882463275975308840795845270367938064821637165278562178059282855588241476125402338618922082934391837283988582415510400012628287717948983918575490486717444710467007719063479710454286685477714685320249812487328661499301606498528098321064014653700764878413958969110696434077729927348833684397075145222501279389692399471337215280094750307263601537464291350691995795344832299949616132857566991693472019640321090719844926574332329068024818486618572457297095570171420680233402349476500057708744899949648807781239773168083506809110203839448128216810415140455597261703032146388873869205648179347491988828281513138239883081331388675795391537961304331847979979356701407974700796372217125013189670761530608258124918776791639546659719069989036778048010073380043197894910143131388613796410854143411191209142721377177341969243373123804174558698189692235164632474897656851782152096578546930354270360646634802924548404402558429967537659236133911416016291239935997409859737871170161511893989398821654206028756490403616796500146130869675982621993683991115936598897108236123249889224640071398521095634744614569601327356034700345001916543606968182570973201180558073417602078297969289699042562472635598560523075491005541149229040096730667700896927157206963724277992878264029915669090840582801684327213529780740354036511887625902491384230785606648308622846054567483457803579558293729863221189318368992501644079240913968915814111843855849804978329501344283596010109585515169693273372954762304013247787950990325428697397225847657441402297494236562678629876476958999034606210008237702513119969782164620675631455477957452115430031622097489368665435892298919398962467627418293759640699481206371726257684012439709578691457069559421349046893762907963243247290195587098286752588052103404799976375830860452829283200862830378192801298121073993010242133999456444065154721060712322639052052288980057616195848820085190935183173117357956865961274297090192195020856602502783397035284101312199052713683711309255303939813845487122985142550136923750538053613169641068646745315819146086815954055749309493367002299739929746004683678815164421068079767229490642503213627748254004847185385225159373234354687218852269595139546766072441862522573740115225639330522382005977974768373643155989715831494787349547905210859110894110025523762679448914671693446623299324989913365232825859082693844759617254956084424076907117785207831623893642205615763206189824969104124307559735214500157695450280038408386470272775649760146145584697976000868445785335438392937672470715925156532260207276546600106255567641124349129880832651511934539510196873593737517346954590567230254586838633483904342786182967012288415152961769584270608800694293714709019956335937391294895080646618257112170517015317659612915714232825396552023162575157806224729907266316047100469926117245985430596868951888481344861087339123069651762510263230755096329545519572654629117920204899898381102414492018896678625233469510610787444961261177397414138777354871928754979161162937002384051897995876841452130120995277019534145468905483014268917253776094544376094509672200915249017493999286248567605984961730007461285754609756317109883068216398471339101690717135113855652474995079621374001259448732879104058168791449195939797727425678820574800204842400515754073155819696864042331966319494408860968178624800009085963490501602002928897603202567921773885732855265226051636262308553819901033514405392750404207750041792006653854691314060553545595173771418152359159280935929814206077161055665523447731048561917191873520436505124902591973938930450163435304861728433811100425731093635278184232564494546066290169964487115611294375705715315762254181931473551496705071100817799280353092608732529978328951010287398789449518769385063126119512704170043925762209404203816936369795542409643188566543015860286432168369964286267087895136276076732340317497743347032747158901304562416221807366729401262903747232343153566363852698093634186224396993895836368211321873454719199277984507443782823325672553699095281491782867500767995392041314586107578972186815875185933064870950036678503800509104566629116390541830232325740901762490877231599311506183976863303555725467221927339445211064153379694581887029226846108542819001143548830851618491064889771899669053164659617695448997156904294783990541107716744859058857985022129091515679442330643450857424980178903144153016256113636612525283647076357881047163730476252970099266712198569687010381995716848417956013227786955024018122311179442767970941998229162967305120399713524875413385425887731900955350506112388652243186655848540555638552159702973756325568599483045888484710652756077094267164688049535228311457381625531596301601980939255971690401818854179804398391598082614753689530367327896376756441979870218284510530570742861981819004371134460506216548947190471401064196813099568252776211156896488928329976450617910231038819658756093514266609810207569694132614923609199009748195896173503789598095536426324033216564287411464314505262735793646347778261714607341016279120328297359902702755776329508102792890310222428904772845706222436534734746026805162475447379266795859732132594662449638327033611706946241493157808643154601205245596524746459859728437237080628890575841368829870333124242434672907365811736239936708196508160077895569839022256810480197855252978838519033515066417994594652147975719841937043114431125537712036167250742051079264066673111163216009966868696795481017601845074841416356392145701875860711415566845422825242552097932022060498245885576349925797136044244172878199108148855546231664616799882848638331959985788196473767716429083973921706459871339767878538023578605317822093546220529477100048616866626991233713504359526590837711727851438931633395815161141797717995478822066056020613940596541476939817565122545510486144969803706626740084646867804394205737852734075014589880097483629001576480904919777215132805497948322341824482532741503691923624175533763535958307795887552447721740846805962029754209133632543445498057019158850491586903066613770892788115876625039095740553693557961737619220398564528012413160482051790510873171989428676858379839426593456296904733702353352451500469953144851374772723213298745867314607522361808507573232899044884250079611786873091382080162429040035014269291249063526179283150812651589795096020163061035711741176764190068756948056257148930515453894292572359081803712107199643599362805828472463315805978053962905807748507780728017856135575312688222225203001974585021692417550375880154501203187332105303590666705850468463508308959341729428614771429026738068820857912020109336853042746965474637897192508145598976030031373960178561762677473234930436068165781551707179818265596694808093749103662162632431706660738077512048424887756023852239663436255003587671411673755265609187671628780035177456146529017976902073769480168983171213796520410978522937291149446626951352749171815623557098288942948292399956961203568024907118384918029736387819402099028613503915097741557352693985232267969950036941659056786748113828527158563886472024659831277807416353234681891908324813491708421171367037425288832355105652650829777243077630863850968023260977451170498271443583607256010170864858525701451604311579591250921101250141320182419842280119206030475172673239376865503601169540716065776713255187521454267486979584612296141107241663244436081308100986872133364053712300839520366892066911126180694704334393099584551694088653566001064981585941143615283303151629280076171349576359720335734091876617382454313639892018789642633247492657252582543563620947368090604223751907441144209410197700945310371402267720784750917815874052848276334521234783807038030551412604495173005845493771656944149384382761689615044972590449116217743625680657872399164647173294583391180926937716215316405462709178592961540414521300710715214327521455514887474886775783324862918321699495962498035705812105120627520144955329951393518773456923232542707359153969929284512882736017016249550208169177168235039007174827248975610130558629459717016310501534816347953757076902852283699264200983312629276155214268751741544668441301697951324082798512375558148627289436306415873955702111073434245909291869351908719210527412237101839841439235489738941372086453215672058016332641414367358484306674840156200328787855564414789906504337599629665684989130500736408816890519777526239849676665211500795862415715416706620984953423808486246045176405846457686516421859043572046733058484765939741621314063851611958405732321323397629410538782860508803730348389931723343333946515181265567710220740742694961293956233685157155976245668681577355475155247033142452611735090204048382403171775882623455329882469044016900559688516852011514121233031513783698719685618250725875480340974249230387625978442240955673337812895800310528526423075981608723766056700192612222730534895482801604949279466253848664064379731378957227836875718432114117634304016815444840430031274580240963896937898543104559675172162461385051833193396467329491465639211974280851675995624630052030334424732254895577060661611490322708971589907914995368837905251889808732149355931555460078314331027137144929723368575791559040185826479486034211023554532667641040955813508680555601514862797125372183020848943362853221233023281803146250453420548111215112850207384119699152862488497557010390937269462752813102626975340213223106572731311008210111231180836481182438276373852728735784393946885060812007263776372710316418315650654229069222748009845653382251020576429982822059917705175315812727028449029056547057239683578997092579370998397087164124617820650326765053183351987443016599699230548259760123681907318528682970485341545097839949321438610234672330397083019519422935234529618677143606755750163254447439811738349026743641961006286664470820641359780168948914197139676505582678962835811228600152917547918522458429088470289984705105088452767366354897013507504095291544885355974715090488059841433204559670367605904430687590707949421243596830219535636208409640753038463013096021729757480269355455589135457644859875138415900165864722354447753712514732433782292333623571082287076484069808854813127803273663607626385820395005454806618713737979058278583311843778972492475739053864502733328711474646256751562455977944648199010185643648372295955857109337162755247994255728402239852177762349576577810908108413812223132292238778003289235014931006334986218432655842302131257346008432781734300775085499432031457254500960937185531058978892248227801967886731483463115840201801880650166784113608961965648210432219680719133263026926725230405340410546291521321150418619384555761786747387801689743388840383691514937194518690712206618052454762155493134906299867947644112732315837310440620059821636107377612882043065218120508321560814103677766989279205976731439147618861169126765141045909980508232548826282263909397496939914032478398459321866003136244403248893349935559707591820335584637924655585029560999296016303663458056001464367983283194074982313468471607559549088277519878839429193281199960451622573779453231716576493828038393720182431357780405752988131364981577248714342158800363005530585113035141108178243257608624637631106332735933310622483179541151747742982070391539220966840915616421234065790502158810776914326526457231004041346973726377973355923423270163528844750101765081222074449482436642098871217842247010201472358678142529023568150020447700026339406269129691722381563038289662952785524369311743340602229548554442433270419144585776579719070927558599699888467718535500420119439597182183305585853998017260598101848381562334913423028827290974009157354466916599532091303873256575141941813029093124178363212479164429420994861707245326335966668145552431313953697564342520523520639250465008063640347379388858748810113432827420343018417624154635845087721133065662963707993296782526611806687281753082838634767522481100188012546435908825453518369648461675401958949658747127924477668784820666337021350724861619437975373478930673454204308190389481963070598422816261880234883131762230053576453294122372955735020145574534478986653951779334793850212150673588176213260866797668838443259353821746137045953626043802728278702850308353860953750088847832356539433486321188023167602298105242021433533460634189299910078981814229046646428397333346850848778673362069327842360186075849275843816582554934328556256468405395363901463985519869821073748605834601781545382917365688487307902810556425055602268379432595421232356156891640852821858868254345285640051856408384289976436146298766584865976003376601765805564020199987441874603174968878913639290914393764403740766034932590995893358465094003720436682157314837250136735611183596748451835259457177529922584779622556856504767463085621926200533032675483440679542774398805189098510352269768548049565644068242718751249305810925066868524443802874693015953629090568357860250473513417021848500632699582321952924026331845119510057150552557874708736758303638185248242022031967358762387962883514673278831922796172431142746023470413657812660294617691460634445010643440788882390307522675990875321061248835016278145961651592743815258222157607999851324312354679077481588250789896598174921760340755513554059873481680068472908739395868442294656121961574325255324485200637162086004392260433934437378895985986719441180619719647630043196454337841160682672454609309097289782498186233855066995037275954658763767735736925662030581450360196914292316600782381008483295028953421921733495576815601308808952718554041154457034802125008084489600560296592973782602452351042267328422763914588932909245240880401124719588612383345542876422036603041746218617090095919620511598672492284016647903982179625494980313910368179035565668149142231223174274979353901546341745016721141840676431601506094462018167819176833353537229408089511004589337731134312981698489616411409314836805246141001419858124619935100081139202692576256863298748340685386181897371591633081605398104919114918782295093382751092695267288415926421598497611428617967545380932029276831281355767067523853402133688752364477176180150361914999160237683196350786408902494763144332458448476523114494428044160271592200392642985304212427482463029388995745721150640276917581538665753125814256378231962914398561300151031150186944515123349710523946712367209116758849111032427240773561022882169859372750845346534252194104748121704015378521236845365739153505597991279482030639714963691994049623751493050104776211503879438393141106454066325079205052036282052476098326012285006840381195273883828610091605298543637924537465089453100861963313758060361833419016182545301022317747028037525868960880932688711212539164180740506682958365493282193068151126106057167838900112078401977152995724352736539786143416118957519429989279591286843710681762790882025302396661053901651202659662193103536875873658305340020122204056364332089804294390159113927915928086196744322023785733817816074353962468995394467698914175228554089718205631326996443610758864432549951647825340826732587861374404423490387003782925708144139177274092563712848795930985402573022155151935315445027235603978844829937946269210961205691217363480806908887670018162177292086974436324655520593478878323408695549485658306125334479461284458030243078144692831984327221849551352611920899535132075941300320362690279317220188105753134588780140035524473922260352791014649880556164478358411800938193516241225350988157479358451299824039829771867020101246165790120347301340902033643640849638315378682260842316401018594031951966280851613062636178850095894293096355160924251601551035286040713410159601609012339372872586449759456417516916885348960430500722195045774805478962674169926724809701031849484465064042198150171564728546483721314823188604027126870008361604267451820296255979936226126277618959208157798840405346950130388737982679475650589712890022198731144658387677476776878914003673882698705475193548131057490802429342896822853788952051164748589415891040655506287582566480850738107640749763476214656015023529802674790829852025239131946781685050492103785349835874120040011655190458295659185502121755545508255554314699037540569699913155022170275090007925865458778215334162931867797207984590210736185751896132337599454886416965467168716388166926209667421047642103839494328551746232989110920927705979694378111774809869105981219159255614013180010259919439369824864191288319346737729180663888695042450467632647609010697063592856212110122177376757231569437465141443976397935185875396824838151837334045828415800958270845893035062203361051470298764384754832775192572814735969832768499335364215598533715864521676588275325786837710081714489928676718979532886145716569030245149216516027329182982610529800026955324264035347289108501653429075508311838673460779729619540871609707669934968490779607888418631497611198272291855121048339652805028622250898273327263918946787652302672716433389788432679003325784190972101768266807093493479192590307084680723022187271362010711210738183706902130538796204197816636330119319888341315020315882393042596011312172226721432888603171406555938944077074046062697174962345162819770373029633201849285351077523710754364074253232003096934201136522490323054669123659272989318254569236720736171710203657337265880268777302126771687650492139050458506139603710916218143087416319597992656886730689463908214285018733355374877861795120186343076395005185678654392615940830682525580699447612767995953400127532641873074559626250906135592180464220095450996649053596476434593649550759935800912223099789376656063081834628136449802248359170460356139069357266374310540856137263725082710770125005057661295043177844656166671878999509035073047938435808974154517366476804966736529073458517266444961365946056423914419865927923410169994281533694783896207318481254564472444813309000623379653435285693441453703508660105190860998872229288755637000351091066776783651891730778890172910239246823762612227671719154642155803067177638621387148472612783277435873952966349600571534752213902700465106936471910915714499519943845431755677358386760776542200441073105700244735826625410720426214977491509472032796141879650364607572007665520956969889761296114743564139891753839352111667852428227187557744233694859031480703282853196253404794253865150341345353977603425939731198261224267371892826166089381238715988206548094158254572365531196467709299416810983876157113300402741056412842301181482815838229518520091569934831250911388590363889086559241614691470497425145592764172277220034732924876571933809817478145838765498014918551174874510644712717010640224188167136673276792185661531742584674302602298320283197955512888883355352015577827415968906704549511448660883233483962193351921519971451117841421429083656546167130223161993991329135872162242647902790944302144189344176843131189241921488873805611918947960972507845085062161587599913732595803528127532098191491147347724495817915643110094664056136132846401289603424482387364582268423848635777657097056484935581619772811132837914798540248230605842728861394598355343759520640115112688076248086714301996827136058788250790792584610757930589958402682062047375084621831411703222745909854328595911873592325785478234961708694964783662006417016128617474269788600456754841895399664152212519377312487542479243827616156795013427728876730744273543127068319566540402490017410820597332596515331019552973869074477319815620913568180391634085817741588314006033195311094607000417389606356284953471277999472899419589019556813931633379936616152303364028898533092441356647996243909593421892227827089511450018362653653122123366578467144417677011554929286265848814167399837692815204592926232447755321409112698059881608461950121723899215209473656493553868176333605353240197042470964102284028014636861228297365886159735164391809563944202996554083595936499788908117542302747275859827745084825282016277683333058348583921178497825000659211468603559084061154101384704099404974125590972341148915816747146692162949602318720870963001605341508564010567662963254603092837963786529621443246798717501065485907800403737487187537775873982484689577478743840552922545072735474834259621384837298090505753483926704486848713829737887943617287715217874986984626014726695757012767669690514120564617897680350874759800765927073039812031769828311071864501670216314830416744430446995635084448782411491382239942509513100303254010592776263324711438876968452035241997583165739939552675772602528753307850806324074606325473867429636507862367350147111319215546118262126497014353801336489564157504182465821837460546933627050754276660580492567747623955834523805498958564113583867620406177338900356569559337750057198023953848756941522963226496395192161080172667038917271059327858316039685291495902786088453545505629570750069540230417394771778892999593142044250957504107229995417104715517731583386039574157134483563034722956578828840468471020148934980031187827731955310282901031071720581014430298398910176005883487695910003368027058530103431717783147205503026529498863179998901514205062328329097672011497131505317475517315163951035180307435144629931793986001404493880296583684636537897464438629002802309143638398728704894184771574878570548990623386606095514382765167066792382879442783770546759592766662291647637963005560055798580957467727330026364384790162357596799241853486481120351885772516560950231514594436681519153723801071683052474081287692462359285185283690015708046152161931354504183718631171908917176695113000304970704210403209356795496477150835650649577336854871886935549762863159528228147807099529162975292954763335934671110854779469504679144180404550019907431893378586421564732097700217486338803660834731868862101176729474464120779659827652028544224585045203274863325658902408797377004530086155332602968757725772517786965193980985804941786828634882931669300834901644309821391584121043960601793052074636482473745851019665668094998289888585246648185650914255209915334570810842000463373040702267346916890124798622963433735103614143973770795943711337044325243076224637117700953846136332196852977469738825232767410857382164662325659126540488682682450515004025690886830941069097857295561332840141970518374412903073721418369426606086098181430032694118272464782241695213309869871204414697250312470082722559151201671010318075849168941820689879979195292587296666642813381625173830447534585922485237178513030043858814872325751427718245675531414987244568166043557622943109682075457439967408014910535374056654682971349393000927159216024625629919080760925646983889287835263557240956225472800599321306464312449780736593610720475799087384112606784960393340483999281565173036622778861174440149282563926671690590181017522146747119805166142624460452188406662476693740217213242464190360179517216337067723351197502799804258430522120271907773139873630430806210903657007546836912768817481853771049999021379474912628382624874219686417848039111667949790724107167296179136452827764233503438365443476712677399299319651432898785145272719332299330217515519738498771637432352681067466914921315697422965015673758401097885416278718376641258246831826191549028488192895714408084061429320062992910442738842957001517824343381040724118669777512561033806766176291256123067992362292858632303825688792240545285350874302602869074530162826028187780686412586872551241092088569335967547876297867315722522123315499684218271588939000727722739294679791895430851373284445741145683381450105701906206842071570225062668828598752247945439928739375804933738856041850673052327419550873230373145737509242010476698671130217574593800672559268527017578412119927281862352803056530649803659045615225510573212795871827511224789565855057611682035521598888446360747115727685238283592997322413046628565496529638406304405889235110273401469738036986941356725855242950458123729708633757774457228593129595701887994282074910184346023546635286547900319807953451168106412057789218884929268435114642308488137258454094876227604096557860201301758820101405779669219407225719244629575374213883439020266108892465379183713817944979057431476183032705091461351132410310824433936088487902401135132267998795943505064363216495361248107740097245580900360247651449769105133568856020692178421726702566300869839252515161361751450191862946501845736539142227460835533095562910170084431986842835926427416424006498437601091848097785096156650453500799533175662404601898058040544469479300172302698098283514229074245851434143403755298104993304364770979420728784821610995318252820582235231394267408108757903477430482462379058654135149772089822225820926521964019161170568272525882822468274803060979962679511600668127210383558251032041851544930686382705082009505112065633901796457579831755566013975751570868125947838275957927929887203846688844009021655198667504556971342301227421141690323170590296526395971397695088073897276678010242898428403508386650238390264864572081925408761959414525286586029632227774029144475151622331278279060566121680593409874005570061790345617193269308511896094971900099173692950555333703184154955815471325893277590742927627940587015735395632339612650241857566655060761130471828876473036484830853064406510610341661797151177126349042199921910155306057903737196558220229189953870473704945900309183535092615234481283646717712019880983111540001696486609100735719814112168657160120206527840547868140048895593958008241493415877995880403531286835799629036576012286228182121799003718727172653731358845148024350609249467795949138219161176641035049059876737566730012735045979424550039875567173588953663146429823707196494158342372950979275676471089556393969525332067252547427052551085299243819499967266280758324884285092621617714817385780654309921779573715037833948074746303991818373814769129741097051744476815547603975940441888603724377851147495064962181756476568097449362815251570526864240022374867434353359859726816689661228752741938677860971452039122428391030932051342324136648162073558583070687777611914399037387605412554653625259625376563544251678590965590385292572204380936140850897876945761294517341538298747608742812709837428246101601408780752726077710854409525893062268733380022223188749587163628437266485925591960286793040555771866578844784301060788322979062607001616403540579623096627482419143197676480306491921436463822405128936951125783462197465110558087582467870325145892669493517825245882445717944166682725677954540909878491461572922391951945077241420794104763665843705656673623068276175594024236199255299200294335420507178271563891745546496277893903847119970322056868301250890267874499367440865819987787915572168662658636654049036421178052961685794217399487141316085936761348924022352341071355120816359773689870654332083891153120509547972741640341673011273628055949949793667774115547913921546728957761714269583308900786728733501972591411707822634335291644396722532333339804997779901366333980026525543993108855367865106651373288702957148124115907884274796123420390569194966961869936712938351792745872669484697215027879959204637956527917624424274669849310671963328383031012874781211773556951949076258305852368482414711700920833162533032173198723285094111462988301311612518432543000134890479958811035116422600138462361474712248669156271889214250533204311057598912498565351272251940649053886799173752044057340814926936361013716090612377500338421532545655451590320080942861452404076588472103371757815992500543433442103725168335598534762805657150466971214190724119159160319501402594747104916435496428490207021895021068820869139283459951460111272314960457371396463477513950462213755046456998106675165807638096548938129223009872908150440046088929208328323307706120234388694177222045502666251935818970282091180957686729540566276639184428097050034951930304010504453476494323050152274529842840095052651280622596245000972105384228068611624863201775745829062915587764401271165607274930514949443842339912587794386180567754821382116158094580571398140050011517360937633287012765181467669803130966886078098573775842193473621278809067467303022976467624413403003591058731414462763825919810907349087360794567491108236207368048666469276430614294672077470098438852802541031428204406149820121332959878941677461442949484764632072318061038436834194440813697070455570445794288698100139434553492746189249413239383478666356273507585114214465443870299586021464288719404326999490574285165088645446724845776153619832346434939336746755323929457570388955842138571811490428915929440366957728132978829709852258242995363692682938166819652596224637363219731211224046194571683107589253747819220056408513812892509166654570708465385114834574373454531303215022321587139217852403489258023322848763490332618023720858297695379917525051370802875689324398594504115458093965292328433363522849125060388642118576724321485009890950189750722271603415420729879235678121399382663070972199390684081790203407987163094149791765277248481354897554839856483262761615688448602747610890461618675068104297309303925179825131602302841196979276606001705341974046695921788948685931760915269802469820599818805097228069584040380614581369783150395815052273485599026281970695144115209744549121336698909968805594889554181104450743166802755120051010365374502470768171687122937308895308700429948018726374996785994341212323029254127008587524674236834377713646873443217961726656245214347901604016498053772063640237655346304251369933339659726997123949875815672015932238324465883946653789508466639777432126520058664856364227818899456690108335347007131679721553876050070289014557087323928494859479714010345845918950799129147879426229521078888617807995609784109536474309061977491986467934575434597758183027705467375894801541577090846124331227952883467676335444585292223742227746117419887658072214524502076640453962078054386466413476601263391617810402397349439152995313797114213090687961515840973868546661641771401234947015184564896354030358238514106625927646375745539955853921821842947207352989126384033893692969118681368488464324674296097803884033186540575477609411809801953632076217047226848420074013322991352253140327144071256764571940067681812027108763389997435211487540532156192282266935274319996414452480424040649439105085097121905193497240586422173265484656603697646363193526123997821629176383434154365763773200165593506393582181504773405537430629082605793518354058569430496533467123374243655039315847709749343099165484793758114248587301336040499474626741848753602736407328068135603836114072021831184028968231091376157438940158484044104727926337993549685609786962407940202919986995520113892404976742056974209879332169804318615804089643958973499085004869100531927496050775536062569766555983881820165295121276038292653469291432592992906348093711349737286374870199649416594021644588713577572683067131398336200412526536161667098601444030017349484291347800372024574573849251226779221918120371893487348935146579976475675169536854209261445388733541066108022346942155961050636839444377223564168619082837730591101735189426251038192333343879450990554630927490008730039362403393637103337906878356558647393562635460818093283965405968799339700657122494596356559842143226615951857022150247661550184071171949662590893836844725458504480797473919371818258433219060276837960084932286425509478248345971389347035797497180154811705574647603194225313112048125642456944413781021858958772748620897701007951294321748372366136333524125822506782504737570084077798556606057245569417982082048337882062593221037989500306109199573892149305207240947697289118653962483237161098783366117279241694330082546472821737722166236190958024683040429504277618891967579666145578334070953905258798046217174573391245096490704928143821934751828703119612493207624789939093412444961621886941161698375336266962748373998552726178088660959055098271865147032993345221834768353271398195972056650282222043631605920124983681830579313008482404589440735934712299138715919803841494432632061896329104128424061869713492742423298870830439514333055661683569885161644674473836588522787843384719215768928881916110665928298936859661927245045057690939287804918685055029026836484812347823310727123945236473301535738032734100046717189896425958944821890069856457804686025529367774709451448594363629544767782767649001627445405675176286145684056749258342402237812381316390696917816358310193598731468877406291760842504800828679060432928149154503601905434303786617995653736842833323765597349327061089285224929380112443976823068459793951090809349066325589336879072564779372295963938633106595240074310338418021176935254468925823075825619974809614980230854216351215393665707231210132830659094111539978002099282634147814521658798070793263354094981685173838089363539687123730359230502219217735028532999354163522383524454489191429636769484408976263689364558127218961256432562505095166039128179427273534846975405172660387364239472879258552327973614779661300719049851485949010712008415221506169395694006315509124909512699328232706055540899663432410258456720695946039373436391745639308562700108253870220566338764696336265600285916890910856025025034888027292703295726601187306385967289831344516743381606766769973552152343356953537133556002652041678951276653444914588002929997752513584664987144626925366658976950596533683650951613503707480585047257930138069295771380088407213738486485272499451584138118599575954577130935859243505309995064727199715588182082368160057929742787792235363362630522759625297824996047491421863197203135833279617601577442146341602869109310405030652771077627201677412311184759180544011095152795118403639534542735924122340168048602352925647395828975706943283029564129702929578208258714790604811917495216335804001049126128210622055618120797853321443523008002120961297933862603085527933596319507911076738567714928270004820029282829301952829054857489525754127338224792428142895506578430548076147792351886328296039443247550641437691081725739432309835365135799904650312042537172536508769315891347621277625352846382683252077415932623736599569959121007184768504019706098940057114656382603488495856814868977617247073245382782499176953923612399346361139145294414027054247234815390483075790497011926331000830928685294191592153489272291871601597261971118909551112521377433314712723246260449662851215885484110327749216850947829733446464301470967244802275647742229138996608706542908954858928410070484738506331756908276834584064500843724874166518348404831492658171266335644355079387036365756770064724542035188224473663163241048204764797043285218101133484269259376540434360955661895948401321854648775774483819261446169110863364453227865346002782238495013219104809510882831759735453396507365735739302247977452601671936164703107343517666569939073986621210931251500683813146787106689447630991540638086022852348680441389490072631134414392841356297980603310978279817966815110378368133400701758635514675882881813821417301154668302368354083929182089518786889058060521743600139601285381387562109920316663110603085154086500306777874384462260221337236480462542703678590492790687882728828388291190992200165605914737987163282312484530874811767911562220532377964271538166127163375532527230165998237132885123281063319901844856897472225250685734147590617768669558810448142246463411633956842748318512697714541601808692993854766928560591365465806565483627956864612607040007315176074319949931650500379577174040543943089478614220587657402307156063478772653224095767966870318293208004073480965593167288130493101981336678599380113199596618099574073071693561142734697169474096337423517593885284932567290104873100288451956944684380037492018952934132745336824291849046335084327531766351875831252518267119944282702903366831091097853928999419844135016667440796025280812136199777223319586472723811098679033143760222994219790318775275884039485145035990735917035076853292420046725142934900280900664959326843054314249499842168555038871805773621403225179217135344326890009133696797118069958660512693321965196678535149211038938679843326691041190725653511964281736501333948812350506760881315830102710609687561640314542208033357732681738152631871776214230008860484098727298462827674133759805141375050455098790325310972947388858392601831354681675212238937198169398724618549395469483467854301991872044436810025697010368225525563248794296211215795158052335959176884490070567427211226967979334512542867132987259436352009980484441179710284386542061417957725701888833041266266409184461069027456274046352408320892856513282698905206936008722117111535232443331984747123848663745420616488454454454492030207626414046698707297519292685966305057856115245673472875965253545436407980590159952760940700215581096378879450386661537924770505402031123160668139967791930890788471161629365185351720233978232177415104404965132528992439414422210025063950461586426473162039640664943256038620738115159019220259740159414014415847554110520532522525337649572106636145305398973802035906589563789879581845661079557867919002952972751431380616394337215769365534044673620969909770602924055915254469169367677142270030925633559345034863486482418920672958747481917001572520107815043190932340057999746890849736110562096087344943122694458674676403205823403826672417677759352470704904207432715546066493755964408784644084191470291731123887576688053222845738330871006469977767119164280363083257397068968122005239368541597928688132079722467004864419834901640281748050177714179525454810680922929354394666184055882289464096728739868592085393686695486332508243823012042510108477337496779017152796301725467461256063901147605242063465916638121757880108144776738924459043911417274277738942366628556204852198938016354540469529228480428961916475025484401578696525128595068731810618545870226028538131052349518330666353979938712658770961240605522424401977672333699661181225503196708140366620326418211783680449577886761208444411723202468387712219483999379952481980788316550872454898299271267740259343830667836227398752221655831923544212796882962239676799077903378101204711416467469264875943448652534246731004692996690366757498962466880865119037952972424437057057237523475209968738728692934608420595874456275714555587610223601821142660008064162258526363138456856690587823051896345127012019562080867606533761110701967988873414087665958433432061809164435862459065526930327864630749570359190924183185933865467173519004684185653697585233664489808008958186633007365174751872833558254362309010493845946013357231265974795170051930689691355875103623419438705787892800889633685365595482242098151041386100165947176277110520558033401689409265367949894170264182573392869710666538469486670896457164176114600242690234736966588325976287689346846387542868107117702130303754735627314249216539855223983670346397391595819161514058413073052432039041257152957413069283644923865293945404727791871963310719326567100129220981257420146499112357528244038219494643264118607433882605961219811088648127261922435712380025646479295356521626159944990719062109216308540711394570270121748706086203988664019162640813381285248725422508278653880577931692601662839716257785628639554019288226118642334274833372573771332626902784714118526936831059134596284583926409240894694967199892187696335796852722075197727050530469264204563766860000781259775667902952630625321441104198505152976609950207324669242395079317840576096018152836997047211651600801898915371625333869746069716281976519231463476582015898135016466447647547397483773773955315491691232445528499828308315397934344688306196367405343255017552114372074735650538154217196166310722814571389195002842106312900067275477973384794372061370743718650047973200189341487410163654298019345625187892797958226596306563056781671659786357187790459327904506760982092366264909880233051945944277687621178408772237162124787972013698556171528814146631284572409327230274423902381176516324872892966124480713476311613930839194253193260540195769581370744614773921532617806419210565307211703333326617415059133687600220579140921009504976627563332981537634165454097781332006897040799701747483084135696720242754529342952536401403620046005872968227798507143225925974836729303704904620916306469585985262752758617654429703472377307021671639887257045080651591346560405792593331395831229334490061608782027159423217028121088126279116628995068857419231192338540784745509323794949261110801852015084641788200138639384150544667099609647999886457935909800420727951111444495962763590529171552978267652770919286096542376992143546734401251267656424896696806951226006623981435829886069146672806459829067636881573629403836602884595174332336526497086581609217616372855970952745543097327509771852181671329455589937391162366218145546964488472255004890121961156501298568044364580008129581362718205908413144084607423478629090200426735722900063359198185380941561156954868810489018863437482876667851739305080170311849858519910121441640406584990281346739351598232006522645305827024292594544123796764899694298465463146755988354468632969767937321776696888343989928043951797992724413867178993488842133929138390055106430924778668523052459111964665645572076574901709367882544052410565392502208530857589896499933513742375413459810966758030154631551527350259860013915063319943865193258827540312590609099025141523803653760763547138448420661575943770717788664935864937256818287467417476616959487434476368171306180777263056649190697658457029904425006937981434549303309425038735046985117739773813110217089019095594828913026737682713824866326359336404661805902904135391772318593568056689628972741731710361775371053314990530327804525591716769919781154138613573038438250319884038358291217862263121621771794084455310966595609898779899417510968392343677834047214295971174815734024223227845813661164084507777914922381858983591845413534121581587750452153914851592290700265355877486015100667459043807037030319721558632136221369226172373406927224676214930689271482387752784740439276170513147583032737952214668605745556143697780595786483006416899591579773977568288983358793905721176818510756250581289703115087307744126313031639176740184260062316696307242763144891319084434076934899349497387772009348327776126418406112776671385279735484917310605766464199241210103241280483221904241199283912407882131593052513720202762757144377350289853706841319547791471555703034080229124880069031481312102248706977513915607126943605481841113490116104335184622584501214168226654276967034782792936055529933819030638414621926467699813965284906002599206111393283426702685894564499493205221487739931915045947021243678251011028344732528374009783947529147970488770061914794933303463026879509114846633770970899489509157816566898694973363957524020104646021945180599754426978728744893917324890248209184575559366350215524237627965816965175994909732406124816743061372582320248916965454669948551300525192089895909972462289033914180604995037059972656176754093735554220897455904300903143185569780042642610281663496462414940137497849331654506898720564895165720851107385673235427085809636001158622158394116973459474405773594778982410739627108890191117056637255181708177702832864337036237017456671095801896912108296767117254213232196226184421682410259317467252550681034075079380024913928311505363561373881146709516326719933692488369804823425175034020942673043133168460925603987021000865711883761664517460593171242940549484424075922572970008618027940144020822406742491086237339081959737056274733733510343387159167205399507321766919626128977427580603002938590594320170152017676536400715208809345971241839325357384496003791237443980497373636992005374064472157273700917075316011115092244912226180999781341965843210269172860455663174204366166955656146877426699957375543816110457975609103582770004473411553655182339156480119466778784717713860347632180036741806273586973949156188439884072703140376762017376069365668329444353940652305412784853374077388437839564321444024082847184306966285856083028694607180828852929572891406251045464665105287243669287738012574875824430162051637915508840272463759145216152166673780058922455183020048132584350383953825797604278777219852169992753481010621196227118889661349574200198826221730501365534949223508161229994787255036127830388833105039738068546656931241384373521703256938995515394142983510148138868384576750905171575652641486840225954616122740431811623248517193870387562588612866041174172827121143255592676096399059003644519150277133444818018411402136145931835275224385760418727665676174176966924041108332848325041475047988724227773190737193282592525832907884247202119468146302152281060385212449403199600076487143003241559966794793487113555332833674887333676124750341042278870612902349350901259436136513463643282507399430095970176021502403616637006780402857403321015893464085011558792135717770947636254847818020011806949694242735948015135409470747152709645784265354048603350883815972667963266501078680798061235588061837716112645742954099573943971831883802105963609681426799170160975057652411229129364840302829821333818349613949705221025655162347505904878996658591540812147129851870064537345799241448111291484745616582882202095150072014171356624912852635386377200814799133547468420131222708885003696267931852034996512218879450664294141190505194752845533201305342932484303756558413240352322312166660252432830239086429668380262552975644018302729231392460196069528898634596046757406772378798413372702085549843355047513427972267076578559689016363164408457825006559315852492026981942792754572504702604138829402635151522220071858786688313533423889690936483908426708033819465462795220392748306975807929162380322608560461158461042286860861422670719670821283695308880621843783001525382716537953480028622005166797455166390265604251495451025173992453080261520486180655278809268498263818066404673411689711252473939070590605355436735927068992730872733104203921352452961279720929126671330916966014375865719102539062994412745124901825595210851694199541512232187963757735410449888316543580806900271196543091071763621071768032208830524204265529702034523286762903080567471328036069989896229486561193636978676806094217335655657139893952413901842545440145960909781730987992735131553769085955749292801295637162009470477589903071098100818296624177006387234561051882373843051723241537997457503858438804271560809972527177880324916846166576586225055205206267169932737988164772072915232052924867927137071239276061660726439013694230032517754645110609269563789902182551874500346854014124843949459839255781601044082716816476552107054841508285725146584040609551732587446624321890860963468232999897036602707171824120533081686301145616557112092837026106349295256973798562110508793135302061205355321503228674901343254492553971275782238622353069070528908928849675144833781865201217236964819718374094525249484677270228518064912466388296114040478299154136630659614945542706993143772457602300340312771584779768184587036395310563852801921852499069639490916129849573208221291456895303089384177419606640253448720629119681467816725968765421101430792647898721715666465558879123814877941473044400156652545803590351518401744696303728364784033480479193331614279927574281706257014228782315149355199966224180018856729794523820713945389331604614673186495352913139285487987480773716180705944800204189015739116558098845986573199816580241113037696999825654572040200524858609462186232811911673141652567346560097988948722791097023489057895749100846253043410428263603487108551862153198096953345004246850837697375082918542842641515009485074506766368789396003332748965422170985914019563787470059793505062599437182004349565601364066941130949842935387505158844527894968366479055154285592169968764696945873136714665251345084096559578025840120980521056640969224047229441593586452788443850656635113645339453392241876089349533097356205978447146602397072177350760674802748841526123437603465264897543662172917650532614745679822757162575946221730720495293370125410294742426487264966008696564489414428500005591388413066692598468856012649908883579641821479072182248234701109581349377761484723539080433975811320728485091055171190271463803729151208474516616281430910125904339810002856393283572162735525239829054879393330797973810421249060566906887027193988853570646899730064177795565572594365492844215590955608681528994075053131736596739598993078110928987277152723504286536716077533768308500198891641649189834240697826500743199100360166832858343324936298716231203246726862000481327040758472900139497651451396697908477263524774390817979547693420219506715868624016820957945625860168384792637973345800544656861567659638541502871952950302814155934075561285353035449227404878610132053426899051282953374915426085747679484634005772613952188744793556308432036670807536203718828346402249198194223936586792016650520950009042642662168038663199182083964680912013178179497633155495987837819413008966276125523736460996814532474787298349243483594777601123231746732734262173299098516425459273992916686186565730234950165246484188173575412564488259328009502728704389852419336089531007982277644027311749126235038411649437314192959109364071255375674180617359916179610542173119969339096690621050006294794269467929883672444557388119919165570516138061522698515595169803145658013727332639662183274825152196809939395443336226037199132471808815501355855970579892540212186099500924190165446268083279800246049334905280944724723887824950149499412966118620079169194423055345256924445181307866680923141215814271372774855850532021806368823879359178118899882570863765374263203355157115074880413351958221606400485823936304349076318765083304061261874944179909978144779064869327555476348638295281064765567225979550992799686684529898163446877571017364876214690129517297785560435552107655492478805752598882163576110511032198967417148087847013962479335394672888860843618643220866489118292439121281272503419051505806474223585775871584316288282515367217373289578037251327698541151214714029893393865813811091496959778545133257911084148044364657354243218499232060111689036847432030552283472732970648568202804345041846588623180996676273457183090452394166344546323493575353451708923303148241228802445219706938596629710433484470831559350853058008362341063229169244923836696929837048780233245320232455825635344850201609856357562479236895279804397276894521062606404133609293038591884221064905181850915355065951306598080711368375947225380663417266346138924701114435164801417338559613707675040983721182690368866270784132142049797697985808069686355093643504977812257208845768907813175538992875898845735074187109636072487430850387892989018898774111913564344579967469252740520582553872153652514966459407617946222338265791413849599719456050837888652279779295497944351241142554211951539540646546190111310851986971833632360953658790434069060639741781979908914487431966481896459448982430170698217786537250280050642335891807978143360293574786421163077081705735682226993736042293895158452669725432043422543686551821306620648661825935803465552725990350374604107791629519556892030914151895882106747070331507027852156972703120392081447187815619533872554509501394287565853703352436850690335677907925903846478512261518063027026327097823338371705110586546090337591245517749409969762195965977776057892166775175949523013313248985261099689359121425174466848687647251614464781842501709780739169516582352862663380611766046816409862789291050984337058072651015716463509943420339496247860161401863471228972960171493859746196189204335226312283724252395451743516138404426104469853434942579666186276386955948770684285985946503218816724906774787862977152989736883134422342119864753799033360067715991226775860958494304439481476546430511604719869456244555846401828301360932452537399784682840814370050093249757605140186981824423945195597420935323423428056419185673320344565242803768108522783844494445519695388710612511869462546033279798277589145200805263214214348155474363209996394571492927433876999267940233887338845330389509456364011409779374952349981855997191879799692092480529066620087316727579293139417665610593250239119653965589433026016749236862727863230376351697611487698340694173465096841410404392906729437038834657352741225571095100913760048901796772879759632618346077910078052708718858934833944758356654211350157921327745099454242824218287310114645915292730775731683481938492687826270918997556963804747587290828394754975611324706976743364467802620767858649197422511146653406113910863712473419614343549064077073901666291620484144784216600096489880966702600811347862163181838180130687036027407502679540682209501420713672066918973630727142351096548418366397045906809961794817226177677026911814661502406893510704142578169426001091923167762445616095544600990633729162314032080454976707709200785529613966051871359047420489278132849009750954615637207147778499594251720109905898161098010756459485266754245910532476106040357744004825583193882935354228396851232474672145210567526849409903951263588020915912903689390833831840230962691604493570590932150125543945820550890756293082994460965806197374765711836470924045404572877743537258190414541769412919574984249254620001559644221548211381333265728060226216672136043832559363280596703210271457639706690177644768345992408199802912159555335557442052559410180009017637764312481466112046890613131555171285294881611536157666214044651031307493476542146190669635445593197338002440023776822481641678357022124031804051780715122102779224682423380982535290425795452108867605049010430588756044816841951338891084496878453858880559921879856319119232429141696227545879055861731585662681773472433770829161882307710738760508150394086734994423893310452604348723833747299671226822265723201759300127656567149016197524999073897348046335186478130908048210994775277895154485324144125468544069741343108234653464826093732626091283252503077133343461303182751552535713024456384760258099819781761044691823045609106533076455669450090407277619995649083473111106253648673503241467925058320086077101776605297531733430599240910473195925062286567284612176955979243395381987002676414947223148034505561714142974558674134441911641733522422540776533466708055812890475830147049217855480722940569469537318768355546938612317454166864097607356913580484847991901965433912200842405756309660187742993642430045325007924157859220745141262076412479951770832981728325137942790779714889269691926867072556245712449662118569662777516675771588571236310257382288078865321914186735419662704719616783294082188311691298635445004534422780376357951364681761448846212175516544399985572379077211423636150373088012870937777176438502198734001296416082595558211747724995007970054411529120896028035197884621797462942105191655758323896833020545064715406070337750292446768361058905593487026747026920833907873980211385064878406502694687552063799661753382599180113233450922399281481669538396983878067374364406116376102158347222403846621335260287835831534333259346173451050985848961927047237675230555020265826322493720662554884670520325064437826315077632654722411987649798321817560798415947294486213438251112831320632991092308117282117312958265582598806501081025029418880142710670980405366451862157085587108327952734187416981265539878461664240357299354257510101973795407601248245336399238426736373610783104465012473154476274777071002421986083403952762298907019532760526096439614866365554661539528671768975703024528696257236157755522587630476194376349909190336169594177157530329959204184483683705587233120901513983817800335698462249736686962592518335660048855818901591356553416027133058316418348205799876675627947941022095516217917874705049321041912629779376773906475238268277996159150800569604132768398955497552448084721960659931062173405553199709751129059742507234533305399079132088461563082930020530029348614778144893868567886830683102364030906417118275440608657249228272686131019071842123811461371429112175674977157666230532233512305428094248828962193558341462130941056060421698162682865976873540958797502063279554715652539595071955694972950427860885884016696130526416301182293345611067575937871291767531428868358994268072914033814726641069403507264756551864438392455693985042734513175771707400399410362441492758063124244982689246332111083441502826209682641469961390115169986456137034603147392346698448417385956151015381355999385676671485009158704616102704263042395563707682637947220721503920674350676413639224123179854624395790755449814026359662502822664518659174450661361941400083641413983238782846844292538106833509743457805082354453496841307676464587822667515329581344509894123291221777240375146826959256444454641997592315289596271713995505780816129964709873612051417065263502759126025520667121536456776006928043743245953174751386329405308736530232225956370188963540765646149987718775847653054704989236972390441474406579526452928402191777568449168636249463788863990682822673291711777549812887955840367102273793915577346516045135571516492907353667686986969131051429521548574044968779438073988495087466268819948782573342307610167206460908398021259348527776109371348699909368464404160108600399311110995041390713560896775103717675427871331714789457588401023214844630616321348236661645763209167617368325015436654393757108046469934369178552910689146744384813079221682720563619235824763721509274344484609453152925398387955753853026790008937783081810397070738563633325454298118561504639828663086022182044094458576768786884943014270356941008342161398049306804805965657834038210628656737398255239359120811148946922572222200036319746016028898096450118596482457620444032895063357755527482184660299113499417673068530580518236002560818170196274188404333187265349080960615735232673501260644991624087345527853911035593561291536371256045539983188721320501368633762227859655216558030907355582331622553211308907195004184945853738360586883685063552185427292451655323914312270509007823814625512997853180250287161673151897201707863230922323539267514065841394712448405873831862826837881841719376134594669440779893981263646032581087414384443403544750006838049940519723619793103545592034711427861276252261401967762901879237170805972874232136111965154251716286329072653995386344310260540190296233664240793186001153840375513529111254760823390815921035917580208953071525562904623268783840344708250531068208625807741790050453617494647961166466987839433453722618854004359359525223403536789730134599709705120987733241030364904960566224113520093655689881184168219341622710819876842374268079341111562985031018328832899278991325047877134666901964685786435919479227705042378941101024621765712758741502916383553579681496726453242024820132535291667212251518714509487923929907546168171977232734543637496735106749468381878891299154970791813864136132171883575752721950073545084410678144835429441523316460081165606561867112890080093371511412778518947359289568675422016950686039756512651024584015959020692481618551007960369651436499846000046478126014121263203193014185188343568572795872904208763994114167598247552920167159103095828509829269307354526111588775590680832227983418616920591239146701630582129762482709956266108043424764411616154223660067750285287962410655231257616435365856777426084114178355589227509085287651080461676314929241448451278093672699630040392224937275836108161836360163788738317741335803661448141539164835810690695341716314742931995665735723224050204715874740956047845570593688280114913128495358973715855062856213692527091867591604144834607200577423960805065352917035845145853185633082105348836845877548725246604080123017586002742676109852259846592304057690978328335650946515228702089063313886303596523768447121253735965335078039656949644804264180532447649474230192352097424639260557192353731050884308310605950866542726809770872339766310089808604218488803558848128852699472622503579761425232357410791196417475389761560786358830971429884602602279527471508747714949962368232380684635586123119675798245716804457614508675480659608022284432802234978530185016520980806388813993217272663957555563307322510755940782372602235234676092236231205229705714285766546245917237026521607128507923711516286948067719544984956308493578810945201489648150794776865007826807987416590760949344000691423556137340719378967674024235693294681460759733265088865250953004381476173683057593711280158188283767588790328797313507723882446799893550852423127363882116405804743506584046535472165528984282794542212116003965264818953500255822823181071220540276336016257632669125430028279140383189921624384649022716644315147452251079043705770931272561866900804811659074268629273782629416846563914706311509276183910395957637260014297586682965078584948215132916303790922953333691069156850455398312262020779274721239606177952043742742021158457568866431647006170715456303318709524562322010496069970147723326309322355630291317656474206373557344480674621121935285479192338946512510434211198168390679646208089914199067787036113472267505586226711428584173664860763791379526176644545029507918696494059590182291673162246411895194949051092218867189217564670740623964246393664258319490362508960936871020108784795428432796316933953298694376139339403159313057895057743252488333061737539452247110926294817663308765187559107255454624963137455034760019646672351952420197875426310075583003171072741246044088304686874361726517444519507188018179751272069085679144658721738874710054324627305281789195687025076563685897081934011476682936709807821944782391230501188983881401927408621568518906537575928768669818098621975642301444235791594089548498530173279583079870046354972670842314247153710276147175194586007232130102979315261366654618364508344922925073054903788880867500019583110865112539472612027861149281863624867412793626493116862967958663512429520252927092444618130554601773479445964575247989386802326914069939030275088895627801396397979147459146988596229543582668201519305094578021950259700765459035470122859194692785615644697218027083472175174200850928739802647831542419874737092025683637469212725680654517897627380795805071395371812932876664422022303215734984091497613475482584869047862897928489880421351133374438368529203569578615054721306163838650609149558248008139187892322645047207620608849978302472837167732681454762421546114616299747515652538702170950414070859095423560502589760625481316055851248241322773625775094819721149293865426493817207952169098822403056544032968409519366586307663706863400900010074914415317840583030278862586129608502724105741908962679982891349443265508646615817068657110936662495019674793155773166013473302869358280235023839475832024508750134057802839451063685393114776573750813441677390933538774523831967601986979912375447819809287428853969335818620481340031650069476701897993094617524964431408363343091415395411200840766536174975342546599085575199116266427922279768481517865969477153714508792047919170984601582233135746896481927753903395750908535983214512323943257605071059291574018768583659690536333189019889567014099778399803471407211322570479372576988888216277417664706822575088088212379779549075681594950016942891114906285031385661328346243041195145992522387365565055298090228126124700459776076888518830275730463160228444840460998031874922449887559243636734202442732488138479336356878982279195312856600310117317758083433001773561656582634609663583068429134865816446736832054925996852735946159115836054111952016733760505037013199081993462465319551196391884748084428480897785482588523396249449793030068691989899189243289250493565110368521461512595117256048231788530980433415413893927450329998360426037815487447816219008838606261744442945159280915321551071418429875284818440722492731909629266660348723015803488868184486379115624185284573092979719627464516542509252185262403103456883922288582778582461844837383415450816729131128596405696208635001101289966361903531269087911940547853072895795994403196217996046811846761632866615446773121182866517573690940560185374047438133879861555830315980218877349704130358705167640186649360013275605349862500018643426109140136209499289922601289879857743021141948173183327207121921661716152906626324163485383041567935260045974993374544657874685766402449392268567200410301795597421639204032502744158544127463608689034498432232720117057698877748800767422821037749437449302428940623964465914817240010144337257047327511108202829358768210585916282283312864067367184032562353486059495453560725442782727398611861146040960443347575419467655461527527936680938756471692738896009594866115256354074635761556173938012217765995699006270905902349243478932068295369432057373374647282626876281622135313990517603311710386974690689277956036991670284077213850968711848593782068294489866891144602686097190652948036401177230254111994247648884485422601180922081713090583402313455593696052233191278895692408094956813807083238906763436167355937499960792299578145971920785716898556259377590305225946205884970353685746225819189497161633657014578456682076521204320911891501402129558683966388874047442425631822585073248804196896126158065083278980273499805377892485761736996083532900533090748844158796062704711227404491317411957981471883164920246204346106284138686147263432410614398322102396885456237900543764063987750908051651356618345081729921292893214534434846626195390055046428164117612969924691114377434972676979202921745439580932895593612941214710734892108032931431406703441771199156018600561190553797635682055064719500347690314318378606200351028749933277479822455847101170678624219936470784646469830106321733052849257298523762523486724815009257262297157409264755404903822802513180880910486680421256740976716292267236420407171473284658637300934826962896804524158088500705154299382827684543143157945792065297640974918143488797904775797366704455493717061528878794723319056795410677804201453845399310225049837468836323815082455343231095946374826318389902233779278032885394226862203097317208088690422010936508427499508657487285469581348674061114082687250092791260577949675163159325585056464464737919982828198399090135370127119280716625936300453394606506435387995764160192083183666705753308419904419401825080461617471586086873362776899752964065514578479685669339224926661625475400111115882500264916941230259560604147362390419661168594446729910560533464985837943463880505192091559286709086585417922665483059872387063997801807114390992801168608640896386269661428654728695799302308127250519899067642175505832385528181203711352486010955045076013254611415390019168979894396173608952717693459897444724368356999191760058946549099036985760989655590184306377983366352339757596990133243072884872990374590752412146248952001344689004156421491259243068163950864248220351172245143512786340081470323098073117772415196931324591178810321289777269111722740644728104128570918788425426298261861552642517712483454701895918549093970481880637006575922088790454255984397846786584031378873326872756774974216067191652125193208312917752903639124961028974392189286116583956989178434788006109350605981572476400560544821846260514467664680837724139129915414209880152269958603413308511119335022108504154315316882233278840627612391820488114107327277597253426630441569097785467693237210565561752671633109546572164571189314260609031512841391564409582626261214284560714499258135413006164712017426488209143121423397052632457891656255066399692953053880654335653965127377017386047417765610325868252730447710714710836961163391676077450325481960779428260191615102631060192755957543642504097769988469776283557809477627367041854769258801290815917523316269743537161153015203141550179454943874311816588127731388317914612327221383797577491744502269719228275296855165007164336025940251598123187792101886466104403655458367685100005346585238609068259206947637388034865526858386723030367688702552347958918596500125561662444052286316561825421229920659495937008646429650282756924904991280574267877767589016811000978891848028223742912312484785909314224268858698972285222646060153654078287542692974063582571138807218327881066490904224491436237450356457207692816597875063757998493116917854722152313854092395763565897545435586928540379942868975876808528782304583844739359019757502911777597128350615057398787314157442661920495055513630269291012084195644253443473421328035919546316325303296078123078744270785844372105286665927157961454798740472466062456104164801777938668554072852141282787893299101759973043601475701994267993022834560973287243278903562389692203529558969976611532029692830685268101528623358866727642220556295094285111571891489872356065278102712222917524469553293218409201786830549665062388061677508729271078261257981528589162028104547497794658311527789792551328336620048055854837388922085049217755894131073609401978127337701735887436296508448317758194261073465510047257003864942010657395754072402799649326986900068964082170441483948221411983942803025101495262804630483227919919889323946234347184349901598184122072546693508141930353750010843092231219407710444767094231046025630625363609300265791214007518180190570690434848369938123400133086771962619524240273961139422626341979053514742237612163373600553448608794474566040881339720422374752166274944686894226935404720513996190596019795844650124136992850572519504161716135175532176947664392848555548275344497117567368070701955775161881245777228398359488628906135131679132419782187521672060470320614406834728335227766392678382145994510306116407972256663939517822510964363559491110708013716899829968720344046257595226216068658399707503188896898615425764601408031603504657956454981821789539543867030261609011361577008803813334438863915272570778368055231368483461853760510442464411488773558234717330477650473869694735191522522093167850533852427399060150707384237317835755798302048209573544121118957906961151041041191561667487905316920888855319456044749877151892322475703462519665527923853623146904818149011431025935388181884785663749997788057837559167702862665111017436685189065373728984631829748940841149583283885531579369910407810160771889999928610194112023063031578960750127268059113880774055529716473907003632397763677395616345194445159792932306789432596183527874191984250559395312546393275326682303346505167148082673089664475037755586509393266716156446832377774226830479684143555668234411649063781214551618239820416701750840616691426767945824744003500687346629699637897325273097261415530490572459445477624166613614065855375353670166463871753768716302613053602348558369695485883801132141022552148839847500219434512596006317823655501266048035158486107235019461251082369029898330125599415021903716349862475719511185650833055508546709194323831688461920426014552631234545959354748989358156924974920686995964266630335196238322815345947077574350278756232988642058748239608450463867413626834261455307328723194372075230807772849230304295026290042107223491307000355724702034007134518738217010578272247833504363650470888747801462470663307595394714889890580149526202339286961953348064638420642406034870311304612899739908472468123657403548063794207838086305999989606810410422358640321894555809860483627248667153805093515477399679996627814694922373869350432338421497983085074918057289518220325874707713471012871053519813320182528315066974428441437686995628086457647100429125102495563812205812965983257291715946340310440506037344448050835812456652084787983158248282234204610887542257963623032429444447495088325001753666073335938213646961557355590495853776754536225999326423858518669826197895665631944546044123611866279664576354802705833539535191712687289158692056877794705418374529649546113489637099774953344422862413158375701346763778142840194162364954927465545145659446272955871864179151881551096866077934484554139948969895407681860296904172417489170270878732078417676170489300863117780711685091662613116482230335112167340770650283013358317700624098646762107155563076370087738729531204433764183154626087501675078943041215867499704723440081980939364592479197843662809769031366754008934429127035271656887832877479447043296656990609101118365955022129043132451832373228197612150856924302729520037949716652512867364739852491666866802862167064236864093541206628141039407521625991196310712353590733971657296409811167071246711393010731480325999663271153387184396483124569027943096136281202105502396257000138391419948096236658157945860461555486273925875445291521877836740089696549838433589631047437072627078388112448518875513514536933462643453120002357957671907047645787804271414531933918253541044817471910140141175263928420290281080636539103634675241541645641824824574320767271847442606823169982416862037227139809263090204597658811688090102053153033828840178193891664765343705802366538355957505797030546735881122223171236167597318796889747391171333717746340401424273456367460351268315629389936105210092236006107723039325938005408547157684358260742921313723729830424277849672527223910020637222533561279099273444113939788171841075810462945263733923923574098511701231544738648385838974542796890371702603597804826237782516111195120750219212351447846525629455412566981396821760533905550926727885049163935088515355448711688596162808812029781430546242160555902464408426525660482834167153936543918285160658645109332281630540086677296478799582295858831121499798996249269831318867043640868667990488393454935985096431683695495293280609911602581276008907779555209962846360582329975176566215065283811812623413462343219741851412061565937949690911305124880689706305313647589020887778470611254353255252196739980390043961988459662715752057329177425670944522779388606346047838250074842021777329346485820756366446389077403140619694374833635775256044991275758366049865575671775165990841135141296789287533108660472662905534855812292823372925970719725543932775163563516649986183909500739633488460037784600246990342663883188892756978463802602385253754965218523941656534545531466819294593064045797962644232413646973854628198654037196238127712546313797542956727721497937385649745656457777641021574424758847573185608925428775825442505418443905533246315383809339510279136716725832093519842334010046242879488125263389693953403435181399912614020132305757654839292162551176727708037517518442274272467203595465620552941831036857471299415729397929176588303911679174886038594542348778868282053407617262791726038333776854022801577898603664612731983079868009977492333557440925005192920549797148940528801484306591783243626466325306574725013000803366993221560038118894877816099038156635833249107786318037706238668825350733013286179406622453020146434580092423753831798308615364666092697634277255500239685124518887941484206708594276713271395012258567846092919300195169048159799279907530413317801998978133250901607190202915470289951654384620529948368212335470640513337303349839703770218835665302805625261937861175933049167590308879561158692492050266997536974031608488502411415054251694486416931251365550409140414640448955060522873157267890919755973854390891032612913985965729993939736814770147932068081459454480131796838443587918696788699695841116122169935567074377518028808288278191413012488639905888523059669295534491189000797120016999156041601306661415374676435937562679428326026278923036145722885067227810953355180686556781717097305805023670198849293278173101853995347476860846937843113651954939315095393563464228318658330317932891975731843911131203448992625855521413780309726539450241570685108169605542824777875628665661758897109789984017606033075620363943906456707922071443476601064414625349865813059764751710552987871217403998924781189373334099796464628711603759061520874636939401208112879937168175079500653452416555493492637222646316183640264328867698554165587632738438219731520963050788950640586425689237132150956016646521220067390746008981069900979548968454363150344680001965692313142528260742191960251927813514188492078770162204073618350446407578554731189732291686851878766564981425238098482733049541637817580708962635175988681790515912213776662247762607993274803709577384902819160458265465173463474453201717833357779341102453170608920565195226440347519109142471257441087394197386342828271143821890513256710567068992513789414866676492551715128215279254660845653442878114708193688807442581335603281867548724152771788326966464528148247084132508934146311696823652908627179724293941688612381325623676840558809153023389829622016315418388161806517948233261676072176458774959382424731436696200051398374021600854355998032523361259170325052582162099960322114853869615342511555533238455409680105873656177629731070106756342023458638074448880126872715656600872497373635396501796441033279628716901016309048814961037509961260510957854981944366875969839997304939130683984267639438837504330468537446048345677260947255305407699537260017446559833907513449117491323956983412999589285855309356693580283660426801928472379009129934558218737045485305696130710688608236960225020404097447078650427577411814926665369770049916467867567257143922784783763640225963642208671324302472800007704830131102080241394269013916277944137648175191184083101959960744349219484052731406231432405076144046687264135265835957993282363084388106099468140275777188290684869491175463914948989190305285939164366994219211287909980430888198832482567393036185430967770462883208602722160288897821128389991189412973119133648765883358861645122410272818372821939011723430399500348691866380497139525706144846783191351828374831230869751022356898983362047498365279916117046165915290768075945018500660592710348598889715726551630633776640436050052476179460476360567477480333737152277350716263971136764659636178514435662338605499830067231735062661326584440155613418054408501626406260939946360823391799413399307237329492179447672192304697076539207149432095886926233121281020923331538877700521060151978498106618473652639093045982725644442470881695390300894307848051867659278169295228947509060172248764403951419599194771294573315445001786809807100386854692370421439074293003414347029881884147266168417185699942147441265468400805330354522190930408849710307399837182054159877858920323943432716548510946829682938111263087975525175837496465512256944136355716826547382632731975922306966483049372173507369383612446178272176199981932052813150900250883468232775414600754343009613981707138420208215689761775141627513450544003649165541942904181242842516108372698259770731419557626084298410265711945549454949294428004425758305815497813623951243889205838391582968498654631386483189008574531661814931029164894642179098868029906087530144063032953836573413643271864316138220297783538166873609655726709971828041642532768298040422863271761840271554065548753553498961316048621597725401370265716221906729237838605792593196731963699145184054306272067790814433374935754880646800180169111560649862505786100305031951953523996946537203178572457706310287936572014029825145637916502410717375581483764135643236957227567312773788509496796225833334261200800632679036081420996181152311733765112473660824553147210241466372751472272732306089281077836293439656846184888287614992723462866816854983408274339627066727444899957772264922836429981448904981636766971596823210402321765950883291774250356814327193181879564668179369312746136464919477867107165888277881961188920647816977603924047900341684522052935337647824263212781791962477759417823212054699208141057831185570383886563784807619596095528570575318146882708274125996063050165660247660945248350874124041897323293810986963694306606089583875644833181733439426315207864217856056702857685717943079448245034811099679781663772735185479036649625647354927708526235302834535126466979633141959286649722554933686832964079793433826359601605719892230908972101267189600358762884279263383784639074880244175971193736680141850593835432754023084126541589473628382989155007684989836330475858846653788827617421469583798479036586827574571697759845978602201525055920752937627453663669301195563062729167423967708244388109832385531728570323034342461588442973442412684049748452961945731006298879926581698668549180723012186619785331516315369860395071560743044142088135604200701900222254803271616157039637245001191215288722908899992940441362333278069295859216505782375008079061915747071786442643881836400830488427325253216386642748679351419661120791045900764003793302366080234613456835201853243171719069825443120774442117977850489851055424999119606037581511681984610674946415914698839907418725445490936583716167971779704815445064442231084031867015053799756048697457934620528283775054624298512750548712159693657273718337098317892161066182451241699062968229572987170722652776413964023159608342586594455203897600856948931411839192247529245199429197672621089559071877819481754652755017729942261193405354688646568769853738881970851927011766480108131730901156555233191966747336617475847935472473520774951280841194162517577151335257431820435859576844162018392780016276562059790372801350311963393923573100507044946209773167745836462036546173480533451576368834563676761606926518679805066528811223053649323187993827422708159468060534159555592280295070334619250939876938194949207159791639644715921109613169461203780761347648651538706352824842661093843549423124915344475787584789577311860859371657893296931257752649451201344114496037749760626315204900866130637690328881973779720521801583454985764232659237350354386704122455376984045308534067036419553398820896206000137789029761267749835058451449163619243806331758602182565054433875039609778421491388318587472357822721851799043663350698243529228414325281739648236349029074728714076889217388566959581607363998271764246298060368944434490900455013018143904424616600186055745678378609185857947711865045760659080365380307714453739172455655762600887348960665625176645526380921098278073443188020508654120313876263139867851735396665575859451952847565523344876466510509424420292224704945069468222790541977759951192253619766218584301943596695205836159356450787294854164494804272324591918866604064751270581623367666353848530493912939249321374126128282077072332435038975624680952213040890130994616803683710535322502959287443161146582611013326784357120533355621606837042187477185893266782573081026399486783509492084387592501362973501644076561147017022845207572764191441984167674505596877744650037922992467166261607805060041045965364670677490358279580531819989523145066208013323609077950090210339575208002487409755236505927178919865905688027725377638406297146789233962619622132413078904643973064602907040666277594905133414556379614923283327372807096027936603367379827815604085149458182718246952525840681448465035700533271306875515194725672117195239025065587133301323626228616981758033779036426525682415507205323410709759477006262843709971713743872223191804166222457321645150422774029599472716215435227115046166512859222123050157267986522939814299148664206394389352750043114183809452981687644013952707819234894498111721610910365006834126090637329962640166389263906402594454681054043890703547302503346904170642223235816639707297455785624265454058366955313596935181419289790909560765923516590528492941635471928416455593729347487142092043249918043431668483621069577168002015966422241566243589329779220788155673010191845715420953137300998653343569802395759482702778143666986004030154735174457855414407713109777974073174798082233361184573246803777164899828388295410422573598756018860546587750189849259396333672816593199813907118605913112414566317140317220775010759845006106088171199501234804711099720669139668912380923236234421790228623196147950176601106769695373271537998877557947988850201165180293518569481368309399301469061802703839846241437953043397035762406689293944481565938828749446994211210828364549236244697090409383005664659831983080915156840390832956157969721074082212208640781597976086322261018868977499328548456911254728482776187890414810450937345995303683821954954422195568933264207629999179970526466425437156398553619625938762087082904372774592611609938098227634159539302503352201486029419225449870829669336046130323431188502866643420712693604879267361247161201481898875581031257223232691873509093248302114906610469858036577928712061349649190046787841528853935540306092410597441453518017620989633002774821904055475180316358791069039885475138421933218148686738487383925521440019358213419515606688248757768709428797549864325724231173925486028904936474229460189074527417204455534665714778439940243227901469588094499700187348804540629908391584774386918719554001897040243947378056938341690218961283702326077436804731584501551313806004077379317253483943289374537536738812855788660439672732342116574595827521634207786648330545626077775475863328362703028379256075664365911313119418380422565102239421352994758481772962688902477295710454236291650996036690446318557510833439623997942975969097925588662204793312271316858857014045318281995264004211734802636342195335214712845895443724602225302383112930868389960213386284223607520487644437596234805067751843228264549252649580768044698393999065052765099289604207710715321088335931996628340327957390861101327008036894475643961490374596796454491867269681834672306616795734091934397364052106186937369162454940291473318663390812882948263916866045172269938311494875504013625624184874797044580544506195611401891810206992280637593487213507971093736850499077789344210911251966420585256456191148450882599603997210581535029762891405744777526875491169210108866840719834424714012306743568294781867731966937092881236414182282851851245002482614152973687341462207577597101460586218205876299065902560158282846061419127236960198750435680550866355307356863868279382229775321428523537744669450703623262698999011431826708641071925746142312530060869668300339213845193484346405920261395214752418132288057440025083606334024801341566126992968726974559455605595612818478108861464707966629996009267778062256855019318483896887386650105133274867685770280573491700296462907608152994300517245204014521555993045825007846316572241689797977590678311368031220525044066619998885419415367157829641106397700527070285249406266410331941645180577878569106657826444384844665486006751259746795936405670705674229371654484637401582332508577973731820806328348242022437528430168500594363528583194166031929272123928433010494873023336361179190234980412398604547088956325996724359362401715863549023656255688507399184890368182054092695523140221246429296030366783647991982013932642514029001241652833559748734976083848449175013024699948407516498621512098490554477943202306504240807844284443179663440538017741881587513597519045256861898658564741733081476675119476243880856000088259934355948700104369963363969547845647082757898990537290425509021243491252638329161573994806767155620836419645932070571288417906546138034021533225880839090088529202815577718429533621004725534223491326578562614918817724006662920109722067562575167071312632094167394926290940980178487157781867375876701395159060110576530068766540002256029459774500178888098719401263137303594774716240772296500863846554839428760534376805045152724781969309932409399570512595729241325638472080233641350180188920510157100635445168269277693714197394034808418465981746015879800468520144582020051825073630040869419157654126320219594512950610640993380097617479766926412836192985486138995784443349106372461553027921462604139148591371323897934028866293346704786944568203784363860184659833251402519062627626108592673714943985000470696072576570612106984508634287335887013817128511087087034331682783323347839531350602925437963652566801186517868443923578394474895546655419969692459651358467628265838890969751893013377368942789370503443158808361851637304052417578519505589321206018491687178748095787518128517964832594508562194891711254816483082893603167769873011249787706396826871177149973316532066893577628243072634421981878613976965852007410824617459171593596609723909483614167108725000180784979766025428598028048976439005029619291758339486097352953772248867752143396028962471698409058370490130919940964669611825644568410249629427480670839943645912376653773184931194304182681624422076456096127192039580865061453548122977697985317740228032377888091149483401353322046828752097313344187235065190209872963401516791921245553441008074066519708841710321029188621584574568920413144145529639549496879663120623034051891805126877240452985547856147241562494114214184662684074587124670729402312588034380466302989004557755658765104644448346566131862171565980366495050058058099333723708528225797784863462482936008031696071201399947532759546611982448299601013538172747278663790891715049951502904592867605462903311534135476176802883891803644633954887372702382873792275830368128701322059145165080416134643130466141822307901232208362348784674044889795282179025353079106612430887786737715796964343828218530185344322940693573561532145101697757677700014245607816196925445351856537961302509821417460593058939643958979248632420041885104310910600906039491653247573284068192919653647176589030416813014446251019548672094195073330953860805263251933277511477299026463753175301873027916260457156574773344479540235003960948034885245071095925157288260264204173165682049616757741406062616688856848603320097157785882319682421412328883659317509801584296060069029549044120466725968819860955935230042417351489806683106655308216105712569352524949567225549342464270370301776865733405985509553052689656873283127387390700628621855487654171251688889444522240773546540307201968922546019534969369810891540733020404926786449610556034157778845074946917220984029399070517944087480714427309511266183825352358590082943304745741760430984743312843881412506112214087600940209647030677659473567978080919507837123643303436285968414604476444509589911161680705778232116521199262523930608791941438008864712497065718459316489053564782976683860683735824527604261166899853700284631962527279056663868015477442706536195574011181507023810016244142220985800460118020069822441463376517231918386092899110741219691903305747803639709827982537938199497853541578246506849734627110936185651916511105428673207514920426449723943966909387749469964299920613619674158184228200980511076432780646685954094641644239571557310922457840455649702944650341949777634820194160262845763230741268831014877217781823159383567084820039257044305978773263077032157965351378722451239041609257222103033107248595817600646591183118091088744409566922870200460592311042204711981798114440275064142079763698656621024214081985129779601491167750563772528517848643864387960357878644281323764719613066384255905412854876515934222807527072780850554265620258212105668236088525801781489642063509617250640997117447975921183051491461654386156788140644721520631379419270855771596559338421776128182369496549983740139107031502257758695911479402703421329460154803759198558737513916324180416927526900304130986521122978064739593412093015950860288888872897467681720286663777947979188958476168679125667967279761645845855915032998754687431552321915438957769749730791156439737887366045942272322063236556540011482221486701192734164429821565781304927554440479092300424871535048423473957979860175202403634049249638330896394253199040789156023987826554467704307349457328534365491354677716951919384858108612926667943557230404007182039105517524906260688809923827749631968645869501502542497429832979974546611968898611135056589805897155795247780097062988266546002926111390953672817543594862297334615620131076898893557631164760466310490023671516378838193697377695843367406413322548511801821357340368932695271118151126820914913528000085407410497018221216637628936141848518088304122327809395622271270442625653889528891328566979734510464036901785798881073384505410789665739418657784150041048924060460978339746911245914865341303140389748835403321677880005931522713604744536152288566833714949694574689953381790699767438958451811051981637078584136455968231620690109403541435020919228402266335820127650109183197568246788995563602705157286846962972137844680126208575807321258211061849395007169219505179552542227066321874624032536565757461819353528796029301603899123692393002524992357164863037920634386000365161336743906564389582890106227773559395929412153650846247592513510917012578401645034842970612322402823371701099297692338160023454724563075019931642108870079143979943463147939147566455459685917722350682612390048297177502852048043315408634739765904552326426754430142915805885282035948314646225897486222719145537489141263345376432811568882672449798860892536441376714197968554426702937693398010143324411404232023154213133595874336223169978700261661561075126857434566356850456200565462105728065824591485481463351231357771399522946595495866251287127296492804116407142476570504059163183896057587518488514435675311606705542396851129738538870395924120667530793703097984198408825343140390700061655697577953659622135060569445572775868078937333987943124639637443963857190860059568644422656505863400805850310959359254325386487641190549319540748307094809313370905961153810154153822626498480533025059261987470855929252197209359446553528366449364217355745182535658418715189283436077424058976310149364845158502888564781839363681886728355678016764346222731674628917777955533126162759486074432159466627113596707668571321321958241126611183298984985689601547448634160919305566406509861270591674305949883332492322295696502650428103685373655638947115095983220882875995095278884249913740973074914061456507174753652621018820476319841695230445056593450395483507470072595938086988385632325743602489236515319373160771439849597837054066920077190541802034013178534648946912548645598587451621678112055818090754630024176842699610296368492628012727475469672051654153360125296521981484513402997321484526037970028838932693401344055377343399249187586305270686378961718807481835593125168970175592723454216957903255307007849434766826130060249844523581415549456024892086258677125860108024783366990510289964490465811647117630849859192346602100362447690875835401869238161049429776401364371116620450972224502785156611063336910295053394513002660668318014609229135100194845592426920204379736300019814875343935249324112400813142567022682113700788011370920654718456079326791127158837600141757099747264620241033139293535579315831049142425140690950745724517321930262111387418103173650211848540514951004261293055238448792147125446541939950809235305999937668726227651226215698381402952454969066815949545423016794263414188161185933157125772507364569168110055125098435257531770884405597531829563421086781865176857689702179279820964298564238185395815269054355300040089648505710172480798807252331194335097457786666969780794890106989914119034903170367457916176948016328168113154433950969893365810752585819013100039288011861128849063387821788410285236054492864825864716686408440149452754090655153010775258873480552175399847802910499658082883220819873038127015886169289493250993834786314336352407996411892275099210813126046967139086501011453976358421639650781645509114478073925514807383474646733924400007481554044147739702537069643730767233849855960061300245645472606835311574012084967176238222428199581862161056358853398600497791982264757187804585205467159365909507507844620948331521451142883160692563806826395805974213669739769474851548846390952498224394696972320230300662469372655577394982630955368689634479715368044894096288581620237777123889954916829965280830454291176417433396905336103918934544091200793036621944753236432995933656038630327847525960421230203299217333245351743492420966381712809388268253197958476143502801160621955720682339020864246594437244209716364157620460962572632970815600635583812414855493792301676973144209221633663982572880014663781368394992050598997262920601961442047802588385001249149266016454885153431527329246590856548885381645145839318799606061618636443959069809378204627962101435750759234953964992628108588773767668119653089518399642190116238557069666717612395124362245364571758461137866716274421062304811368442039758202603742018858120806066872346676516171018613381350127971910814800120315884213960646123083122784091655715317357140173211454701399933058396229371183664960383184591377070242119295624397637017759949663129939707728010309139390168613231620162566548708021641484081381332224347815622580709786377321008041158423812382843843747430233055512533618563712933986136038914926816757275671647728033274754350309866911503582943923905680048657909417214203661836702644542176012609229426606503992399555430173060321157792930191194395625287781293053458806415074696973017156481684057646238179124636665734751968879723639204271225011203911415546673668251411241700616301349702112205913586348988697743606300710274829845369474626992897766162782778967910099150041625234683489643984054337715342420195017091299164059775890584264108841099660250263425657598495300566341676702949696324235858349317145021823489934187218449720304170340044998328276523101858345072746844334017088221308018294754172558124796616541207906719865584755803629397593686813590401752601999272824750622389243273556587474232143842062480117390769405693098139738769888085957577424259036367108738923793142269840139030494919274688894041496607211585188188572553107263711966008603187940324462267816463467252098774718625451958451295878541179023193000592613454133652272364879554374540002471152367449245493372760597070810980841737483362618877522260957998201077420185881865593941820101944454614755380844323269362448702907908249827936035756322059423508761822880410592321032166992186016842874844093922138254591530155111860541211384307014028460844289355216954866664694248154101346003940585091895372248269423742450177658428563686853309803099685505109531882117562920654007020740985446609438428727986814667825756014251431476388890643934599079350467714283171542487740917835059015280853323445706750024705721268071092266703546339713728045711631288154898232605237336009908669829545140769452162958208523461949852706842903222494503506311917844311896053753779460241220155766869836935047083537304226651857417075107220540782193632785742760278644542284557502616102830862964641515687365150461008940683466052195309050941264462160713903807203580058789420218257934433868051218287199091619169553533124468083637222935790931041003852230791557883881270439739147919560974789376690059317411724621622330066084613537059741994410813637836945984722278049414738615225303839229962016329153168133985292736806828047653867290540900927138632828691765354293942890569867490781643794739625654119367137509563924380292856651046445669845630578171496712796796423003333139891752518256612540629949183903007255363344372034320551134269559142458681440248368360691759560069831463868563934708573907224090817443504985055843300946009749888621809320180680540702291485494582573975861642973345189293670560329832678852288587255807200471514260857525108449339928104709475583959406684438349787235194260098695035962282588423096909345431276905377790422925044834128194551884491940193613428487624035590668511677155161198052716097052415594350757039650907564134704043808231628323461199052293382630882158298786267769549376840417393322915321921228202003584144351299531976436257106846621446831884951175258393947128100880603460581199974608279351421578093941893420498371336114638109233536053465014661432487780773876952886234743508532271915880633463894672668571157916116383810887341371111086259291030774203931185377752053384003884530105906006701382791409154268163621554684892013337596549383881520029953435088720025453072594880391113308713237497551300585325234943588862370276658356547720697711843408901473995336398643565826724487557136751611398002010968982128375216840658821419135004069062765352986338335003211490295068983393883746097570034260350115252023113600289901026153410056192784291856322734831688529452863176460016193368560060888924033944114037837319608847511356501827939280243815895142026078281538869564436853983555594457242555338545250218311059935997886334884071159690256931147642383806026590231797449784327861286152844064845017613720947742050755759870384718263593312311256623864060156986890892793133738147242497649001541272169797951119540084291276538696160255109243785914152478763734096703555630463112959046555191210470961689455311614812678916769480261115107611624386601331638103021909408426388852493261457976751581567466640181402991250233264961570184412546618976768967049034828616116909345945229002207339034120833762451827930490129406154560002771808394034296172092274812465531972369184530691482253129048646060153759891236802083242058414029745999490085142683830130276919482538642775645359982333643873640968657847773166328884969156494005355256124456143393346569595537085397969629760981628833877181335629560485203629691067399922109920356779445204361209427673250730316504040439972784715175510334543282749558003524812480709298002840288377459858777711258845534710877934999123502856595561402115921668673739812029304221865683237381082273252836475296683873201357880479467618376719090999325681075486822570347854377893515245346115399948577176178696739241555194499237698347493805791576758914000948834346479183904956611629855944817435163010060105064269824731663028998171912443877536618990351371100048984167907362556173535596865055382174960844343586683371262377718466756732398599684186899909867941063300369112088476481192287707329992175084224416258644034490797590478471969753329603686297855407969936487238241066586853979367981013341710391158604289354276002193249280469047917381129703570350810247271549319101701097844365022272300882896944929499788405451642963898663457045508394268996192480689375374376293556744530508154909605246354525440363517998376402725873368630671345913616347838363372633341965846647631495651807990072401710208879489069282174438420682247858026375075015280852048412748925051098609887352164477900639295489057158575624292029502612416544394526637236750703845379093799894384183934526611642314718180134894830151556538281807719288560910290018115763027308472874412114445706113901155303104565261674221811183037970803831356192294039947582838814841315719955425836484266899701754807962572235733619334238011449017312361245718731014980771806184715952552295845117696249075911418288145525322233121460963041592651276009670500111967487900228039565113619554665754907912186910683604797648122709481631322323659488518170456968104062443755535425577329880198942809216194408698893445743197493869918943351322377165280686518415105083241373862918854414478289416153889999839493310906747745497858010682674942221253973681677587218669663872613908533190300989374915729815321249167914575021547975944594246970199449052914061316907991607974445953508711488419029846433143218652444057061851307423480698923418398823024455019015851896876524343666800890519897147911924621193023325190215173555786507878340081892399740090361336068956878283861835534054181218941299627534665833049464480581476083720903490180991489629435106253344425356696835959526606071303262939542536690059011251503742371573127118764193379021068816543677057805885701467148353978348177684132138135593385861053416299504109507475787138745290608492041287405484814109049744470185531643235452130336643316158192874573855907580292107398331941466103262795007237336794817028638985073336749994955747272004617767010746905800116514739593716548147499578011453730870711443977648581934582195546573516602509595451902083123960553327275719629833541666340413419640415051891295713566214894725250339449502149255662360507225547146614560070432019579656026531858900532006820933178379965325872203396978366848806832746553279881825571042802327029802836317353064942945116524379159023786449639417408780238746206741273190528342597398059600581196524847749210965920519777910758389998458956398003582181257259445850131136297414152302266993119962857037812962971725991541495014564590277020927016730298543168191530361703561978234474206094150426500117724719018689618302496805791599237671907791049785778551770932577932878715426235581381781051231292620224548259858614460412132646771845111783661421502718915597972681936213046270750705697404992889637997166333834887665218833975261032138839325001385074832972860509383924872290686765814723654473042917396963412562818195975387977223047283921829867073162127337889639676097054303290245831751161170138310114112060098928576805624622433329893769032188580508311452097115501175822159382571488005002815638891368764084435302993871545142845832170189943298578775779854023241586980217140252735769100378876187663491360539078143013744758671745506433550804542030412337569881347664237433367323083216382208956523087466898474885001614194976784561627688929264778618807446107419045435764953199242447892527829767641757139327182260769514012764255478039836554959244702933601603595684606592873063027156323412986471999406717231000604843963258113450947984648374862298368206135800633309828622318885271187136290805606405451624199202524754457923529482674360158362059688568353101909806152797980799598408348062028241032375219884682775104651479664587449072619933386391875002793230607883885902583730115685402366594453735416674647267988588304064998217301196099578077362381097210455363861159247670904945396860209819433485836380703657736970361819244368480016760389285791125267403481440078619655638276318231458264804247747332380397828993141755212826952575525766735856699337268770970085111924556607954015850730431820260356647792562501512660628828378662730295282699730562733039690572067349446495589660564207508103113723894121794292607565556392984939768034597377253535872167329548368735400927733160815831676139647300160971728839410019469646770016232231524474455964095131073494738553161211074289542764836718955340062108453070340116643623677331788038832986975923138071504438657004035079119921548101120859450333625457784788425803427443087853646706802318718843740689010075526244330934906639457614178096670480477612723958577550629885647215286933533830442450053266250494583590276702553683995788814700522670826885268332538905885685324567262999081288377239411250856698520895677083968430618059498536181873446798839736058333247757278304728106028811480437684453686771658974794549480491974153765803377770506907527393144863047908439087819989201970459395230679564133583189126127478215260776317175898287151493255523197034128522616459158894550858513750639292531050382918083133027682613140322755841092372415685649373590253738643558370019461999211996424710199094409281920997038007435471843720724183122279551776722810618836861445859719686095902018351063404413745244324537129889158338938409784620585919555616730724187262081199710625436939830725228719379833734715701467590107724310569960304225823030298085216625387822508449895436050222142616169044302137449366046120921282723761184029337406004823403333105014397726924725015808966527176065210020871487137536941404577934898648144920569503345224095490884796829543143285215784024346462702814393686861855078460809017856673355495571516309220475811555884735904465646172506463886743808222294721805449965306324710736619943710612711516321275462944517548598927200197343888032920184368880226173939701530858573507942435694646105284174253385873564019810197468514503419997876484824896181021674148961758440779277240260898443083956480232706571915444616777716669274316668054704968021371461453505275229496101748163595683682046632197892623654942499452603445487756152386816529861975622403189405195706598142380827190824965056817538058050659695862413398743825953041035109271522706767906831884372869994996297394757299114671534033647859149419467245639453594348349174933837223692838065138768384944070582752304538723404841121563693725919648042585758535218642468478083510404183979618762575112078672986033025594251908320408730332398261131195333305679903503058738875810532426029473805380308911985100159352160966956385607645528691643716001535713680601482919784005708863111670790707890669661554660090468549412988002766269311650237924217711301275256800730362025978283341683814968548244260141918179596405717919339173273394151298648991920729076666331589379799264195963847110917396468139852098917185650678194451711750058000754085976068703007440814120274252355473438931057866781744950532347311452732147931702451263420049236110486557684746277164578097765725929792852318391555495494883312786694326001363048346774531087792921270173047776404588270189017914949224868316035011508233528971292696367758172389958375702124807954722709082655022577338162287128284520598190049872582510509801572218872544297271706278308581776140757523008003062497544583046485417563624706540862333187817497390803224554447522613346922686750933243087419930233929874918508949210987809840857810348976590936363947538807245204397321870328960863692747541456730745172126461808336248694635001441634594222310668040789719705100774106067050111964083140911880688473353892216790626447606731111596143061822552843189365241015408687697050304881981931225728737316759725880750387309786520084384587315545109266735252113109268316239747452831661148882940359204163589230605030881489586681758509113091937844715858437242570864307989533188192944563328634656162743481898008805470262944096718744912811565229574343227470295462846738894961033105954199655948709411132467474925820450613909208573769298944597643278385395773426521844496243070746152189948226535280200778089333493557021850065001780201077451393709987628020024822221913489794349450838670024786561561989472000680303664966060984869126048509216924707730102715853613173740985434455241136844473865601719448923312254375915513699768354803630679505455697119802916292913804638533935872850639673644854904841912613122854270489469998782954418181943556882145151080289296673170179871096992868004118242164803628777207028487426014122736352420798177080220656012523897910466541753410586526199908649401493622028847805084225770074850608203029152114144788846759464216127391965701172665007295284415194318803294235946433678826218395380457954479041707795571726657473213859472970366050419441627993474270889311720643214732200489913192427165766847785228351027131470157874308998252591672343598760592666262944343214893752007983581654805614500949145952653365049969081209984470236699928702418279043088044868098512310816930997293689599944390254970145510896762568301806896255586550055645778185564207414763064611083740410979004225219265832709201548676626496447250648419442516082234954622825329178355712277468765373782246275261181097454579988983430137265572447859965814490024213842617597099199750189636188008877550220059901546004554806888007381081449501813313421793157594100160826463933314962773398687799230137742994402965742094086374290792397362365234809852687335803832437710388165698028139982828810654030714611361791310145940869909887886281990212496577853277057921250434591164479426935180989604219514229777256153204810467763101064169687270502453366561255091239970255329811804304712280676817077184789039782389831862571444983841525843510624490999282322841220502694107800821456985206372434648122894589144330609690202723089420106399114290238746510575834594296162019375687137869434036370768705422606715598345222568524120555545853541296610187465707440892685896086881933337210472114712230372741175565577076986759051846626980491117230702422345629855585954600867192604593286747039950766932973420344304948038353874988318989025261506699626792250866506110635212659329722206618026994785040048143516122918978028099795462612466793278386154856617047650479102631443690558049033121002677480300456443217980641887767865024284428903553100638777694003314147019956794067130997830246108987145119659497402808653979171429243662996005500950124554097736014228409602437791978941454674337321336437947391009675442282461993451121277677016820704917348266305809327450668515887506649006194669857831152153102705164800625919796977307984549643226185412923915471953260246458892051812624210848674919274117868161380368891068343678595655621147410113202786745281967269915466496462315814838813327566619804587427986442018585944543372000583594586015907566645105254297643348098967892320326621153419451885497841722465545640327447571702977991588529419106259497486924274634686293080538831404792315501341275260053254579889649826918861371780614489027114409978546752529414657158146918344236408715485031329000496480399357766700059674943122904019219193630978082601357722826219935994815264840064511464569658775345107211502062262557786284294399411193372815896813676761474005560541961038574427543657716971133291273532441454275284889849679450711719284771743706652169267932869076943767995669862130828547555630369606187707301355981806079708661607066870313452537302403967339255768734815088740805805565208428193440571974890770185160140472953405839276627307986650496606767504880925594722129015173563437205998275758850539997329249777717368254668945245670469005453080558991028703544688356236473557799431680248315161556264137190409399684306246559718037079812708849693877032106570036199479454163873869252666471806263636987959409234987837771286763082390576415218629618764288213986995803528558995019599273467917115066070135918329744751319027907265528282220209653494815534318137134742873363825868881711835160115437166366346215039725765871509914157949017378132969761301093841087352024916688129948927256979072967976903554643418808522312504493418658141826515551934814538375757805271394780174233357377996972662191876482748780309115681211842024937302673676322054907095112892310637563363046666059520195105709370945895168210435790113397216396968481223916452564074257652788574863375841390575424117138012940695920912068456610912750854138063692937035310171759083493168898763675814918275503850334605966314701022380815040689344344347279975405493120843324355695995490384011333033983797113807217092801263090904365844325028711650238087780504488409029175010464759381442754663279252739113203656662215361777182047667212718211628104329321894317154546507758400062226149940258333694594656795665885319858478247573853929469522149221206750767773829352924757392002097296546523671794214013999166950334680787865607286286561314406902287395592424904794818144420733242629602536736309618865027056020923899761321817584700588759660400722819348930705593287401006342253939502445285642312660742514955211693416660387161513000201878520170767852984270489061869013306346637802448031132686498781165957562592012385618006930720495789750180135871276375417103253222929000968046426048626232859620141134121975549956330983952625368033815811287347461726546364148371690463622014278931893674021982578275508010094404139520458805196424503744094110961459339834089650519901627477715984229859778219627490374518153788964586881226520058456924491665157247140775847575852908548991164886251452725060315029925922888528865443677170385156729549440928975911160764007510846874229046560883466720445250238390976045205264335616647340296027304064552296865674543409876322667057846486199218540226068415594598571618054743191110700178035162042791290581812841924489843976948747875996967462811879354661835332897911284092138589308079281905330511399432699425668303816024059095209758283888136162768334730910587019646870756831313872856420634994815081428344592977731985038793974502463714931424608963482085491976528138913906978418351945469840127570388898867556069731821639614129763596569282528422885769704696357203106195569642659272253211396566955654060138374886891273182885603820344001993351312132594577123938622555196127047849642897547180972332112078025686905470815832585735703335207087006632751143636064612441190723266101421072856445345521663052600743081986852710946479398872801470174534528608123446742725803764634106746080256637562166110857001683539276844879316501349643337625222685814324656043164599790244090852071615980697060474827728243707759183172996596248648487734203813367437927078829322641501419645349119996330324691831983392877020300728560344200174319323340187431383303639744950056159171879038854135163747897971985157090026820114144600875970929150732802612388294378560937814440176719824619840491548159911612781405669466332896645965105207249892027474910960535544700057276851552107312664065645755737470475280791088554699316655533374523455830638166293478102163139877186756773932407489542225632432172817556192203235138307396371741969406819169440746650243179131209232228079865402835972352721917405689729477572861584371637777184627467741429555244957233777880334286153378606253472974610973319076295218428955517213677886032410392764703782220599964346761313272961710138167709954406335720096919032738018048101952096294303250208549082857793923040022504818297889180253091607381381671514660362703750905359049976326334683516766344140720106533546698636546050376009815118718762839404299868796017338831929638453426910880972452429448156562704864486450417027902016317884561770367218480654237541083375005956031396715863767481531764671229196065846536060879520780006611564653719855620332362218309908489122878616354598294155595623571240768195785484625039298026383371913670829353632710891880637248545690244237455455542153963684989218542428135019605853372205174019355879869597055400404777859803550688924295194548790273362202640016857116967483543743188972078839557165979406657441632945438380943599119332662645732476719188673469081744422167362556916702443113630058185706555729622697052265841188859879340890070157374570282466937946224509223519727896020552954106431272192472535844249077265236301072985088340986831734975865736020825324111582803783113391173493654641623039075467351550751907371019113026228140207346411858603178100017651557794521097994941293844175345639807296532264961251766330313656394541845807146734168628232567903290781243721526574160201138321238690517943291780163791739956238229618819060437824891864882026798623997046827777295697890761031316788743096831784152491160121332378019255994044974662514501154955646801185520501019719287787814534295561753589971281260487922406229171903797697389584360095384639491340945144778004752819968558610644639282012873007805202135942738112705870146357499175258099375462200417747494578451558594098522499677611517016146986719549800839732890485194777664634974911940022689703860759463416312575143891566964479914494778796483758218608770409775884825872080422537888297528307268070827472187802231789643285127589768972163633426012199158919563452844047858298831829319414787488843798450880823370262801341498148256541983208139935905090300680403452503140455951537988700056483702403823253787939914949620477845280301291141394141357158700820741449302634857006889812894352630913632737683174288086511138071806655811553943277055768804021340180738669103018269393396915583273694071021351014043757319587466550091757886052417573230001566006954648892745153153997193559387963484488538741717980030587252433959614534849285582565398114512387929248233400644207860579854775203110047795205705024118662067283815496523188789571145487834887900541310233336300871411142706184708611413742511688499188686931037220022948775582767004644851389264389418163503144125299146542474733455247284849202556837847045427266672929414647107165426488806861028874465952503911908633839086785745030305101392602540113064503810860542662723303985181243053715024429575359038566748255582821951918723878921951198196654036487462725131792452809443952552653167969632276269934904774611271518028257527584028143959449672501561906453789343808486641659108156990226517556619875057873516327972624540626119352335510409400104073665935142914937100596597837993812785994835367756862632670079002571048109397685800108486684005848613120642755845576920604375936602048591987985541473715332309093636188648947631851778173163504088282896181554980505173150893207481272994593447463714432314118881610843091985074620368299961474845560625070722695587239142963429720156022792875047146683018204857970445668594369512529035938314451921631079563007788463169104637881650528358102101167529778559866086818421028691311442737347518994192398547272900679861653490227160452263942008477205732343201990823574826343664435728946451245079392198910921895341740466567294969930683722538269252666516909343446200368582608565800091818907105160373250545038307622918121613551608762708844146820476883504938746012635011092874255258160044986582552910809376774230656519533662466269966954610426560880963862287434468699914625791189280659001256707119287975313418263246222395896046334857265904187038106307332015486294853736265613562622353008369080049158067535590663142073799911711405456662484683285503039657370504916924207714452409877914654068224513327077492084096905794742186357789895207246477119855631969189344850402314522739821107360040422420090081560728329031726142568139101872269680501215174390127309212392275737531691992763210826984047972399970069732490187505785146424433708553525528925077624121775322443302830100831938182887604025267950611277117257474593171251516795376969913710638519474919509607507173958968486931050437144310118129462633589170789090935831484027434419094396164536207167186635741406036382225932960659987853292187304705650782878099950783483097696173684279335431434607154453316198200827719042664379074005964062372709370770051102539378357614274566788407355501354157264923861510442597451686898014257170094669258910459185982466943347384609097196095699407730873807222826888026953138078059448100585044281790227647204349519686087302537716604570945607368332352882867978311000936476089849954737031446257881709367324749732280396810920952869984228569180406633316286279934853419109053474032738179982350865456330808956935569809738276551323893605276875823784105073407556600478024981273825945774637235731829549926038814635162983211870154580108203274259643425423026333528811389733510419094998921037881370868620718091607146238149437765888903079366735308763384646647208627111514518114591554724741133473901311889363891958737416655154316078561816175925668399996319810395652778867202910903006138489198008963932107496385402411089504005959901097091282180068008081236497551451766804191158546743079577066633021756518920614757677275666061806066743479375875631348344724495848561499645960030120356792149405848110065254714992665386302979690965200100021961901037297751570292950553256242690842500997419295463526685725012414487742711968893454930715713326499219816590701584506962344017363880672538960887471329228574591238172428898380108168465789183042543193230875806616302230635079983952905015030805080135363957028230746819122766395166179979048993645375000412011207822381568401345654886006107027731538495194365533876421612951667901073601551672570538975318008134818010153753976650838804327934722673701563742029466710165225430170663443477892858300979365916663966476825935282555588192264875601049312054407612330502674264753958641340852195555435489460533444399678773098297971902222467445008326412640330323152677030134204170233594102412688755917600778625446875650946551255182079953605693637450463227738629898357495056390521248951359553528074211884194712538334206925192681331636012280504201309280948439196642437861016424333100243562781339906602148371774512402945437198811681711817917628248073575424395350773589847448772397725668781177685639655949512365246655394347871195110920115528727246451950070517707046909642770597580921795772140579442670581084831043090556050891495153643622867906028396202283441514278724985070994516255383302662403058644030989540169395884222135083402045680945583358871956827061083901454582193555963744417169743003101886587810297734003852995694554647334114694232599737026170633360054341747145889476423533540380668341847786343767828472426865465626393701423452944912415332873432135111978846307366411000079040685813255423868834888198533020692516737017131982944154363916908752639189053918002887072607723701524160108396500459749245143791606461517789602075097202444365481179236087077311252125748284673850081544128833620458676976493412949346383673850890189068916715190953206471967885471479270389631683405299679003557672062278163323635153922934780526176024589116563783591712334114894339464405570571954308566100952026160166612060535652586900554741388722392590103984385918256545490488166957486822618801538230740486170873316468542867938989651420755417826389605127606073611034598621852939447484925229729013581626320883532995680342318074925912359538468639676260383805884703648084880924125696840453586134449288708033813379281830916062368188720992638533229312783515975475544286077953296596750776126748088591755520695216469591388038306663026376990559518879139103874987332730421511067266189270112968713042821892850630514851808696561124028923243738568858314585142966636688332808942722698102032921188099091381071471246032494581989529991288491617751453784075950305604339470850235930223816123839511295131804446237287141407424249919850519583916063357482367269810868367063845772737321578283327577450240521421887907095520262508982648284207343586756642535924193110537160111903679790920435332948658787017522364473430615464387650466089950352950813362727482807899532919289801790161402138182386723875040914608542513566330966638498866127084184312385627505181151235062437821581277589510268033680236574322263966899420805509835534764181706948073474846206965905567487317903465604976411959565807524872714924737032540826903450004636906426301291093245138895349456004319289516715616269402385065347903100707154437773736201981445693952705716630611913993417672865053652500068279857062918055118630568084112724191756979824445983612810873319297897263802430298785608565956965224594742141964577193827242973247390719891377863765216195257313348421600949535945716387847951971602953177098007789601078624434611012348044674051399063169315897111696486856954308860306051618531227395744684531947185889378336691452966041707858296030739513741463038393963416026102506324009759690393729638244826509490683119788878719720578217966718957359578941151054900020776052976278587524388856718555572674492614134954316989789916809556855189829864151325478394496527354896290783795760237961985343650360126132736569484568056269645339606874770346269399432718738913081374144368032749834731215537553570725951170470226322721172432084697524846767755232242787434647006899741560244684385660460827410886529820093882012583752353491964118725339476162344232728699122472359825972930374241043839932129654605296657412555552927543909247314499849501013625729387020720524812808070612037692329270339096961282623729661712130430725879145739664695455111136552667161438329111866138076192627463979005000206354168387470694930466783230701690876706943824357871640865261191917100337549747435634318899273661107626244853121559326307789778301503259001892393863870732539487387505440768622181025788605320671278502198941957539595678426397513893813954492881458775551920738604589653069558918915283903767095630725550997204886870987967579971537522967857472413362537110284783874080283222806716046018057156947527965388806374668171651844868420612251171076558348009448419279318156346711811793752452620533567771897637445899540540549988599052982640887302592295338177186759932989919555224256782181271868295531831696203126780036412466047998416197562824444799186189931919019276121095135023934521559857735681027338989233079236309055774666657648222651619614768234270724020600092862874267694988725332857219871979227084459191003793228848821918025213779801963238527861503067295701265841069054356730787147350230301219961301956550581447433648895236247145402973277024575195429949974903573749231878177106120817326782826779338645949942504064605112187534294285868229986873026362320643400231838444856947743319722422585748649463392924446750949690726356426187062096356951037761068723775609482026061353986119695282332440392862001875325623163566028602625734284565806423258731218971409790911045929777198679414396847564101131452071131459615613433301915649834458748460605555462225492726892033962065133410488669978577517666061651287308965258297612889611911283570417003195707103297952329644219324898124272689270919204952598504890786076168504409069611304796539255112519722833780944920306846272192027365792674636897638908902751694908273238606043746531702188239624354167078268643067468769707713591772024076277790703067695632456347964323870654576421621227180425813724839222226094420363695755975497015071409098445852995115443140783077516867005007364833288186924448579655650237082991728496786872390092810052281330980602280722802448281836762334120375630419164150412774685911020279418849355108760593601060606447144359138923986311775301715912709041541152493262809492748072997642841649356987742202019008162783323923433392163561472182181501526466973570739931615915840038776359609722293479632280373319016283998833305469991579909194613413400961365707806268460339685647930259427126041920357685605575077737432774481423983168841327317925136106952290213321894112276162698519520413195194105168567203089616998821741244179552470425917830167520950974493354044266387611543031231559689179038791492203809428011960853264592341963153476532567605601305363193079356639578941551638612651829318493144737779714391934075440070102091157350936302428175892519138702684575459934157711010018175764600870075170107045814626819814896859220804611006441597250197153552811627384023122744829130684081673266520802369471547027247326648443391506808550128168900241943888273956593079825177181739312844622485225059928647648784166370626930372848552281002453269727008723049176080054799490220094157235178100498912814816024041610531044114196967234302148807160371467454545931952626861626432501493304999997715962001787068072509013662696935287932331598931761422158051704171572596049795424521711560978817210646915899619770089166554762523928003016831107189381336255441644387419700493985866789767434512790565904531230794086734858794125049597710221970470264896614974099369404674242006335265809030080344683122584328980303620253849319219223603384499787580959345299376683068868333278089990623784180229664137050565171368637759455427784093101339114284541339777367257814520194097467490109911122668588000610572788034332946200360494418579641920239722236348180280518841968264748784824866655797555230449492695330185745376970992085556371148118603131027685259838582133849014703632613288828405772069294789559036709390862670751598795516429597320911599078499223807079192048507426134751331561493503803580528800377842626646118017395874854355729083039181139826500573797632234585436163294383104120814055978133103392565623739447477449510235919499071532342660851517262201939872204395896492839206962639896127185559026637952755227780797004877408638101891169399049006451059079675449338705442831319505097332053804073334702792330835226071738468653869002197267629824490175663697283026322539614221399897464793180828315434320715602526867978030351855466035349320338125569401569841182953706148269306223783527550435853214664321398830190533097981347184034720092987785606932038555659146264259660890482551712665666876630108083118582717963492320664668369672931096224081007122968434622933498262717684914137511561742151544735403486745320651981063706555852524191162479503290965554206480166999179710718148981160311154939720344794658229176109212416131979852061596926329961304681595928930355616837607812830946452030076343814219801628257747053641449492587837762747509882997005873913264483606954266489875591734578159723470593950177772553230136583330707099941868792457484085243520843420444358176554584791881886980746556894902726055781167309906880681290101686373800531550924343028874272342973223190913291572022844351580192443372578099487084208136460206310610535666442356459360622452761694061559651299706016084192983932049862389196043809053444857578246007026536322153856971471927150009167831717492304949572438352267299255995974302177903132340380024682708066272538471400924484048355959005555871432291230360989389419840488474802669450014270602128127139043298994300816069003515851545905555280482540779722743329353214653494133722027186817932145981943406431676700517918173399626297515160168683130585656782332624719290829751970414166020246861122271668628426995833463978913036744613386206859350363827056902086287622645877649809710566323797127400083647451195126298010953030494084643509452501076594616228301374458689699735624735601704791452375085556306458285664288960803707541628146788567833663925281009552523716529113538007208855652981611092159977921637620346412214509105365776932768659569061793164215494584244936396425827631139173785136611464942731773824511565992743504842788576627915343843324118897017874610823286813289632036878628533454567783635816393772825266461824467739516650116802608593304373875431931887607101146501050725553953124731315450164168227906318846259229054333490688117380355093193344460209612615902612618167393579572106380168949008285071384638947932732646011357115418742068795829608529152032905526554112816327544595385057058229199292566053071048711714061298213236040832567583415065476515478792948547047289203376026875378403164082989259239303537141910543969709159851992379747049320020045923956900095673667681646652876220416388899109043281138753506572288191969961372785771814744465056969075264297467430515092299562292540122681606302968253074871632655940292286483602102919183656022831652093344720616940372685734130344157596015701419497902736398828133161732171869667241697383830341012008561013474900301421057682556625055948985927152420784258769419460424177504243912668701542994948281495471396991471562493990262873624334069919085865921110659211120194041606938202259475584024063966846603897265203257125909368320225533014527576763948579544707465807155688525925724099939366147333271994820904575322816574820768738277978159833278624101528698532243253391212610763272906834443494574642071021474731323873390694152082788933521045072348800596829219921636757919564158400872765730670343568585383464857282978758156509874961590884405479053452876464754488929710011224680851626666776652609505569200364575265532690548408239807199471069951755506717171374534181402373953950942763899228675752659747825626695821732266904601788179798830046141748377069027026340815007003271107844708064754965413045309411134710938260593566678675183417045306784801805074745123868443220556981991814523564099961450609136852398295216248106467538097044364670980570648372177319000307404347559580618210201634593910957758947220433021755445423679455304073124070608603686891866423505317679850481892947507310147626960426597026140538065484377151113049874450689395315793033615039377265788581991095139184388127771580623999405014874224355407986898633131870852986517538111934571844978124888467997863572734997977589215703060142463519295013512497095771296189155348802109068376809657423868985735195665629066903919935565128078768039188886681017507146483658939849279919255776575036834902451450466180589750569513380953840529353759002289819170838595444849027116064620399519591647957162966631137219504546804302525357443057974848115173704285617838076158475629563378657810137042189684370882097989587794857391906944205809980503008592191367577830411601720292866576089251245968299200514870273901973034411927003181260146961374906511984077072673273438801143818719309448886735259876002699898729996283929066875436634996254802524638840080722549157417163044428791422470422641768025217011239896809093760345233508426924266707741020253941036279705840949254562217597087443320383934605713816792955837278854728376256327949825479999630400230534466119630317070253827575815284442687320156886624593378597276449430184002542917624262485894649135183472870614696158634402975811432095368287163176450704588076885362134114782867091368055364685919695705996046909598753916402871073640961982514777831744277539685875870310671175744882662170207487524596885208448993050171079736466073308644620081308961843012920946476420703812673516115864610935139375970025490201844756637023317869571017958690735066758594092469279161152325830687853842571544571876932200567519726907026507708259493201760778063672177053288224104304904207245076789815632875927317141481708182917613489914264949949348516324639251877135193089878431417813937864233439516100741501374941294536372723835345573897647141097105062261107166940342133427193564915351042888746711285267355511726300643029332042295125875067946890553964670318799573566973022704134172318076203417564993393441335355325452883911108080523617886383007660609833846348912337444277944303596444219986471001770367204141400244134830299355010055402671417427015010001615955349909324918176301816341443624955251593932264516308600031707063869730791571291261274467514370265480420737609186214519828975159410838826880247402131952578708014532575694733827572926445659160773205406823425848562508372999187319914314583538668623773545734308356665504454932892186013933657526708025141139913664571553835655183509041177171614062105078866181626226218283557337286371092476812974751636667322910637568093504190809259702600568304400698670981213554588981442216718517940390418356428294990717150622335525037329652264823169349907863753276454357542361514055778522765973780120371761114768095218318638586237549435397345608525706462380426975023507765109489265344141900621166727260015291272059879911315787515770919598774399479732020958403004785823239713120718736858901613182411812002312710229056746565037307956657593492228863453923901921238156269654412925999712760986116329886677220820820905091481425756057267414674796272016277424414321514265425050672138772320515664376942134458825293771479389011530259897979902861062686285792277653684368059561309149279307701877894032828899799680048523681000297312125292329271064084801987747448212452525952529281599475672050894899044013131054993999778843187637945059852573885492365519598993061817940593570062263572749572895201141850222711170618035670410298182267447821773669006734365400215185434542684182278922541880333409362904756029161239544350778576393975951848027657815590868415823837706882557436604062351644975965746145678851623818277249061236077808325407284175931099605330809351316914197835011838685312606666899693008415505051917240058872060839026645664315139790328883672514049245976472982481902095266917903645446332857184651470317971361096543241724000497582167104803375068770026703622102958920286775136556559700213619244919819636664874652061135508668009779951264081417500205441099701167386257118663553681366588901475021481113950022387834178476665525617549097959903212883003808180951512519787299008733615980352176536021461302076091563924735632545501394228658253770095999343015545900701501401256039025409315445252664123486913048302525962509536410645485781093021598681979141454882764219338845693140260019671428274401219301681156860569232472843979986570504556744989999890143476091654353348536360200440411336378748174334415038123220600074912329498145381395900103259280151183958382922766577415433885296809076547807319513677472440606565600047549902704730767955651420542137160255428011065044701342840527581068153725007794066582341207512855399135617811694876072681655107257446282525439936112170880956437929909054490193586495719380741009275400799231111204537547930177797860352501970688629347734830475285104289262129841516565216758104852928285152547484548190476550102486343698695214578620885272175390165670085643694249540549620355855269533330936135625142225788926574700998581179117038565582919185333304819507912123830707836337190942818355100095316469498516870594225877102780529245060749556955459983240275844704743841561598022608180146434514297803722606297657811536171479919926107942024564107535821660275664801733133970186226099402487707880651493710811973452512086866351331776480891945304216947224764087917661253129290677183476780387932323971491768666697333543610840386937687672147301881872465819859991946888860090820327979098927940771126118437865835787804047942881927850462206967457886511877248810659330351511800566405907789141170081695114783582011458492039501103936938468339144952220019292397295724527210719439990476355821907418640030547005459277058059762924181435181228808907090688271399310078216414863418163175165461170236804177331915523891105176620090476021093186539151899610589525836545851091793993186868155290262501280191918328319009438187913237340180185533813755374590617054866246650219961828951263162926921238978154067480391559044826013147217844480951206551627751971172087203650136529800349970249021325154231123202671312866065324095921565689468828329750380530169383021452001356086212442765371870610704562795528961269047701912631460323926544673409151386643486967533440780799575152950804952215746019150059745244028098109995828561380862215934324501358223435755692406966233074207364527760637661455064967958692110477497514499298761531589215357127643847393546536286201180981680174610840393969245467705379536419584371563804167291287977255034311460790403008562413464690775363289470538835394441054703157960722187771528248047987669730424496888410741302670639199048134075472947900624209321289657625844777959299668302078936411968736072948466557526685919246488850518999763732140815507694538692065578051184327825901679811926572259960143285322498990554693688196148411590204691368591524213680723040306905745694585601584088886415246077830858088423761536320536651156494086178990526366896961993984673967961211995999548121728556760777419752614031394281040418815922928146165236024875516381663461996251015009587127518611854338587834500529383792785964544828648138528962906740654258909546770565889619900776154101688299904802232894412214190526900573700223429715753230488378370672350524790579178694980975944894624494471005022061174996558269908418597883726365034247958105431022900605368599472534625556114365028657507396742471078057947589485491318113483233162387963798582334185118041254169536255956858392533978673073197303511549947659537878932925605586035371095153416797287773269785842131761400237303713041571415362889162814280835482729396441921955599463794719734235390445040583243405906524335196056449321655169882638234013983187390795297166638330769567227459036860844191431919027305783349458707882884019985101803698668255255388004588629224583006842945844650998273163583155013693611984148253379363483601339090912345701462084653841491521176811925661796212997900131739496488719343813475564671154475268742697294831638831624868445044898477949161688328873206313780753315869014818210178603637175608354740940274513641424880018069218865087730037718766284926274695472214370908930749709610417993325120559980819691657835509071628699316629087220355460886623304185030269814829046390968360380865226280594851914960417738602303734312326707114749768507278980214915188199723355465194332001030902958024998169169924758525348055376854506970403798123478207196305338604595239773337981621554109128027583826496000342045123738404853610639433872718974871435013777748639867591898820295243840768496095039456855072765971263038131159144769161016497324962006952696938956345179956917403427476378380843377231016698541988076100053809507991645077025190096158079758418024168305705719768769837373541944434583704199217872684370334840454433676154598913321151420352733432586891100030176204058397714415439920416117097760151492003201520837656097019098329841939339439958949607979558442628846183016351912017836649272601505035801484630384640141176325047252322964892857741203873787022314095140667182676857848900955556333194530426850603992524855913140260201386087144492052381281312239043636080337304333088272407898815544025136950208696667590865486922195521115645290673582990477434503646028950945484283233518741665257807261074773366933653721937740023551108591646470651434755558316498173042590069266843155415160655126792261392287927672641728751004019521740912353161752510240056292939381545366592796108833390865261094193928838321473080009131284893819379533158379489874215570920011209776837397085673555146470709288517355336049161357419170990264298676681909859250736223253818388916585712998771523886220699475461828392367698292793426434853678412955802529245122202765078360953377012647316978828389515421147380558569971233052497451026902513568478660486249977636916336556716096764483094740754703549049445546860561900680295038050975812489514048713451938894389122306580277646110155544556434767062590766811298317966860607955759098485356647794986749323735204035255513711880952367979529239855571081514717762714305147416764732480436437865427664076293305977479235053559920419609852397506121821853615536158195911434006153084380452015146711336464584955077053462712107007541812391885860816648016957417622003941225610164806046182928490337591159657552989648862455099877387203817469927233542413180426371077952731103892474179987416838022519381926716539415222055737659375332766574740911714398418517454619319369558945562960857506930137777276680348303453944595929924434686919671523726165241355800779113488262519613711447176844680178033228161853231693618139602554995395833777352328426737432605067049756969503490683137218434460763176136754272541497558949604123521091770632145338666111223075591403320575867603411958755241552613284278289276710536573917436099530699659348044792008871845687128902980099119262868099253108042301928269039776681972936235851482201144149527254719381850699906869172156722122322669122700791088895926166503768212895634849556903133812448418689413899815103260768127569732032242385660551804011740897679478902626345682004957520760170724826740330544251793379387685661766977892717788877823447612682851279366001174714450103198082213219393030909179727223324895967830673071102418736175887271499091934183584646066497158122421146938620057801425947506213394579059305878724387439031401037458307669294793006054535637129706880542799100671889168078330392143633933716601314888792332469716353365477978881359984811188164771371454896347607323197762189718632683678061636520826485190412263854203059352600702432196232471026139534069377916436598379574366927704756830559029936446381788248885942007824997254850036754579842070312828662824964245250987983546463860870859818520382918332460250904725980366372070647119409243487705423868289306855640162732184420879741850795251816551066384557068660420392066519361620953656570133312472295818515573908514517445644962376568911642513181574393623600807674646398588872488824194537919745233294575926829381249336453613428660398163034299200692908745941172984107265454467290343021300249845311971993778166138275923175337696439571623597831730129501430568597077870537197051417264064362255345496664438176378537196693955880916078344260009545959488605671037509816334172181083748635842025641234549294217632008599649178611148860438532661318999130256316956312043387850368660968169052878027181206497103379203879695805438412016613448686208614804356826548742674240752543642274952966095294309808846122925306937160084283654048555039503996665528220168640029115478925942407278798857748334725186969997034348792634591845091315673724521860766826813700255197431268469792367112086463622579482124936808508388805548680560549636973795622905981155859237283853324177295215158264942500357438636361997835241675126900387947279189073836793513871689488254886633908678205951414620827986417028656013525756487653570130774090988826304462948022530521207975777102067142553203473401779247045344813874376061374218593561998301889181181499401187811501242847625589283658203892482152037235898584451925025670330472937408670130608837678049388660025186446879956944045987696548854458010187901901992491070055342578504576580456647476316986293017702267092013716680605490364936080677563155577748544470624399776740236981482547517762534332800183196921644639220502984537776153329541741552404307756892343570776579456933379549382113622515993290595575097812392924719578851276283130655489545474669915484987424959939712994302247282799650091696591674182532127767607556719618684048801868455570440149358333093080895154755599221805648962830804323101788052269599120190922480401022201506312256896758431333130484381555607779196382264798075922074907491112248025198678363852154794588524583819887122153941205189680345426867338264643213097551977678046509093849119058916470031501865905954660076048476234839503202408804512436952591927462689000370061009073670328269944271274264548154784525018649180007730428364818046678322297706227268644500433467132653866524702120603429877529201156229073960974212113672717318179336189311026394278622949574638957168071279533168275456821355375951122475164571608439982073941792811302991232204902381265803687280247041657191006900318970664002703853306250465519444672129310520498438640061890510935127322924585215205405598532251150172776504468485968041742070186088460826549342876447699065497028070681956250856703378459817119188983042716651533809553156841760184155207933463083063218262731164239384523708512485029684324858652770989490103039824747508902964495432522725502395951281805157413898932094316813097839791805827633520768348098806002370981965082197300561071540322070878898670771109187580053887211365526429669196604630372310495009352077142585117161257238994246865108637151241375128032928631667433976336645612546784998916569514915559165154002947308980284333445387413135255974685707144244023813229823450198552351401495540901202911051421846129631387350791419090730462057814268652145980715321181196668367380459513485439920195359406209578350738434765629581142152064781585250388069550444047866239906802614983603122449172011744350603606857957449448246303308173534810358616270340614533101782676060101982003528161008459814381634412937634395091943730903600989275184818457295091851657668915384139634788641696271189496417062778520136992063511587986019710878340093241759350050858429911030186987186077755303989790277715834913377040374423198759050381674404018553696140082768136274832217106285104421320599262395846849305452876694226202778752546056875440679000395689348233615295286351518559327804999247917487462919889845958157777351751145185426001535262278227204922403069989316095759252893091031679629351020859325189878523880159695513038080897590019196865014018886281802711516713297419398613612177584146466338559841220053965284811016290933734348616068273318527349239254161769415935514440009176829931002164665073432834796898730644421470933272319038435884021123720352266554278558244447684680442122303520141969038193121040202434253357213507195937331857850995081867225446358773035272417228804763029941977542236820570166682276433253189084708087495766415564882099753545817438933960037040167132259915672602967926421480852826538060704117239249415457335366853724197852839547724654388274939188330178710747797218231776298307786627044688939673207571388498516470023642319947775314896442568583330928937557243735426222074723882452121752817790894036104350106931309004137518114962577838248365135561126382245325329279657813633972324312142209146888032864218450684793101909586628984483926464054469888355805102764183860974806936427531233852512045223411862437628687516247585953527269825467493855053113877621630395959835042300711187851517550488910220509485067353229239132165681198357978781549501434641999172697619981502106708876330059926267131621034573301586213387413359570821993322496517584596535581992166354208103270228368184350724961381822367984086647643912926313771818797880806489636064729250831015653125588849518620811531274444940722741574461166477769205249181505650873056595831189910714578586891011693649360272817781508354563226248448182496353605312525700983241798227753667051533180191746701506627606209956599269464537085652911768170563847250737413284730707952304307893332152378102954690393004907743750283616293133327628119018634868941955555845797559809610364647181116992597363517918500187364727568777900840038671435300937019613415571624587855924705647248746814372607117070746130499622530697543517096709298690318861983552598176412889772735730201567504919338898453319572601360135731532032638715326399983086722210271020862393821010209666575320304289650128968748532275123774261716602794209321160021599817652669862619593862025682772904040689558499883660669395025153469988737737638462323888222458590075361810459567257184785051705235192211386335519623834426760554485464100159941731272233791953999175244213163479426030928566972563596459385584493771093304724297532882336012670889796655789925176778383424460492827085253373232156118462890319390977741687472688065863401302338709536764217817138160506214916390744533372737029437732322782764237146355591608408335780425288074146528660971011393182816950491261743773763102555006735830616126006644822183542694630219897927460750497690296420790284575370407932353627183707474640005913655201223737904439926116721618466995897798630885021482119897851118736740551366160510806469557567594525000765421415021009224954101081483816847235995784732818173522955036180234541342268622229242521827196098182239550590605626718198205689342409009883386729329879443227403587655349700383928162235010922806537569005117941020229868063654095843632235212492196687256506366405690145966530732569772111540413660768429777414584085561397200579586631146438935626355849345751074539025007862021291246390037515031266171053288286628100652836284892819809785051168790512356504568919089752299659504846821423345516259823450320636390112628520694842331219089036123469683052382224929679806538800821458832303536103714340585258927709132693048065075493968610329036079954770251673997858103938286576534560084353688599733674037966138476971436920856996218623663964787767556310489622037969184006109661232450193257860196017708413467145981958359737788054920480105596232332946872270133044879585715369129292305007065748572047577377811229318655360829399433329789496436309827450482318841955827812164284501249372599515462868864925491065455514179044814621642334323639352975352810658247046622844708158290904470597733205777176229158881211146169367607454517129802356564374611608306245779123219374112089404859465997842640349333294317101884312214615712168029856400742181716775936813151050835349146327827798181986875636611945593200356211315111521536916144443150497523177114157326058787050674391003398999880511360015389104797475433874075326605243551100988009186817580425792848984608963578196388765994950691293059362025713279463450366710046950927668279669318006317192805668867090562718324704229298688345472986096797674881466657296784071349874397711923756981590902562227855916361149465020894440211311517961641269069068223309908229583132614971550401294159416521981853496418864287882330462203183166309719210895415880818778187326301874701566599523915791840842412685631732865975416696928684300959961451094964863349840061885633527120923972653726040283022433229621596401201569118092931295091294445406028730005464317090384156601416837563178242669014565779601167905579612020181480442096629887672882368553949722787750336298596944577714621546397806313673293131016167979720807973306146368481311690288738094983916778516020773252445671330966486434644541678509369291811949236252267941301596032756536387501394895074083752045221564901284852538855903256784200843733684461118369835208268224481309598118178089058808269034636269126373627656159355993107548203194245768504769260292628425455912748557148831512712647636047851874148371989034806872290767029435293366274244099109181479530683233377591582863981921492154620191337757208314676210449242528510355528024263702906818575111611942946771712880192659886604399413107718212649806363811704746681324831703929700237588091532489925703088775026983067726174771421221265578490253545598391264138903208836958734426194332216701470281289836622016717220947094372345436831697420359027255255426630222040641227040541720680261782853194700055685927793484539850287345375771770185068420792629391133168146957437517506229122209046935745283041080335723189559696091018037769068126712252775327576847790661599775498390254364001719383337796474793069325433177302399502160473172145988077915167055618302597947655969763373746478870371762512170135235891930889589093668531890183129956920505423206277509537288674339906671130230384885790537397354583422795002028340646395071791173664471833810376253435219075462321950212233830992503165369922390671844467839370396086529958205459511857331489194804466724824454578075639951168518461590245103170955124561392383454991881398468884678171720667275729955147753044077033359516818128059647087928959534093505040228338603558218596565746661047567894025341457859803617042155747181637112926292537261244284636473076804730014534132331083765680865662143778594086514229874429334455155261319650169060702460058132121376523979958082430494204890149806851714112484140530993276188903845851962563014810075515691105768390139144257599969421020356190454305025858037709108077810967668523660144552295758138115676169866447347063422334836866124536171445148242635821559374500395872140328989944711067187153735780830485468174183822561896639840958198779400241148412041532982532031647363714127963156560614730168795746142397851776388158331404819049794057478941727098876997213285834954128554660124254919174222549931587865029785842060642367494288313730568736848780092241160568153589894983274104417902810944829619558521297536043697677768785308710932065871194493176196437934950176125830859373603344232590005267904051325664312280724454697226339362558369624626063803179075305390758535504425203466294266235910482911099797694115895553585661547418131875245196845694364292432017814293636841033448769373917550805055301024563571420174182104333276232470739673243106439330102588259819822598397988862520489797688214387375967859700324317372201380929696794741750983337250206532498356351525297997898352750034116328016284568427758019335294625173528776997694913673637764635148233002349927716085565717410591722435294617106040472932217862260099880428346773987097417163090346591300679562747431797400674416247966827667972114248028620247917438845045579556899323597354153018918339410172892841027388679585042389776456206074487598772767357931189408971769055561350819530955634766790433477615745456373843387311318793311518957908082724602851741992539333909937008936088552977939264908632104123265995376603996315474384813594069210233432543226662962887935435671673710047443258163722057244139500206663486297946934320816148562934596625020415841004518838634103487910132773856401374438887369421802412627257109881395530128179520645274929000499384622095512279987187041040591217467373509474117092860357750867858620880889459866058255337971989020777102279949516777681168179280092875716986015762541970489289242176979685383162193794780494607343528271520750108499837285038620391599342827506507590021284063749683561798149373582052036329603238732622539117711591818015468415874314445963008028390272397974878152007135882861096273074157583706230547547889327292471667325188712264626755681141778452998284807369120570680023600783192492823131051298247763066400383754420033770410634713255292790706256993761389815965451649066793840348263061737374840365225635651286940186496175942093704235341665286153346368625164816676472709665557675231891699445699529462928099045329760619767388333376004493327817542373414166019188121481580921825590018712406071237133172520246838175816016160653355074770257647118827189494929433794149631135935291593662372109691011276785559886834089247225495908050619036571028643579913627708098882244434785012564969827546924152358686671921079420673741946461970115803124794025109682015078115972219062849858761277128349885370069906901699295092600231045949616754966808469901303518928691079926121969763953046433719901700265933923075969786594557771841958345661537462093999959197807020628878179347342124091516364247503523685004278703225193571378669774364222598458428930980135516713916108768643648929115509922245034515063129864607064771713523864039689341722841181376493767781996163202161301007573054391035912783157462521292002497454694184594629015834129419862438611250866133093192013777565714675403982097888687549964979162683126290596445863797193276572006032204998797138578363122479626679717278908439866254072000135382879243197174001109864585010209629237259281425791489672932763746225666465221924345377373920419255815721680384727978547588720260533892872451625501283772568240466757515418019705158686250475223684704773226185936257594788954975059188696631072367190473335211369998256406430387501428698694778634674848383955886723563168192412716252176027837258094520819452737221641103629023675476899868547764759418617142632040914799306611556413350421659991677242661878054860598982727344110859802829068380828211667953547562059522701923459461648622351407035351428460854096114576280580000789078126504543503408145596669997912160360554514472744521298849198955231738257968686320599196779798089638992805353187474451132115845860497438578820814045509890407755490072208739119004743242348955624331265763382806514462133155509932866716714464694988524128870685327479365109967845070120117150815689670032271264894637466298209123098465613955589551013164133016863038554464537452826638234633387374902138021370803549161786256628940940615836196151645208875902164369585364715002667161559247260604382787574183480567314762104181656712789146158539940803737199811155460502024570887541746227769122576692323170374774909400523270772352857291664214908035906471551596473773532840664520644899560931541315623612474655247939041210975725776950311990229687758518195577756328919616763243726368001700248723141126944922781560968861657358686315982671114061078229424809566914055711992511974332127582611710879218091658047611612878335346811923334542581739385282331627488984787934186048731702369892797068083726588437025381620211588298417740447389206393688485411919345106095549209988676071822297607411672384118051728087820560535687489269542129335095030160652717834742971970033180655166380196869417078955178226550277113689905482677141914461341743734233246989122452764057143050120151837577936384487816893436073029798377899852843213805115155864981680369254468906137324347986856183240469063439569589080459872366874376326808676188742122143359126804317459994134856576117944742362032072047190579942777302326230818812410328602968083863120363179462303292438700192951022801365855868846910595458744516820445986903101857630768503961794506234385957855355159614728558078761187499822060136346413135875328449415514510948949976842221349671474489997874743009474290893854371234269330628849572426040413502845144828686135231305649081488474480714841144933912808585011121057455449428854352615470202458094025684840932946010313639548234862205310186021940882510470638861702354411190077790120384450332580193927921012958071898030633687099917370929169431291889914990605614210399988402951479824565266252582379420792794837971169373853537950224567796046080168476796071588126855959177403394952761851914007684718067488188744584192468013030426894676967082897574202699552793773546988142778509995156163192719336711993632209091043375081779376938773671325200189173896254650901279785478113614958488114465547732239304005756040601873131292451144412435645400332059960067560719272946709888545766991502292736830493235778820144076435455117162179461891146535828788222243715074042556498136701606813411377741068927675612988347888322821802030641851846771204261967154783462853698106448385754803804341169920355168947927339285077990850491311329496556423133176991217706183593198430163693632899263987731985521887271500115830821510387383863309958119035561052572239412826244376601309329529522122843776247165805569290446492763332626474067732291508209530947663907525854549768310839905457781779996722154346659579169166424743650065979755755387676166478468861408714967608663444614329441921256734008779116420508798328140199079605030523780059684358777889784775496760406788751926566256884106060028892234934572734493734371787505412781598497240841982277292438772348489661470409658990440887797066333089342393486831465624110835553807521398044772895229346257927967774137664254044367615451581866234200094571467489069700746725784548982846889384511070080102952745577201098675447077960977739621331075507589046077232402403440537045217680337700625168484498639875347376110565978154185861884096991989247673533153925611078859042244691594016430047007848098920738800098691423444027643569892804388996035342618501523856007536859670258140344961958471929993178660420073690000932694718674686302503447881447693232644745661789895855395076934225165870160681496026105140407653390222021210562397305106631667693568809164528843651129082380981996719867001768887505200684747492382478197533013799010053424845784673386192715809451548497465093571003302579944864176104664094328882175616800502388198562294203760013594199756080004414089012327248642674956756472428729610012761447419223038567735065294162597857854868406154355648184370732818864853526875585416853832720786741816499457735502247521157025770088658696493002572505267984731588110419481954312774450857393120055439789888896017724788016605950166651608364678917388059713967378736328290453782609843929798707393827739508331158430987446241225169325222035772586753147403362655984136987234515481406787994524555223459654367147572865534841504463965538189919116283161043643681437540180258700212925008327649724403592059606603858545591393833871367970252241070978844899807117072244563311290973934796118203419577191798521938048961965267362708274056777912978136374637910212542038482040459779984563814035817256722389086740411756614699193817745012102858861950363982911755908671016229064474569484312236176709215196416985148929846795086442832359651325357540033503492906453012520780496312878958075407295653861630497761584794244636605699101851869417442718363797732121277784617071792945162535206024179423499200063808012040826101801459812030055251799180296326044552766064776757674155896125380851461702849636995875383981012352984283447826526264507043935886849914644642025238560344434009485318311531277418723912801488972640914238185648029098870295270156909826723689060580708181686859913946536246284364674855648267575121309799286665256656853636725742647380388735816740187208184992212607652935470424031536795787613100112623757119314164344067646812655349226537166574310276679380190117047576718977868117402061772211203351930175526263985167987042204617394113549312284624511257972803960792022950858886214315032013996776257465340802345199225846000107912280893760536557242189875381834170157916852909013482676674617676869213363976376766230496005181914740632575774187272887854205402365750344116644090497689549876825954280875788812434293714894750841070223016813349083809964940491970036704650491030339305077817962326860666843692163390649908906239315256847640754803593889120930036071319535086632576110256240179067570381192923797413235906306435762522068943724316104234914396195106448955445173504992304066253095532507052344459408528627195835223862078430104417406027526498635515911922199254815583778566455834455521765520275224388999991211919243903894877492524500737698028515841531706479987709211571618027187302366989180119160463065990943716489884613074164993635285395745933453674356837413028765945477826013696341808453117656337787821292989864479004438468808136176887287100067273796309210170330009684654603863936318593593242900881835633261261573455548229241554336162039407047863740872738222527338569483123848477245511884768192710660598279424225428904047328261711496023981454459776891751258190626162851922112310730751058913502302101418201275812122900179387521965434325260926795110525717085717611623583099479716524546552611560960163353152089628588126413841544374635308887655861284127407827259944883694231839578418035321997186183713120650326803457531616713722332585568523679910245337922111487682348647115911905843744903564875597508983928281350669125177038455172188750878133217240277070582606532803499088513230279466876851046683750008894584515291446472137193599436916156698901267610909855128272832035238056393674934330283623539203534624359685008603402752694617214491284865478148307437391115368529714681144852960727922550457234223908766001545731003296071794389369131207752355635561560007986879953609782156772865519856927507561878902935904602220325566874417418077577309435962287114333493167219269443918090362807783054706134578399935209048539004309960055680733279943508867030321341331362485168411036675184026497059685015858668797047634510044644541395632882304433971349614812994088414834658357362475880719355217923013646512789066541643295185552556361589820285953917052486185909541590005021684668619310480094231960947418830564997356124242716339933248106354240445276069800079094386619150292327107278933201298801383619278801566793585127595271981934766587988223449126305049198165806583533332059666559931171442053882391204375587286347856208228153378388544242914921351751414338344809424546285042248398251079479796267359403749630770282715008649413598192007577636496048609801030703628861985762415617793303842712249985791558226660550569840782315571109935858101348239371816335024317853729725807373472828615591174340221422467779249070589265155660346875170334744108913799692818593124157618333640099487542738499755616348372024597925514840214981595138703452803921576069917421818018709341923854893165008659092035748800723514964572962359730715636267014039477560020586356976303660234917194938041375004922758887910342330272667793088028942988596260447510834530096023236397840395613917078589473619046401908910284868763985131886477924564569793262827126659187487673859887271613156277152460221390509767310655688556544647878524119986790016971466842574254825791979287289389567865439768902288454210128892178954821574716606644385394775948262036173445929130968393963176558703721434746074349961427586364884275834734440308404966482691194207324761477012173020312251960520509698668334887713210505941788310006423614550026291535018589003435760048787338490715561913275369472052805800492438533240986039119608559968729514541123829693545798922810822591264002785262712315263790455572261107835649433438656568488142415299844083079755666080798732134073412032759230311850023878567906323284503910765703523285825016787102692461168845391651560019512500508997930999989301395636447585714694837581932061307900543267479470669928958941503590153357079605144470002031506612826902097210296797470016378542521699356095118317683357722319397694760745557697528127048635150569832462271628885098665838520154996194788718301430737536560840427447136989668083989604453297995949925308258768851560440518411610155146927879536209559976335728367756946771870776112619068096479257507431948977990675370252732216413452865206789412923204897099022890081386921070597387070141341491147310832383910921517062734864136775025485565991481662535592737436894566457840936518718338374518847500025960807245186927131869206032400129137874159380360183674268393876944383807403157121739089190637986381595285352464402440521877564217173379584977428963479227067645455919907573496349348259472724982928176988657586283465414447452343658954568331644882657121215298992085565241515803800673590635232716099318720249652202806171983832377978668553219730403428327145004746661236844629824287140627246200589406849610405198723834109116047079719967096249866141267023450527331120868089577491835239434643334581218285446041731628575259700137301447602473472529639052908031161507563731341423625028225254704046993789832453647079223643114789898607231309730806139435196789633358213922284480214804833818599945456801562311501103162563026171164148793710234651347727418995477394825157413516999911547500588938158392786219225992574667680165621059491727441902235885291403331580118693389310276373292434211914457964184299927431353453679526422938273234662431218176487716821730667505589774615829856549776608899468949597378172927613591286156326355823948995070039549348972069567651200202369800669207440771178908521534801829896880331773548749129282248312559959268624754917416604285902702470825474898195970354749307027520246734765834193336720542512363643715320729652291587286837848431331260134085227688993820914351314136185551771058592737755814936325501778682458397517700136664607470600964715421774831399871174176605745842325789662062186250034457362813697384311263872907208074235353024051214298170895981500699069086387470415911427085479088450867580727541105388103209004756766325082562805751053536800759060449090103020422887270113711571662271604898528369161136437526082319430572501575822852180083834868613520214012760980787180059667494576061868309635298018884187654883289656892792139479193473940706695290785703401855763415391306116342407621195331038522651786182956280489248386694575011769222640320031458575494011658287998276901092949547401882202095149420739177993293828116530621202005632167321094432171036206437593264880499516799789412016085891731561459994703555562601539726277225232011649344958009428529755621490765405318240071516507247371804095713196346550033512437003248557688267741022373253972482873362653286291345417248815826195678998576628182522098176473065153792981352921684718002355951027788782449663058200282327322659628907174403402185412774331527080656772600645015595522335558699254587666377473224336466948448653366450949581945786100770795999823412504801731235300748658290692955489969640424979273927285315813539155462826064454642437732601010318218372747406015811674425093259143321492314440259333803632153927954004723541264552206972754319115183366316780425191151240282187370880137255559233246542551200454420416611060124246774116958846185247548063276335271683371118245971646030225861500473627318992288836907287936307127334870864173653800321950824824495079023820634791858656001945966394358349737407816175456152933149672902124994109193439843887255003350645494583258731483330606988627317385868202553159744897656659466224829935438859722498441317363921208581877189523754330661300228338103507500746973779934716270347806964317349981689380501843890544690024324131547030703929288039051306022441257164188690565084811856502866731499102362670795701658669730585350273147425882265727760634209468526483163646705279442669867516505306989418265136580106006455571575074612131975802586206852485403293172333294712400239111017128016341582044110841354629926185213935803529612813699076744080616784145204300114116053204561640818738425196231163737940508524671576009857624858920998972376978612643696448470295370497366705020907449282312605667540403768627022018088459942304656604784139017154193092770308766343672001779837117778706389486232960130519864440982537294837321408336313122594680086451910895246071311156087725844335326406336788230020480307478639879989303716827882427917452327963246698295014401015305364968232515547582477037538331279793211456916069066176128402106472927190905903294894983057743755302401319728283375588555194892867050655276594607845926056145771137398728105664079551956778836288017332754048657797773080100183184584888956556808678035276286329675730678471894728290593656503723810580273473073153217580789870269190293549284752843895838206017508120244398491027418973335624850604655921531245337867592249503635929359817283407802727094221339544015901306195806057665268037890924175428524079672476407536262857033818920227301770657719097523990404471829148643674529043539155689501277616106623918132565001347997795945888428910562047399659029699046236345301565912193685333512222761538416440639790398913446003251832600414729354352744719072635211581701071854304004846421801476340943061350474665974012814262314403422671380345723523735304071071072540521851784351558146955220987057992232286779422521391448848070199549296688843363379804604891050418052189836978239428524439191030117590666803047152222523619647355303719744796667854842976986245528047084935472651525221342867868903004599658761031031215531979024710140242526836098355957063960634963073666645600258478981394893146359790786576710178931443684501237463152742327018639587022460562501648853725794365282555438095444574108847554207635918184208183693401991235229948621450871266696861530301107299294348006817022007830604116909227419117263882716344035598815054661798767774657253102655965130801761683067875965232815097481983935279098584638672910312154365269392506611073992193676413987177711153971907319001264076166839515266206027490360065843368595844022731172974513728203183830959011887903420496797040408926347237429096849636251410014960474440594875080165142387233304296955170395352191553441277251038593492120003379969610664912483719007010639902873620238552933476388510198061206751739273131863257982254233829950027610042215134130780565743467566017184299475202252780128618115439330509774368176726161201781651113971969267343625026417654233446726810851951089766441163817562685440577974680010742384874262455141952847989077673926365846793083675087063665275843078982808862139839434645931393915673886236861907919144753455074276116781265904727796616399149920166440336685453141477826841218580296543482168404875618640153451222736006538570168658000837883936373173145760159390615891552383199245033041733296513213329985380124197486054710156417025100801892615048248736853582445307300891344594602258585080888158726108690851870028166584415379997285700706928943295166644280175322037911094490825462509916361282806796612045663122305089446578941764583809925009222191670349670252097044216708266474931612966185635029171223640338295788087262942781860606938278438106742120413234301393455647196766049847438384066010810560916311851359139540388352018771518747389305462890377488626484532088806356279011154947792350452610186725711860852877014365938319601961275888149640647491258678772360746441906042356601075606137987427590076307443453272693902722879042694358180739760652258899084975881400449825210132353654128891518258945214566751799253668105358327178681047264458470225001659720345807883356493913599524651852689344621332521761206095621030745300356454074106717617068553445653061638180138054273955322550931573129693939137223880628857535320621110107152636069388231893704692271980050523462610601279361840794803068422193359075105164117105960477136123981284130814455149749421452398308445358428537313098233964432836904764829145581278912249646353057485512277411571524607720801260239967281229161481103299012352317432930231923353515686864530891873816727714764200292469617362910337196922417408866211754297637419893944550488171832984599697873393345718898803420349253506867154542016906330694262407488867742236713358225423131395773281262399130984481074682812979134443115823582057322725201879445496946217123304915445615885297370289208803393403629200849874731837953035919382655159299181951984611736733984232619126767262469924280362402266170207053826855480974646059015345975251995952018090529253887832064577243755697356617900122786529422591548775518784004776263062897561992985748523490652732856595138243964382035931643425371140075322026186414799350784051392737434760830163027942205969899474615047652235925026976117854314670807316974850974757053772253709621269221765421318989427320588798704055984245586459020186282650157654076962761678822816992547889749205778262227183957583928507602229026134614233722960799571694171005445931797811285448335150859440465329582544161161521631315177521955590769419943688801477891211315862438147222523151301544382646780455250521864072124842527929896921632160614046623596821889792849031176121059524557954705579731067560546947645975234412336938633322621315127462251786342185280170824584176719200415947711441078941286550493261123711146737869442861161654449167963020467005281212640922181840855587668797637648040682253376930205171884461230780194039722476342643973351014440236947815889508924624306796855260275965855882579632079353568058277595688067452540978264396107018933845019097963797640456763500316409665398321388159410263165273901669762141445307650050838296761931648967103644278842504894759690494973884476035224322142916542976163567096688133894598642500083547944184347500732576921695615929040927441576468796367528922591627117860134439568466061735817936176439913623592955350430074856702406003436552639834171808398337109399321003239702081280524489594739094953927886214703291288072314624549215746109590709644875557308294366118679029110292599826130073367681756482829417444787838124543381944155866072670117329876673702004800563104971013855629885527214046319962980200606251025407064934546981332361415853432905890387872726300327181807968960593190217655407795230072403786085262582204639557739079752104630813903784050435812423054083498389571043445830085655793731160579563106726785997128923812954715938013142009195309900156459091878233517355915493676636161446094933477158531974941811275486641750867369682586211748015999344825085234698799509158718150746951496449024669542418626118934369671930216840955558799132737600387530062627348425801555597459446170467633742206189780327471352650946789673450355132319032718882658903005829160636837093544011017155515438585405857795718562243906983989294018722490116926776517559585854483937855655517297086937589931446045569684858180987136752793041982597935939065683749345623324854750740167963245487118044697166771534672496244014994296672937792614249957687879330590929159079455973542744072679247730513811491049443737513446191221091290342997256484307457540381289373005726620464193442350108384291923545546139853013495951518527055454353395556897689404445971637478332494738875308349551080635546358392384595978306533618962925711476936671072785962401283091603861365380380344498884740962508539677766856732676368953004357803994492521360424867940220438387358831968806868256764019364517435086585789917501268777548315404486332833998299590277941646914243518258118068314826879526470265774937116473966009440994077189731088240881465241173906209774278491468813272228835216018322959159696616418200556961369404649610097503495859236298741352569498757921634244911289283325707377116963741174723411136806913112515335634756531300925658215607076734382340000248365884843991020891443831371206867314157021053732384007484465998326669347966934082874359353506165655610981313700036921317851159001879423149420609430667083054447080752919188578174798399317235303279574522460453746366131398724396017940708732133066324546639483987700358748857314765454765419230351309960766466124226961789882823272432021263076416534774796660824144101098452318512891576722359517716275697243476791836188145275423968901781376661339856555119984671644859781609544738210153808180564696955263929048246017790125862696322054385703679517400225518096632546088641730401698944047459697930189148036048946675300951667745921731578968426213681033594298516978098995417775499552449316305773263664804230089609501947904309840270521271362623054144226184428210811518428820386793078645558627506368228523431359385151453158308224912435341845439941142403886391874956620188685157537072221301679716371234994862210194156352047033493172618090502299661597715752421383474413299351330448235435568532807634604292253225785394747903247929941179982977479605039441729507231352327776389703857920193682089299316742967601938095147974258118028639471443115935609311870717948285234475608355851666891475882090285224007781369931540736696547126903488955185787297315263605228745487612103502400457363914235460457170500415943277027732717357232323858286562514429783416273417247407628280727719510858168654159607668095833917995507379108947745209237124333499795273241087567966904854134372580515011518803262275643256617965567840710251311915825481368827394593388949797867868555953375228179620836434034338988352298757382687279112807846618462432105741230882361132422231299653716584713400979648967530817314494322526116256352286337265119590939422727715767220387236932303442069073005099674329349392814849250064011385907604928809022591813075071884675092833035642310145613070665860244618216290477030773985820301737288876558937373295392941758023680692973510751401966846294446326276507749835738607086247217085905763467786716270045225211676158029620896891128853158386184498002178190414974864731062506209767013036219080608673674971620214608847647563674412424197905785801909086153964035659041652665121714345994093794254321969756258027627031116803553432834824133576901641640734531351154185619697368120674995720237119376669529617635215261438676096276150740381660787119138988656449595136415244852340638078043983507635923031273381487960679520562443933773027449189875461478440147336724941471341930088438478019728186295207329161710548870401748418551084597672823198146291814678511910716427884029879386870604742855633573341349789646511157383933996870298311324672731452217939532439061921718772979179670870944593021346744669764935941246865872289122080472912401560860127010497853695838332229263684007157394945122487989336370069400307576647296946196119434107654828524795823620896453071379430943849297922740655933845371535845769439740522422261307304692234615919888846446877975075385477751741587340328435393554501866184035080449895636616682785068785014678052362773084939738235652218642891774897265158649556185655702428710994221989515694759668849558047584267278252196286816727809570770261671156657970546248482861316935429034086904413189780338577589355972768132026854874881035062553307515430908497200665690570309235323854777990983558796830129770628071849740908206605304809259571211007408758922750875933359862749468611951509210829049114721776253674992939680521178648125083133874145770969708427395979935975390379118655329778261620226811648326080241969338939305905169703858198545203564939432732157540432483287114038224687876604706378293436643934688626980378191640375214757436002454015948413941188762900859438689981851796185059864232054690871248879350810009423664418250098260876477329664353200017058442462186359710435690945724058518792908967646920096357862039191087846317844786139612969480637720512622515550006707541698999692724202463332694109745414496534734680627904718366262417296925039763238781749916822757135859938198843812063259208963683418814587025508829024314934890343993737979720276719478055931404405543663423191004895652589932279896429318733824939944224490462846257406008087333468002740313001137720298401020382588126660750603743929913012087602333821489094477592533738602815819562336253851700477385126664982717926423118641054825248388213961867999457031250536959634919888418783471514632828790127417068520050424318709420761959772313057151284551138665677799940019044594081844303618696739703266797152966475870192043273839082558851866503249119618349463659610307464520683741427119195937802376725681574330381887474258599863700008418590869240362932885148671243238282673822917038889832245827657683801105420522542710292343934710889566390573334067927366706725611136525404095345346632631056444828144375025183812871292814617593138657540956696716222971796910647204940996199058587522919536134490599864676838382120271838233280747221403370259153320449118745292623129491020080242161315562709831153868185354884367710582567762709626054480220680528139282982064493159448467604461568593947112531495205847068459320169020137866409924477714662609701176523512278278660718467544865584232328795044810172627404774862520670929680350086286143251113690747643294617930479346996953501676676850944725137232862499834973082787763514165749573156927101069789891967021462045245974120384817287772365465201338817683926145873625965523739007720369344765567322935668760841971382353156699934585676373203781930620462956653834736308393776172825627702749546181020741366773007483720755392362201756197293343638235844815838905611447313542920050759486079627757623679651033694964596546276272865803217536996762241262089924883968527982305082246500584612821616713353527863733705457985424964534930970465429160273397026690805430785331916531266059701894198119296385662468284047024164193397984326175263756895782909925824611914617739550580626439443052612131969121174381746099605816910790582508212417590070268019479895708468945470495553764301364895635022143064418419412399603762136901595992584274635994602029086945489641429501155918990359287367946067822412977590966919667716483876411099238041066382591508283753779617816328298066593842721363044796952916714239702616024241932178281147907465715330023613966193549833409495362292273458188296906559295693011232677329911991648814929800969627934867298460232448918099500523949951398857365068931060147434413644439629892917857481370934865538271437306886707742745128779510165372303993006644636648157031746149953829696865363687479893238266982815809823319898799662916155596220666021400722355419246546567857110858569808047928161171055215114555540728200617208574692672131942845948393698108719295944004016142854308532024008049940219638976398628719093615791327484173592663338675763558267114144290148928107575542471377060810620017501407567675643876441736782769999256757326172033917172784066723299311816117245602691794406364880572126072283732298213207142709534043960304772468325134855476357923194395443843896053368496919903412363145842311427908319925978463691674379054636994646295486701889107537776293672288650882233022680384528635642172038644945449193100960623281599571532295543479226463088858002602559427328532597403843353251960423494218792577334483510242392995344034390507214596032173004725400506789747909712591958104864701111631258080436144905700125003858165936482765207386968778032110545245220382735908635498516165655250338410473500649346525602584533908433317145204977409875733825473864680098632659999639313978321692395597348034844692640097345481306029772329152830973692571668230091339822524747532848780460826447459792216073371792133309273723777745363151844613107212504822672345897556253874675206982088372046434798299326572108840824881462472917066490857106612737390954697605075541418003293913808841597170795101869669907327334508439090111653675296434729431532601552508129629080406340260074958569265632553363147076435948012536428991218275690266738456742401453313511242871661796976565104691916087237174669588298537984408761765440416060574462058656799688739375640306570723395065769109530072474377028655857103512940589436647010295631728151045913267946475915044001131145040908658317845062085524679814465206633229888279398541938938102560366020132861263004987187116518302042915426013488615085835658905982584357875328878926530586422023713314513285898313744765407236378459045513653047492660010394974893009385869224620897870340408284676137662650719060634952792789530311269488346645126328143120695221302080169560115206032139078769163378590285693794391659138249545469804056634276181264577899864768502675075450067691695452881859137451902556135655112269111643059144173534902140660209681000024822131558284496870508236282945714519868013919112794493473508743164216671309678649723262656410278188591036435034737355456222621595658267868101275677529999456936417916318727910873239122660966967555137835306885312959487756730937874532796922665487582576329134529751011782813510377724649435499176924929862103531610010514431455474582161761279473294675468095406816244922564857498886023110293211045091605090699890335303735914903656429428184256791407240947916098890226381412000315217496524543440533701367327968616976164127011169445372824520483105041468611499521785392947994755005292207830475429785957488976034336200349383015218073048324987340595134984714419891765624169026348192037765892843275678832013919307867684065347916422989228712330386947272502243933380530337552451428919286130404240495811265528592931875902319620692236440478407185628866186342226561391267709177917357721850452093445262231339824636513664488245739383236157060184154148240001310588798685319603663043132109919477380526188031301864855110864788317182406426479588209910258114004633712574099352974245181738433141484046483720873053895702910572702807034461600617072529760043050432232081421770642425968284100987583165285746570574191752569907135698680417264769498122316697837565906564308281053313159507500016656335240914367940483041906600629606453360602234780594484154919223551598472172798032082854369672113593644488242651396238515791643835601744637378149010057465616583265185637925235381840129084897025791962982656429990448884373172887827816191003613682206913508504906296562087114854334052519304317212618844477974562532781125026472938355743285448700063474369674712560691581169578153996672411557581645771346450000546809460179013290989607807494205003302018481628792002561764289997581900616782984169186447686169931817194818457314409924390076317187601448500906912931068261935359096466037663560332852442125416677466224525241410554297532011536357152243061023757038053715046462420989044050108782277148266460747125095507451249901436176333265083899087685109089902243883454906051536719632288035616399636430210066036852409607648765348805621691958720474670203207404984104226745284932974450901642428546148083668270249734709485453477536436084755382160905587130108363245796415042812664606583928360713212234885491704202674172064761925082164103575233020029248091058484182771928164535002307128687503482123391008492362022495857040484688506126141081533962547853182419247577563139047359058942799605586275687927137778349487915982703598315445854990903904057116469486537845172557813994039926687018356368229514455129022447563176336068145711427588803111012925313510224633252562569113434291295274985888553212197335040673216654619590613139392518992497853580926488206759245020238134835402669873747798688996200463528257614036413290411385331503118109402518098270166480527908981467781825582524482617502519026421005414982860415891702310969537640146714001147468100546845795609739021036064790032123393005696216380267907307281711843307848055481024898473622514883516410740596613086302831162035338279960665882896963371556724587348379288654458931613342565403648163295874237398384759164810530151821951640948012234798552233242729856082787025839048419560838836929499975600614607384369576695894342204660004785584679680065891565077248016256914278560005591612469578147915035717930050177411489912652975844197273344008223141629004979918734481556522616456831915350646256110057715898382489655580838870034348677744185853068708866849411178750172459201573775736205544310922597365367499922205551053538611996897486106032238041102337325911415189958959744894781464337441663251863672291582534898752672688071828765416067900460798721059145176749790026759219961044743423806132890058925893949245240610638975859117942450833001297338089074785019848119564795659402813345136648166777488770657606466605191735450781129433354808183238464079550476985298037111767272629640076833496076585410818563879053218147952333875231278747856230363828171886308232462567125969132982562149032511113375425628815348154942534774558705522186545162461111371309869028127207674903836518853693013235436575271194116570243368275373657073452580688995192096577569770422337294098450072156334972797083791279400701161891641149760420692200978228483876896714810625922217022831386269325024296742778379717130963169467286272805773072135544696313701836373789075175441538666326709666013529498524524316217222418589537407458451001710828645282910989570900745653940365001747188937795192371098052235980977100466142177756456960315028034778686497873368191088656228537137706713386466205231730858400294640887280395667746721382128348652868262312452153105375340608046229048718741136426670143863875375573537541728396675507874133692089476223435541926955462269111153909123000662885951782760804056850088300710224601949788715761090235591501739186201759943950067695659636906807741028829427210788987718544244914480832251327886263424820814877586265582033029339666125872381201672063210081146620495076532838522221214376080315418596332937152584083457522850422916105375900077238851950876709194645665078739350495075310872506347440218678876300497323737794028581386764874213526935430185904452960675929363728402041697615129329242355530561313927199315732923928653497398021281275212385831151583598197969874820368729105458866874075668297593664002906227780192436279560948511999172632950140869666164380241169014970545402540194812221327792007495764678943222350969577234688726249632650989643569540048643511271541461308027650890907997990896387865761258885083583157256790693389865265054154838085030656574294285859163850773141783559935282885476373148892457501724412385283942042535998163485186088776840542317678118877174948473571505031609508484999778138460706364868614488570018708781378388562001417636808365393634287100933044064121392051835740148538203191644607802945845975830392426865541671552536798400746169900814779175952001790765039731962907985947772560064687444955556864442454236158751060511087146415050680131234646218376574553388913507290936507505082068148474729782492727379056623759978882922336329955800164852749560211918252216297997073263334045059636229322760112300145149273653820736147306698790702464171371836387299128946621528963328855265429588810052933408447775357873747805036638022487005514150448698792993551263094798736288934951752524800245196279208834581080163104001585164697567244967881346266190383398696683543633875440234097373054448463183617438636908813172183958577341551273775501647053397400911337301441222400878668080560916368101612424693733857337311370718112368831373666548310494784134390500563880508568570884189030549535252882395340660372570751116235653424765768758911823493515380979900875122313118897774005313640262578169449009207410461554629273578908820068965020169160586296901652870339050658410820001772756192664290682715909317272273200142975169772810754360698139275977524853398517912988149466518243735945343503223782575481985033534828518739096229185819933241747381517491299326645158242942274822894860871139993288994831566107187646892163354386212550748490226581683187200132285446491288497354882296639228572533567689393191765096631600396330833354462533113669248172349695618592390875928780267696916732649235259638213609151026896650197186542030515489474851728321668568126768124734115785351356756137304766128750667389550594655232067999054549477926153117551236830991979134265514446718443094891953153775528633837964984289081717772252065887912472438356911515183120575163033458534538352994388229817067882590896498132173830725131137829248745252611751835571597087045924160979867982196322818947232238548245801615298297602914013651455647445377992013761185743563164892151041777832701123162699432292081305700846913207960888654541932427695504770642634040641505130460769823231846423596860455391737558902822855015487058608310478360151767847566772175512585587888497824715854059081249422352321928750963394145049930159034061262328055785489734440647244493988127676933876435974755401063852394390411803999527621625098705372589839574837665417953075317368029371981826639787652935600390266277621137313526221276032407489483270179976204782568397580130639196822250247568184811175776264848700686416440700898000173517573163827177689434493384050264550185830823054133804102741132549976206099515298238753431798412540774265538609757092809366080324161450117881491255376149471926696279780340382506343501801973940709064113679793460632391798941878077165450114964134818701251127311248147870778578466132637453148013110630980582421055185140851430220586140403661831780571768832644912129851785433201753220658653127218102360815230828660603318756629152250818876800115268793452965781732884163478303912635623805109046972185593297521117977498122730403554759430395567068483755540426147628556980335802947114785496544752164702024431716666676730444916633497727454738897133453822072639025131405348275322050056057102811695342172431560124739929766573130998834653143779919924029592685041678597186465952267653036041356376363195238315497053308752849870130416068655208201895530616281440661073435510991806243065421692155670775002509539466100437691110279660552865839446052246112366494251933012187947172526626088683947611367043946970823586470198357033558542954250077181745325703245736404811012056680286373645005198064070619522868979287255467833287910587975085454511038883324093709538132293910782347573073508348510797742007330862388399461434587326951966749936587020562020867655743363315440124144953946976492176236575382837593000179987960151476641773903986336396612046321566607499623170438672090097748556933419391073794101725189514072724775287896507782580670978645452818890508321099827269828060667849847635470705780784917542258525252511610744468590986996040883068803613486848306286019223361057389632467679923467660540123458762493670016377625862123454844601151275209013602920273539672958327066019567465395530712353715631425741748379481874218183028008415366001280147008477602275406350655285849365461450413119732649581300618451184571811805332718392312148139481503528812690110842480699352356942780048972991693624341434624389232801312640358710154359569471161175695965808566917224176512177331362262252852032366573008168926987229017660785405335154680683193764310022856665427626035565470423766023906117964536926398276282143127413992519297231689987288818552165904343882298323730973335832861270341614532453031981138456164494035299778478144018919050129890853259297826765914591236298786866620687067374186094069083973416359291188492215695162689091042523812539920656903410284672871613314793640025697975540109882577487776946747872053870246861675908298166146600171615539530064547308637819418526608539518712804381695358038024114994744012620823936233683678455275863371789861803333245313203740593803545141953799385716555424777745157664407732407325203906925250326016040547506013466751267244805415243018072218199062498135867584378062174359632165995407117813511685295521362968238490640863751734748375865789120742318149105021239836044018023706138806874687603966098942581102889635358663801721971342304334139728235458251370366778654486127256290085220812248563539324145497126109284222224078931098529770128506034758793565915459423493807210190517260995818767047557875376476383092018294602297048879996590813342207874005136924619617968096242146255369191795832375347713347525783893485106384083513507309164658012668134427000782127433646691510304931558986237539185758458521249295660226561798471148244153813328628569473837935293665581326020168913109580324271283109035846698711897001697246622004055745291546961465815663162631934435103418970709023243665858112485392588645847950655021480451230853301614079661000693054191257275787449552216877291102479969042361350410969263170942793524130428332284171876400754184320284392178299990377330759216130666417297067114071678260591409509048748585974481132894880464366404134640208476437030132667954372578998367916891826569103370525405959382214068465527086881547200810542501596965235618671744891245132573995177538067698861957669484011933595060258227337058967726519323709225565362950490401852678000593525397450800010123725262598234893750826814340481053096243684381627398027861692201615307852135774890029529294896078535404009390288819873074071656753800486648912356852502637448204986466306942119470231101098596682956070294479958126356440426839521814419952573893386734771926083883101462483439990088295656147854571884523159340603071995224953460181212744925492438802932973733547379545645939897297986962465361357370272053388609723878012532929056342587871902702953338713248335802765372149928626148889156372088608883140080836371964853038935909300965354292544267834537887202606248010482973739067616122543392949886965629790007186436681001635925739128497455091482062247155510167794328247872361729750888666091823615534614374558770170103724375575712010114866885104528405755842822950408413689434749740331184912341645428862664078779065679268238967466071510455740157226942031751822874026813420969518770996174335384424050792178932460023776131262720660925840420683863207737966637855122668822027308667499756114670093200255695215511932574962514257195736508950894129672807730679138979310488538846159258848225644997460947986069467187355644903841897652560711403417417482319088028597472460239690112596384197357989052726290575005398280377760542915554848946340401931610735606571863076398219830022572682867486604189170401475263911319700346131541019317959344024290835104180776990152169589342652808660292446906094240814116898898661681296635249242953219276557492997709620292140650100795223128912930452539181794828306393646377071495162809771218666379123590922209178863242200351661958687067362659373662972222651926696568238979287584174714467969105296367797155126004660798999605557249284600427779886904606720955077249813390955730477357803741233988002996123680064046070507194933582709973748056535654088748663753418375195726877426728369787858460945465347812634443888512653932995970032772613196408569130305053582269975331030548631350622849756547212467961998388137157257923276939605156947958069182773417832714514273320938212741169253786419010106491378789991188041910109345289791561110579441166389610805952866629333877197723021864348974517109749817537563633423166232446040123814338680978920003922503370817001303080180725941206837184226932379683931202409497874410534500915455147384041405117669625701718986051098973628439233989703098527655650399739501779294914186870558255307759764064745705363983181199885362064637869111129784962070141661090493233326898827206004210529126221933088687634390631298994636392315435510317452062293654410034044144460104437818137110974908292713873406794461854196308723190272956585397407996279293754934635803907082087766469071749739165992313616010314169296265121073284018121994374206367141603285602521524705998625197264470812587693177006203389837634984346060812780656996106853724879107768804978094427678901192859155176303541236784312361388950438716015515058909089997281130759814742643014124454590549277029483685025915944995324978774543267705687977296864637007485673384387259947802541633550713058037853224455895044748493735135299810578472940523766900192382353563604786981138969218873402580456054686969751403595097754102269368247517941256979321446403546003370894076783325946400039651368488457164861348726645896073931267200690817807862059280949240859740064447971417299703174985647504908911045788474485240957928549365381694616703366204443445989675885085415220178753786251144350201541024262838816181032192210280943875287625661230467274018244225605100618481881635717980823695910607647309581120289807553285365550649315076507916513057018348807246550234539883068987765683114301282728001915950224841487513587929740184388728117038401044825246799076623522197957396763252617463448522072996097170481597309077370768170750320793827934648753751567102606671652232804219649721385494649065134073333644320789473369271597581003686565503203010048671303665055816323462159989765250691556447019550612496147906197986119561467026756340646186555785055890788563147768486718343966088108228173088932157098552515759494977988496114854622899081403003120759413224107451131034374522365769360448923124037964856935467593865637731572611319077173528974842759614877487708130320774765014831536723252563509424137360077654870345113031716632258248666748812205341204592464101641803818259954484076498152384976511962440627206910205116075196980415199706240867863600327897678207155843700401709189282661062028913380476896568740980459679529344556918967202974219801276429269451884799099557568416235935089544367598308911424238147228928461402661998018123272973392695785876222742464556848597991354832359979677979069844663589858059756477185627776123800114008989948144098203748398936279668720043258121782800360075986216598561495337527616315645897424817169017345579854480127055013604834647931758924340728580057881145402141241037768752843902291626076877344315743109221840966160170044189211636461099243754732347302686250742214258861043383204981201660123937593502397143692953867670368780980576273115640964721036227052149755169329991856429057941785059349424797130192559324927476315360640152154710691431587092871083166868723173602990018147862656174801744605221343712434788698052554829408967739945075547270695881378224169643342955809441969988112891729979397458557077171181828863688090377559253199430852817754561888385407737348349833458655489295848891709812060106889154631499291331719405179162559493579137393685059050223203694178913162519752413383709243133800584971230911111043867631022563859024386054910065754745079193320256592965227488024452091431253075490550090124394834962369297111369835802656853322526122078865398241329414941731058787648359101047147338301995583322620408856494335923079868026665757718137806279175465822778361102061351982814431157881069454587045467661504811462058854042277486006769845091897657008711946797802428475978993464687812369884033619776936762828742745571944331138934044478674503769584966529090704426829153034819173143227673106628557688282791245115909550975188957487415234130979973432790081184188182368709034922505393525779617305802225936414132251865119248454865458252235237182339014238503942060673206788416456023064456650567329749597636177399880060877914013834980706646471250531076169997691940811697116833283429942106361199382489749502562171305529605649695045302476579970936107417615230809409475481533720825952881244236135419602437272590706888545050534203232923409420786817457148672350547050263592176897870854793806919413785653938353539871628244223000355654368478210863674049943513869697704982876508922749510218378298770400067621044870818441317448550417083705964306875497063947869876019631024373211250104369196057477142391728415832735945659727539156043876463118492001216256862322886352907069990529541138847427871152062942398965794415325469124855539294487928209033706976263913086927193922776491534886397782225760172825226236343696585907023534161088038734829041923346394355794937116574110090990707841514303384396635078541713159078161119263733766580789415529769077104940286022037863439274360891440461948665317323288462745191400582770199604373840214036013009726833256262252553254373770688340250775570687674757869121616538089133335312401324671012479050642399903044874017807041684915041376730586322892925670324281848732462532773177935015922394395887182871371992398688541137872505163392029999286764202550480444430062273712982332179672407722382517518007138119865978833650046228976206282951981337327462405942754938581158759633643275541827524667764091220942133899598626922735533372995260495930653693468907602736217965519736442772366727586811765503260131392268934049819918233066281834034362111203217391529684838490418468531982422667814052765338261632338446900972172689207979326109737531515881064422147272696611774334344781805497270212093164037779401937539537654212408881820472395246662469008887253162298508143005441229802661371131427366949726129722389013012992984352286806496774216534290332294919294182727728111871269089320698712661083254513161054777140282396603778354982873286622326137352493139044775393047806686789785321943205695227524353558099754657469507508777951486112409133908998182010924034533518485026321667912620815972633928208266844330697261625027295576792068568119818099203207273692726395054601989848891195365607483018721126092486918942092159939290045701972191537831895026189125126489256735471717810535532302452364387720256570847419984726596442397008984615461765079616005852336277273554861941150227352108992760588736474743256774634224407671658077453776475594135502655363759432496827849802067916176374240878400158764212259171458452958368605577717554941795504387531320380247435458768544452428052770748920298359721025324371156986290544061604593790520322293759723730541093253630582168556683958674251881003594095419614700763456910894303408298324182789340654789051079734489501375177761283641266372211719604269082390369882597151257661995954271506036519750724302942392619283639903379753521106467641838903105067820623454034263317214356035490656321691270907724468603500081780181590679021473675043490690823140112095541855481212590253196569853442834812540903220251672015402718258388626322809749674678912935382889467482350726425377178867228344547702940657872618259086304631014830948431224599064329109674915086000134114789357776265408319873583497925300580847241911989252800847140190254408039810651347219038526083809079854492648134751986613170500670719130098292221381648862046108880382347660365352408186620613647496824943600511703149310523722386069579344868048903279341634491874330982163334342895746494287301083086290930709656697754570950352721014037051315795138772923411126485476788562749366900883543294925944872604598845844387360099495731875360502894134960276942168383985740711802232869184630290685970024113748756442186628258817843979489918531757800018443515554813170174642592766221192397445953852191397893626672533035574734863958146697462407322692649856841524893385020028265348948277427911015206997348664366603705889168948971568154152528480782883856352570821038428663812645193847578386695805950252464508952305136347224290959062050200112389257979657747744701700589084927594601884255936835042202640861844253432567403132389751955049954330006264276437621523667110699982539302809810589709770544334168568941535196219997719629718101103228425297035926009186007957310217977979688714100450535343755511291525075171780871283717948053713355087007831676844491136784356763881245369844667358984033083241511350349341237361862383422051688580274665239977250551202750772783649897593236091788728388707300466383168789361391484803067695785120788588195200159483277750321099069112201811097785705291106913164362739556200785592395881606139936454166319611094843932358095971092367976909971265622979481560090313333761668906165997609309182704094231839433595481195171296755659172887339084434535310500049898952180488902387022966079301369961899182186297663963834899467383566405045524585340253818959804108859142533452448432221837843753967317898746092004610818033051398387188799147994865016294755242386615382697971442740025037311782243889556515666789806357308811402342654389942562289929858972701594384117190970992385668413779924589582408342997870442024405083771202813810686864836184309629569192402615954616247934447361967015101160807451136447364200669408023195502230499211968960100298204823803294432096958465955799442345261966000402020934819398155272894912180671869662808997026192724926652610851781394377105082468910451260907326282685586393409292021147632017928665478506903503184715697852696713231796975498212927606063243618355687150691447766772589109168623858679633231947793542460542833460535805203855212724792198317278607934730666894998368687752362551559655320494697078846880872124333579978282422566662021884247633981420564141547343017713276265305961850512788105337336593883507491338139408242285714647887645040065190030548375815242855829482008973257915056417165102221594655618165422112402537219715463050300965783803803837396261963161196736621105506651201660011065511069797341594447739630297933581041527997137496837778007128750875177967465237316354940226096270396734487718820015262060767923462148256413830587050008894813806939572486598623141003259819549520517779362603982360393522076197360238820329461689386219829372327854305573764180959083772657618334782942458185098138964078633431110006521192008011850142536918956642209392072603656870934483524717271279136814851599720795144691155237689599066987027139939669409202297969260538005457107878202422776986229258351611090137859884569988474122631855508368338398019633728780993332380925578681784625250669315900938333473185284580851812958243680734216614511284294753722015278979937585750946149787867227349826373160012216062096375420282904244699352178099080991400788775524430723082599270676077443035762995062030593831494720720424611991156324895275403960427873485066907589657095263711560975396120527863273254726613358185289739412180488603733059688884025784182939896817323491136181958664776593756546070871669177785454905545188624591120582526029586531934841787570546864631052888157597934796698638403474721777769988211683925639696597909827825480161791814801460273428844303501147071043946363990387232587014977234774573515540549363574167517661775537319284306363849838931760660327524566607619127976252675702743543401860701398827198299150326656935863255497137480655186329199488608093697527560703522661652285528550302313227151079311889636671408132266736411252882736085572919588061930186393107340295601465527714004346584810772066567001537396347570200385458525284701745099567591784048994794340764734872837955608444635620902429567334342856914177069796244003631963036812233061331959926757447984409343537140898656012246850883040771175803455353271804332225367161395116539434298476395750531826683330144648812614111760128827908491673210287975766277909468808412180516059435286270949606520435895965440281933711683347678752478777970811201182849433597064788514244378620766576670550294135594652229176626435956352812836396430582828679411231266093109576322744125505108459164024414374591114966022584211995360424596641145049704944842710560059558668070109698061251246863013997360410630769906038309042541841334198950375822648196782498493474612503441641582042542207327274015675770144588063589124041632687360627333044334105819467207287848353813692195678782593783307502911113178680050582833102855377630701502319168081328083460496979903283094476825721637506652321982763747904027421046488297842846622528367359254326556005845170205866053534363571578199346790853848516364935702824178122593726345780798147147735953289439590006571683644743573199460260092316227835808086511956332453900411702447230088252174000809087427723073812362180315125514745500823924751219949399150682274134891171139264549874384571996297882298548898679048812799648238542688605945274369983104873256474120449743200085314796460105368946697240887420537368613128570597630839862955985344677055620676696035123130946589905206986547985943024373151126421843868985036939901569119405201970282489179094531285670541674290814479187343451574499877251161212584075793811207775144706957827783615072637760794286665139433162593929212953347354694105606400344125880672503343046037542143363572208670677349085163137146228603642572512846118906051507281920833101264985199282238426927400374671378437732233922550703448282941873170545457203759954127103849580756504099035383717822692801974386095569458662613797721221724182517880992674640551271020214124302098539710536811575940675134426934402628243587039178860207390046022899789505707149435346972226721922127307751456656814906951544974838612808338083007096858480012824148616082259917359242461908753003187754827828048090486361070627223762710663122133725339508864079810738124179951201510269404886513222937831265489284652723307851173703511424867001626113379004699650494564001398740595077141161989452751766030272830533843465140889695856611435578628956259360664987310276349327908031846718620034272181706538707945079312428085104672809339452017687744198952396512896465158778048903702839658410385237786907914224721478763607179529895991271567732634528710888469793769475047876036639250099928105146516401237171710960180156103558582023100852833714977925611269577949363980132039792030970890545501615007450645198796919690272432430367314405259431879771270104812847600244931027097018634077309653827956558084433794894047424840263937275023430324630795929834107920245403342274097913516003923842026619683582907302071919264605321868686741552081079810502845993920835065279988785902152503141163701676606835631047320343330820978934906774045535944926671603971083497812234119709614720525462898276474319826869105970078203894066585638657874704181039309623693073209488286190026543234918721009676231609541045235552402391552911793730274262027987501322376437030860555577297248348844680646386317867703259073738866012829478144072741823223918159730804359974236437682734707076637707772173741588752430483779259922513671112837169130590531053722206930205184721010238557071509058273114531583084737928678119834710793345832173048179517366397663475611739703802953718821534463027654913076697542843125452489496235693851454098331600723804764459186741012114804183940633801952656101017478557817383370753819164006653586150081721165396261409896498037778110568080804365461261244080489998952840554904319972239590727593308307083670333083629173086893746934634314346246201986162367385609105147622109602957747463686663849197194252127956838353619138098344410645326262891298902713231811360717405988126935166467027785840472956774123061644457334232194864191541984489599873710897397446417313219446725086267295245340748153910198631103296226843700099794337016645691503392698206540734418753362558047081837251404476085635452804759243808550960144573537077968488832215006148319670517467776954332762200902269207300759157313371421050597445607231708289625047555132064184271076259246464171506442464100661878339540873557639182442700907359183819230155822839294127312935402938719520301356954644938804070115756695252115570116302937729053938540066700799492209342068542204845748913571090526218712299171992417694818261585753516021073697245121335272349965472302529462106387469599656654594294587968289198806179279053340604312113435522519543998176544097660473998098706891815706298039451018855076992385590546923679966899957813122008398244792604361955888612539387387304259262781871338398777730771237962427347546690236495756745146782731946116177108163642190499677442840805411480012503328539627188596161630900324016332904086787277301365622196986600588540355518188453877917938299654513771880581260399969680453559074247081427756120942965622605987042153404708150593006767408167643777408910014674480718877579806883036910895889001700055981337666380607638603000621536618599843049866879848434909059776239828015643885782274368787996716965628624879794999520083913590705232481915853566400342571755615129341109538652584913466369554090386225235443752773943072096573457019769700263711422876084326564129881060346969174320271424580484524674897612992803319915055436031812568730911011254719826074585418073456779887591781236721252352246351030870856897788890798977995566284498985106111329571728109404241978222648993603267267938910382025810915742711798618776747938645215813683377647540478101465616035508233573999757464127467264999362153830451651060504005835939067522226751791609616395013253174248823218168405892896414503494143040404989880152163519268809831481633807651760480754234127740582458767562125328973156864937590185557513103242141421315906739578265001078817149152084574178512406398839352484778938620553816292297056881209786681806814357226284903614921721253557171934209059334858777879689824143654040488386969658326518637903319845271879836695849286354484021598439151386328072040902013242614649117157686914467357890712574605853607508933641280786221319443088264451142365454247026210996289381183377652386205586129910935447741051454569858219474093385314809358476635241241810715760728287656044696897700449345902601745936505744559919980820948592048610654658304152884742372078632110894396958416533892446332855149168728752270159937760610678581581739568224404447758981635532349141456376651089027613379857671871427983392872467774096592181106645308414762428850570354759282527470951184399023443216416649034003781735548942899936852099162295531814156330778579508460584997413309676447515810909872319243352791712154193868827037857200944862583770063481882229568936599673038971281375504491365382650250030925499896496873766247568061811686318176030795060453991772797466351740084401638463036959636962043830310550694164390011513500325575138813271998511274460693986571892282507800985887721356823719733814001342623329039366070970919386719378780371299251065768169197986516564135940633453575659049238891688026010571509891008441801291418885133824872115309957701631809371105507515612673809552426553755739416214242939524871008580801551282500011872239908601460309239304966217766325996949749335341913388855589728890148121151839106071586956062000028622603617756489324908694721753787785574214869006061102557668428676563464078996111139556454918446390186651986223802360312945019624239369034312706478595756356276657400087129761312707027818379836871860843090221619733102360110389280429016643919791739602605135509015878747406226944029265240534897424295935919756407943511548349577036797623096147734278571245661910027061521864608095832028977065150549428254548771129477281620316063356156592424775090862800305022726049996477813527177124957637675654962110381107755933364168908765303724665820306980369564058413340743588803753121543566897229461374899005528181878965521210248527769486593445503473926456635685103086345628612888222128262562665105130420416268800787035417340555017956497016324478190466034278806348159375230144635968591273532989161417082637253744593671414059088767532426900428648128001458865858662165794082052033253428479293725839660674172497550441161472141951021326228681620376461294862264725426935332241409368070031293817055774085019395780626777362647853994680565746086279333404087999016504552639183244431671718002855458078925819037283522118513709621528273901588489155802049894971163257490098189515414042684077698919112028182279270958633472276394548876918658329387125219592460046446967845310661022852145572388946596398078871765766476574331500924540662646151028716054175552299955433118509003003248147308775281394770642286800574912504485410213710771831820977641140699398869141000364854786346043556504306344442304923246131337440438831475739200344088462065342949945810648563575941682292520123134110075118091902794864949103699661804492600885236683117002776357269149844870485736453918078315885743040213460625033611625669667546297105019930392301923155045777854374822978757767937115502178027240799067547517288988715552125256939667471086742379569853679574326042860995158503824019443309388400115811719401863114866231091092615190825063300447673736036206590236403759754505436676727526991159014624493000991135040335812651507676666426300835682027360955805591375870890012622286711844452523138789898047508536917165222506601291455678793922601217958255188926671965519891715231218206660660681723479401308737699895680684298858460610638183712034391326846274815388972037255341783354160732584692396028657428923205789308198970428777317274570204590949573573073454214443816259860917173541315926704870998448447059928179040455780325843562663588668596342062110068847528361787153694277906084131319837437259304286433402391275035685619926634429889028180504804004286033855204526882963295171060831302026637561185965042907724773130428851244700975372146132179431059160113741946398202260688795546891085404197192868973412550478381353037756214593105762600625519780017448165913180854580726583469203167254169002850238170618265626027217672309160159177864029926048046710931716600513193291943434508435185507882072914005387786556446891609179448999837134265854364866675135536546245974381710745185620379091954744339480360347085811617820618580966372873704998397946135392389566099295959919706250015847439734402508024477418996028104505877498438174061221141192691111000989172392282986135267124879665194436437612272837108824539427446305787855218392361195191551455539524772602904138990084686192150263689972960824705743366525977700840660476724107550355734569378239473044451989863808348873035059964874466679557407812293732122584845006329125619602321322717249658512933157652021530661399581048726952872615756911018143167494401641599962026861042580741210426276527257154799692406561986107675527955950291555728763258093040495365971409491520033095245169468082627355489996746109064643049384292467033567092491883999857646588265853649342689007914386390547530168770561588571990893611047990663240976315606680599018665651533002878841983552652658495859615072902750681907839157596133004011124037148224817440570220764842954383471361988023371778898629734191396311630731613209461827153845772845868952195565341701584091636187112588994844184094247074624386948348154058363404522720648798143264793629490343677942793230618439739122514888207873445618652594509563897744317859558546097945634395966095356674127173653067497813809761824180073581561233764923985531494532387035768104254051498515496959005225476126989821442402458707053642978852819598640489221871306666144966500027925291032701081185857478265023018216379114848498264590332139925694336573254263312077642522814160435823397614587092565041224577913037933275687918116697059655311106263389626621382511765591796177586393363290687750086967048496995178345755659236419687976414061626967872428569789301660708504903822346386100535494513514558236099411818395196529517025521765034926274154023941989637828309149588326716009110357901773751661501877870679331707988506528589501437709818223724905020343298354149351791126317298249532721335129143194513418938813714484952309394880032502089568047376587923155207969074447083182271397998708187589457139259147068788786192080582163142851724127058281023334475796090529570069525838811600088009811402811847131181880070521227127774139618067684189806148636422607966960141109084541107527419533155238110276877297462293286652828326995333089843335008951125322529367675406742565711427665013755973014955081885111817217488044386256190543349150131839549248969599900864422712282288256049560229185309855089883439302386532508976490990951978236119632892871619237850690289547146908844982269728557891942281481468296968095362339724801212819844508181228752406403177817808809140920576308730401805057192125861664644699584454054374712420270998103589451031338729846520031307351855258905144389938688565787311618194612564109930990877923519335790480046138196830260133835817683579170972062221963671243719725008344209960853471521834799032983720385134704130091880953256393499436152189809353922235889764290964248826398826778353018591599142681214318305979329198308575484733217719387934468466875602714902338166654912829655460938359912175673658736407714053563830255394280442850091897259464579732113164652677745181258936839203767650173933828996337499439169371592578249449742908590003155764230553946466160892225327371681307340398124403717258512877124499600019252595982874379432394181574457539384974519858681113145445696116757758106804446648359111361213485199530438769300107959917797865039768544134866210875044545570981110488553262687774030738720605630165086598368484563318181665180167964258325256490250135037883040413953433921518393524941176992365080979900476608803657522948315949568354702033204963842404566977799323280283189301853352565194003782753467191724108337771440353873504392576662886849923162126508366519598955853423484903228885575661674161870264364417556616715286301731785670057427371738358335575462020086364991464565076524865194518112773214530724052665561650345658307473773553729522338700431140614060982391096069393892845752368080974006033826999390321108299745867857866931814646998546693706195035030805330625213111462348188563039207047598319546300692871346103341716158784455215016518080053448038832658033568143443324577627788527379553791855997269730070269553815243063936699407569685638081167552682426914254052425228304758916237046963265739888374434058787104658945940852860635964150728220176153228663701647911702136415377222352735586466176244116394669817036459825655353761395632739597669469779483152930352808710327765117638436746886188669647144683397102755841990111122826043007907833910235034122526260819552428149402852976189566113781441426053207988911410999709538754328668110882726301770305019948099017612092062655088259640808514878647985044990813413151880694547014549619713863671847312629136288110147580817285396592160288053221193488452521969720537992335913384289454509521531670163209681738816156093631095774443562036095457121953324504862168020750356516999887478784154922111113531698014661937291675570944515042689818417577045878532961277811571556006189730056354920022841277060304251026101093475212801788184360019479183354830577521072605960360236328886510708394533884174214530418044873186376161417106017127919184945518890898554736818172198111506904819853323524704156536533029928412906249431603399249477167843417525942792316025459523996954725655284982067817794353777424599134882978837252209339092747861189364966403364901525770543507514315062001056918786905502762571666725995147709949724730135749477742291065727434791034591688816607485099037328640629052104860630075768336138798588884140088537019450096685582406666043367527900416610926744086384190316622239350419533553369486282556125273191108684648677121872447134625631048513227278149568904334638636683293454611492997156708123183214274488802197585915953252121388562282057367864638888775786107333584156816250956716481358272994211306767987507494899312981453374978387209878447010751629814381497879025225555112404685846969525552748431831790397504793026023695029548888331723627830155754030893264916475511297837316799016885045146576898708557434956982071654822079762004299122500501144705753421770235523802103360726350484996561425878083107099728755513044225495363488698983219438612765676790316600209206967678217292085226590528112496118304681849905191432226596616086044243235919579508442711990419114454901058538280766329034867355056592834706674778338539600162326084042265143434614801004137606257911087647545841022159946459378739208232440148524883369532580455246328499643903161331428783991806399691728867638929200091681090890278967260462553324218770582304989005951154363423486534643809597240230825901216500085173368886397302682632571786593040105242616902019962840930853163623143133234337949099998508804404992581652699470702798435377340630281564903852529379027031301158629403656352832917183893965688833524696652514114867590815725231501450443742806066578545168879367477540674114569827292413501130612300931438764736932096130067986843966416489031887321244464427410333142881193755067603530837899635418636861498202981939986828354349584093525413832014598414194777336408351714707989761734849514827653622593895525882350146421885949025024130845034095043864055190803208027017687299234054134271728507120078824902383662997270426588805093216480012949686526118485967682605343940660372883862898764878930943194132868608310436225690836364736926846984754377725980352112123933054081193252021012223020594354259198771987343937175870597842249628006978867271388123176070741941978910639980043839738168812982746819955607504451257849159474557446895364331578803160663238224138908707595033723972547302190970565960996753241544877748808819328584015716739929062485573760086982212094459268760962947995878537275487655438568974823415935681431536632245734711182841799641212261997411217295993537006090008583624059613741527726711452988956731569843870155852849960476112852285427296139554935263018073671903091026336774611713045249777095601386488591857787085967381715455942324834656023919657997792983903503223189610299837802422907729579484383769984775419853313275678795328729671666719329269554796258019245236931985563945897898387506932819397145750479266675667056154925612659343460434896302240512575971692743682015191852787806202864502295570840952325754757090589029596251130555508325894805828093278401287526051862136662839524666324639894432721053883036877062450369777030583058105641512861561157974484595936708599679676191280304656544064855555482906574289638419711960840901582282891085897248299283354062310285177858236776648334237801037154626348980863111909179980064703614601229187739158689954223347028939613279176338922717776070257708776320057197694815000363108006779255682766865624082098887465189718256506747333251181820169354811253014722656574700285026460161871828680655662024215822158796652037558426374892256249875229757321096237203580138489404476560065360612550053036224105423522618643856905090546520020540388136311040018089152512200801532096536065205188234501595478069991439510949227313487089351595129541235470213549407401436062247605878019770377789387616626371436986663132391606351785458953863322284481981957775994229055913631849537642874209279488776845509276573706350195021819465654101878899625800939365834528889737260886085762794870889649414677878855729457952867672161509531008921594455544899130485549423350087876987414361102233780507462103595403674323951999094744113079937703312224848574242217351896255342629278930145138206789757700792664881102060927360332375544343427880774931235463423042321616853108004433468014179300855325945780186349411743896318978663881694932925251795078754055607208430008985340277827871058082122737041867383866564639114665333371253886141823794679812173015892107825747193468619997435381486821870725830049032317548142601350551877029311954726927320282993559549375159712334773222103511372686766517761358141058356759296974411748166564254201773071941587368803053979021488149251047415141682554431639784985134783309408042718047510278627927312377819377648619266786523121459946330144163596863919456221861183609808271921078496551220493749210469571965186354066318083129684305445238726028473712300675876528266240028016328259724071076156579620484676533925085842583317201940304895441115241760134099171935748899189565310015819860824974003094412264965829178063263530240781864004743754840874983995483431557721304984185978059520409548894459148923777723780419399935346026333759765196730451616037561808322143389245216584151920662800881820113381318014860056908798422782841656817208909683024373244555063898991819761748719160088474319667584379501773579790890438149299819851110849305293273599890071588814812461184225183320532698475295979586934157353149839729867449096056033544642332364454260440458938329981688801325297174968403995709770152526418292396150570891316475296882715131115777213271321115190898358821072629084743313095194424602571477579017651530155186987692197303634768973224565924385644679670527642461031161474585619179486332736737843130209461387118691832046526625869480730113876234633575739960239506845127628642695794726739794061486690594658718867734048022662045878723457481465159479116495878498766891350275960520906920935767296205288894270335464037129881633197296246894301116920633135505613268903536565388961902023281347605458539151995423538088443614981884730595917746038366399472877143908640109432385205041864431463148497980090556892925267045724157071421610809149696898522126695115058415864689111199433547152241763410950815927486006389386385570884917504581143865122251522233863514930430422541785847382871683278817849790209194092784048452027737226783440787584107666792573594467934265778407559081723350265216205449401803737758224038768283804693218981200889544474975131448198547447190553579771834133020369324678339329492933852014543142872618310156313603822961089265261179638992967840258562730569396523475971561389402482577525708374036185217709466386076376031559839461554977376277330790987597114372817906860258683041411001067999931404580568226144051734090143551338951677164177678103843052631114094559543302083969832240246784161788038698141629951538252051635749581681954449054440041986249113131046331059412494021085962551671101243545920615916616248733967812235463898053215347528329001681690349542479037658996858879565496572685247985893322140563688942522506607209105806150384900076969053142701228435262300430776701615915859506084376629543442677569000432967390845656584994679057519245263380235499056235090977406470813876751506446275363114370925300195073283542686772588485991197590003666983281189780391336435996410590167707398888695120568988087888631152325237660372878687665080007864617902787730123022097838029236086551828527560860298431695594154315124392547754582990724329257550131986821169242094857339886563039408682891959550133018696828342536444474814015881928275829241157147923392167577511874159464507389647611593529330974480293349737144482333657675553226910230958135839870575164907348517244733366256633190218591471748195020027695199643976420242809934811904090267670857727658281346654035852530463880485916685366634101194467687504756896928062246416470050088855878748798283041613649194230510362839096119526437496842443826167022102581226405064288662305436697517337380958353037957091799230681879080177082246500130605460444388965687314294295536431472494829792215731874660305729115934798835444197229171483237880595599386939163208273733744675487454535575496180906003829863221741062947579032000246099616770720387479548178083097516988220031022349915583233808508501674719637727146516616273187932453847965850851060813078103560270374387572205502542059700699682129125882768959920407505645516907415465860056633511967399575444721775214866579514386765182707973253602718616857702043663440032641918912668951066851162670574001525147802665900185115158007899341599990631440653915546892570699191615451714172216438336547649493504236003893782314576639994475378519274109599812549243786685887181638090773369473368645129252288743005391573015202619315455729066294249173872801606000876965722784721428670750813001689307907374966686713238782974189282113661045959831724024930885852890322501056533044103594165036234797852465250433054706453421277426968284811698269386516889205854490474410649104693034820384319955384412456275425356919426014817719493878538664039773985484124846344951029260136251065281400824086877571528050495481047880374568171664102559057145846442963860414168827549156685349883927114244809417904364204673680740472410418973404795614666073295175687092788547005175540312325182214383159402539721660758060664559436220428005150567354302135229757035913083959659840441999856514867219120582010114633815208891713993276113197692777101584169493079920143744835925245816560160804597029108026209714519939646930272456605850783391397581878331828069774267728314902837100075145976635564081514309066600508921064697382729734570154831087803812004756808247349426432809581515098874074816288774646388679216219155548573803795904242953982459492286502157672388923157469122273242704502554250877912791888158006806846233918510016160534457246661893458459397101633401164438360524309055249303624229038083090336214908724501892357601279423425727181457318832448297203831496575108579085430672363681527753907575633647215867007307430288286102762967463813322356286612281646379038577612969288340213035712650444006109065791811035448160320001851441977910862986944363680200621985119189822844875952438304578487210695598059744759759948524209961241640009679762672998934040385454122420436009083766576959534946854058281119167644058561191726989471785728531093561084531926051865842938220444133431076063676654954113439589427224583528268205907229634266577164401337963000295698041012931081549956079959063875091498615711269213918075861823197433711526563508025648055019544543018048734117202953892230550555598738673432335296307831340523327060459231221575712697460766828485919145886341606830707757616783569875592863338533683690044940763760599021108064034362833895050300453750296238164777969754327942747016333437672570642330141081651952447686748023951095022062203700570660093922207508377550733869453882463197583828371564840216763740851993807214638709907621017912302931158251002018430211740617467065668210774823670247487285257034085189923553625767947473523317408128951937682693420542341487780621858869592858738169805418354048143128432055939304618928230253415557234794992059178567759709785547901621443142021896481388427376025053022681129564478031871683035389672272429134308839985144577289508914611885082942319630306278575459785428598856954292960752287525230203873185206077017991043598971372889893607554206824237446500524483384837013602493109612029489516064834509698450154215931479270772884156127366829043421907000441231769115953031678093419526504334045281540710586512218370246188089199348228183879707944640609300919732399034090069850721878757767055315305724255018635973399043819028977877312149758230074100699239776889588110581875196644011114921442912974947319058262601655146638367027824134783340009683172860768293343519581389722770457503570391175024509247478430777988049393750225033101042534606686618931664768170815430835071560153756024759226356372076109895903249303825030332440925839918723815145969892018842356716627688543831102239375963382711710049983331306221012968522152816742481392434653825133462002538186517569667206095631953001874921164023235602850917176423367511969437866959273906528773375033431959342677692194640787225205393543677093045092549149916722818274706165359092500041296092770613897656094163400937170191225566775761523882513189032402785916512245902306806068323504971593318636129705415138478073612967772566448307149908460493963054847370266249800886935048763423003409823382171492055182077144817205614077026695108689758767968831470164048082159688955853066295701495202894269165423431036704382946096583822336617503944358371897914472530662278074421491406821441925592903109585178014705583094532027616957405727649287035944524972016862347964947027650789932238524250125511388703452073516646453798773854617806879271804231082379082394616544380350745959609502427513746474828411173175575485473519914941390658817435462618637454784427802164752780659249889837016730005046755020235693680198278353353425892618393790341923985122819834333514461303011950164811372925282257619842663562004512643719940873622629575689671491848777983621773229154697875418503216020518382592100031015773717536690178794124835302134497969057682532237758410135438221989394895053885418460062021660391334552671314477516362869667633390191790347099545563142266661518178961626246204785532514319055533884924561190651404945791065301455009503869888407657121323504907490782076435033346966119913160974450521913733345205365447550273675108428020830851666600817789476959593339797462777165131328660796328291752956451642828463267453320491163880952790522639455261786225050908303540562778308828817606538257108275192170245815905469180647399037454999303601376527276883068800245617957332387972895538781868421595643409676459995401298270810847744860570961433451283588455435824313845590094692586570177003875684613837387697032132623349522243897123344515627099666909473205436722572340601598933389904842952627008466030361872271113396557170015226174338990593709756495334620919427211873003806706888303752503185385309080307215415677357737885539218156768192930356228501769638213088039176401721124081991614496385740934991148253402798529860447650710971838983772550395743341003162396434085812322994495930658525673264667993465159328058959792340535559422107672588759479214810402707621057378976507108586681732473618397488666285822995596116475692152050969366174329366454707584546919112056012851932950120110263707233585158276863135964492265774116959548552975877028494487203051204094456658720272910348933957340742307388775002708582189581573026382069619622934591985257165442072991099083577394171664409057147519710490568440633756537799989914757881090704044985769782951506956616957011697119825654078772060264352566837600700948817152102070659980551536124301433147075601470136599910312446145436778066576891716063873418497772636308733724942270767064076811585301603945716468087178372118827572474161283621165093426950343696221991011793879165453077470978025812700139121531873571159454191403665460012953052011428665876612534977598537100547300859262199353847000031381569765873956735402650256228430870298484889523514541096326669233377098084323551906963341406850629756424322281348195426243761236505405021783158348297568279015336936273232708656730272946512788516415708620705375902012101147280227067881150922286857816028084557269875596637706211782290008082202502029795202222419816603281649999139961238713194568413364099688838135271137170042613169042313221731631532542940678887717816599868589260478655352377117092639453707532420368626777157608596753786265741093934841879817821252511905595105058513746736064592799119182856352056613956421996298449589090156659267680370378727632202962846024691506306104136831640960148696795175398807014330212104809076935617065276499977948856922642472924561412431233993570516459978177214340118342502243349083391391177015368960250846095426599361295585698321584045039616518454799873956933555229182404802005314165317050884737251494832601470789951202530455211778455985081783223740129278618744168938812620745640455495045218399461451876782663254871636547402306246661714974607869477322480944781576448683484137460581256474702027501184352046987023683253369653203819088344097053701853342338686242473202571725853078254424417443098135298468963610618444759310765001719201209638806575372164986718022921675592700147835593115984395125938475783150818345772441919742162177619508330471815137746134033686018872851869771113643083550185103575956161311632194466926986679615986882631843518746945672357033385103482615561053352842914903128796706806900878538376280914992120913565056977953559110075030050554880593797570191579651986309900217074410319642731043864757213513473965612512308877299137061873543140928962828134053889729927621617248772208500507695189416824587292621549170734071441459864701007918288002203297507689278685622053258033774923868523612824607409394982662450940305635708148605957372170246714104019202378040052671331087493930319826972966378759996424947586662919889615954851924309740597453135077871209044553025192615893594979835839862956936962422825076827415977939371072149153513891439796786028921784576184569999862330373661771493747108772540763015385996612348332449944613093703770666248304243148518627292527784277838405337903239119313870117426044931315610821634748750162098543310738036049472288652251029433472838345216855480913482249049384815470196484588624792731801878193388682886534733048065382612079718858695155397125704985445241637105452321704091062434359328596667927393827880155378297139389438752051501263958463559410569626540517306331726378743252033317053289527561705558372840885456857002759717146533451394846272070795877548754771535648041139830539512154653061738608544394410804808154953853834131790278829799408192289205966756664135325922604908154958741402426326015671174088283420644999622795464826282441707137767509680254295543412534558256298581065234981570127802427053019552207656722592928261188479330909476072848589752084871406800760982971307573229908454726256478526275043120637585421993038175354102166119363670837770930508852037694098701411562027360532473068161535766078670989158146531104862834688375521707746562166271481002812803388527871564322011510898399759945180225029649198412901133886369323472196795254697508121444552955972189450375149341071403094248581755315080721707679938608962008973540944099378113094759167437858968167470824768258543056896830909181093828616309888341018958471929490188618576006314965120946402876024032997282440477164208365374548937239697620081809344211886315217544806777537332960006078783486597375030230557358219666583841515480720844093495825091846856144595300654084786726963670304455041980495198981053493946276690971691831776392823666202418179283554582569913433348280366227146604489449470596685751698527069081763073980125617954627481343704944751493043308779854643687852177101469776293382483227970823720275473427812066478493666379814421344056463575238418987095594800213705684808950269467369280239791092079853694016070073285334446789888282976541844749072349621056663717948097701135289117424460402554148122069311506805668796835827208327718574722563141535135272530927909710097146264590615217282782766062894456205329673992151549973159442289621924089322546906822413606513554488592491451204709637410145925135627625856829658422256492058303265488476283625261571570341525408537011406085061878354019120592150546907693658786114496543825691133729598856810681393979373687515419024410728873944374796225404445009658395610018097948090605760844542097966246060126994954229899212643164843560323106147263856424556791550272419964243530022669631698909766648058530721554901722232594548068159966934249480934825739153793889751557900396355325912590260618526816109531294141864541787359405921651522209766842371361050108577540687121141748937408613507415441401993951564522387157358951514501003987213426724053886557762835336218497910910792602587603388291077539987870808459676230638663746061918716583656635284057274231890937790619568799597898690556362204257132511164580262903414081524308865531828932146404194764231150645536315509728696448965591174533321258340825917210578356231042983322221367800708356159226461000795805705772821355153367862745394854095500000067127866605499901232249049560272269393122929211893340949439196422948332556702374536431563981404741247346352114901232137247650156955026859020147713049066106867301253947700602035672623364422776813983049139893599141511360955182451477009171124051232052234559601331399697247169531474280440989815341963862987930153289756648871625905366319479717263325026085706050187831809508429943859704985988089573254709460424085304056509551727275789476946982601334169025391822674442321484986679765418091435222926701757249751210529979724198474330889955669214535001345284345008912509522925156634541093223817867448925043051750006001072847588334321757445531806755799018024217058084754489418250161833433262693616971851242836485331261910868783299826000920133392670252469917222799277716254370940377538594883419652851825537734115730610322940964854921866426060969348158539395432629600754689653203121510850506590344507998196467806547923138029224427456176245404084243592488766458465950128982267790839204953612030414825803481546029470717922273499820920362833928147839404836380262639272438409595063867106834592438111328843203220380715744298611661563937726924690352848381497874530137312261068053759125932220444820720305779982574341176726969970387528528297620211947580847167023395367807592773859093760264051254533739060906739745101568961890144437439530968728935836496180187713520917044006751463651162192769511105503812846826762224677695143582862047515638702443137458264875708362560811586914065015836271663989864128205862304084615741262478885141817142529073430417278908572242045131474569383024290813067110044707153384872969821316105612754080134480345299905283283484047758099065570082019390932860112693415156333905043172005744300604285853062510908360848619439581214458594504726405736002085274196529332487963861732851825313674371873594673267782476608825336099517614427542187656070628600521324398885419965092509787685226149624718256405264360556462027750975404424358986348173107561547508916183430994934568355496536217210534633431979065730809604690126103331891867470977437008502572423252705968363578198710912860725539706499743309720487366325652592614945012444738200822775693252792410425880743125234032495385437757076228141851174464131679953001742842291827944647371506892145109470402080358979839140839200761100433021656946310309629928086515062470857037826048413894233913833625224881455341636591905035938917882029431550737267770715481514698493399138005543235410968937824735376155271737980418499894482735923730346683727607827664868129321139101893344229288747871612409088556791448208586155787159664035412257926946100636139763025791738375194415836682421071855028869400646516635167348811114957977092215196593575129770727158139161972758770105348303766113842947095571902779500923863267330577404091403831292233493936124584393457002051423298774336650262383957354808281734070080535182554213588101885013960841312030444640419652125643824805243952208065785268672001056113107814024137154642621999097020590355007079602217012932953196033049766717099611938737143756183053535272088483462365617090385644988558040290700359199904192115655189083941006740678566991951783629066064759304384433882129276157208303293557674047011738138877042717747393746717081153479835108889771251401027370947727894914623640876579645802654879652133521837141182334282723650490581527476892218223908024477026621198992085665405897977798187367584738947868432121097073869322959480427084043081169779909179735617589730900875152575939793525717409384603032646577740684109991606480115073613655960413515550174714720968396839783083318329761589675003800685851804147706278083343551817150200670784897314962705585289850353798435584809859037449206539872804003831255775790910645914815869059013715217220776426432378091730553500091361203939727791110210350860247976694893740878434606613327792250651772103178143082486064259238680183953165197938054439533378831927914226173113169790385725070917548071533733593013377389726029573623197056040147517830260443458180643701331871738443794006863927743047548510918147526438811308777900875183687584694595359995174350807465485082323918596316556716747898968609698626748655118737794110088933221614607795831345621528231621520298793328939470485916446174302969852601445248969213479478979919065210315423666836093069423169231494513588476613168070955398173918416924017008583480445239047445811817891683220319565429011502351162654858102290082284830968013141421289141138292788305406078024685515531298777404148267009855189428043421911109065046635702791909205837435709427551867811338298017786625688726491581511319535848327567594346884895325719733011936630436042107534835755934345144964009936294598999279765983057445591734865807094942766498749104460854354982996547149249713622189041940448531814263529807651389252279345075278826650741067711635942959057531361419440322213070151069470175901756290244661055345038469318377083769668904687549578437799536590150923006344320499614431248492789037477497234271134947087163361466883751199970563709326308080508365022585035700260932761617027509991020036823723535053215241410550849338276064000627693196122618117406382892609829087805993687287928735283763465990540398235160198264848483492627344402926968057944888495012713920769251024022286365415782487179657009851346078354407851053952547850742286717286129102914966330585752361882325966519028496313578879175007276672718576691144015237711890490346462939438188960297910721944488837783096762043330165990739935683028232146195975923629948389766520602258419655629516345360667475591241997866522412942348607134098449547092763397964440872723827501441086528424843628892046007560084172891690980615764989245635423795493042661094759564907266342826604874947724612443168548695023953147238906431625133179315045078658860176478891308765980938791617533193866353147727271180553341849970177732488523857868301316172162402808862594938767523962881473305330234863457069549373623602327752046304388921233931542444483334947440130456956410456559309605873647402486707413123493456296840050822940438001257283031626853497667654842351111850579221127497469090080325754060913167347812640107207942248715629546020841545194843889417149503530936836267129432025363996495623503035832726678551422874969753223585209567470652870299739834275306353923368911405562833095173918685835943726294153524274601673429897988669156442120744496986583993744630521431612491483567727055479748797213304107658711301914827462059243574760203412354905560160330096840591556484696792887336938756691579002429540853289456756939084941102144737215052528202414906620297653115913355581714657435043834100737300270183184404494009275853131594127608977633919020632718897742012872174262021599491526013446446568123495283061625431559623633862471443272816934709447264644656591442723136570413971992797281315330439822133452456875892393838123659856785810112082675920618131880556090950351695196494703986314546938120157985870978100336260416499260475982238249608015613143445583278652210457183022689884236920034922696894163341635567307991309036665544409190072779429000735351247288433294127351873001037335495946323941144848463166311939119954954852737917890539234164319337890592148625056627200109827116718565846738569489962360523634262666503314013664561297123756381819936184947321179633749567136879506298511174995183084371232889062295174994595389427693235156597540165077641412891593826422462333030896910905290740803116907909201447356672366043318188602168836007559848392608114263763015826629118851521897434626703454289482651118160729782688715334094192967025099753442340538534920653744231052615366808919092932689075929231428071331107718975312917809847809614570686839149315389607068634319947644960298829282025756624549429300953083656072578006085342846665105143426003856970024400529044847382217496040267774182543545316315596086766899318713944319796254756038909198953324225041237825975202829546234776902934208797261990949513143574627945570324925155055661479264257464798351149736475277799299487197577629914081184638974603501898267021138688547379402136539823436254629650188701407648784664310911313315360929316646932850964457368813163474300052028302752257229673236180973272199688151045516147829824100070011280612445598866873898500150353297823623401268881139742974794270712582978027521832957125984784251215865655415258351279515936772057110698566493440808802198199891127280580764101818737879824338519240272585699331216173777486243029029921433298270455275301945601261543150699866298714204167905185122648394427974899071825480565688196699925161657603086075339065748330386214851267195837310101733648983678775669869759405225433958755970177262836334251282490031725499360654982066222964456654427878583334905243643823532120224035750017279724571572986807974955060553533190369568635005274307803133365490118676847604306372716572963132027224006705851706608006538940688048811154098767113580301288092292677397657283691603274065731964504331945478471230597880146774168947897669803855530349356486242819426842966342731716507327331726616969402443461700668605066028335176918359311753523774207785428208779148811309153929163629498407520890402102046379460087035228767481930848232786165894910298722431524812485954320296324702314659800445430091692905213326384679927847265495126789015989800215330661804340497525658244804505567729000870517031834333981559948830632248031315147616114162522981053302800312075672387279038269233276443217556313581762142108002277664167145688576338298815001195744431595303123715923260680478144068012393992375298259146754232054059667557887323620182389617489760764357379236992817816450469859227889694600627133060489116272458519390517509786789199260443825366720027053620097407754730816995690390614603755259304384656048448327535905144569200093436243302431267198310891949356928868487080600648392594987566828702677063628126647273383263212091579627808274280118631368571096437227775231640429514438600121090224703779710903334773374146574155310975571742331073760097775287092130631205736369452135335066893362981859497240433339345160664211279217441387296022064159517857074792020608020646398021032483375422282689042147878412106095878229263368865657163973727263791636272341316054246481272991280515521203080182390519879479844651281020265086643132348376584587208621087753707073457706645716932078685784077544472340640395096512075379097055378620699850617450769222173513246720052433281510171624564955595149820367812595322469659204529088383570871126011395787574569389016630131347277371354724351863808243352230212541089445477536932876650787510988946575913493539535198018381274547545151413800182387911054586198012756043190258041207600898807421995459552124643104683264152445306775229925163955038898761062051005345802724277952198728916062183308878416892298950047682825495355221846898461192428127331302036695430479968901548243315560660872316122753294270897555654045619328203450719976341443970001926914669895308010092342462800988487006219016736412071326236668917583831429847104554084474498819525854405737060361588222622973565958783085556595798085797066237268646911401114038578649001777970514947063072579698157924042312876840585918885617793045079244519448351561636611733245005214732228221159158322744272682926195353644320319551871067379208614823260426175467993676208599620463931331257063848060367941637217487364193551832648477732688043692113359785955312940795218790613974522239792761983633887384721871171334274869022633250009844118684437061870904899983039706893851427302680425589839926151818050296677650005627679595407416257045897587324824981267660485247013266394845519409700168517703217154682611629749406201454447618937817973655048030680681139801073701574985753715806684804556819777867274216061547509911600921828144519149763632864793240807751046075905805882424099803155413499480473366413927701924974839950734610058700982293588573996510867003320936224976634430374632123265725427101215125700112938879807902147860821332736507191672732023239736829174079332558842966440489623018672914806792439878856874298834393051288901741068166878480225045000123079361802185092447895235537072098749854996812715208086694470302426707433066034594146109251569484123775306480478045779900170694803747369901073125159147475059348029374440202620508454991128927330383635619966204114845245219812858454158385562307647876724558952753625926510770364259890108338461697881383584912208971289074646456250227829753203256861085142561215008918342873449319761191748189570240489863672386154654182188404543918855303162035400763135555314457735867400488783841975183036066643082763445783649560796187246660537887424807064006556608237908746120053824717820226472400168739240160126459187988947454886516287591525944862620942887565289693578837560318558826261149555904780393109970538441404779022862227586623099800755570913185747475169612334433824000590037414464252676795917339927069574172436453699891526882282080309597017394231117260641734129413595891520832389390807068558863781191037171949945811595966831012208457690079327025101817669682666556254878910865294579940464426774343618547859940109507427007629759348722711502707627500238836690237865245038119334809580661301414279267120921942044712488958681431901313848949655474890675914569038336569827732747790301754615418349083391586195439196501258502736605850828121943935060014660879748765299602594773148858028985612772918642781111920731503880454103432845044421003051186894541302266356837422703243636079145352634844404181057555828870186046743538711973944330760509248087550933298445727435662055149549138175627152437016669981457385174595729575962247852687715014250053421834042069558536926539694624137676286027086422604177629629529138875341902826605920583660063238657396024459064869288707820371535958625241533374831096483270691102107168634740971459951773872203822574853768101551401120802189421248059076964410684259518032402357799241225591553887696967499734400705400137943973624117877235595679808869770820137237475740206355514325180717903341170850498854780013456686525514694456003663995791910531056723953128995475298472677925234110926363195370153253927727077564099672559550754375937939610723263873463182081433169671821106653572947367446404100440598238599475088648445529428610873675769856345105921347863727522393601928885110531298844386855573966907682870246133454203343158347575296091508812779961861026945258628285917883763485549530350407610880833461545196860462843569544043599560750671059871461477512183378637338718359808432946297151842767036910020429402559356936122210313980961908835881149715250557763213097100585290442282515524024158579099081406540717916917857994938814592449787045399519544625355791591649619857897786802424306213650450150834690301280500271560742750599419710642940631032806502443696121950240511970377306822603067435571849705870653986309760417659098967050881297605302842006533113177333364181301433320301015986625460910967367033988308585617658591981502000119732489672691954939571723023530155075606911744362920165165025190379879447760457988038424449379400774212453875442587035932523925290115655726053827490713509129274246348317045137905446304709452147751573085846589394482574019741397931023663584654671652928766785946066617139747354303057173055516196051441881374336813355964675005347249519882678683976383118851729436269939008174494585632345203548835436919492938929151099116843906945700142564839224220710618066286005764721374723558082984385579948159225524939234542650351117240134726514398149588325510075920470651998248115815922849232417617189276481819477637279671006501067496679888294397639436615361404425595037811180385950394855309949949219059410655612375987507117147023757579664427062485729493211967497414433253693237655634691345075655687056722243542116316838396874887623051729001541767848126541168630891074351741277448762314030414402405670819611945198762532701402405924343612720877272529181619312202021453920669939270856646715946649116111129112752662638542435242315669540776618189450677461240893019932359310720803460293736771817898986765801634268725462970122212774656727341724114825576916427718965221448650533430024245814963417966319882111710811895552300483551890611905969637549427314652763746946700415423142728565465381511544297508981023732172276834770552115897826961446417395318139236173741578622427701162011128742720564093920312301455724321970518293043303468710233044956626636321732679966273375807218679066047698307066356736913613083011438845014506942387599693272152625495488195609608047811669144488878806758224120771953439680309179465130735721564367474677761032532839276406598329998489587319847031943419571333044642085716460117530422820642362342712912884108133282605903695823537914132891005195960174590734949737977081964237206680797453622132349549797008668672030556337404871654826352486102231729560116256570966717574501569527293806897042119572160088312964311929429662229378076643615252750807044596180273167088858083180004942937212280622142865697816248325940710526000427590228350274611492174002532256336697801880755700230354170322593058869293868185192128439721583709327370921510613552611239539472518798413299236945330218369701588753634344477689632826482298513590388708601519463857825170644704904271155173881283280594355247061666932482766963747568001869604272022668905810888883971331214010851382609987444086134596934300919080978447300295138761124652930940165106922342368597757727065654276267712621292793867994956699867320742450018154716274567794052642079131577450013575111068176545290340212568491231878007388286108554359831589210414776890826964830808812072465581885611068914444012549364710793533256535176819817685435733697746661562952371704091524792741047586018801460473509434412664801482048098079877502820589663916994418334191828050275717987963356766634646521097780189977622762474442812213351662829357916142634522160505253257013944591447031921276156216810479143643025155983083698970609922113535170564142582559332390263492248084242839638768871680605017482291021697151085059203367805879336862061397742751867065374504302186673612654383253548322601419871455653145901524186853375270267751597438146122660783331022606685525065779871123736085516308885945436518038301895155518513775460601299426930341464879212506360436998782013955524524433023997399328013976216507480631349259768905674248094909206715943058931314732084425729928176033224551251963815125871783800312152169890486542743207023045940214386423478110973164571141249248972436720163756331722634475652807704270922670022670989226760306525375464198251896204533712349582886203110843348570274206136811425166034540368967657762116292701850443812109982865137248863495371733734474492779459419797661204638337467398358680392775081511569937743460015045401095727534631890124856122494852919508577350565210190666935535527729385504854124522394582681781683898746575839694518564750857631778721733112966613888849064062383521014286789894172884569435540825977428102594165747609226117559783061083242743327167078008010882269400556296953727802706094743848779996093314237992837106786297936545929936073984905832401160477141243320705036878485005071570305741252906056048153718541311681031014890877034600569430857450928832826371250427777683781874482988005573934905243463430906930785359640147463871380991126294074462774570400005337907401145753311717482873867741914761417509050512944687899696304191994495685979910368065209266592670606763029911260213331679796882963056173530176969497722090681740256598706901457302404106122244880396178323839621932521738291310094361723295111801349793988597585850239675815558694422583831083617207783320985422621350512753203801953779439954089613953386676925059614368466855530873132769969485972512121560628820417263393023024083342833257193272726797702958451153132530145791179176554850347462961965680012006991823298695809090174732916202628437231437670537566490994735458689874365366042493872879581794503353527239144813500962768773801192187758603301152936702797411701017282231321373387898908658645720644283691136267262510811616494217305369699673939664795535915162822884236900820753261906155840603402074803486307439780257356232859712967919382243994473891175630313147705054882520732031491292713266748025441434312940374278921168757180026978191735155879300122428945271032782668370904366364303391972234560120369818371721248865262523013250812152282904489950730893292059271624858433653521262609435817941532341353811186448455968124684103037571533888237763867969591520532240191062606857185423469113265608365090351625158837199681213034898966377173038933048388668154285531414496991015379738580890682218238916281567283339173354240204121343130304880638297480676487592750396386303059973869592458825156647591091555028626288859537640853180095412650778060156912374683800665199541689629121362204809558351166890275486162003585567434428008068758905814121269500354227246910878205080149975850633380006615844047038491239610830238316094551977026684667139379638584870378271374987262347240644374200733942991364738137055603896138565818347378472131840103180640255060902352854672748650558838356776972297169604429700524247756000526731704751327284422775673238341299275305017350305567386320337954916685454316742505538689920567409709424169820029777471932236753798217135305494805366912724634761045716561297638098063395414887050797111708845574525082881681150580128004177566180110526609799344093621650145156144049891930224920746889076084315585233801866043852053349098830926335192597580601547212433551240769379804800082892049373355422184091689268230067583926985991526529155481880173050931625061491683237315312320846181585065843221880180058770423127120406491291157400921360443353194479262743906318523057952573991805148081432118259116125969555618024763013037903619952941762758787580375911048867034256922709958366493121929275003937276620714742904012547879007797806329431965629986957066095512643554512051697144139106214541841896651391342030440694953167920011732226415573499592225953070787034846361286018549325513551200971006468358112625297270281096835816343232823259128599932357009942561554544741161960111893268246932337173626281185101762998195705234974735559260456787110084242194424322646791548981835723080523237701409091546560781299263803158316384267705745257398376341298143516108124137751766536006454447314055854443125684635643173616548080710212217957260832066704944078421545972412053796660334557925490891296922355586433338625285313443775777198176612619999240604046169997206740367868604558330066319278724333751661561832744627988241027355958081185659754293419971248807670896324319704093866018672402618559095321152119977141973728863567932866491541737903919292863329685229728156611255001772100721122875024102841276398544621086997560884078759436538576680241299522020163434516372095385219591697426648833690920273445962868255096894104978705728388554983887979199197705494689495689100737128022169046456975771087952406448829273260102324676750536404070817923896244914218670974195590217485931904107572484526966181698663755839868942140254716195651517852051275594767054030006082212052882659674249564025640673834413588554619292639164411554895758086403112742286852094072623018909057063481526889969863414454018411011095415446705137689704024572898650636370683124386011791062202146161332926997774859390159617965783605666120566112807795335923902149318623848694987099038104209942386152821075434709078466104462707471943646760455225174933560241629434141265504189024087757792726817180106980770193738066705780406926677629907473050986486956678809531610193734064058611804449416187080714914236555754973460136065929405969338463675484769775223968142557461591533151036349059890351093952082407537104460699567370166478582113277709416082099797167185549911871441295858527515289703972654664134267862035626220298862117702979214235004445906805773856349058255600841902676794418200210599914370104059957167308729727704081616774218916808218302587091285179698443213063267195661487732728546505894928525556147016771930559148628274845539122097853550857061639570854435870663301749455106026331654289698452680470011826539839253741850161312713142751495315040656447048841677582614237980149236181069455847408770359696689564039063227837989735723465742675662492186259687002347824152689744095144634700375035663695915573218607821790002874049502913396809939413908997523551866899459834234782271197459372196661029091233056701013973049589510365804513320727060149664660661555080612752511552345387818401855110826082194001218503021164901156812033758050831304680143226864566239562209760135997934820570367077573303032654192811394307487749036814308622033488793215192194229185470587721280223342836925657707622448470664689910416950954696829126666025470774338850242970971308189861259293487714388992704544917959013396179477424279491152937905949940152385091742957448659656830872158735709767336398963534239655215277299956492701489036408080151601293265209278574931798491942232195023527884358791959080039420881710821068999185854843265873275749833878776305759895797980717728871901842966529540879862024477659385577525832782665662670747350240579980261034663242258727331841259106484210903302424614506026957175140150010917810990158350555664435156632142215986191098738361792504605302255636245900725815596152518938321950674465026726621456322977602290912707385531482863177411691423136438742183712689704193968224107269984482904717664690340698759274633452258324174644769982240963976865578780273548920502079008707561369995119723592289116458607811574171774330344072600269265131390658053689788906098160173021875793776906188224996434329636685181971812407728666266345477208691512110250379101619333562963812617554619237957483319289094883611791555344325505895013323210180595376602214319318082741100402675409877673086825195741268910907959947855479371732821300847216696085828714212071362959207582386782880305276204548904595912231071827911719037931397023921118137067012828312245070354099711948438565874262015466231088517935146940463276966541307046275263579059563776783065759224829146659609195324198797732977115997042603302509283828596188885381366212646258485737125706403983679049844090477849563507079572844047638588027783262796513349946347570924987645786519414369967837913161164327537996958367270583084181144953844594353285284163176206621185360646180142804931436262765683923976760401652028889567069777560644458358817876649359145421106836556095663113324195980556560081946828003294430798389035330661307333817622949149434090194280242739534208267036939744594987799320489542902414304996635619421100723695592302026083073193046302234671736398350109335259986973986661138683523501295086624371568110358130349300364695110117777946478458616875399822427462515720082718514015659769406252809874763293898690651099151935368908544806005856405923945200535104429698960205135325823519119715012899729527640261380743063857728897620090520307313527627319527189756857242579993519261394762050384033971618640079655921005822808030410179974607608762407478945353001342129851440914432232583521844074233395260941371121016272075709033141051734757376506234495996372505961516063468618031728614417692842588763073822250962869900060526117183524839952343114157648119669988997435456858118711379010239687733139920724252718265667292814438223718301000085312110427533631462911704523160912326250525945858512238329350218218569900502187269676280472206254590862321469540101035960091334697983448111374737558409588582283475746776867283220189167246035713817449266259956608011089710999667527308159950696164717958365639928641570437118233697001634537953490792059188649631705243904130535939619792923998278586735976278974036940571515375721515045374784320673739991426756673654848699032032102610575548858850485594831782285282619895244131454383805728723641319755990222251484881401370321903681387141610508538969488639677829099751215615485808703805775669851970098694487923299132781193127345410907677891493879111323339095429654338241252698412385333996118895629085701421855148613081944492090115366572212326956221225610497045240022045153888115200545926450993123570480383534511254739481077479698157683726921817169935095353399646875941597346661164750519613921745312130927465349780202684281688810280499505248656591461758889885794195906089045202617611876545760061268388040594853409255397654388671811959912368839785368752380300840461205789164383360173005207843595833602537819578338052708206736858897726195859491564028470297083011376936181377050824685312976562488440481775081014587683023542015601030246857897931773057412590909211577377774339578692071226555556969018245668265286990277124507034687832750171385909399841907154541570746955067764928926182338049429411903156573827360570009570201843699474090816097335698285233952552003520698524365714475002288598438026823021257359758254358931002803088088966588761647497745113520187945312147575811258381307467013248809557489886681036456888115070267758512653974369615585459944541922575456702489147407393540758145309351636272093501737956975316308154563505832246116813854342445312863088125703145303869559582334607045736381617305134419110780367912587397765880379870048301875511229510029769848879628341819981449068595058175425754002659860682224490725177750316045132525401851368061591892141260759832981158767294476992573165491274653942035998398040086488173326233500298118270739886494027496304734074908237635923668132454141715512343473749760251061954677598966602817837084999488123326778932183935172859594602281486568424510176293101639636146955178776776281485684383331298207992582021331090393616323257453881103405704733040535691305359618058645982821419062912065393459987615646387985673508765204438195390799328061766588430780334448082900953011649651284867816603831481919183337865177830035999409996317168285087412793220630882565433583828023076312367617051668980030011434054003089953884735019817014094023325293692374477744862424494233913798753428165629970672241457568194684834563662242855804382599412534704840449923430593794805892982997502911061615445747122385901275479414981304539505853887116955404158695392326592565282894952285030564319208524672544951999252881632519288491715877753667845563793840017911494552715103567460179528464200041347317051308478903558682022857919454126000265999647825246466990662331849408214904153291308619146590135426444982562162679207552599508185428541824709847089359736956764508193619040671311611982680391792824478837424161547888983569971441022440700010699847012821922920704640881043178161640742706389916098163729463416456370430265964547159797541033679663547580059066560806967709185724676290181505816713412501469249388404976984522631741450061073936177224310719684650429014185646054822863536943577249315738933836079685415027545298841068914005398993370121398252284049004082806373680524376401262413429524636941427887926909477628956259238977454371078804357080446141157782539973814362372119954037795723739019660921680406189937853236488292537685976734765693836909809256930051348766798583934890561441305741273822607101815670434540885398097924301092275498775860660725782052623340745727264696898545498277106484075781332405402953475148412474066000065983706433957472615292665550042374309720826584693030794067515824325965327533386858777230713648015893765757557041546251306975181206209934266776266365361285647738750614243693121486001228749281791549921261086383808980510949835339862288131454811343480198078561557774847374791362322472519517116006595357600331063894100493964383851107528806424913819244942511599599096604613284899261709394108825206224818015646628374260500672941929230201095028664642910283288751100816100912261385820298113777189102839021533148384950689837783094339232742434907302921682631205739772464779620235204945188591926544587009224065583096180364571967437052803860493312343148311639686308034202647108989974806826233441070711215061304475500188739926994354118124321798358823657206020696107342801068469113091456363063638066053282981442696391201036184530077218948893059722607827461961335742734127316345633397619561348090685361321306975976185540598801365319030641355894791441022131334776924759286165356824380561405878685472476594817761171306986012789488018729232899939645023800281100574443429331061201825926506042942424982999677974856139878225011619425095347379093845720193256035603330935264231822117777007352645527484276988037100840312636401636645384759152645023920086885994675702125395805018555788588426287737079657184061262327972523255478426546170917151434554545559378137187007791961751752536255922338593936046839197657708694263436285826701867486349219977852545850336866658168139412362081042078475022469816101289831460443819108288246832815724073869082919929405018785275174662650925962505706063639026267116405974841110618882957805683860573630852333683205217837042936553514904462773140698164289188536445820290007576191826928876003215551200731293810941874395860932277259095242127889484825003358795128834497340977047742342359494881933013438439077594293697658266736312686323286109901266596328376947721430373730018298082765676973669856848708612862497928432909398671502002250750900748130708726323900549694090987107873235586916214864756292219370439514550636105524923746401855957265076122714235679498098706749755811887559755444768175321658176382775273879996252980407282317114783539672432050522716303802248599098877365506798213420345670856740729162747132129364597112854653204695761859587130946183716129107518381306029939355508045644914154759849135721837784863766086468762960166143973343611351730519678773113753119502461133362532035451590713010333755490559865746376811114228371262108433034653252559117506146495706795459167279019982849413972056386021812678942900352648852542953335744956717217522838679391612277797867234495173413053089791353908325615480364713061073950907821168632180484704401525756318277483727041224697139534428512646480733719773970365586657220613754893737045608488728793558604096475619526936728969911109690666142094134343754011180534590634263194268946610238629301630807579117099105787810592481060927273136954414383956905760224494344553231959607031281862431160962468241616883806488844561205500386146213337349720843030132630019217016417914572260865558265612388698185813315488135069306623923459999654826611474538742828530425823015041215559717844672282543532553518314021451467804141461865317367529870525936751844335881732947418874560391490354945906498714750911195758820350236009312870792020963394229068633748331548035080472144485923229857324129989506516557364476265365702875396569876874142639061974166035660971218561849883548124736027132886552048668897079701156978846154264259768958329973330162323410224375752747975575953702662887364823906399160165226143815472759468110881021564385931868510288071067243434270617263231882810948235311458808691963623011500294700482408603202357829494894741951890241267368317157329646482368382806559944687486869307276225037955992223778004993958146666438879599111187168580287480448121387201739413997666447112200996958463336130854014258360743978953622749804817356839528367840514882591715467669006909096440899742416773006826640768431753250491499156747722792546194924887231966519342218016245119755085058030625742360843002800360303542721351754471865958990841066613537017035136848402838527626979482207583854756316431507499606480909568683496549665992760696196795481024708741654883899151316771775219168993899784752638415155179223984341082875508003895444659484216269561285373027535299917637295848032093604078889060642486186980747370915760993468382347139320075780450220603380436647928873820690998470361245056319940575604743723744159904510371850316712327277974374686243190737903579938213667804851979243675789979402471771278922865440166055379032455472482254287641001956222943333876299830180742863398727050513050269426545289366150891898786998811178182230093186683647628897361375149017376851586129261141984431250541897592139794647445899024716520411857384447990705877020724418398743677242873931936992327423914697100978100428903751448900782525415562953869689434558487245463145567288670869431847704205153295963948491070782984227891192772387741962101194155492743416187920268048880071388726550090524178537780197223692369460753380613501420339863989094146393714135856710473814540521398666478270658096702063670846642986629630964318604613682903973237295720506843571738195441614813796724191657593178266706676734904659297035536064729635442512137694285559065912816082664711376035686821895590254789520403511915889041841825006167251992791736866842238817159607764061584612166147264171280582731085794385373001298317554664870740592081296415441291714691728371726358237897986352803723785089754203075655031881762232588971755957144181703397210699200287055496389855837447701290404251991202824376625822815974179964216165558417175151001739799828085301242418181643247949282220780198911434061873802722398898283450966944334649339174839314871192158836906808219862182226573421858541256200269340290064718404168415553948893638345543274402283786514889574439285252702192343573426438263346343113117806204949480312830793032856622005808011352210859073327818535616150028420878440316515671151988071366658907351400420070355375524328287598664622356952780813392970675241200579102835150752778672960820410689298672441176660014122620503220027662526657580355811843558879899184151537324938419794040893316860276786423829466978668310529817025566711804665600406598551277732925007347830855990489229676321297096580322588728145410577308106377730969842724983156907225395891430734527783383166191350339515033446500674422126551008654574414208103365017996241279101431041640934311680930925786086127666370899632553238125752913210088996675199880053077277545479038405159000204064837293827429882028282935641353617105276307098970967764929618040345405252155012252021828240461249965860733295936478598964492684363498756562664862718634984427663605847759876966103424271429310174455382404426923899595998500735376825705104354973347736564856521117037143831989290970402604966867980180390120476380663756851285633871539111375336817478132446513924086103237902594761427069835990811936163142517204963238438003530729906232243016022279232754642037943680717237600657299452938747089773695539618510925326295666410227060271657961017975563613359687208222913906287700721308246013523715299545091416642735249125839868801031503285476519001430665423026541495977794301348277751207085699752003573963218531563801877389146042760618660660462077064416342004123417544559887346151453948100144945261064404174591216688794444034249010294525242812224139345541196929826097755840328930520623267592222317284685686553453363324122249923560319058337388785323389943838680628897551908603310139945263713593496656449936654222359042397679712477900637950976766486451834790759879165009080675557709448442594666763657456142392708131897745015793059256524938895181397984511732105542140323052562151124255124388774669968412752326690183166728391265822839885210488262126547549292421606062653425693139366596133496346776942820859537710743612597237769187668607234891873479005041338107632439402338074738441946121762874027812814712725363705233515746905246514878742976755280559143767979721024745204110765033125703793012286557971032143071249937136053044564740408283686702209834922141335979811304858762773851864651826725197020646470486080145321585418758034193566143992492005307902788151716945700892458522091753040877379694470619413229994715775048820332589440569338538919359226583269682709759652143531230808445612367674779057639373108752283745333956441232352849214625981457924012966318187206275389475732522738632895987817873138160484290581303663339140319240550602504038349527847150573962186605705224848036007342112941003120153726311511667788482554692825551048557836546643465177866203161846360575004588967803918681336647999992832538299428613093014359099255640602596098505881684582551967053986338195143740521057188497940447792412465887263513824707307016389694353941024946320984723802414342273492844920444374513839680988348588686797112818449086614514093060727367893528856442123698389837182728997638543844478683091991558517565137605979062612552401371106538350579495921280820021581450222532105906756396459276770056763239100455864613734812276181063897860249114472944737537709779378465249379429754297527331211486967422517341022663745869215922988012483023582205833058788777912488134431010505659082147395506203763367111350362053303859823839058062117988645710948084069085988229991023230175730731295550651886780542270743823341265878443817681774676146260349202966363595273731756480679660601466509401970010815067890330623815900741607777462107516333198237597302805173652034942772304382270609074043614266256632646089358013551274920447044568014631073245822756674038318563685944145047410347939272082908882689685683110046382505225367514831004899692194517110762525122620544102909539344768069857880616091874272030783762027814576510355007934232793917984893447757208757378970760446999977849937571778222805438291963566534671670827853362984259725139603569905953601451125969106944649849686461072548359763992921178679703025991662852488313365665577107613170620872096319610509692933772565844003660072764457566106021180299094293795170366120549318483022712694713300229097183742562996174237964014949722554526371976577940446661266850661128193646634999071638606521467298881148056862640473157153868207324865538288855584211928079752795225525453500261665709464128069259238416657685787642391930735744952717170436570285017101005421027967823342900507140640823391604908397281800867656488240192119621654113843460585572842911423937514082135282646472577711240785760328759840571078632965387599874430194190041435202845488847780757458654411133174572697383035506607878788062211501698165062314238554494326539462083024649825417302779214442986757431002995442482741603148134220663636813828725703658352643392219274904925533593375273661781988657731923926000159144544338258594458468980817479597068261353590471085603520646702365497127600520377362498798413611488621581062025643503076399194502361102880735705163317507784444134046554520687841684770529140304637721522636027589372329255256933808676269282441072992463394713934992779024214239694790780637283054758759456539888562838607686735150113246671314600615935449564654222936156173866152686177555379223365171730452930714170262954565642927921736503248256680177735462149955089654778801031221245897044538918706225040892758753608952830544705359699730055042599956875332733101612959852743571802618427674405092332441306820617889374464443148363698400719618689858109200534185653366172050707992988848588190779793525963029894828115027358793949564234396438732934073974890387914542992540324039168030839124568489595239322311828651101832906185658416392153776391793560541065908268684318724913601538641673687816194595888356141737006771378195868396959390096015774330117634455797898455554814835352401082914454575322165711142276090616328441017186065945593644569342291224576183868833442606065911885036923506172584372119366979977213086251982224393845029711227242126197401365135705175782468185200387787511960955580846550853612846994496482937661651952606793697739690472743323228912393063777390053293701398835364669696464777867517399933611400852382964444305104963707411938551843904587238740710426388155660988310589331384058695063435849715970247523258423365231607442370082915066750916408015519129366795976744837188068907453092543520003872609266324054710698725079392312610538485757857123666255645761010976865097245273862042254365184440629522140583023487241529140735690386791611737874892181528059258976316671501292481116244079079102567596362492537725474874733998746161401997404264722808160215544276053281605212935278228648917066031778522050264138178907306169803039532803095335911885739435788011097761108914010278103940178895470963571435747162792247000367345857716368666452426768932819053894002273604599255474820602761641428507655156247451377039694039583204182488018721312306512566831274236708376764976008842380318139656345522639921202502627875196151935109955283388482766726891658037660499947610168805585859947481915536485901150491487730629767303082840882998446642781855960865105068148021655490297483123554432740765859855323950957005193117164026528103549335977651032715799966585664546149540609471556455424449316965477605897389750379980428828436170141857953539166950853289319226144243760138809506607253229379525563911653262035740942504809861634309148400688750344353511144764023906985489611222528576422104104205760524402772097061163580035664568842670219184522365703004019454880107745926825031532897874796134415328250403812725954079289145510481940856739405486162461308457147683615047557958920706709452473738575968095928204599778078111178822576806350175230445195758968913280504740202977628670992180825727132205160989412988900924266785814361418015692390134185096301175471167746305191836148396603741502067989342921743861116429244713711349050799478094084344216040591429493612752395269678968763993763753534287459408286957013358952889748221080727132793726279972612109550006632858179960456946100888645017262012923142728138733545713996445160902090534195341584708596996365972558649071921476157367192973267496487824926515771400828800474110382780307358623976142389090559902999428654734947194251201318080901958223152778634633178688043362493642848070514614176950466438864391477047081801884616510204147764861712616148765621768657735305032580243475855153168664474566277742299991369813275593091604397131884434555893853328077732412552199608098343277231708162674551826994544284596698953834897395319011639331873707096644889579016983514586410425285831357798156448173210062092567853994212530222260867217081585590514574279208980750677477213878132792412074552558154269814987124164432656915198638844769621369993370959712658504327489330619494348360162137088624370206215094228154404955971567612167026577764084086284402126776457821066137956731024907192422983204040355970022918792731289972768982018106378309653850892236359392986092579869927271547989017759879084058767851879019951022225710079622927686284619657771889492768514427835741299848065828033255422826393320480123406663465794718304204256836035451895834431356512548615973576964458816298111027404900845116611776266756181112600323832288013492667113079049337472661463541997627465422943093753346387238047699289596988428284099749968706167022966483701213008431045359714125088180500378887225142715130674892706637623916056000896549007160108741936861426861624137829091864662981957026870809195830672213688503835601353971806737449052759487915341337894162676400991986628248958254142307312816053285532150414241721727104218362026876444541201804666143012356630709186360472385758575439132980751012149223209296758259461907065572846454017073616083680061110293607236473556026754634042994945181112074813598653158798482801292856550239061252505626842417337658274919574842246992104288858477529715320326424475296001484234503814898320896592515248171893317800245021199989929606040463022968054591020085014683734044431956830775453413310467174091661054453548900823463629407839568344013398346350951563216395070381283730921658233041828284929775220558005479261353607111880516190018390155663489078196218784865277072631253260946229859768577438732636229447781963908253393248296955279980190930601320423111656531774650912210031879997476993200034831307198768016985230933917918436115371084607112513513875264717666393817274608358500956818035912810241414414321356415083892544331066226235755901533267231842142245877373811568721377710591027920182222111155043594146399956009798843907230017391440153234455155664300149354183761135172877248792116021156918849479630410448302786513882818911205747219279746313242212107116110928364699109963224260785109680214382743215320425830398073424741655999914600708386765484113674003735549590883425854961896739277894890470643531097460610282992355814573071571877785709583057806652850116915686129178398439122236314598802595670878967798383030127279055935245597218942975318621303674685892261359327304543659940609854774906945458860805794027036803705736376248064781679376070050737704392050543883109062131018325856332354657461485759384275673363814973815195080629240823505729464081743000697756761783132335748074503976461894075208334230096818043368739923341277775569473296218473869025774660870803498194138269767920136343720819643696660687884789632040521964328597822191339993186325291035099354220222520985170528168169616249097749695204976025238092858947580935917922802077354976483160257288633481742553108333472026761816625565227719645516899955453852509927251974575831983260977837114396289238140888634081681415823510909917395182409200292951274856983440898928335643346227783231997232228081574792864788756312763448449248546933143710047981895769920622390554079682653869215186422578483035559076599645942177066482510522500795010472989701723845176942624841178796674578800197622590342114468820693612687513548561841195884774735696550645288695847772122747111223811708405778545033629144267816549385835166064010589898859538809296980497827690351858882233712608678485862797702116332508635458467987659413563270040605261038449305603939029122457602818464364516524190848930571217639306584203784174738777304443408380063625366722167867741352965981333875354705579415069984397467583849007073367576314641473639821569891912899543000298211836454656776004272128337471454216170659682290554087640022444297391868143906686905557016386899111226078032799501177511745954562290741052265252774754006188006857452737105645647312220540468828488598525326622359547863934562821478918669486069174539361603122217240984020170460098539886423477683563016842260445138286331271370214203614888139520259246442403138142035257362364712209173854921776553077304648928139449568342266376003655824604228778798663007758790362067421384688729732104155134578990610435959868438885233094880008698630009095033340495427705638576287317607517624661515651396202412544958369414930953514508660837900403003654522593049589676261413013125221902658303849063374259346429279250706066414049821324112853554391793828641457469531029550751205864048419572201629115014067799179282639873081593959948365143631166640622269631366692545092131480396322798706645312647863183934237060637268183633135085836335967224936339827361802851227810673402382767676426979178482830943500513713538435093151894122551924515978506747668210291746269945198173489775143419069394440439729417789664981050008288957584041877544602332215623878113664800328033351334590864554484284417820516258818494448877607901209238686930132887345936419622348126747425436472906285769803762211854469500767590031708048130301537643994220326630942290916872089565082281480709875211033378312434775142424140523405100858372100993224643134018890623814430562538635687908239129343375202801196828736657512863599069211692097615128530967042629947459901918915652791706017135862489932502516735171126940483274189366811511522826730395713296458266322186266441977754378845457179623211354596111406321724515549169328825176998817476889894222692326380878639916983082437574711902441802085863627296389473608969145906892062767494829457967163470758805690986752542194480976815220941608525958746958005788446141386643837542760728869189759973052553614935300498853032623138891630563133181519315809801983338464517205262288566577880653222576967082903922293789815302832217659866432443755708983001402774895031453295588736330042435424919999281412306247179543749960031660812526483658089287593291815304012236452402314240031093442857908598583243892133228616115981673979875604922181344959320839214010716388360170682074917005156255456146086943501468763640279133818724760846634019059821918228757107225974311613083201107158184787730979920303554272887895771831185594080446302177053757016608822328526183405936551058212711297796625927658502423378655906943439750933338732187941574784400159511139825043903994130115830635034133205653290944825451564745185477702022460567113543645510714320259266614042434627363081468971120884802237545864918674336262395274869523453420643598845789042463613763740915343114950029031073962076308723826918276485612054985123215573736842384714900794197522117713822380526164491500963826789716276622263756027135286298515934178759134013944690901856345713783729661463607753046801322955499154611042776920568734694245096793072692849758393236276650447449010086806657866510899524520638325654678076927020201797917604857900950710039845430332396083524834196954872967053995335042043847842421083416354707346871738584229199282036685249855424074393773560482768602334460954117400150748890347529700712377445274135122564410302430336281648597131001012604745417462300114433231139632456986638324873770906122208284082655242513072182757569837474734414609622527672873750704137360426730091451469731446786129253607333339940131012572863475194191060968650126999623051151081703593764237110963904864320345147558530240804562008816389390219071910051868927073055222117326343793347299172398462564584791062999038686822992210910252681048431458587976836569000513344946547889355369744174837121191564745132914713933432143613731545474427483298819243614027706132359881099030110821117646085442706473319062200702277260152553751936647394665800311946369504141000858194790137774056590728252255425778226205438712356143280154121429848279414355389232689642052536923102244779638224788373356760064385775936593037444999469834715182561882882869122015817014261069546593594418303296222560683893446969766052672673488573925822586997611291985102707917080115608915659629054187278935459861992951469550973206173494903940076992800117929209426659482181099666317785369607988571017144521977094471105583162037572157608607258753024578657245528034158808354142266435185138891999625398861620356350669114842267108956088389789217926352959301064701973713059922779409108426930801187029211863593102256442237630527418431597950815513784441088007939422802611213971408399975668266510524362490645908803190271247745957679980292485692655498704441051271655537024950863370532024027733084192762340984536727766548782484125400824226858867214226513311919438660162533476187666029563918819536367071041923453214278565716935477812819818612027868413445957989424760353855450287888730759833512328710726962776203794936297289158631483410134066911756244790856514619808423135459015876745359298792518584058555444890423319411422464497591066707481777929407946102113187092229487578642898519151309178847617943700313278600621036657747082291482871203958789040554687130508288267655580698532084765352570013167334306019320910113781413976044263585473102993612112935137130556713049467383036910330644235641281362699787107769358302160986071726204658645631406615808978846787453864474868353474971645855499275587900770940485422198135605130869221586506196126387338054729304788066236661715876251465234653363105937389141610869490587755128342257123803594347139505658165511028835663708742451912776332251645140154556051682842953407242488849414316920396218873412716908500650680606357310146233087952120519505654112355239661187971899561544430502708571060591931944828118592890119535709786254812889153592165026800052265556683288198448643130355917988599604925038717392837674239989122416922637978855541196309591515638765839653241256050112272504285960645371021442248821658632001819150812667267628448580456508266976835438576363726609140860898992916393212903151146817996263671768103047191775720978120573174475395677143699369741024597856814747195444312487708731655292386823124750705924692617892133179467386532977398230471946933689672354327520765605917796253647794322227354787199509524259784559647139150651986612777960185560050637440790414026686209465304477907327270087434672446731530524118131159231168967713234117741886894417786835402591875074121126675713998331488719605935049436913199574980635464706423942440244429100929548215649206976454118755330347967331350498981461685918347203381531637507324284850505392326159642359134832754019459844483950091459087739066737813442244646492332392690981329236833713339005288204958425265201178047580670076603259004536630777306733883725797543506754358207964558279544911707931225075289103278315786736149643611562548415451539061111051631230882492130943231149262964946722772552241512879703583345329954536725569892713009517143595485334345299608949248179708142113076697277680270739515277153112675434243766777570711868467224112866246407996135836862400862018220535594767308035585048068347842587629871722270045890155946470182539854714735402090897174617579441701922452206719963552566139739333423965721118808140758945845306796018791311254166638052787176599598319272866343930387191099976378471492625933604903544077399076761728645235000477318724618066797906697184535746118704805541852348085952948506087632543446679493020672774657081598452151959295337718342445603308226521427728177459045747032546248736193923044010718707956272563158907711046292269531297077369870266741660147162772875176011547345408393268708786617934013501477232104231535404895548320767485660440222991711844130192469045286657855816002931238841311914779456855592360717119101250401837809445870986313327152367180229729322823960064805876296718704323494891414786331027521452383248302395689470435291309893933411599468161946519760885459639493092104138377281873625347338991872631594918223956143844485854468325001540141723826343614578175858299480016064191141745161242643217038620254049192241795308696352077917747833061713889993801176970201551207507385941164108796137657661680925839163302605411611357723888518739440205083595501371101409594201527374361965941002171518168019993686043518572825445906216975412855331667177918696042972087025519398303953582671432946316681938313401327745365856615576335179576392382647214282124464146914277105477648245002856446799291091278328287217274034836809551648960095589944601298745136504806061292014585509742659830834262665134313392761255753293856995927102324950875402946489431709485874996817104513887190118193109764821319746548780877208240724712506290852336521744111596943451033633897457972037742175388807660900871917272953798468295987848747053417663694793594084324321051385898366435797192077406051396933329565334289793064423775932824537054986687486434577900654589355253902007335449699764778862428104862374827765157350596490656683074521082443760296382707334282732981502530532972559205791238600112164069924135689742734515301195470610703561598267370799793385549144829106632836624958936613219922839803596213009772833335576838931052391653842748430681094364699298166133155942178731246328554913420321059374883928803318661635168762522437538410723465138097498443755896103245486183204221077281400932289513065782566240282596927789278693225204831579352410453726334319282997340748335723866243698898285265571289356074297945915503161696716529696800555448952276647507292690481872034504790680445327670099108357245781110396767289335801659331008811155804967707333283124935593494839924989001154599915929407296059449476081952688664852203039015353722782866412071691006773007114856906140901120129055214228959965502222739169123499160157904727586857395650473077134763656013963288330896765125327208598898034250969088312055902578224226435927911319224584902800727461806028712537830713502160251797512958082803740935647477405965205380462083411174465370575486164821025217147241184311428622710990537482516191570361177253803896856224559273640665374140290872982266133475572229334418475593962525278417443848383642972374408277263074237651303403785844293041726893329425092105921277935336456781461921721767578617491638893338197311544848154433592652164594255174633669649987838035146781066688778062096299939675423345011550266738079780502456193637618076433384314100605776431672065496289301762504797881660372582084371864809931048623688612508661593949088153572971269724907278550965799534980965607291185357600076444370653491444680006058319134636256954167874925516877950339079714909376476452375746015055388548367463473321896841748685965804766907392666825523451638632539459929717608550558159409420249232040482762282827959300555796671769969256449690067998734335306544480957960105580149032706213818270491599512603955226157600431883886325190265767543129752118644948799040566850979299198853540601015546898276149919540044361349523087471504684932879906607055609570631054955604840144940990698008592942152326653830371913516887856968983874878038041250816991238677648497028291862014885502606598059923696575818710339941752067167022187566733121154997466530745861366386513227906705380856646135070784524751033276342121625218757153203712032247758052092448538565643859217395681480875793946780703131718590967045108755417288697009817943076085653556186167306154232016360761371050932174990089354091180792066120336743807678698549289786291409538001788017319741865238161524889960722654481185399407208339117723274423305881289936499829961544631862982493991590241321304516156026881482117317856136265569666220014211002381464823333348546245586933611510377307488460705817683929032988330720446098842207177251374300038043144799169120629647515109380506563111110162801572845834105602494538206221802724393408233615040837518045215478627407926604134633838378759040429789282328967340015364816269254340507477547731118915225071077110332708979167462890009753707555730265716875239720706928812735149974639637144078087383480486936650612687540510719470279926120696872290655458810751872410534263982802445193787475191472044564823847556975404084057784070774296556877440157486892491171384869652253073162598331634510776742946739417217725303238347319018584619420310548582294300169422143578809038434273787841720464464463996825298056866678181889681160780525388530251142980876346285333905708729902659461716798801102455235939032484299229387262205799686346233625453885891573189774126902841625446174512212932666523536667213015436404986323154806411649580012958449290321163696042758028751939145743913655522578410179756738940963024278399043602177632053624353978476250825888368415354143996683120371278966196529892958348970098434716798441219141792111997968082258135911053187515227176880869451136951888054763489014914208809647426264614787618473305385582403308532283011868714873938750786146851063960100990202070932157834113010612500855986107604624984891115688407380927620862476539715184394839009311740973680368434484208571525561307590873818336517000904576157085101853446590089037253311805276650755511221710005913859809114330120141932924219067356300790426382087190541867659334137877051027943881250607390792706484276278501171746188294031359487254512069433790714562221255971910816754140689360656771870448729283187237081985215636532864042368683089241583237093209029088821516976949961327021292077981037794220666205426561608334081632655048698855780992328472109492241018743744136973030673036086137912532903437552979615372812842144314188654995948643523565820242131355827891413096023416956358904156947413710909937039125450565441262980533530075360851969926545841477994706080353015321527788463111668284124145050979720660231685295768107335249574525045797663469789712140911766490216608301391281300177649566150758518535519015225131761874806972680574804945638416868775469376391700047633138663462404869175962244887048687625376951544656441738209428307888062646316619125296251737430687822640516624123017050188311048581763474008529546477881642028354691038113213956442545150139498304567006522584260013422198980740535556033074277162771763257927445330401853911090315656923770070426460190764708349952931787185817790108114684751463354719045167235888426799952349194792081236669187677954200180137893094901200392744374938699527275063658022447928401115995188775198976267011437462697166828067146758517412639428705706590269010679510964159819477503971643716569450358580478337587886723440337473030193171330677858647600311910998893289853607236068178302485652128091157243498066487556922890425890876165606508686146629152229784323582071426263081767862876070836454394724524656871430409029345093408030206821874914670062224392779630758737778824561309874204582196129785743845864108233501362340941956108975438119397305973333806271714484760482736297327055016506360433851459827392161523253527938914632943309819547989752850634808078016379233432519329959307793406560162466175552859407852760400951022029556356252601069925621813049662443196656540859076219647521024456900932940080858089658685229884094098678153042207581020286736936982100272915267040251761932665809515558270924369588016592739582525056666482094367990120582501810894669791550318567867789709380327316163166280670674626860324995716391774541307024750976691639808426870215770931894646191985436795527761612059115107778889118374993928813431609506828578849942361738441964448581788585728522948070584051451292181456120760711614054285633758078856647989230010599643285907153357717976793020060044740080388768721657456669239665075825628129238696889608485293385021434725103381298332030823545146511295673516122898839765624085333557965417596885339540563724092690465878966466483545363446329424505246713150134187186558722861274445450203460467829027233460425407504660498603860564694112755848437525149976906943705835313591976144712843413431167286570786741808321684182190873815031372438636707384267348018759555937522610661192415783310492767878894580754765536531019636418369679686502138010587151547756840461088543265362590101640050036996980506998924698411577969258332300717016544080632846738644677605851951643828521082390567384251236257064660038119688682732204433183085946547279180513659972970034719285147056861453894413899446174823379024256869044122616720121370437207595594102719283833073528112334436381007903341543381575804421416302070513238394757333155330256607004232934092641591206921551751014890684326882175154091686807664426680340170084994879171652434914100724495040607806845534734777376180291532272207645019533947069419065730383469330824443457756958424803260053011125913626836455396069471098113376690071801550174727853711216728174976147718503234330910330000335383060253441029602940642203824125565665628958410356859736179708514038263189011602878302718207261470595091265088878165853510564076008196708524014942763345427814970713342619148111046048062016440317173547653782848570119721085594027473046334917370624930409354663380463291556713460674706702817037216726192273363316135064596779463704321449025097991165927704217239906786476323664244270022717083245558380462564638985570363795109533692286244148243278401986704453228588644884746126751351884560527970923524529203424286798804273655871229951083018614141860113010553963351065787893586272991432327545515955407973433139769728820664605133660485780266148629361100774445970040857090392341902758452475795281950675816436485083060768139876369975907834989609670384772507038556825885683250891706813703280579537357801278648690731326004617295814169120319241414173978238498419487995706674127546400290875822685010682484267083663359424552952671384653450225418596957786798895877560066630986689193829832636880565023739878505041410368802042481410245218539308738598503205002416281723718247862972339630762471027390657668311407267429046311323762738119163383610381568341074938134606093263139519588897077307188121825330748096789812256710206308183910687096841002913132818956343562764901348986187751742901188816449373893295684146204977876187808409693511216698913440719013932155628248515401256100529698287160845557685594269631666351687667857670628834199643606826467736605445955750330301066626273262166490587527509182287281445918928272838662157255692496418282778372512915890047807787157759236895203044758377852861020852050932028202019959126111944582246393165194353596223310448773081397998691954929924139236771453914442357740611699635894378493358335319304360100537082052295371588493062389597824905038643079315358248436779140497704970004029062842748183065587430073660339957001111849829431234640720593624060748235021410417823449330420745198764139754342368375933141004182751458934246080324260510742145748366012734652635532809266744065927904886942886468553247869758541672947651856705465975165558060635668538978603857059737358814704605736066625965439049448406505243191398067852583660370848645845539147947723187643539852323651534789529640566885357651718311662916012600021872221254361639371780899569179764168327550364882786787214124835848158950652727597747465680843204331594082255819438954074934401321685054456304957310706682152912157657457115167265452668687384769814235862639849772568810759743800248065844539497714469704212261739816445722613681753223572700051468173738775893153099846153528763196394333858038224027947066123315774803661143671596028904322395275373313855098267256191877764347604455791866531752109851634362378364313494061774285390466160049313130546498944558238461799544156419186528136464131227010831087103790150221264477453999732528398200313865080537883391946852811882339359045707099092806418612141678078295503038530268244793685638886402037258591839261363768612613592830124035092031771011519357441630022502598478525695750326199428925705774477565687151394294195498169598049476057171086086609394474388356635199585448116555420428902312434360335861465449107667033875159921986457739997572023363500865032334513855595050672056388977629041382170049192764270215332973327832304326925973599560838027872442015680201741765991468103753787132724824625165673834598878889623061508317331377734082394253729670451506834147523269925418417790861772015523197967196627503174128518022406288171269215255682893610212777144828650316330018356959544874227258920371099277181751470863039646569702706288695361051139111922839949232387825997190192288837177549785260552432825088743953110749472383099907130381690522711267159154764066239341621238313031426858140314966612806673125445441838553781506526775027950096868051154009730273215281565462312637773337601300671720281443086544421813832035141431656569156551522790642344808593069789995609256355729645463424474233029657583745995518265535577779832873623757456617483068316590749062228960252323345039498547367917909116539637884122366779691826167618202081739772943142822471757315717924436180309114671472989818292240176010639633455533377274527048381364460526041305949285087664171206237639968201110723846085590222036025195098245350139422284453566619496427252058198332309517365552855440678839438258591180368395156154798405412622336971121676322817390671452693584244590300851380921227685780880721089707306467776212614999547072975054538801360818005084012953845006228675003520442148618233643729154504856476706412998525164559931562986307251380709365997937478372588967347657291567539923503460924245012029989197264177410622427251090253674839033912803951094279973893973539091653079308395830633189156513632615045834761637365312361694237069817800362660796218693953137653511682802899465874319714957963257070750346032564632604284988743092810232251486208192400215301477171179936501026785315908228802323779627127543498980402060826967847584260904524130433197895460037063795663051679617815476336041224866907934308566880986685266324734139139910742478835236397596738494963918774950844962280066112691791223315306182456655855701830536385767675184822851452263923475984933178527924800831620443835031982497635643667503121793071351389844598407509351013595112915595244013303948725294819177410558091193966315443227902021599301746494667176926996804429668814197147135770673815943856527740028086869657457807245115442384514745454532314831630866480984581773281833472338184675786254501202315813393449693398585363061273859050676696387623598250616351423352713213451018570262570137185281298400987275732402731220898592077380744263247988834290207251695642870724419555746062481441189004854054422682481548310930603955912762224571921341842895944246080083691750844394621285975173967406314007481971785934697723821359420438169900559389057600601589626089497527721789882708959809827630631446775260134805943911701046321292018577499215456951854752327839229484554242586781684268576183589946597457494886352267212226148360861041322060942138352856583075339555457987616845797862096626195920693545781836970590945930371177153993807414542761713367367880997346423739989094262266735125020927894920357465064620849614456194990245967826964112680512417675270342274591042201474962328024771679337926552091897720450492742669348902058407349308798572019336691054952109099727662771771733522668580981881848730195235114996079418771185169825222987907088686580747134704837906873979757322431100967071886593917629593565171411631691802176899013903517341938550009580531129255822983784732381373787193782096389794024558583706184623137056954617245872352569001330706384789484318876816550773790178351160388552222598683580882624476082917588957338375680562066602453430751037147678914647099476776649568584911579599353380472976751622295421823541963090077190375019267243374326468373229415391968865634521020613088221753282232878319221132946089593318282834209946126454940077721806375946722162155366153036831235986053109927785706690110785436921861674832670054329857412432292474584886600732519935408663667795669839978382844528648512439154607290796676027371246884385965568439938846816805404655565911292790805908019862918922829085966447032775152082297213352455749791742127057209682883611724764839265437664752705745825139369711746395246618197222555647988757684470055168802301473853742486558067534533433209283850217623150919047989464022320329642476519227493999755587668419801666111791746994092976286647904880530273685952864741484841103224803440444399348615335656091797483816598867464287009871374740398051122078702489863121645243899834275823034663705988130024270331667807946283830463396552364773408426244641913132558569355041923848490280861176707078095844840326640713418344846513504047721860589638570901769255829424036916278961773767577575330267936395053048833732555670266408612283172470306718883335251942795728810387887078708453570641631590779554253630501523278711059603269248818713470228185630327381072846077986579098131142582454005153290199644367448843161171381584722728129196483032361668275243023771383015195830109742802923865706999835044239508616165059743845628835937610087672848036803033246661858290601347895939542867925929480404857815260093807410671454923355040413781310832633897521845141966492260007411367995089340160002289694702990395927198972676645176810077748195353604185085323377879136648933049521979700070154208232393795465753322681540096416092227159774572552942670187443711339796123073930109740684808922372353687490944394769778708306013005209502923191345696606286072650550391919948582702955877731849259477081953067926273773154641476616780388105068185406955983985890195405553062930897010266533954522028391887744693142189885516504892436975076946069858595634704210534482147361238289898934894856307818233453521762954886510245896500992160397860800529775988220911795421307802323589795332342582371883713169180768615419950225929110350555717800683109109937714260628417127617689515360709042728998686920335859290098638580703434860516910373910431736418724210188048130017573617278762431409953890769491825760847138643457373159453570225993385672436127466615450126944071292391410239048737571351581231503603621839438215556043924758416836171641214939024849265775700049787966860855006560559587801436307164698828514102793575257331557091059108965727226541052615882557604770217753260395834901203369362069356214678992426706695837613104399732368142417702337334777557311607151395817689486685401159820805440264783357671430664288950509313562371641749968625721241387103418163147987910155118772314169702442965202622382564682429519593039621209491774653657101400700140484154941497817877795416796958405898300998747490556380196435295447330758281225838566434109135198212684259746854170600064177795219791540634822995453750663306278102860994633751221520868619259768535880256893841919365448444915039039968386436387678866541429733299409960881246124703259410229288324060700000134585318540015372800111712649630129407460395296416456217851395013221643799200477829651534470037702087771083631200813766320630842816201623894514555690240014483054722500759350977196399911239931957278446135630495806962094273688140637227297820558964936811855005272322542072501043194608857367816428854706707108904678830347637571856985476464307687047395177633627917861017159252720128883221747983606873806705615060666180023627012929909258526327561980867578231823967093764476323129293513403407972685627755738370541317813154332148861253257746513050024016658059712815634322387926156044957814412727037078513912269777437470692394567958101871596048737744331764981349628802527312593204194701630222980116952088962214020172941811922265417240519714174621402359688191985942286740642174316406552250063785909346490244855383468492207419489982963344166642284995972780867275330297365546518778610136572572335089536507500891653737469451414821830614445246822174945101416779090146321754526644576307674945108879673680256683156125473203614033251771190407361076923056709316861311079465363079285103610008996228023761641498228366497045454831327135658110484195332609351092573368786589864281901036220225253341444050058071518228027543115139415385246957907193831578902692018372445268387444649305982524084575398801683064649481629463708470433535334928258024455086732618605234276780004564858954794044677739965989305044001807092781912732778155373536586263909594718700128140843611238621380884653747650545163008837504918742444179211484512413678735849561739722024356251585257826302721646084955404606886830707330345723396814948369501581759517443274250035352546219668284232977385017518597609664555886036804257937710799311289234247072263782696288521817868066852409346801757461336320336558119223004618107102816209697258657916133686192597369811450961851788520531186259764654024704353438186478509563452760296512556303371883426294257522259652972784886827654756087017585204200504324059507326548283167853301580387852140311527854249618815878640987742587238814743120256851060087841101622947838960275492949901735441535675532978426812433942227583290879911914954409329787517763266069837461983473423192480996834601527405052614935493886089617372282966150308135420872187164719757534522294555044852525526833904372032697064684524265392895290074137097635106179255788247100969407191316049525527210516823520257041728760807380189730886518132546384348773527856745005776623796244848699483694226960542720224023903354933629017009237468311021341184015268258171834470808331639349886759413893776085300724533654673748553505508557678880450057598732022065851817938806808210220718712714608310111188765798580489659798596129160176401949216362774530012820410119345076935027152370157384461376854030722085243053126688801844679878364429679959881753131072159607760090923329114234017415542661997170355969794778835511896986607650953773097455765980771853128179399316329944161638276154658191623413197432969827706595926800153314234919883492236964038216395998483579109932541231825016601315351829393937977219645109178851901628410084038717473099658906219742841985518935843676298048083759775841028464464696472792672506598776244567883985213654676781062860727202660036171009077126206292788821635261771660484508677370789044579333163135327098488730388611519379009359361826126476400496782303648842943913512791585076366748157885679503916306487143535409411667931476851504466979703152090855195786425249455871634745400868050888829166108733980410255430556888474139011028497811753372062506123110918778585496468086597804534652949274486702852180433689997740314160113642849226446943716218930511453617716054804671186640935321107433333758261333753106726053620564366091215144059047148459971215830103882170251789763290626370688194575620480165664237554125190586693340857648329062850423749838976097136074778646805187217830416476367781985034720228569734191106912995762613474360712281463405927059319041230883097014753857453911544588683552159424420571057258479543133020981974633489505928515191673561405632187608059971177895544585833605092334600865929885665319182443199747043944995606437740251746691387986387810823025792175320703936295989496923817810353501706310583343143151588140302633511863149656621219544312667483439921094095954575537264498085499856561889958255064733069596066850046027385277800439766634648931914731955995285969782577644142581936848157712845377493344029356640671227130305875471075648706370431928437098769642238631968853926409650474977781543857720406477738643425600967152256447450569138065842540452215568532198331570898614677311275377705221465912665449375369499626181313886341277424613700531055352164177365685659732044945751565477032327375654439528603376317394173775264865610435719612377044812590301267647583966796451296579754229808576370749072061671570238088658884047484233366373240414041542513609294396895982810510112719836258311310330905612470310526789674116424660369604211823627672844151651397550016117773895492862459858644368647498379867623096559061469020783315224423627312796814695648833271055056468405853816219274213592412695187564029278255553243975905782448399226686100539447945193633912988615346309065257714740145814176157204836785343094842553832681488996301293184246793501533132221339093727912381140616163258926413850855383306274602123682680272843295622288229709271977996666999882617572063270131132428974758269382127752199829165095295272617636875305806369361075790312024966063608951569556185460156563596318858879779254800051815815727740750196400077880587123721558957600948025422890515160069341713483848312718111584643639659968677852488503236119221405660173509084664051493174768034705695740971364705898142366496350179057017006444174558352526940201117793450148629933010041131321840180916426914608185997972493955936176345952323732261142151934723513900326856427951838271291547446020996116895587757300289233212122713111017121916566227850382178885180399167467637275266862670180278966456657529189449471917067229190890718668618051620438048389651825930450052410211633049133177478507704125584318180073652690328905890772533544152004296347874858406225198648196560507749111613340911845287667460382860409010920372450499638394723746627332233227102830188760427129829622705573972584790986369422967788528033184245232550331292740112742955963636865473207630054644359619375979737580539827448489002178769254332151035648768082761153745092518276349345192585726934040253173180498377436296014106296104803149196243019101335582273398379051559046475521485540351100012171725371226350411396190099973481309315043473269736849817182958650536295467899316737118826185801526943696394874236246791075859822972987035670372861715796533644942193533472960031245452027875646351908575282954566651495385722145191298760110498094977793023791953457218620517682227754849547729654961869712735389215769364534394233360597774745847014936749251588855685242454381521098201612724700660756777448992627554720080732672543148500837950350332162317883795154142000188489520563637657039151155194968088171375765398753490552762723667425413328014899261951538313159459681384512900992119915932180774456279824879780179819894328233166288676761116211346987140241672332727971524789316162893021360191915773877630338120592849794967277595693955006591912857953960546240265829125458613346917503020742279161851421825898475173953570525443492348073048825845532510783666063423957879813472268073463064798131575068615170628939946599765497929038411831640705376534483766723457119307363043606499272551740745469443147798925475571955022280503481854220156438224637931611210474854152066054239719966102152463859538737677860305402383733100700113190905326896804137441843747023255548839169183446096511184465957974574315351487997590400322581986945272824762873916119903602970322801557791896374022679126514281204027182232645994680182199327376889501048926023872621138674790323505612557192506842986139091477209128203886994000589127662962198665823761495140599882057425748493250102204198410061708670541430625033142030203731066592666706225546204552774566508799682398647684291299658983454700829817480126788808714720235483276322841291702338332216358139089020962116027099084174199337599452770616691869423199214701498987811368055560746482578486331417709425244931397809985742568176889335911170717565425896211273408623707099732546536391240069414524504661664681937509410863688932632945479840005950772057282707993121418517318525146826942314311560426306652773819025629009830319111089229511663529838349523038256087551544292337073389769785890025115323792734051542211511819488832020398480029384154149385393102334249916219886554328609708793417592253756559565296852149120675338145285401103075554596599435258322263392687970313954530278912146905662678524999087269404887440149178664264972892417853410140120802576429958133172103161623867853534694708678855684261722100752365640664949979408579404907820626720245789948523826600409070848559063908315339124965928324929170573827022809008011183458501056445165423337698671713746936240536977152585362599464534016217547818055957460232466004494937008312206944271428798163757393428388928703853220562413549672096357977806044818427240230084594838377136350773177399529652805794867514561233382397402152715666224881689527642526188098342066769724677019006096615914180638231963810465981804263813072152735295930190363394583634984052740945663239363394854061385335782445106727479862320655078266560572432524020813842815161697456453928004404240239968792192634785422081907564284989460303523915773237771365747648174010070051669774466806857368156522901358022137922170031786879392154078121851582239059642739171705630329538140162496727408456596479858425423859248904578257752065475158215547972702071265609706603511642808124137189597396459032374474164976841002496607457205716756630673398196377984531998580152152642287376914821282783536992353646961327970249990209338264708113267592115278351190208308149623629426778602895121088042466596404223352350573492120623655732893988077778668218342900225471371945598501045712187079304724609472729360434690097094149590643677518599176827184081404070156651438694808403279110866236194483952323454324917941868999770562406230531947539411594808033604958579520750277158441416599525087986251619079185019344832443317216300617200011727307725649935558104036302364880735161803373487414890398002544968426083098023932434287810638327347784116056194266043764180768804966502366556255793206975188400895393458942086726816816131430772166591954226894747968111554425677522947953261994062581454444573392231931652170417973154111260609901669764639962079113433314902953019489618409407417868744319407467635598731755414726119191149310822012467093687098558815439701971655575120504247291438846532785216387828297107288429329024987679849892483837813357125468741508695007442848762647176010647045206817363348663716860537122601792686274019147193521576839602960647586678012396497144039968022989458549589371541553310477046148395585136858930115389038179731818027947623496007267664449157601197342922005646800452020169300944195684193410236249563437895496493100706205106534984756163205638891624627265733095144718888000226417794702841194028839106474565016128077315363314029865687893486356435684092906236066358395686679036293546156247313627921175965571420593436934738121419467150789114265705672443044394030465472163456588487786112967327475351129913475342054160223181091918188033205037905534769422437071965134007021470894877327378568868782557781730164146598961754513413047999461225134196671314432347833625115335864153030704770332193248877955078140248541946224245163691427022953520360571212048865309875175691855546221316332209472219956025910314524178627346136868631629216304619604149986031674518274828107258554358520200059037342543950918178554010507157683946437838441136052634160930152494206131890194796313007581771979779907889789707938130381514302377674998364197792650046993139161038314579481104736219550832630289461853471283709016932825243457901365213262737987920111797974186585915498613243844297007838655993977326281054353755137972402169698984841356646535496038802286172964402622277636060383628284232990471404584960739513369504839203409873569670096424214350496650321441973191521011683874145500836850319763184749547930326577353412674962267077586322590503320323459380997995169280992597506850522841910905131721277911918227206560307256923089908910696464977085769546060157353947197100274449072088653415984078422036367322649186800729236891717560451496732287068121853803895117737138972613539493532830345923061251756944127656844301377380276364692232473236924841263479617120698489872252575504802609446277287592198309913226121487530796315672070168307711213697773153391609907288735899344079916947967722220572515368233465169921093620049991593125230124745517557315569631826877556693564895535204573316946070231570613651270325282173894471694347718376587106293605043477523221459843190358315095713123788141218799197135192628805939088989445007717250229117149360148210222635970196574977674210786282617099757745408970123118743926500162924907819121357054109803155553361867125392824930614986489005964747433461598577554411908583836703646755421111977635632315094836215922538284898191496938628664391045908843358955920502800789750958295653701171301698161727743537448862982259348645951276589706313365859200687447069577755645250001331414776229294808177815498376994150960913207601923984529552277748073528867268140716432586300492743288516491986078736669212809983275790857459723154641682426093563713217717077414911928688699390319199116374933324085075507248693152640326449906357176199520002543445054538881115432853015460370808462638428823364477903860270104681872745554194565945536093155620906101420275598475349093159305511889839502972042685489127819108755062552237881246322861579888565958745745752251948054634204857002615449286925087800763938871210714102501201313689272478744545113537660734243781655001862577589741939330582508719732444522568923976264917571301869329628408981058174884300872378726970873277500761995008273806988373683956516437378010065896738261557989243240210390960288823178341844540393372133887008792810245711611647020229363105453258703606849427351257752798516451814755537789819719413518731627117296030936094454541393763335254823085985282736922732261149426562695587738391112284469882222092524848861917900551973870157539517324176874112265078527858319946710922724334335333367088106455103957816930702729516124624181145283171277993080748890379433044346315693299424270841527064308291143910119590215782819426832825497765862275955885982284462286627880807006853069026894441014418933110944968828339870845062717309009791064308948409879369368438551362976586237056162104822094292385979157137313148443779827605776073315405359106287639925703673680889905167233784581504825156014296167373281875690267328444465142788876831146461177086936841379726980561149670430249991081624700676713357388842712292597895358709617082825726296413996081920335201993408989628187236779607889736082481658201536644455547849953909872004025684050326963712216667441965037024230937344876401282079279445239222489258180197986946372286019793054580257553185760441095017795785638215080191320717972161504503162622441859946311035916427043625737916329771866507680844620873824891155785142773108323307094353867223352469169038253790821705521574988544012003603258678119838467468285028347862931677115299108863253554947382445979347661110277175834987510657435168123905044567759209669832079891310503253573261491882607893039140151683573536107225000062979502859421753206110339276499948709220337644197104755299814009232362361522509979284697553877869931792790240589566242398310928318845252147006749515731688294264838898042136179351922405538864605425871047752911827455401008837689833936594246313519276257380056211003035654210120844375488121756284092278570583239042065186131007600981365730082040717506641267079701759736881975151940441165578790032835223273197767161431522474237096298457136571273749679155442907533556265328322760828823375346500915314687481198645688647444266916051769261964966423864501174645808367400524809625730158741086577033712731860969267049235512418880484976100750884324040009054438473137746827619966395521237517226988629082402111756213064833466188675229216866614083910810747702805722320660805772914319632194408470282035881497077162239332318040223715957234321574232921872769057967150268378632209925155544457928389124110525482699392132605309821951563379262558592796580916639291731362786736211719490372295631631882504086431754262293062009311408505517502002317639824636638090487617460823765851263199639346432416453615354207713072873473884889639429225317727309892049131409969007373876477782614634102062272015691080350703578133893731453775444877652507310146043252557774963237394578388793984481541588929424165364170059988912870795932101128111780493522338886544153797288196506293630565593360991661842196085703474158192077550019047787469684008926327958987497377347315679474260422625099116441064393226553774548368443607343628106103486449000439985238340528059147614229545731972018612860316684237197932344920283993756873024286745677823864497309007431854681178983089838740294639758171677861505910458319281247531830836803715852594820320364638683302377633140124657524883475825920440487605147171236217015085986608505355832826712076589129395332233916699610627675915028732863278066171430105217185040042125037949559737733639931357784847895666074825494507006724640753969538745951840912704715991297596419638374892086528516721429473080661497463161001468716365552963722638875395599965353797064339775055325518431238311308778500636919747749788352402913062158454905294453554932513175631897690608562791784229183408698791449229320408516139330026467571614576256256597850343832982484309919466612097717331189288681956463761530059693704784407598150082678705647895722888929013166023325022285297590790861502268421311392258316829965908588657637477160607483411440297070367604437229836206622377059090246182239851452688859580468956099615831872337110215121992592423721309236252834157140491362551538011039964459799787962877916290354541129900030058497287099297124212259581829904984405903166175781266721735103345984671421919051629079172006616264475995916436176951492111079325060097595741987535832887884052297985016687923071659221996016746996595694190909963580668500606248350985528371166248883084122347302761042129319689777217727202754941313458740555668611626202868382934213589066849214507648267031052756760092767509288230576629344647572175006942106110221262339122993261084192441831715992672374774659935236296876940364977947887899676601628809507784043191087438535620114077581222407958846023150010106936713068783201941695190305580666135409198433096083214399894159238012905677282030610697477612936076718494835726307617407048743908910373014337379381060717015761847743363828695286198731609997721977270300924303696535153521681375976971783800500535129724441266408706629918568624106486051102427759618004211523741797269943314998866480299218997192338657591407934483819511694985950370183191666818608986728777155146007002750283320005929242171266711800436161510311906990195218339019799490283435464228543244578179216181607255867139772015654130432356206027038090878504247944159834068660990469389782395300485797372062165487291679088215559980190407826469266989030808307911369757094708776421541672777128262742493411063092490177436151753968239774898969773516542187677463720790972947099298430495776635505104046467304575659503411639869133052981464771846749300328487967216768900103905395905518196925886994259477247398192395828924233338682154052975155015842323034376279192790243278797490251874354017597596538978018796356869678778821514119181730854933192030991406193929365745375476674078570605433911197248213491303278125684831487271920544715007743925525953828867648966394742613755770157355885213168308653584912207094858316006541818537218900592586081308808846969186015834867624806119381670750784069597461853739946578773112960811719500899522730939150701372091702499609837693395250097630887907845975122051655214462238619107143500240985844807381148006665186351938822764283163229863900709524828702785300737930749463824873916119623684109831003646978062883803238012061271665598848531356813789716939231973484500499896068703674080629870836519690118309023123448724417168842184344534590126628627652380302318069057907512271910757970648629282727873347354544474058646667488647540412451066327985516127227231307746326126076314855348088734368518219425934278201863462662795785317045638166427907243118649832331889163339319298843005746843566880538852664838934704080903389668107642909563354448830772002396719245001032926029722926972684292132417022242661952069021411221810798989689305549400069905875201425978063021032549179446006280481432249448638823823814280484154010442969082334488945972223152756072669406206225066632485800062425733098901636587583406763560827943630773906157664527184961238412192255401729987750534641845753373133996754710443373589301071026064929189018469890603545297355508116475070524654105304920774734812553464031166686591168423591152525913018588910322353375810682743431370658757781593594692280565598965810077220645435841211237900532104147462352234638191584939360898852537341603380191987983009089259043906341777307699518724250016214754011688839439312677348755877271595549960520178294400268399360286838486142296051566149469008036600220527189542354677429961898707448669080690083527478915769498938699353811861507773833215061962912647766197388493448486028498384331409482049227881235562631271280197106447968045782359077135131348285925684196206625302178120304675536251373139789884361601748797563803202493061764179087476410224349527702348637474201899725090033723802766739537180622964373101085729254740735632461455984928649065647166332795380407521509937919673821006272334571894591972226362937802339424036896203858307900222267613966247912489328090675098052026014559460731530823911597998874128896073144252396783418734206143980355798548851261352072666634779874900535698215692846037457050984886063188554749167379142065258563440342450182125122910514883600781898632727958578504128773287318488277092947453309733414833129676691825264632088187145985987287806439392241542747470690062938541264010828138220761253233056932540760069733592495522975297147772475879930637341367678894268503117805703476973436410970203979566314644354695309476623836718303850705140328674320578442749761122486082285372742497681855130001028309040267761119234753493545166747825686058846998649880668553083477953742306005313412698435143653516010279337531788183281988852518628358135034840795558922945440837849758984515386193201804751361011150491565150371021111086660856722354008874092634413320353720306414052155153921317596681936632695285865753843026462736004189922635318314823636100376132564508634059307542965971934811409344795119897868910724798207716739110111115208848068351275320053572096544576607890876352172733174969886665716546135282563245967482506828174960916778005191103682060231799632763870578141505737122573282699972933062502581699761722928344965157961640985552882721363314194870419520993726382150340652758856961833611625362157140181927391299643236989850904730730101796443297498500978459220859881257651917325021716965956044566242672385281489002909533241173014950519997196835620912803759326727593246901033619977962827058875890751435354146575040409672175137498786208369047449191647805260428056929494535244133720109096950741248755180494529659632614872384168814256779319234595011426569839177037411754841613156840150705798868610660131588309411662630522460997385935994306575860973496910128747380139608189428192069977304867966301983080224909367121737769104999008115242962025933511971434009361795608208889527610062571261095612691552330671510515645215451433376500010865479282290949702639457467027170205098070772636316071708103881735212704441526950327909439355217267914731573974529310338719263325983377513657675415452138743765434168684438469943960787208642429202722623568527284379789920976342625902627984805107626613538792294856873333595657628629134959641068784374087788511295225754655487318528313291889365523142155912280644215684908857807727425976337717095046174385637428202290814342630762881296757645497735514279956965405273763519018436345443862651335079054405297769481473796424457440991808224756103176126714475050119688700030122525920207561932690659488291388351434579921561831593798414705055606689446056778839311172267752412782158672323473213137582698787140989127383462083590880379046664947315267449388747982618019289465524625179871222411703688858630114134537836063134983308134707953314771351450179230261125052095829922080671378257316866144460128400709114149968312761039758328654277671243812657517229301284511511374596854799033262942379317310742241634063335772498862951521997896264079906018600382676149846207182357723178286333721144557853317853042199728188423341646945768649713430452184112700650649963378651050047728597464161702730758110578000837903457322194655683028898958461870286880742636823906921311076842577757489551472181803115063071547129613743719148672995650438326564817552663195916128968419859202046392102936223846693345852038310964610692152703366747486021899242908473601574413884906805211156162776320451124619704340227852815620970749233158967994022945114237654782074953967275405972872712960384884572175195511973012468462171016394466374839975000659410668522509986880635501720248421649132674171476345445730048641416597700809582808990271691803089579939280551595789444423849456103950902946468790650987119840702206394838811159156328042430422920760341317844729447946200289597508106387585170995276492104110235616456370870455823350199523154337391750781350414872648959024100142159168511457989447524962355271987729865235095867776090981614144368597457288393032511973103763172480794001790361604582790070797662291353882516100596471894138622053409673372295515772590407251279706769347870319638057016051129145547518740904617093024051437208490298817851449096576229882267650828165252147955678007178560432965938946705005430981752959675690408231192837084972967579719353116819258778831078168004954797890669636236545033441941523916431275263860959710592181653605383455312442773087855079884886328283183382771174674793528100959625455304885316909849065832655603724702613981199501108423262075418958763190003313353966075686380485359103179434535437842576151994905512179940261033056524391915790314058565824428349314569054952975583603808678772578276212467382709755836787575515216833717661238628411233031302368371985928078066550780520024955167475248618372439070812447899827106923672004160215141337347609048231616828342332218234447255932372008194283367235093731765564671859122743283203233494674824540515670269865486179474933760815374433348154452726650047573666503401894212936527823850926114512232167793031892034834406326260480418549033262494438869943661579517937303962854745901623852960385787534609777261949519306232419055841112071061704909117186604895935684898574770745685637728597947027046002053879248609578125500332029403345716678234072652191648295827643353288791227383997275482969317528752803988311876136044827365329214450372104638085002296315349596985085059720555241720963815006325019180423253556823755578340662791261157827353096890004020555251665365231775091285365815264037251688039236015885872115598473850141028976479122166150294651536752257441486456692694530034574596375172528417060387252456666657063395151029384758993179610393910155693503352460870292114906415814540512976606512819347255736393010443389952000892471193522053244513590933650750868342895572318944824842759408116010358860082113749686711655110126745649410510738661110621612695077360716777561840655715274890433769305180542619285705062438705430385157981360929098186592459251253433745674910568178013511634824830296918251597510537986944615846019930706856364535382326353161491049718578985710614434854361291194651832513214861423415345348470470257785699467262458701274277766172134941042335070499588268855658961091798129617326354488400414501250758313907206182344867973129180587681155217193352884395006142208647244681341733331407324384661104148444364433485687912392843366334743473123454085411150003196098328992927781352363787438782752482184261723160281432573993590365579942006167526150741156085612819087110246326676828424415157425262724686205233815089815601056977660503356182892298667830200519762589438639189405530816524340380512186412076171636768981651410095289712549863510441546992251275177423498754434555349467238261625756370759685957514483211083643203693979239675767512051609159846600069111642072696074875347784251045432733567200474931832382823134923046804730364995984691319318571399184553229380143866740833835340311462935763256587066793079892692307118391681155748485705413526525620218750419673759855580345809791857725955220553930334502626695707988178189201238222972962753070406901261838957217449685617455687994164849236623164807614276473637987339947551162947301335593239203174838603018984686683550901832606134710860930715414378968409203943998621295591807026055598028565593649684294941996030688054916532370961125540512632015126237740954251287551251313622972386836761914097839596036052608373922723606722924973746475812917639260487286525588491920485829336990440774323089136945600760968354382405217484408007454671984751442777771537609558633170952255021123244618944567456972066576298297905074148059234477807015593671927010697252763993691669713029044056071527337902857595128483277198473944203204615216048650797736143380216931039714211919844883868845926485087295293490384484597787772813401451751558688009430613954364210964591497485643684841368154661209236715439513873053447632485382412943528743670804183576197216843325672186311446810149703113123079285111285999495553457977996974690442614249590408074769584616969783517131226895207759537914824085830001390211460198020031467302203768348143815128511257456447252465397785227385420989575616115538169389428454655916768774666314723100499211556046468928902266040047676894059209181240302232361901091596611368618044987578939074318456738296341297931239923884571426182482876153691664769398733621021375347273109742539818807801700925765555042440070212395428462925051475219576506484744449092839159861597006664418918978919958061612015630956855827650643734055910990421775547509837631678448560058159318992191041800520966097206879707037493878934839994226346985116316596087406926770267063293287681507519759002875302029062218456411729562803671309771948298550698914463187320047382775668585604369638708680703632892347375858872350050361724621641027925951551145355940569076052441646429708248465716169755458589024945962637273542226921981855257325991100832272048546654864234200606309287591280012033279358283639625065867321765117718612855570714439746375548074933325484871903589319814818898890757736556521875750134847322842234336581463446367697035927186586116636881632919259579400920099912706470461585191863162925136764772755732456180339373718236059352233204895923474880442005776903669192495235368832703714330390813255172077999304158314813419925697978225501954521635594173814189985223085893728847454825343687851532360482425835895354656854162130408098366285902644125205307253006235532728879501627989542272510173580220283806226327104116881970619921029161058958969197488661123408115496455293147185054593353701444434985775291708578517687092163187862212499593994330402864913377618804593790602620518975748046083347246104201448233393850724869622636288719812311302858828141360746384482256325839361686585732292300274587423955928881071542696158531030938190815332765410198288423018754493503594822334733061953052500802493450078851412300357733411339264025150879302396462668074160985056469323547148403971138219560722495850521276416376247277654503693736731246093352215066122133845572394174196800226596104584796484982976432748604108398156879668272195934233233916032973896097873651552030722214535799720152974804895009266690657410814202756209581174609200429604211791598040820255308042735672731894466133355408364693856409549555993196750252049914087000646203339974975164359695376170764847083139795909286224476027753176708517338467618041999957511930447990364752220068594605720982282647571635349455973781385208869360077508749045745096529798608773365332947031075140636040891183490039800295536524680205155235201842355362242931144426747918861914255430288948495153118937712355926965725111122784797488997148374636663314218658501359889855299397923703116775252542362239983793106614500582971288391860696782379051292830783520057115461422287170936217118783427484508868355364324740871572952449479320296144015813247324563214821670067653918228668720373000102530009468989871484346989472849935802379898936907669329453048238537071213492876470255328743478574321063041751188137609293323856655419764094546358396182805293898387781962768020609922195414256239618146372292992356831349829660308421371331427554488507594631903807372905634262867605158789003025998532004211287261463649949764030993046531579415104813922011502579312068238155239375915807369494711194616312895361707582923091315466691359842520034248712760170188159348952031510569007116795373458538697450093311639979415978889100484620727263478577792083555646900986731005975500574377943370944806998126436129548360014574365000623003177248244184838899519018397847701202248679061332357095289240788805398545043858887328007005204512295105578171189137934776118865369642090996856769075883848017812727096571015904908176579421507810468424443318080366475836730129706362710484445104268894811619876181238195694865604865204032088277613804845978675611483550172938804744396171430963035691542310539112167183192161266760631162876267804563196543001016941174682370033171536097739728943225894773029766216836277679055879660287435543267777671561235576941250282445800183045137496928282911472028472447545478718400979081991283773354559003814468271135348219043770664061414667322793241563969154155354709469081524803807363143865563299455092061028292653361241224455445668009580695546118051951677411793011530532266441708703080016499001767867230711265345056751448925819930862863707407343771284319804192873301649196134825350476517304591318015045403115352916296701306915100512892410603761250870281941784197901489078561687658843884690167722755007353666732452502109571867935365471059962175920172667795025158690588765357115833092405778762333707311587022859623483653706583528304690271676062980368145558698442936364282707915938924835748584599211122618477667716846559560760904302430883212321575739090515207446443249272143956034720386891403954670681700687254791384514404715462336151742625977336666777487213265028903020109621790956998864346325211961034367439164583877669912134868235492183563108490780761811659532315056196231364079700822575556392330854915657033001573255578625762566015715371741576365341122243179174487327219211214128121121361559648522372222521515659017247767023391373936074756669194479181959760716900359473137346248180115663476520811513001452535432453588050538590579492040633658528622584061703561041268519473278039648835607752904720427412411184389555965560840770029581922282217000939126176452310544823385031175029978120795187010961585148929168647479010154387778413845041466788280768275496038478142888980833231523872365934313961457125572410030031472423814695260233187593829440319941888960556101263768654604314103008083039256630813752355640681575736786944903363352571087661093047775604491285456695558862152927543995615246725969507365164249148687274024421186479870617942105736082423596490588632318803109928882961390815468380623913461789037855877891195887783933217620619062319072450914189151483291501042958078870299141351639456720793950199972640603856498991627973008191320821850751329548970199656233197330100221284314435275734669991342380506915512971563373456930571420789794335853127753076176412828494233571596887129168712684502260340431997354380213880505150440699477899885609513283651768892024809526970665670000253818861339425333216538866068818373377418968815681739894344455684932623868895072309934535459834166254670754290742402788192798841991532794798736577581018467255709242091847789032255422840350836751480288865798056817777885561174127623729830281530097991542652648559272681547288145552819011503657291848545873140308254084119971869953648666867310221127499470426319561917887442353210938790963955887922318449193279903014479091777736821210092494315046947165525247062663534088676619194487818603286756521154959947090871604631814736131412451919486638734575979475293198806022802921311019174458539768355199652816306449828783197102766019608594927751562526456919872178382384930500536077027941039632641357191458083526253148628274220903428426843148080602787079569238549842262007307492548727814630281683445684677236832207240203492864459018790893620854117084392879348443790457781332963143880791127036815484954376739526466085292125138184473074533368608893934643382622949034735197743697179050997141113727269601844373724820984128544288084800284261758343492553860763192989692295896387321589849460532531000475965996895543871263006945042018486122909300787987895709058038840000572009713283610221701261999251173966244655802719303937556296704104531924926632136722651097738280800084269100452049648244272839260827834357886791363427925467968187403750182196718021004554154212367410865107006671409575990842082627212725492814864945827305902241275226717129141176320383152065846527627727977667072810806001781547220564209459743093823519665630583291104377512429514802949485874663298886921155964560996760864743664442382368299534425544643839287083374090547072850920413299418543659308254267377434208895796185820342261965371366956664242924786635065959458592146348806874389099293946316148035764063951242026092492235514645814674384616185297145427970990701135941093861464346724035250058734688101096132295217590962636752633012972611657853514022813347191306832100879978372144037770692562160394530746710590036638594583152830560409901320839346766228215732255073141445420217942850352582433205568694405158060930420997551246042290632816230312470443678671183314002377290291628791515491123526445990194919426893142132991215328688922024070728857763499807603019785513603596457298296116386411251893553484698441383758519474347216192427893408128403798609733761648735988934465087606991877001695494515844295893200574443293855827808894121035868628814706796769989811880744605978440713587917527135089657400725576485136723058482245103711723665454438362782245662064396972979090812331776610338831642967124268781903489017684723296170140598821617582592476759640321228309578993469642271016558282271386801598293287035878866515235516915480479341744018406199727409119755282724397678136926545615818711243450835407718547997919912322035452395327313196099172427919209056582096754474569183134394261102491362623866488585019493620389054160308182007491307139493253871988452438654538025621014891643072761146283837879340687427543876810877354177036085219090960992683162693416316048821989187845631434101913025868174469428637660685228242909804719995930042881631186383224751009643943058204973196586310491022364485672193296668815168939940235060019356400152187496475089457173950562362747215916992718475078303978384400049451195637777395366086865021551094694781275189917871533196474196215713788838363053413299590861019215114597618122470905437169926800772762739016742584531751897873133261878189355800210450733526748954124701364552279075377495410969883778217929945627912724478765436415275621829423001971814141784030912004093130928703345861980584503735065907850421154451948580181170837640667887000489350543342471471035976591724962078834459234576970226439551767988665213873455879535574889470900221196153277263406987611974613184061376519543488637208122300416585723556861186476868527064407494558730226849905562280756960435123335600558990642715870440431250465681174489363082066949908569957501219284942789318994540526834011585062652443662901315434114521613868417564815505292735967390397739301939514279806381793964572136639686991749389769764019741599052286114147944997052449616573029298507078734236368819421391511976858049089482170142385428819081063903007154039653923921117153416065433776913875457609334477381008836031955651607783130953969637676471290945800229048436816989706972341271682669411047926358326704469039939350657654062534840929264159092630127738216698670231571724715011673441150243693800965884794322119701383971950443802572922645111401494582099925062798462733357136560244199070469065131462825989656045492349819913532618304861807577714556529958494026595992217201741786425586400092104884232182013461790677763480200074854924268761211658500829989243626391092739361606284648214524483332884310145503567853393669402684390023694818163998682990357282374488591996534734876756591104928240607122000699013130659242457299246355226711594651737853042696401447162397875462636850063795388692727263490442646539037647030358489606868131064277563191807858621389179790921022102793989179502131264294183044528429335645043369939074400243589665673963080863121208417571052301897654969321805284939859703920743533276396751927351156124127107396686852961705270008463584662974589684952026514618967457999944647779845389063918321242707109485266264329006726419052151005316968981695418304134929349158933948867150778749160377009331933345575377323837359507069030558584064925227910709501916720676139507783903895819592332044755112109537369186627599624378159830356261134753858159195585914828364924374214915606999452206589397767808952989797223459384671194559885028831799467251019734639159200404133032591595957926928916494580703208994526216911073308716957855391511087267783356642949234288435426696182883986756365445127683136233918524240208310019359650957688493406340806535308942207289908784910828553491642377255664950962501064325910993606043249229337883261666693987016328320368266551411931091463003904042451890865977397683599008891799458563702801921512388642755283951996282356759683551238601567445094686965187624431454403914547372502614762164613267502025335992036567320332168813014945517965574902966550593468010200085576749616675249649912380880826942824173546097964419295613014293896806577736229321103302551860816063468317873879045039197020565110683106667484864764250930544202899959382222304188980206493543278899776081542806296515738997438668128213789262922465808584673749853821576378246218869609874754418727143772022298172224826852173871729208555301389279879318871696865279955685557110504791548855134031668344086950347546792061212791032091428407407476691938251577184802272998389210418264502931862590048691053492817138110609707523588428142395748484498511580378859094470568201106062667054685955978785474952595467446891910735685775526867950446232855640139402265673683470554004733410694227608131310069973201812211617905893694794247533596625468729151580603178817986932420898903229241507714425531032718030150468014426998540508044586748821847986512379793355301170304621871351417116497723197101942052902238291344806491669667958238146694115982540344980517330337242833576050497961541120264905458659459928729649253395965310597601483221518799655724883104720530531740485862592472057817787160576358949055942194410085600345868157392006813281615634261550854842812934325104319196065064083825960428228393366352949648436206490220573727449119552614986192568517989356617197116491305330283503903413443187667123117762308826386274116850844841832487525291366596544188070183335777095835973035045581372138485946956393333259896801105660633182632386926145661973792921541789428376356009640681327936479307253824532754300205854040456586017670249355427405549322687646912593982220583173092552851695471944641762848231338537276078827532332816508540629505268542419433182975556101724315931292755397891155808837892566732225352110776064725273101554103958211623059671610514654843606905039732054778238880090335393328978966834598903809110372416231464741280362245202622888835354602427133936863273699507705575342855824773396222769907239648319171063513588764732510720102372430344433006611043434795010334860701363152789855874578968398625586623501782523142048875489341599611664551663186306231077400211631894269071375376509679128898445875451972116212783543902511608668464735159855221556319409648690976570329265590535880156452717843295140147718297505878656556225256838625251295531099297992374474834727569799534632979667940902726093583887689539059132318261114696707673515393452636968072273714894450095433023113461944344544931160913625060631278091420072873140403677506630314825601936192472705271573694214562872628428228772857327648842268230266977877428490184885319468429574702814959285770291454126909818204458371623882161163087824027256599238455803150772077847551460231561928092470983635982153967021832793399927700295721117107286236388895563175348097502457752552293732678377606720425640287136487153940126077652081433936538138763892679578461136242112414137192239928968697657650801776881149060872852132275044223399644891149630250836372025643758082908411736485832618578768213396854300497308333515570646312052196010578050194264881481199969165889951688788879926177088858651483760234446916194903629614134140097549224148345464734092107600242667253154550401396915573558252509037062591311781310341991209464733008580539446531362310845550732096075584040152214684439732196677366287963184245851442457849877882838731227755201768962210759764145909949472136992438470468930264905384559107792263622267896560707307362934223815531384463404515115191533101884376363083010320150143150468093287003599196103443175439816477970572836991256610109374034709387456568851927587216209204780192183142318861442274918228638814268094675128621043349776226551091036586652902067273669253486279693168179993892749420832699487717593481342638836828955129773985949398689110717282245766755986523152003458958793679918337494497996321329417421031294681247756696162579371132441809049944330290834761819471800402813306870886204116529633282933332710560037205177010777874933831584957278380870230525614246986430804363544721249083542336733273148877537717841772912337456938085000030861310483470260710594538922673837128468252651952986616924003592035043494563153517423189751876037268210343301437509657719609512619523729630046504891306210898482834241579162588115568131088977948194504476891583708829345692886923579687552913780922559500771916833234899360776726229681267074175309437737966838031000633517536415788895108594665255367615621981694376474845304287042139013942600684548181442109444694755934143723396387372475605265952449455126171723195286769258049296008800550280018262692498958446096544234557264232236071132546775595528554561288913027386682612565534979688422184369731066588181690371671374281049957561284999231761982517217973779696015870771462236976396020320163635029277970332445271342731443722402510196804403384824947164394238998412494847747826946696321081645152450341407508301298501689973904174906977426594788578485004108478988579290034262313500921274721844886875225314366909197948895558023469038527793110697737134857448265378405579033485840214549005625692966675798311093303271706963316708494148910827314021012565650064230110633357054221511213865526406326635815754829289768726795405844526539764562535057268578139551709293090388933310097853427316636375760939111742597841342693242026219241712305918170842194148713627155591421855053282815875084846390567676603085946891788064527872298436905301695630176948804904836161231224185596438771497577759912632576476994694220832141186296520295280187925057406937189262026734830956696127638619095350568531717363580616469366135726115082365371783694992813217229289821229024852261178883257286800367408409892131742325115151466470268595063177145382778190225441685195874781226488326909864164674503712878469282406155950248354070580012897031193848997121696109182156806419908380944758438486955856302921809848419465420796493305436514257137957905487896479174163219944468771618112059491368841176987502818940066877249993917148135946316519677697552548475496390644529789048109760707700968237318105956295636446342361280945433198078927228329108897291981990177059944483793779995039132751753974243680758453930595071339714545713833854060044794482715242122051910712095058659002742934987365100564934666044563348108748557893175968004957871826483418006555367226974175288349040887430515802544684993977337141965292236806773662994603180046719889019875677428327482756779564821171373399305493600810397626154115122826191078302238870631797435479955661516555268131398996702421172072407730740675814140422116076538994044957695358012524178529681767594972928761419992199202486941373905633028633115360890886789679383554363418985763575237110843895868443348982849321591856767396155758425592854189823573069630397039504686073434100997579061120697468708057519670757442757492137087971354873788662094433614154388708266776180970495678756092656942401233093305027055634844074681372837028680531523932422213555415447848315657131014107080969271544179492688568040361056994253434233207193556462254269934550783451633240963154708429854679287794829147524324179036523760353149546727021730879434500451528450865945984787617719421798354283844068263976097427635255834470157057507803600667511045710995957747114538836754440892397640011941005052213903433442377711787459568425098983920827699121772070514250323985422218554568984396899504714373207844899328822666531249872029221077726271140297188992856500750043544911468007936459465728119167797143326843243874628015786337448037017441764473336040595790619257685417108238467526715906933051966714178184333413411658068154066333194991863218755266673152018909389669878841398292939584020549218506887818271535693297803809673894895888192462985748099898977621279983724057251251151065323463629996247689118931822704935357222333816475476155963744413486420187023566667132023528835297483586254920640237462536698832030839476780522502302601511355359515735591779234845277839006754088104770312859270032257988125590469326277466796054153899120933005909190866141243919270341096981828494466684785975623287822999117197867312266915847170693503176690791401076833519593608349799461125215064276524607527084661191483722891245988179301547911624388989227548205330538221467458483598674754435135613944757254938623530195517406615858392369472664554342253130053651641684953516123355333263601757889013658488196778695813826172487882829796444476253732046988562273520104997649444099801053174838402531317689245928601625229308820238059436408564363514690061721156810386466999048523198027325551778886041707252821986822165409546562880843080183783609329367407089312741528143658809796365526494813432155405242242424665705530831796634490652349964024143858874683742295521596152309588107221758203510977896497355237473917746391269121419898602355374947643260165995840650526874189572613374214812339351978161793692296870985554097824374543933218265298113959544652910080009427444328248275704472784876927562544354101553433559616706273609560152415609446343309680970851339617362879174509230872485100561703455600825148423725237377714382575385955980462393820537209788800734867434015605888334542977675477496353140171832216959286767867812188875377734705633350027879121420397545406795166893471608403904108335971774543460682055842300422748795830152199015195321480670507957711856231018556586864978744955025897784698206126672491804260497588669117048007767699526235939143438381227107362208551804198008503050976200558760454262057925807058783968274966598412756724103210215079593336306804585134978736593843652879977159911845748609987345426511197479299961780168608163827277768141999443522417900632701460815582484026681415273531307636230610596602629941316987501151231108992540171841538458124422463442212042173131293783303566445786948671401071396904242507242923526484148936590293882761612980408614052996638529689147774109252177521506136138835656335769014810986087778054159628965076723670323380083180331399514448177116239554608998054106234320523044389734160511602732541440869918029582797359318008789157608702944670478876708170222630158369470706351806568563968803665441507101116401709564673787351354459118869286559295654223357696926625533679393757774395106587124255100604160539857009774580112264658915402301877982323710544875063137066972562692196732750898882408933077192545358080178281789017502715209737847991727072061076142868436608367298827175867455197027674083532323861274758265407962460964197010596028786940618052984646184308290273248858171957432735778950756131729057605758203180709006464994131274691457972570381591167989429885500689031184322875708600952593014597526233169602170935718393221932860457934687693224341115250805583275285661899206254347700167596871855297299334586827431617411949370672372067790802060176920624424536561622613609153749688400914045498673339060317382571505375377389066261915518631750907620155412483018452268187549165552199718693984271884678254099240050377979974138829752364355829401507379946395847889155522480663452331734386433010743288578818444622687716597259668708729653048829202655436276094121622383538856146111883713273945305909489152370560206166629000730671155832595510540103207211404747282731675433279893604991627774495779835220133606300075819094976033095117662988455726489373471183596717371794619114005840857914586705127457262634994421204991358073544553756562940169200354762578889796770164137915099412860059694806224299990643164033292005366076394729136007356757613841636044260825239377821830658798499897681846530265095000878688865813120646822352597514840070142772742842605374774653906068165481348147632018160703355187106408433641744415703612900443956874523050100810730510315834276955207921157506852188306366643139412691655685573114811018448606840691151985707503423959498143204856779186900298526541551761731727890248908890123444179234905617308834675716173251649412449503217230838267426823113594057339676427150325907442412177811156099462332412039230002164617869641750654464367519372601605918450017390851158865126459235184510732174142546854642204006454416589221208184104474421790008440460230764227837614493766420183374414924731749842777829674910502517002764102320671880358822991621655510393042280155444499932964710944179843688421184608746155311059513815318357433852489075602211515615222146031908682594696953337416854456958752710773142802779656538466955200147990971927149194737048802422078314040517901212131225639042425094307620898193490038655588224441202834918744206350979345056158099184784277958317898205835331933713532175308226150526337238328587930688922268164272065496942795464345056053043069690093329655937363586898753029154938948953899427555954725149331012514485978215197104867448494848649995884841321211485046115261170951246504484334407228495339984126082006887077381786412005406208216909175373766376548651426718094964782449136678749622775792143743907058438385104916538306795515562689896750893610205769258947401492222025610747917925601323120476817857881486523764766774682940969968424678753491249800734023018574471697846277690939749874161706924079019253249047378177410232291568536722375518597391654592477252368683353420479968881654135476991727181937492390401257120307497096915680856034729222207131729309630778157812087085404754726106414949583998214171750613264201602821713101345015429431964973892302829483201850134979595405593594130001387089056410569518892154531259184626641642884891552309114229010251766313365862792495228171526730097222713407769012459015352703075394404533378781860506686925201717344848451224641168023548218791899791892212576079612564811307479978136705077563249398723309516500439653381540833740379493807017471003221848389578114394659429499042826954520165378592654950367352352597523489137288562020191369979549897237508598949330211066638084948583519445305697238150762846111035162301076415216192034879852782011455706269433346589278412336973970445904317188579882529586191709732239187296808747035285024925547023051964947546316754331597834449543072538159075909093980639408542041287819957490556352995512550887004703027326442515769082008191763348623895007540313994769728024834727980554133623818629572047610638303160719284810420798623921446171170555357596598401443335637745880632571783967329011960388821978130817638845834408750238126847886589002907677918256964884092415318522492303048689773438580314477134757588051799499215933905784143047993333324586914260896184522841964269803948983943805073048970036150081973321917968260060560889437133498175567910187846589204119566795184869264558427579688495544909853054694486913794947014198364059103289063370205038836423685564796513343198939248086661873171619871824527997730527841585954465082909054165604983891726094778728201636488277086579715437347831076910402390114311844080744784858460713709701473085074629629581024668351049792555406896763479948318292693588791763973875055485040677464254840428671804487593829073300006668362454306862621949722416368046579861377228878772333025013058043222523658120767995832495622895982821149755913285401633130542712303109788334235257790547301580193227962331142634155132587968450499195152199959958184642861853252761688176284151298979106848114489604974900580011711084476220507256471788169967290047910097811083750126096672688225986551343960711937056807493104126197736929146157064559839105658382607577428785619527140149762868019219244331653781341665089052080691494609851085957877301575062038051374349940714359531858130587733693809924119555145173313586799122558217239019571562321407467017046773632017287360656957175349751525031811976290410319392351566457021384345536883761529118106784898791896622127538518461281964209030257272312241628250304271629120022915812719991592668831819749351534334992040988689025605156115072397267075086533047858532700104204419443016788115064294995597175299400433820264493573910987683889957091543343580467099798477341262127940210792589594517713419492557733992328169924011237106520749484619987256005483422253858868726860616244719172530363442342216708511137141034346878134096888149669996297163475928586062387246187539569661887164409077486667543156821015512965842933154198013871222365709291577573979900406379658775815120290007869412872519482523743331793513291608071599370520358545452464599069355971408459419882733934551625270812913613127843266034102257426041096457032014185912593309899162523545368948267474799606461797843429474528351078070958177842292763722247114483924928762501606244714336444644144110155727403271020045240283901758525417575292414821303713863133756411259288918022827770745378791726574901907125947887484427423325758291366819069852799826676770767522996682958854414802045068763142551318830355535153139314323804426681452805077504527019212010348840415413686952410671828300050297234969793708027992782731793059726036623571893964290781877210516828656906332775628936054996258189746704736545779699037255578145279071376992997921414142920510198001316724825546580367939226612753749512322244055424262690070600936462644992044565889476711691109558797776643272393399576003905383638127839030415583633159792177354393100183676847819360171148404736447379832859396489116853686536668738123031371243144249603608641335147037942091443867445071844729487620965836254936558190445589236482132805417265580122008190175964030542373690850470505632067190656938698733951964361434801052636529088437583417875670920339943299500964127608981700841665637744080627331371595746499567502581709332682737778372494304724732516881714349695862825628618182588368005128024006161852032282388539752854466579410930824490129119643594720717508570207444135891509648613081008163844012704468753867362339360049176820651247618478200698191600100885931409649479925966197429084820985177288647917299160482239623880713649739055198992138706679533662200223777320363991382698718994868417699899512968651665899389353640346792837343786085193507329716932299894458529195434245910565451608341561717768490252084419266473151267493510251036774803973344495776780478467406324009487619424857096177324029725430376484477631444207646606592182450873317280451598469939906124422695997497918886061148540652778146703607774147107158105805143201490653709465913865295488859821581986955457496193121146777253701645215100137382719132683429159761739541038434985713878151877059628970423925121509060896444567696729147623979841437443537632227236126602537828491971761340876273840665383395255789719752263228038420552099057569296187327782463376069409568217968282350913364748052430672314534929274485693840700347661551615830240238664505052306164174247893742503953068176232415478046826123179617178908535857729807080378772135027309026935126245786514996790944326591118892443344526703051201916506784125947254677671432921404423695225791547086036004315344882982266763848716914405847362458893644880097785770146426396673946194483538826735793647467996773627468716577061446159380071058448409742906274621943294409514433801252697064138889453854334019057862173797946688766218364215800877528842224279995733173087849477298076279530572258521036413124065332436129037957295257600042514421406098581374708306536167535894588657454671280979832832636330832344763491246273207415463054882269328440233066701783106561259593225005321154408313103771860281123667368753462438895742656470940060715693678687257688710783020259277506508381817206114449067398818476994425110633815757493602320127292894043715325657878505743814885939880597588682294293244695375491869095491939774255736475678205376685831595565182084476446937323373723163379992634406571346880731634096122409866135066531792771977643675771963651134441381015175628277788426785061641596058948567856815043399135913614165885237729107693815897854561519689552085633106602710832782547179302982159764886704523070253087347045711869028126878716784803868909019311008685398603299345861811733398202178893806126955550140093940976138954884990118930899760848223375827509929634219785502960980049687331954638257255006968340630391860171958349410346867426511293364492652731308611451707384505172706911050837151220116928203969399913685519364049954776160611221965387383288361228423632802533129798135246643908566864455922923269570669139670685469879578226778423605538257393938013193577175452239570586038413369151249639738330419892400207280586068452102082782040839649193476150137376813395188005853532350151654652398356298686014089496405824581207652160922464755163647693889142303437969559011569597213756263608375224004360119079530615911180639470920926731905751372043404923277967800503720933853598247891849210559274304720189474089280687508642218369651436375692014706090045506618440385996680463687931463494889567983313554040612273599690203334983321345971366370527273036522786325586895934745049769960789225849150713189986144513754638181410943827272000525646031993573170353013538271693713487112121098248133996851665178245309125635656958441528545258867287772025312103768793497763810831609767087312476033596374256602330582433593538824809896157731390162203489078729131107163630930343755897791073113466034075795174527453565092898809297993872084760885965997872732377514003181943656643098376980672101077140845115169465566281175547596314578399921539999660334672335616708350148686514092521339971576104835205575948188857795369217667242177614348701180402095923609038839284754115150561395214798560870100528831096664780563682117831886575284447304369656304819466536028873669915167599039983293036132647856995690311284182080766630508289488245344886251198833363670921894274044841424709002556243767594254706400476082309556952209939700778918378953024995114538934853936784833347431028458649253050362067229397499049724310749782487177982560897702673147822106400693777648600019793290398879789884688331409113243905916904886520774334295294040767096394464318678551684019123512917118948060405096838854824336228501106436672970886868296688867174991831543793532959496328471249260294672537940278727795577673011783417531049617000352934599232851223814528148575113059559891022725175783017277096782210947317234356704325881140631248946332774437198108129785827166482084359162664243726705595728985349404240602395219779493831867443637879427444140802266807350770245799978160097984717688587505893366350940693505975025173673623978026188577386577471352041457132403878742900186221321852017984963084093376759939232573573635910989276608358258189827753226879984404214802100210137138660554197176413562458158128848879006191504349155107693028313519294678769290249342342886979797791544100866850472237890954733990709978459386609289698471014672770999803534321326466899707245676437518959063591379383831222033467452474564605132861637453025732046186338132969121089432970458783591008518548828969436802969483382976666106987872995071693896866549699973131716459681932542502464519530187693247811427602724314251400900713424331048570099060048501459161763524422227587565172813805981631884435583339708867074024115629676166062498492740038440593103795717028240709097982053195118441607024094711407926514702077191352986725675781472826109281342592554278833985769054375223772122711330284340909712868838498618585424996366117316909866306127690411967163481596436155554001290026408590500944518879040290931530376133445432027222266982247442354057307431302146772577814104656197492239361136737514836503879937514273040560437418542783160677785015556052223997436375349270868675344191400558866267407119855244143219400977176255919594617784736652662330531453796388514959182476121146462567938865406441658103862480823418514810497930657307402434751423284421509703134008050103239378319643152215303530379956632826643694672602427722381134957615893640683170075476973227409430613752065213437243797846406984698785045920550929802542062580150014805733470991546593300642821922460357105138023856553793439688814829216219532009784693644265989512624595196348485075442619996862348470225205634078524309264781657365293859039984296102646383862641276835130665618196783554357297069292735561575895644503276046320700297788258759592350960643830959596327007838842861613940552069256437229662188127210590921490206878864178107221888428770774399516051300376043662334012143644632040895019386166932466006463550772858914681319582221169061166788774020938042267172962033596638216025626928252831707078687819283499726624511319630407208930291075264094997316423050167133386131742200039820205680587236042971821215561101356658282307096185135187119736355596950963706817711095322651367031213567786546412910141322171788494982049047133923406202464586353015273392982403809008304429172784365091671503576249126495361060463753245118883100290311117399696662457866879391321664948762783014125453057352038568146428317595088135453024618994344473184663815204452555437223755762409624291744342582358325920107517253802122264230963299725744081079191197604701446100576257037097458621322593234844011578799647834197925424516546185875842781689601064313718842759284053479250789157190213262207169201593131966487935151243222940314816537441748913839699547568706102761866292109339406311730966810344412450765567510853876813499174403217029874106152607393282855313870958169707294098434373698254137800740254571569594116437357197129575912405608916883279736090602101278726358406873043123757716168555448937772287771688410645734887530483859100664840576632907507171713153007375057927478656974182516294338369465875177487483857787869016531911767113226107394240991257307092770019736581817488682776849908684598459711079254372765467741397671628610226040443628659962553159928206459382938690138658113617122402545673014800402701479900790520661448209948859703670917625993163027127121515224135746038226684755727889788876567732765389795151787200604680108476616731921479375936313178932397673393033766299397888431252037264933684724117914586522376720158871162880314930964329768180659920582413622303038222895981717308832111805054038757438439252151653998918819662809230134022394645936570568104596733629667823852749403278617855569060785436878207338629269323811802413057666642463828087443840767338404650916645039027739196995691716150567634414518176378171475451480240916259111829881331078091979649366130127939804521927351532833511138575471988513336923102872537067159103341172631248424622189726252791181932238806339832587167771103952207394637952747555857230087929558346136718373589303726696002087973294139897037854720076871314247230636014299860770981666580541824615284197687379948507234713924298133678060070784436943590205775922253618567744645404277334594361585757365578529709543740424547369259597773363927492568384628066388280737092830571863067548643262365872327962208150505146318817284773082828529022412013368780527047744356322767046431208173020770393664903179375209776685091546116861545225308265568477823035567848850040655119820248492522031303792254514795072640520856115181746931670508739246034156515350447348126623548341566573315262702493145238076634436108938697271431135832609608334394448049793639988043892913539419979732892083489116770541307472193019546820305781390903056374440295963885458211803474892626585742574901264070653594167242366650681947669098783122391287032406836396143951082688346531746417344944329642010331925672517082225104482579839501565478371625309805212449168289049933536721873722661515484107380360767806499494207952694409945689937174207131582291662866808984647388002389176038571487770252183727715865277182620969695092406269656950857947902979324765512039125076930171748783479048697388827601109616294889881365829872164210337735028469553447109239132978264791607569132252670325766649578506350264449738636690764428621145077362810374401383395261963839180568181080168264761208970252717185521517010053898380592364946108695052222963026866893928371041308172403852416582969794284245615038169396228957792814761215958860561808933779500830968973050387046114092082161904187624001691180577987573882411702310259295910488709122998544343566549369728522376124516331750597093525547961353143912313564444678932908436192743763081443657739826971101959417536084457368385380785441633567353654947272467195223312518852619326810211818418713550591065012018050642123171108002211800487037391091111857922719204287330356713086289697145122035239778833856265591201761530822910442617582508286395884172246073779900993816267530079151990268041239403292751881496289001937410877098236552042442796346725792305659450864943219772669944979715066111053959462048378441424364533192384551118150478922352393568557839773600325643909675865571081906243131959578370432633769941989969158461276131075615933829438248556010060479437078514954893635003462053460389586623222578608836596294379569144579373049799410464299080234369629914326310632837742906215365069111923578305994371478337874846219319461789584963155386239508875985762090309132995316320383626181268760705095461047947022877078104835491172739756742412459992755629511326623500569214869676260263290967224999651708545967733611070766059867737081607961535099954030279742621051815019737795874302418411466260367180670744922169762763790782974550921484828024390452192593554147530842555202460191619510295728442916758892220880532624931406192388728705579908816333937968232757010623224385057691970351329016244239680275994509903564489003554212775144678107789631049225617051555963829220592814750159051228846802682642861714340297090495425099632097763459645956087000759006003791717212293632006232083889223255538150179289140749293736325516589154459580374565237181986565419514549904576701508644122706406288803803338426556835709280254542613930370428676887966000052496346162713650379495472824980716340473776632580651592344275152221620797043527959194084285051126565738832201274275441263174933409045212635509199345396864518131064763926555052296584271178063771636610356195296792385599074113653311290959614858121846201135738615066153468073161610511592152667803888471760576531706203493737485202250040113384634813216807477192854808006953070097638210753265593945301811490216095790254111756254878094707790267079538666398034541958872897895755793589145491385358512136138609505037213013544100415580575415668922168831771547934654843464278205657530405260624538386435402587654932328612188202210640043998286117746881275741343496515332252257329336462831830854572883380216614191311403076579727491081259888193183572024990145320172450864436110405134018587714348465612094332941115043019108699265639555799753405478176986621358858063290145787015354770181337981758190864289446086755253534269460989305732844224535491448010870797263048321867487547680468929976572170642843983001099946790012735309377142645086059506083603045272124640570688545925239945644941520629020049031302299490832670486455620438358994995281341974034402439815714280218656519285541914661557694972509261821856282492029329713246256532995970476371542015828799103607839929237953610202393167476440847920141320964851936225240252790167027878562291697886623336541941388291544967386781265265204487262067558565744677962912362845084500126155113702453345394668303452077085841203297606648005707496433918944229118126099222499264445573419751966798646347735848518033987080983137007579090467233981819867528265647307146608193555492741506623271833785558522883149054547952369548104683790970211322700527145421656012801195209989230158604713539140535450076815735134986549001453984892951041736999775299750946424480983601820971714709818214509497641784467813678251880813666917210340045622279420306466149694925246640235159575536925413076595843720897672999939345102987244418547201354640915415014517032966633941155189960134822728486933306711949133404567202728446907904136041986571658049206511725066479676747434337424199080366680473377062083636098595110277480684123366537940396974504111230975448761889334546466232847765301356973831668724188973086058996089636998764662896081980363893018824547631475831183254225751649779592709697174321672623076901715901255761914254013003599427348516034120563457411031606321657398716247506780738302675077221683290538509818705321611320480386954851819874730804606694751427862309766948953811133318838415014890323102846097880260425048648602232399794367694135257328931725423876198129646617933900053664594780557817500629799958274933501790058603816958827768617865777416574284062539041068161217544003603255980059552615600983244920059611870740826241396019399686440518847253729637089853120125494941434952412242391149401202577148328262587691840756916173897651942629771921511350554484940334258595218457359446752673516188574852948644889835352814952667000869126226804919567503379326461017318578053671558012250895140504875489031809106844793446638266578023892559361580616832216504413507386028394017774050025922815788681661854042728531660427114346632228804008216250085889156222021287616239987786194072210926764435927321977033903676402700047712385638257062440047247442687454632573815054332478174700426395829491763185976744278306121421866277123782172979555929273604880162266946763018018561876922059853684837066327488296770104134550750924217779832514422645495235471992324421233976724469745944997106153707049755611261075362792088627140008584080949236077936055239544207667071246486587488849488109915125878856696805278767265045551244675112569306758139651966335883887732574915764898937394503721322436058730191910934964000993725739840952864953712061223047373368325906143057697927587290023293183049301627064012489327636569351519455012397256179774258811803207408818558873503921915828350016518186848826327214611152846359785655247741192295994022763318166417417221465354399219575164321176382699160893387861557728924642722622093465424920642152901056536181511432173978181723203063566903509440075752307581237544012917470786290191937248099873088810728614181875293887345560972407849673017662539987450469692970516386378964889995591897556418680100295222979998427599805695997929650675711027795369511754812592066070649811986435126119242226081061305199342363812851954286101577538878626547806215362433710570264696403841866210170313502234236890007187611753225865697908815479128272546664380375524827259813338606192045788976765707250827627740073744339493873881458346059183090350568720290786929649141645611702745928569789685192057922182823355093299172140200588957682127018549435973043626868653250723415087275020663475839025363055808783282530468248612011843968717142279126820190261858629273798836568299861647709672008534164430024929937923096171143228398886217200955526860497295464462688086180635969273708139657302544999839816103242212596399503177478822314859369230882488714937874136186402893732931136911953388861193934075259829574916987307936288858653033964284306787681441735412632463529970711894690571448513703307587801337914039582048267712398040259113383190125865374491721186477836300210809828697972500160876163045476510397686729551832784615765223048453383327371600041821282168135281475567219914002573312290466960447450447392100324904829903565784451394514225394608302859763462492352389159407632481015839121931405245138629641381478227243530950035222708388937626908151995479362203420132560153105212922534016931769175716731338969633214586224687766737351535746444416475922640372282089443501970679817727783322622495846337905590161601067148863293453010609873711318667560348285922497145694242311857746729763762815660648868801140825487595129207971011893868804426277372351481158649727925498267385935539602844112579978292977665134761638240043511342784150232041700240057725194120865012599179266216646699925770561571683942339929988378253776455642698523129224905026594792012770696474035151312092351326465429250130596386953936405594900241486662666609388007671251875324474280116144123938058746762345226579118841678848923566547280015446786877382376485869271137117790223794871666451992657271144820388843697332130831619144880865244808375785086435628573451893004862243177755247890359927858709249957974223842175779003819678187189061113875538287287523477311081375199825210359936292796534161555774213427804698533952427218344131828559278980296166047025956499997468592530670502295807858083274589698426589820720333354742403899019897009461938504040193799596754031008055814093854805458318145194899863941167803326261515427767653432303282036815437038454282189221698201297319450952830886633073420113452450970243662493877705814680123845704394640613729161364131703798144192486859694066027923329665931729193314578589480772634711241245467710332453808887442792732799083424687644069933848471612303951958751292841341499351840449117038773268326175613118080561461376888437327319314874789259750359232671332579358854216339001342097122080183769359505792367017919313347272444809957351990269629341594796693098333694658288516798746721967267170759872473798869104724144252503577670008584251168124498604326935038244480304676120325772445149119727487532725004250555427709221291628122206324978036035636923274550215126087244479045026309097431203307467538047021777185150312106380896255093647415359929719903678860458704225437576401417503933295833736003715120323520678098956216267272327729445919164343934128147379758486118767490307826452183758937476239286265928605938272265426391135165067285850584170539302540340455877673087586803704085189218472001038531264769274653078604861028971030028056713426311307119332755091205832148025661077009121233590177364938582992419185717705940083376725762464018507834963179727849278722333941131398754224614249554503078788104079177553222908673686139848455165261410761813342034872513844158791351533320357264147639105036827777745123116167048027468943670577035221141985522320791266991398100807479689961902363278107466592644224663062434991929859450576928970973897902749209011187660530455005524880784664067614382796478546534351803485761241201556544682338125620543525019705898881765915808518643748674458089228225527041001192111130448871436616948193596380792043949906533499085657934094175827117664760950577217941088703330626429338768629561935273048370718630993269096877309109090216958370101435863443342460473018360940056251064639051119019427136245601456970189060190921531331665382057477915673520550652623362459801678220436172015069100793408677190384461012402286818399235390842292326551860698381919218234464679085221720905228260813852378146383328461005294213729735358523396040622933673348008533637699263119009991220854206409955251798133948709381645712752708342636478290160676393516098679712226462893500894323895776866182215274195146792529219831956643847503689990956268747020097895084507670744317892812311327001696284232868577173666095420318910138681914696440335492357652976769729876729306414672288464194491317695860272636714346782716061964106822941748513797577015840287968316022990736662835439875274354437850983516294775875022083073891681934656419661725479127219613176161006231809631896491195420820061054422932756796678548828914591996589834585957491755503869405680677828654618029365776844651102151706347001002927077397736469095482907549801174833581259867792784893828633731699417002295326780030089962705640342674844266939916495483713162880159602103131686437570375980688535470665230069327339581862287522501283615925957884324613761334240928885158404111827707222524022730576120867901317835413670541537777914324033587701150207587482750901267860731592087071387425769261187929197222520584003792883858303012976326921950874505231887029339615450558437456736535410754705297285361192814882861075772850325732826415432188517545547347913354625706723538669315684441978514054892294263321418091909372860089550611692361325658540021057713833800340453550313399343181564184916927338361245974870671830541678283245215933335696029136314772444011678919905902589922668952574820527152996840604657138497786399735550096411885005024746777053940947291783002054617682209324590540403155321932716883312585808747539647425035496218416138202452573005299643002059323506413206274462388277549987453408753770185376080074290098825578093548893900659515977899095229008021244115172832228691162840162776230797590005444995011325572409329329952062185271172770873950878767499810491277402201176017171886856716412383384190689294903841050002846269362021875256973494447332205717143544119796152780133034601399273594962890390322225202204433378835914996658083417537666636080424878633396159555852419429903707193596401167709470520698658325570357656135415820408745277398357976147538407816804633212212535638925354300997258152001811676345039310922644585408278739657916304976897359571200822030444332516605967864192011563520293924054896939764559037381577962042300158760847775165276314986884773476727055494369722514290113323175374957912012393405283204592229074376439917241646330541292359313519616414524167642360173378763576428303595580528754724496839156898256975433544758024867940802605379367556279126920161258883468325345719275375863647034219449099841940738176077063081631164526473321999859418160570909504245740472360423385580923580260459757013938714946255811109984219128028697371937258717673747326942772089696794498604935131988362338541397876695769055299913485885183576730598119523675713880141693334834210067874814604156827459906443890072937917511871546276368923202169356700782272326243184488053422101209457724528304807394635904151073649166052148950038635637111269235591404916915156327737331091703381663443922178698379584136450681582849154751335690051055337329527333279292998074677590523435715059554302596173656482730477212527472460129564241503487489149789006128996508602047686128007871240010663973169150895845967118636370406219945340841613963652668832749885775258955907505981663946604820016054947739366563563185392814480268607478430603340670257442520873964594567421149036426021985878759125140079412555785896984216785190455084985053415726462989702432576771953651221088259413099875154440881050790532316019023743033932358469809748906878046384928691319216589812808447507387853227545430144984877356755300683777003302191984829603783104963670016600770210520933557919931133480032416511176740917883524217549948177711602513875089404680967277898922284522006505056703503324841169571081253177320900404700747989918794739524126712996460823132555229879591927794266206220028867031459559269927774550513918838112290797796604884375443030652205826794552069325036032639762209642939579223478336186113115955031952284613791286142453093484020256576310375016304888558338730891562781933833344823183416137549854587301219933381026968801939438574334493057801191974917160568021655459948215817555407359038125034163065653127180122479292201659150024357779520482127519469241375627333408797708896366366589114313936826073367695384601434891982103098711374588437372394293809224137470130132012925136375118918682414287700041228487585846727091708914119888572115697524046650889928250273490932510859763768722791952507665254671374858009078820522929999873343521669867337175084833123982366999350418225929933063169352434546446364002705530283631453171855938246033822274262124259362191643631584503325241189495708474352911455373357483025532447291006244178960440916996332557006101680339821068641820328877073741229427137184479480769563796908558943073209341615812519496399545074706432064823333662275885089584651513471701042854246376398637980422368777117523225596844245072202623960827122405055490123723353954679851804718756798680017660449237980764261826506353978996994659686972786869044685752574954254776768412459196781357971937076340168315386069670037787109701225574997129396167076739043654000144570785616627707874740337163325866325303308967775455335279697901369173109982114674973676056841659046181973070531209775740878154005073367096704228105439540873427541723386960861502655731978777934499222690212248829157583855212021196576678401152051305995042995753498310544529532592325543168084772421510922145691473741248679429870708487682901901148645383380042849712097602416431527989252334391261598502717742372818772030333934438452459571522321327185408396168728139588645174621987431247754529904120493038839727198225234246491605011349959798263716968544040110250676417383078829548344205095511481600948314101154145205885233524400528682895294517824226266828365701399044403899083691349646353826725425374545997478581549022196959458000452583788502432434118870223348541467586810423254705982562716450653660680790969047312129909702548703034689578250085986183916523685022414488782939920751157305305874664907492957788440635979237178660306503881036843005450191143851698080123305830721611582869721597357300814051897272954909668968705678617033940067971162386364286640076243797008562637461160647332421295334152109496908292618436389187381458182621208339651844526453947889397369574841372124453723498038484172831733031482091997386610491753760212475709103635241402837597001412351632005283070738155637922060205510571536598424028775581026613828565743881467922507368737824376174747897945911785114796356859449166084536612428708684922606462678492437406893120091752376340092045532145022273567525511707397337847343150273833861140166053670832663161722459628820528680402391794867517844404975931340563361149907393632731843833612988858305188124699236605068716582306497645195772052536705472587171874179780078365697009056614562489449418354973922350307847669658331936494448452223621312409425878561381084645782738070820821294586438936127805967184224540860299874263610101861808192880587463244932479024806325687015848317628496436485297155902225292294945331051833920325255211110257520866134687746500476269861111991025407918468435538653781384192437870145861151700302127705311249380675316947265243602699116325763880931498716640194789121388070598638342761813967872388527704443495639423796837938796444414088713677890392433598043867891391470298595805691563303770884839194561343349402048432326084592618132738802313520790776371233152174099201013641721319143650722839179281249335423489233900967923615655404109218602257587464674486102594168316188462554540772786293607571844658968780541736286178513907706859433588959198115164220266286397567843111936902947654297031278252545878919588902002878908885717352508745076234918309974525025299149591747629642642826157908353030592167014815279509799319654758707756999261837213658867823104311590085142327247542446368179563986783488936454411025781696117583198974974759877359959943007463104234189734598434293359363377119955537382936718542222265443549738972544085545895730356875364511867725091883729701211119600331761526087349438446688508532904427257014490106168566807555924069367225745056150811277593366827946991846876486360067330102897122435276966190119947490929957486706681627131141958742513949916793461826369218638051740752759898719104251490289683637862369146909292431786089161248355733718657323893723894665540722069246382343345787504601458375269745566802849560758370968495096231810637956840545641495250056324759887191263801000097865395362272630548130657883828207930934156407701640312090598070835745699573439574358584650740231784732481321296964990813012135944530408757946521369890832282768434901324896264460991963797602446360557680300204442990714049980822893249747626128278130222958536719667603147997851487374208532410081235460203275637430862782248049557390988004704188983113189777478674431719984614490283263923673501818590535113730517006551591197168493625842731836588360106503903394670824226467165017441119015560599036171805808700456977563250378945783161065058728317115747538342454681409780118054043197635351809712043961676758269568077373883166638851852622976429573976015345154640859463736806114308372525931081858616767505136977883492492609996127382145947126855878028214303586362635488962934035891971091591676171067937772907468170177905119202152361395849551230335161774759382696959850288750449598271618216497206043569668428320071162345752816149373301444891501102727812581491908333989626140253951161206654658772261901519153808909116678971014254107652490757718844686559115627851295183626613426688355649286880846653381413759275605785070516731031348054557702883468604300338799157298813387159007138729594025264321478742856204355197035998119741894913932441406301119777315755507623136205440993563675819553828353077400289460401320755572107992905287727295732941487724586832822970641566819581527715904843242946256368539861666935169850399456655553970877566999706009213836674848604967202779207434362673608636592039922249410273349564718276541916497474822800131552621912884147524680249935966829713699531263458312020638801084257283973060136953012514671549307317082320574889999461847820498814965791768314947762835169276062401903435713709134574036150608005872367952970399987488723256005190464500382884855214088603787120503790102814357724242048081996721835661608745088759047275303344684071535082569412767588322285375504799104721290446956692888267244622808153588405344159558261493066493469402503033696954725763936980120643311043377042854601016753521321690441049443301009222624979479736614226173758080344452353385026409262481306471905546748614938311432359258814868594615929894691421320369791988669024838146840065830033975380618306355606768588312888007413058636132010337572371390543517540004611270254908968130222357644619299510154924263379197592868616917770071707115235197028049503272961296635372248862865719587246286207356530564120927394251374122776685467448980358084899862043855800956364465018399750160432408981217887550217849438028390479660087056132785136019926440732970134611336436657986795803957557183310966490874573781090018145923609682077641915140080363407257784025642910684104688155881902655222128120417287501761212507143001615473675084476287429071593491365939471000254303223998462805332149274205185329190826144893254001904637291244719409367995361101652119875763575475404534045533966260088235004348767599282122386727058747954085250420611999308866902656083995013314663442851553946697175848092150799664674758402333745961811223808020085251706210711104768015922246287799702945991773825796466898810216981305316912492785442781119756552442547675641443360083400283332657133437600981777159754177453681537120642473003101327843893911718202111203183834443103675725579639947145293764435056557201693807855041004189468584026691292643724805130521898454514365266524739014274716724972660882000634890073671440643375309140583057592306978398496969215657730375862442336865517524390545886828619499192377446974844900809676056542124240733873466607906041740611274322571164017054763548411636261941425455058185703932445024757394351464354546446878452203292397705816108933320418552180742508978749573841321779798752928542469793890493531342384963750064702653655906978927183640464909513811972329439929996785325922709802460622503680766484455111039613722273613358746357385010041970749455518869749920535827745108731372063147145896559114655355851894878541909068380736160247302680031183338350015847593951074223049024373734361869930584908520866639945264592937143031322509063194130348863956220111147808870914212224144668845611915321244589709168302426799757718161433982038932554189051877741826060319071771927011800525242691336847041721712323530644321254055710490699699247686680709031085419562139072066771976175019353510750572954587210179691176023855928655656831885157228033250671212937809247790782533777457664114362838550178411074279175964231938574280326033746634766433771037603047884009103359913507940090055537562654056776800403462288305550538363681990411506083339078964788512925164772956831513061120836622979093025438717289759011163353334988206538006762148581456658695013264727483392419219082439938400219405076363879947098012503696520187962530351148524777037852178513976528439091031078147535833489848486127101070546497186071690843610793104462782476439450342418245618989921091043642926228418157308406367568743501104375496005187656166801984562217639684517531060202310503398607023946106430510806587464714683973287713763114520196177005517191427815767029013886954096433600525541064580129378212179247354279140560909089005397222750528866987623826269522271765434985758736467717286217592676192863979138791399532648738835915043353091136998512635973844103202043659969160721041883634529003952905721491174043185292581768862794632782001320481828293702544150983478554086530446481824748887060745891082489956469284730084907971562773046396811736014652898598211495835548624793282636158250259643682573318684307804405837436941372653657454093140261129980570289449188683518817138174626816697687147438835102079898023376817757059381881188178434668911706409416218285944822548297805480470406906579880938337888893757298049830487596174777676676634265708796765304449739732535759778545853040462147703310239445462155225657513410357488851122075667981902260387774089038891606933147271491923389470280142351924547865372753261098422401251014863207663044887372494831376072406914628024949518778779149811930930439523645414373647339484950770543437419889387003189929172669510715734322777451600505540086420217298559940455525249508545796115958583528980824948544201647736295751703440953302288510924127117779323128295187692640647194728429457911851217231746820843429257703040864489306239505753752610514622042041009417461469700376382503798436544695096668571379354740057250337719640371653901681110773147463081722216347300306272177273693630982296310301260017728618534372155624163146122074321110699779110914251989392626856133938331399596842106380195457828312255536990468824789341864679403652681046444275436934680891360842425225909345762392553318045317970721793562966667785067039345409067599699866691695275387754261457009691170944632358099973283223993874913703045122969605064385739320889669058261156888867685338961517960725438821957011740373257412584338761781236269329623547587764572399808376229807599725828447794037959052352458463856447724828612127593205345091053220133566835597428982809135034407227086058854437808266555314512265182871432696849211621085730869882072149345587334452530407575508307453432324861696116717920545252353067451337768811528231654906801833174119993538238233044327031254648819523563409098395240673335746034775012782220622477964610591977767410734838144456386786128335671626784376749914604380791238471372598269381649541448536114567038811685162416128188085042149355360953344902901159138263731701127783432811026604542320791027233490133911031930632980371648804825510888452281386753312246235025440420782350978459585287164913840592646781195348048288893801712142030540355825282871469610938180985792476333639114783306297068240878222254595707367769478307372628506656160976570873345936717651511368732106698793373034493657999751574180269153730150668243291142797068528629702391330104254119968205471209865312632404261573762948956550755840298325346578938014384147144332292141600576303049159838126618108011186732309360672848382365493427569908411434830619292724723043560622230079627323553055584840313954059107921675482848051554797565275919916262671687840264725870162840853731441376293464451965248914708817280755596410301222896243247735545288454822968968495809530953892408683158922307496776657415578628343375551051814311484924754913557702258716463731570382396717810298878773901670127857957716587138232714890402254024617772595840303214379318658402093250265700200905800208286417805729181288096560087188446062432993855766643295160087637858734494805363226745587830823580410149392626144371757814282974040222298338440403074874335312939429587055827828602772835787025497486244979189719609223327014388907507232115058909510907589668640965220271763213695824213930246760265810364281905528238641385987299566188641554197455411613430354217263210471240195929684875021364300558826104099749627574685913983487371580820705873638477273568188887714498778909697942828477819301746012988499448283754051112307593433196269209731546274624526486314926943734752875152658003379775187681937854461178100953055369023053008995567866079559363882235366014268559461317760830755880958756579580135298282234847116829019492715264703507380507372192108983037076204147575672845758022211239851613935036740485442303389966487380134896700819398994298736077465041760901293301068077827437339220942951392073799943766904836569822766572641534754358005525726395843813032120619123884915747267321121467781919720034452749448911184596348504434094415900308962736159969784407593193241213205634469241114758558015626619361139530635245165280233132999001302869643466317756573112046470100921030859306830154554531702169874692829327655864968699456345850066841887033534588398715432983582618503247159241022251284524998313555232686038554419816689728580479727284263643581254720615670217813451113043710239294182523129907258151008278426329039132917384680617025113487507946136752156776976109835881191397810410787260401438656602361706869027775120668842366633486081288799478795847368407117868946906146588185705838503360123939259951743895239124975195163034598772727990662180711398565287133053609900993996436190529269732229550936960754684559526886271832752366917891082507743731504265953430555941514765808443378291448748250231717422374299033461312673272975649569769429387248468012613898344457106098029382776277833655758124747849623206763978524501318858786858658837588551762638067617590923071488466142344272805009433513810567432233769237347009516778477776248832632072183676011180136208712829170455072367795450591857514241875598285245413239186884686149732565066650158090933768995965705240645741856290945450821951300080479459471519076294389362464594922439927496189862171013364980297979980998469755425540722036218585919955987901832921615533146607469176709254286551470941446474755519682425061462354016841709463801799713400156296365680128770174857149932056277356542556116807490674352658925883571057648674945862757593647109344289022922765023851267902140050963593990899007598126492659241790207880361398950880571293012570033041845355565985784441466164882910501064357077950187609971084866478636925002783839291116284912528154140136990473115863665393836174321150782745989199865667608306215019781104627296900273229507459811566773174783803880475594778325944701625587207284633489693942845900903340969598036642532941101174733366875595861529060302480982436749547725335657895034752285222255854056908511340444976986677418598720326450426697842911900412431165200630073040267591680738434027194039723890050504986651897925523881962017869527942708534453096761092915586492563068367461545135431915090605255263705936814706675911306792909472481509919169924148909628773394666995624715633865557958897689400814417065771076000439292883829302809708100556268984819432585424079128210246154906627118557218825320412639477049663921024915736483334165409606816038352265866113562421917524921351422486945089392591928816404661352659961401560020695749920203614950324524784125909805972248317188154827388586464868892018261746409020738967512085037230479466696281150284356153238010416028678144421776166566873501934825934625612506384284546366986475248124754842251545050693093546297548555843857169962471876326951493793611204174194213748194662774647156562484560537844302818947182759610359723446876460131640211434584080415648718930751755742264611292911624091157163393012958981569491668868849373025474553994407639180064917196985205418533634703417993825845351704316234347817926846763100390448277087738990784539723332178679153083407219692304513464445839169930674721185701503823109592727720879428658247432832753556578035594365090645283978930936526651194009863318901065980153885069181888610519746354156547946632310447702156839369427009262113652847143701421957282894199829156351681205120604312566779930780994252466043808641351283042973047837009981240091196050273894631552542719225444943120303099522884733379467849494949497047991047264913958380379899790307796994902749236328954897460417158494383908022559424615191460061361083449340758180202363128111105271663743712652611125437406341207790414100638374875577469170200909827914626997085695034213417975239172377398234232928441668756541376647369821795965590817822189272217378719130001924951752789429421266133354696860271476552907607741860490957901175776116732774589930375907933965911082572115604353186213910281260861974587174263366324474964679120961867528580217959266992004023951881207709650654630881556220003036548576106760465698195686542763848354470272553018619306969179308373010618763244208202938317681787344060552830535333239719457931802236340889792714989444623844552016566827152953613921168812436900259169355789172804103727783685204435857787624187154508468163634584410177583975926425719668314969922883684385198141390057296851172705362600335816617729669750918280569770182397659779249569751866316885284147796170159536285671702931740182354913054488301426270855487745085262915534296139651485483627059785370771616041176465825563974128749638905889951913827873144391519230323755208647467976289103738504320242370665543988894799456230878954252304926447218809570607285356374899380988447769150006310813037595701102651509287119938536737673109854029480471076823696612205742091511760505019127372568337932532882399797309903194839044565746677292242364808612891146442056896621643213025251512481491518313976203175929008311874335687128033924637712074297210089423322255330421973451164143247867858543921076675679988873054612204877484952453776056274867149696146931038118973866055181298418496865393702505875650285758519578503919576560092733082436750893635833242028343065628592561781693013501233733798739473896680539155705861368937191884100494853327144509696448338131510692594866159760001649207956917881960953003608435828917596196816290193524136858956112402922453289172211637878309815815332533666652471311524966578566819468947646611816372520830299450196643285775209184543598332578843025740891115036735319129395345308632443854912109193831504697496182408624444135066976000476445733554878450469185924321868487021184448789752551433109096762362880646042575139280459042074326598437174805334884794098290972236138920924633465225016780894325875534487948978792339429207308298639192551562253682222949543038524451853586491654453905038197521269162296689442940135207826497786182327589241404282298273334419366588742287378536996048924856722994603574144315315372751036961869667401903591251349630727735483059262733205407605618037993857940766714104225104172511144129365338092566625123096349726308083724934142463046576753617020829644335003617524555265745064128950481764129905953549499602121466033104554642477031129808955004560871637748703121572060394650098163251844437296122964081894523166534859672093135298646873309731043974969384288878515142883607128686883691157932375928035506131288091262895236608136053455874710008060009920162473937663380395971916085493516837591833294997101639358919801140898463231425892978514118211737316349480210000405525670632723249092673870154223301722209736337785450620852961403682555376628984139621434302361732399576356745763009487783563311436534305712394386653222806340588036137773551588039861191153615917771386232419055816240447215921010722250528043708602609880691341769903302428407916344920695459073293072841359910718973281697877383204894126366548953014099994727726355978111184437551744970684475523625970539749518245836043640307633161140781227646685743367469607141725786089853844309088401322115492807050868546242089668552315063665065570993377977772383110288759899503056831384123696231303735167950965793943479860276110927735385579603077239184175735047939200927919341753401357995457367312690764512628844819275793882154186633376394570701667169762735417623192988119756245400265855396732636270398405823055959797885529700056496052869892535153571580569483469988131352232947489949092351740836129174881381532043749658843260935952881923186799763876643083158974198493045435461056919986801847654539262364507360974770691504945573036379425665175726517369412302587517954699897225417737152005263017059353557660541759934878683899675248673822969922871631198283796051282978655683535671261701495393426171403863203591770725563359800417902377320723200917665550598517421225904710647468729004697962067970593242541584113152985056139865229644443505996746770693342437817142801774843483419743248389415262347635028219581474052081564304324903641519251455258171350770170214916371594254210750837981675658048537436480314844661300550344266915188846857149570173325879231460227955144691955419320452109941290247262042331417953176541960432288753040313339172481057118678602440380825080930742947466440825159702096782685325467342084573214955783260644759065614202930844202895780192728740283260028577012462869531965105964724602457055548103299426131490655189434643874104145838272521468999621363988546351129397797092243423461409428785258462977351115328429883507782761650399769118766911404667218650292262235760898545906213966705309009095023838979236214985333679634814042227942777716384544269123095907566956139140620390920923994101527544626250945264072330627120115335569012341677875277887793388753376708044105342995487746466904208229757106530987784336777816794523749339299451444028994646509793546112818131162529237569087361900160704250500499844305738982050308845389670039232380234239820428171343367021418159915075658405092988050248168250046216837746369843472309437582076204473860852186057534744607059575542433700761128167661062005389291460468489262612125948240168112982483956331779673120537591260115586354393459954836497839017060423682207818265701931464448527920326372178539453124667650294204200731120425987871928842630924361465890659289598118291227440594184743163709076774711262659628844829939471861932574842937692818938624953188480543952634274849084701443096971474248381638400389349634277227902454862993710514148001155797080175700356512402019581388190316404348268067862193725809474088028435486542946875849272153679630567838435623648005514101392539845660830443225397048993794654195314890169880312662521307210650509858648438117823705590499454460627386559692116008335162471045595833376016732868044013999295975234721239021942850685290113832352774373425490036976035130633123465188161638624103494839476102102466231546690847752715241035950973587732409372665911459611548463065543941613082128682535088553892198396655043130196301559000014966468161145535751546343993955040335830983179179683198327095388762959434993155109162821467664407221557607240304721902789566399096266286093975937236829601337464916178155239291811552806547962252368014647572966728616640395360866430173958032024897212361601983411619810400216506314346612209900653422589766163028792774244351252899162946350092374682538649338608373024145977940729960028908041667170686655167815596125214363960812856550009087692402756904201285562009406284676502320027959396638657254319127465440712834623558300731287171875205329134294753409679477794939950718458916409499066766242911380383885819933328843292160799169434567232976086018735767311277216073635869189768221177728446204890578138584411350248743508426085729701275883235582552893036765230601996297884319312900219453760254092737349972922585706864404229162248716907487876573677026747055567784987941646613535625520291985228919525305833756983495516526572657967316920123799267919401717903120052146310127892831941911026320563259631351033189119888302014595213684672405018325777922297164452240649278580157575434526099345889095795068198514567102669316580270120926016913353215335559851039954638807452758814247514477568705265780962797648209727336621708462404840570847446003837238841650518588412378885091477024047849400049582679653407177530299126423293171912818240807860691494223050267388527503604865470442128181967488992689892497609608970342097265431404428603990948647966456850506540203657061971435217623145985004070929921831897615221881906826374253457542418192436436881951787766046225952478929934417947389594813747962195059603394806060806558715155580467480959161003125924083713571716821051113884761484158946413470449458679699772827066398498977727697077070940969292816888020334249072256414571509868414098167697181095062534057386980544655726746958252786486804877912170365019564890175974006234462549559384998936189087349855855739013352464246441048282269256678444169912790030005163286322508418048562509797364607700009745123113124602770861424015902064595756978008714649947765579637287745121924550169396017279099977809206483061447572894613633715085594544851437936569725653266127907635286032355539434656276225080007318333948563330452400716270420270089877131089865155234110096668736519776352033203233567319322432774023762189494420082450664559577077812017509057728888752063087845270645834093454952310397112821100116372786428845001745435989187593417522123303873018228454986112613144099568589355095617423028705412168473306108975441250764036036131873485302733204628014629996496186056591510001834427648361445481014471968206127947741988035844004414227366629947297960847542774610082234320599190479761212694286502419836881809048818870022059352996339013273913255771868030529961535734438096877759258625053162746737842300771930755631184387593448185725799561641727786093910124486740240150569439821898628883659448657611578902095828276848644701836700133130917992330327181394226631438122820312525020864702111927985499386989165238899138072249536860832660110623204479785680916591047533733952141652405469941458797284679416178923998643586777669228984416945140153228225720467890711696241525396546720462866947337698067173736530094598090874539168448900846902327618637358885650035431149472970576980062454796648871180968386178856764102174962379483381839760113035362189836973796750513197338119340648893709248516078795122286194753563100712965152811865000651799036436352116507515576689206453501704244443212423527494023357553427462243880962150674917218482462454525620162662888902900367652742931239025403873177582653516195629121057608502967228206206032157660141507095440566265377843941446845676401264853645604978224090909005893000471164061243199170121089979607149410142596694358722793367778998549696749292015906668994065065274323030694659446665575552769279690752942941324745766858147539626732803773083126167600620396408302600668374749048233209688143198822768236326831521811054346331121594725499683797337285339854042231918523880207356103491883819194892970717182378517004330443937083631863254504470009344978798449404871731828889045291498833853310320196291092137715149335684556427976790334770139417415434641193697719568466579423579700520995044035690481174524585388691667858240325550407240023361076587080395771957513789208078480209699534492624965372043087507736656238343445800759949352476653126701260050634119637165559005850798439555253726504697816068857605537841408468860081707334202122856559728706638653009351736400771330043381637169064860813936838754480511916360263257059834741424645983800923006450325579557526251533624654679524119073307510327034014928020820011512556486133702133298830465994091271611588144664434241474126525985497874288650485370563817315464889296124128362753264776206732537758133519388504132338722897745778959181791433815750147586267496134164830028909113635410022533231617263222481395458913625864660138862586891774112907191094237786083737705274318301368282513273800897506018045089108012777416851263413245800302487795958938950025892356177154243712049880039204796744444422111522442803141240021595514328162263626260376615137114886267431702770948482049626393577625906966056065578392594754490025804727262645726739750817028823580097472308293868292621400206988347746655652452749614331646059291175310866165384241400051178266273272405327576051520708394554404186114118644854840989913835671625648458084184192055608382218220685434303476012094306329105320254236375655107874664997921215373379020306682092496253166322887987385131728974196726842577903394462488007521370173931793284166282142174847414803695698041584264574550739445354836794455357630732274234977308861825852850437603965615578249489603814227289223759325714173126712480415449400267995153345367784003322093641952781850949627095333405164789443454530074854053282089221597688984181307931360173542753611028373329283668504620627791687681762138398005118121506227493968951613339043291846792757625260227451057239186784142354182984767963828620438783236760138876156554068003661792530758765549765086135947070539057337061088591074795316176920262023881281637138622348072436456697563159055390031286393890289613439433508827294536855146622549087695517767919956202767574481609494018267115600007865148288843163431883834871975478438325712871490328006138992992022481150490076876926582230855592793491801687791352475657834185083682166016007764261042085832048042140980746886976030802713463072821175910721019516674468884018345178478506976898102694174857778534571918006821783281228532784047585316688502659686011913846698168800997384092948045793528374545707723078909304237340048564360775868745761082866224613081952673779782979078738314657736255688022051619394885284259985299367556861736949921258326652488209457937453270188616016584591126747509863377727947865571559688315625382990447634808603067323555157822887023553281641251119261057088797108050785791993820449843145980815168975384028465784334195119098835504787962391189315818706746822950301400444268483241390394632510546801374182691548343605804507354652478273111177896881233394391710162785066165830519862477068520580176922131283972473238256114105281708953084117075609392977458853841764300900494176164284830308469641245188176922764091987541750257929198065423461926559022522944781059813399999303137922759992581473414228941200046966519660582857203737571957233836384799166390942065477274224103633664376253933399016473804832174296491584835820700689492751471836449578049041817557273459681556177799494808787405151325452925849668212410047816201625343258396929427089828338461508297414318357742056019281690576460629799858434392818324821092869620830999130091930118986858535246673684505980294230746025886781008219555584222134580798000205482695474188214255372806777168893746372797327214363993341802545119240767152902364100386174558499479946472209670545386784259548494598149033753702970116305838319522722361495007773900775033985321968820609067724084717291884307726838480713165471061706209319939565185893464003756622795049145723458423905122623891260235264135413520110711529829551887049671851691722609043266918645044810378331219863522906344886264448396200495116417963873742450662372786922687545931209608677839187812528347252828911019148303476389184497019971946167394443533451772145439122097804317846893068846643584902263932818754376666826672118889374104850914879037219887099728862236668710199305994645165966753109666216797920853942813144076248134496512671623004812722231784050404588926030761438434360077774108227321946793037220503208788712944338529083689135000179894415471585999369294335674493655728203242721930921834172681416540894814173754089292011939488068730756100245243125479825264310087858748181175040042810570043978759207561579702764699156794290890386457541991814433986138166857886545164658574959921535310513476919479255788242982961052236315694512993167115421394382006529245246791655205573392084714203512025561947018329702510237444229458853070177466916332562682264929133238675291376686728764971820194817015608345688307325632694847891472704492498957030478319020825384983481954828672739171583761658345482610969276372929655068997762115233141026612933053643043722789950801579654700535351128329166024878601241954347818244780671511284979027358818297906402055134521366257829593692868051081404507617214873616627587797066061315275324930755820175041185410254129089555284029181810234231564197796929232563603165451256605036696601291705631418093776400807328900223943875904772473597299955949643162181976456006780487852430843057363217001957288905380459578772721987340810178698192790402734225504278342221582783467405343839026937922292365516058673541574693003017684307086353420349799439221498666867830007908826240050470540730966270211009148141105273080736118020100136507804682275209761784141061710289684773755944262881262199387145648842935153418527362933509452943838274696295530631331115351380503884970207229463509158958068129612338872875002425182548071668081301934665318992069509016369000452492957058693832408733161481625371473804456605438695193343378933136682443935263926162834251587896426947782387621271065543109344014296192252984126515601975524955468290143673321612183381789783746397396408706026607838057730532239225568955429008418653330236179998230029713722803929022097114150165940929450750553318576700982009348717979262495181837380453706720741729322181173229134273994592076749041957871871109683743292243721646992725345749050128009047765142496422334501849694547420636337636513451125145402305009176338798905971843191851273176565005280276967084802758522058584795538615341859913213221195334611755550631489763611347408266512932924336857936733247653257315333854984805571109149036926714597249784838505641908569337585170794775051521894802478405197800895735584157862170821587281727575804399570124868923339456417251205140118475004264961847303995363742199450911673360515662132030521810451219721964487504455724718419436586372450376673479385676072524216923589653408961375270004000781757782756341912854475514480394916696775075791695458173255075953841126351677237010787296277413456325700949679047171358958098391710203996789745224892635463817851502877555384322879432787361014929287358076355651400613333357805850966608841939051782872396567415248575424332767021688299016225616453618165201051441772215412915131375868843731645156156721254950068848796224477064476898623736329448559431618997327735805200878710626727521405098263969042826981539041215189268119672621569670196624785984985984028267476757890666907169481391241410978855682477832477303170258772730193718329994593482299038540618206350497358507532708638050014108032849163485443936089905103774183847641179216652797096667652402726930730422914610331337958687086715086841911431357100866321012210855219344689024593078906317903478953982969908648563501181730143918095324834171516259012538680167072432734307102514780973606119339485538615486000759254776047901616811055625600528161612781135494739271131690597945667479442417386345152703632308585994020754853492999620379791253751481524918393765615376078771968811885988511123484967560263233282932250076545666216437862319964167231938592295936558394979723263556199459842844712067840862954420414549559621150989576177011822026937622147138827557391836295828924724444829860300723868321097311939682821526810423786485117317805666439718748657664254617584136639740795261045308006040997922563411138261667984680800293215886718886127516435342589347687176990848991661777594393754778425569160868946296533919953469464600700790425661334851156325537063641515222771112303891916958194854356573746747715475704955621840528807640852051396182391567724247742700021700081620908089855009645329850712163501633629492310526982222616458869704523822997506582058765730744120515308890873321559269237032583720862896768437785873817140029486272052301797320971686101419168318856458507595064144339263065229848266638321456978438324237961961900816776042815722973333165449498347901254097592847715449795330347320631892881268832699862024505817011725418063381409751249426440784714989414580138969999748671003721867584252757919398667008038936567488090346857784624178323963790830761481965449424319104402125431079678963158570582234390280512771010399416299442503171508797561697554145838440903450843258179102098314808993380309915604548963668675697967989768233741665146911275067480383851575383535593401486681921527551400561317943855509022024967854300062952892458852068575067166472563044055779954406343816848987280623249989999664104485499644994567832164033258478146302763284544503891606695369773848390930781536899607346251385359766208903302980259713586962048174616474104756963556144098803601263803233112323801939420760377752488930811908914236446652746923523249844856682514243291161177145620127140453296889260335673418178057936785263647842708874540671746797234564658740986256326783373098214282925309103016764364871063301981550115613231138305363739763095031274865549878558950966510920102448249984879319301813236222737596486793114953564632572165680338749035997070454495952555707608015198539258622058222887005086155719693859591758992472985753334456672256923297243697625872681190021058095628179426649203360705454790762697241014404438023302878634692385004198945994858489439115958386995208993031721562660762775179711846958782882443568747793830164096447543505075047669836313840405277548410698812639409501638546610262457917630597692587335568806641625444514788683927981416378221875029327775288349266497298222736378975680427031920152552232215732233609368154418919941307386869112507628545225658109534765276478723349595965042600171231826426826728530064147943972422564905338959268806205771805647784116248912974654609212054074353583644940691561193511172106738952963526540453873755506609422697475741226459983596311392145220276672296291041171950970085465296652145075995489303069537334124741952671544805009661491608700372245820424976339290777470754591271381236179465903648036257896773406716546535389029975878251304023853974869597965769791524774806213568912945648006485293402636157242160496970906200513810923457368337689548360792712689331832871692763591079069104617651020734255059188239660868671047733272293258591820353411991592684315248764642018718376024964546357146445837771494534429226299500323019962583598381990097035643796294600538058919281572964491569236489887485364062735582525516788746114472417591698117017676877019591657128198916034648726547736706638118522119050621842240130773521860924226589853307333111716269119177440846745295829350727911852046203574094081568261587078139145036378996954672257407112595118655419032070011941349958579511928237154919969986840170383528046501801168877099985062195004768580120067784097728086546208139388220912839573482741778523185116315859498595408607856101677390231642179677766466122633806747073846478018478806130885954119286359883962065257233964446477895587264143702800678952772315005766277482732500602535638991415470512913802732134976627553210735838251104724512197290775394579426291717552647401019200882828137018089835111860082061332830148311088322609010687078751180043391007028440125074822691750208041809760611688324246994744881104448123121455603301960742792165906350539097186047509904065925545190374236207880131188361869793825964956332329931073008225068951062455376063072050203314711959437773271058236884809303009069193188084621515236383724335016533310169328313870964125349291699754150148182281930932360215664941234158446403192676798224323818672905647512973991992867667920900024250360526266352384111563686217333535292176334196267387384663189771511298823624683253159553094377489974688980128981213502642762003597480985089491076389322509444531543577002471924094962352023220710973041330639245084597311493880406237250761287148237743081273095703330368340753350230235436475285619651892497703331886455362673666174148124520485130365694545086132703029699836814495799828707648278035039295045603094043043178599459893447341166051730842809002381523682908998727138369900487750179748220349251565290723844183507837833489591887680036353159182281710312165384126060352710441808923482486900555760203585105183042793504737022146593559288379141760201738895559843542950723072453213964997486042809025900844089792645921065764459575634171734585422782110014631700884523161279651809811587231732662627945698390409540082848083825338719290430872297608621247709917127076579417590224838279714322902460589270323554263398135866967509755432394986136228729239861989288990678178844753151670565056121847766841504616315587817668438184895817192540637933987549842424079171577906663686401461240056018145208756568655752573865588671381902489605812198953771579324497974683878348235718286115195293731710819183143958788789999732471366679620888003102256975614579420388504564712210624207171935211941817477333328120279387592135441783141394814513073374534971516763434094248934470069553199303648031275934654717569653566822877298851932601422036397592785804018732853703263635856797481903044135705959610023405248375638196336671606588474995007885342612592342616145330897307892541061550071374644594057913622797248221772825042738459432710543632674662727082974186335473121620748073320458021375536452251552622935247782330781321493290429068506690822797799503311174629027677068631961907002678337984206268243447033497962886493956537974548962845080086090337121015215797163999617005397422260772734339943467839273799231287104091923852695564429270481092182385652401888751064771196151722994305383603694172790550826550994048756989933980167890968568779706882459962426391032071157986085612061095014435593787075619134340140588022536260788544996563364938908678723580341512207971824388339773762114431353935401422362187135841838865947937692611396303408084575965793466799498258934292924369818372589984891168312461072062724249827482407452224688919288388184026376290056238138730939341626473832500875473315632600953776279470235928188694271172830550499881922598164025154029744732799014122723224759375840952150518824136738514199831483433336454586161075798941064418750144580001190579342887212397131208232338482272090051177538635482731108151177014859664843872024054208829336857752467871128558390942086100580299581025958032232261349030484649199012237890101665339325185481279012887744271074842732436061770211301150425894222985246882383576645222983009476660926739930407404744874678490668309095126862275157604502113025582043561406487502977877650767209062685819401232010048192008699978324637333928255556210547101763497815932724221328788515037047206355992951844286085631756356619386222271551633396081878265341458678387192968892974086472557478842762569646161709170080804726312810277499631731372965666468689168701388374709689279778518819216589091559906753728633903451303996844718000726316346719380973114908115806721888740230284351727026202576811806358629796016894634260636211498673059800941950092125819169300553521612879489465379103038978367517944394177723534153618136648759517647298202111273036880848799219401141421469663900628668396699245142278998805135244846116610279530268798140106735731534367738952958599169237102320571901635546590068841651861204769365786620713490665614480250592563819176275899838781824954330473689676151566508879209376761502878010668634291929173660683834751027111578308341606091003335849173463549077984711105577985085332841923164501583142176240670591863716803269006023891128234454145644965199267660855168370798512474507396264204883187127650419598989459394220005894908069520059692114343234247205821700303257870911724804511072392947753401562191695548109568487516730692273390645591451822574403697252967891020643323499249834220578743611935775344281630197623716663654287987985470691868756706956024496911817783222737623245039062139045371676153186932217462632219551641880801586928685779071996766550550211790013795347475966886765526737025397538392881306699464998999724174389777766034255140813145003888196051140263704322590336560204658654580086559379598420615316606361416998934231126304560451009480964678517805496794301926433900798552815370071364416458273772072436373367392992690625763310402455442937444936224949997093049721685655236946596009232290961490024560086532928666723444497479332897833017773147741773105055245576841681917398137142027080716092090047892636982365092788029773555971480257664123781119455436416218882311581774033436492421935328549245024368488734737713566111993931664048779527276053152109321921524355555648492044023749901594664213573790134180813569491588612131913259661502893332331639949265906523701575169573158962575928138268809455488604317394834798043047089228652215056466607451757591952426135546820273476674143706561504239479881758259683806678957071358338018622277429485338884925114662071551904660266216628798875474276765922837644301398859963769096302295313523211186027929638498334404078801018279184994962960617275054578143727758851139101650804644388472738182354381266368765852077808811219738362839654255126092404820600156838108876581184445384225101792751746010347584840307554308069458306391201336087614290031670677925916267806664376464978458397273606311743797136288047873621926459965244435469375718842059791758695747166967767083204921859248687915275735922250817653443266288442022078009933552529568179592227020190234094792609906661761477185114311972046593282043257353976270514944318784610722436916019169495782474428191657153783309249561349795911522006537951688992370437058147702071984442192689217170632821330014003900238970684439473644122354262671831146399218244129504838522297401098920838678221880482784645091465597979551976666998926554221881238155552827657400118534290235510663626396682116295114660564968261509808475851292374761085927777213705858739500414261767335869061699449514586302641000643147745335718482568049969167038210877690493268434332176778064508525140213693182595798732314862153065783319201069171935570704350478418802730847007341463688102908981195933989222903959242913242384303308958148757342430700854506335072768452166562396736629733444101269232529852175742796325029192417668548486523462238299700918787495418642308888782871821905914467083390840594112341402460337209009868176801207438632658650253876402013014239693817249149864846258843997899652984127799429762186288747311301925059717797426540514475076932235572581811618546039845002903867285972205670438214171197762954303957081544870204078610891996725770363412597225075852021067140418374744273161641356538872673285752900042926130465459927754089081840461882126192753291823184118373196285581616715338031555270175242992430997261331425616426041608093380937102593942579737460427547996112553702264955021521762401128766118324382185789640616364900366896410241039170718647354719803128190953265725596143764053942572491378453351042581839764295448033789855200898695773667269531513194760587971204350202733950286047678263832738691788731792495176840231433384502775677566552997035931518822153125576374952282481847516285589498493854884744820223217564258118337067907227090179797237396602445632922166028254101388532520778264274359100411783097331466144955133312282591380407916583395348903474000633942413783367975309420785945648371287051132187641960633958884405495942060603466056538438929086998571709371924454335488314281176848871329636821757671479135191585306000092020711595618506007690511902022343182155748508052445506504366672429804586389287196198226670108359458147651595610858512087827488260333327509843995926779668618409144062996246451110548482059092417784462799353923221979486643826826098098344686622408734774108483016569675554557397435019247103265527133716880334614562111961864243973973860553689973417722515760352059131028074422592503741308296529472799828729329083081668340481013809548745330539293400441025850746420342121106919524172285497888079654389088886582344222721035935185243394096109910792881884609284871219511824502398965755068968890548117323221119430330055592747806545160906911507636685367710216585482332479407391751272652627073830805918156325580162041280292087059083613256893362345663366199390492361123123118787130224963600225513762516765103609006248149626703053615895549466583120361594785419903678809620700083842648281354046972108242564973786035805374692535296979204552086570560108422674862253372229362638675577880733596110249496407445958916809067956521765945251927087924559184507430709239813305841588746197967312917986371391108873296672323916812796475967225066510347005855464755243614483846673377257980026175843421519462431277572507018160998752330349595264501763022352117354300121876922169731329413571563366364438089165868222619192802602633628863552202508188157531050719839716378284345912481472926141849063146806943446899163695960538830758009582480268295615779487672770294909565866229382289122317026141034119193861564902009372087841870556921132048894482125234542866051162006790973453501684446813017695675926952099958807802100124711313506953068102282082475624169953716035048102133487427700034213010847656824488295862149746195418616153322259431112273961051507907665298059597028362504610114376901365350314277133535088891023779906401168893399447576377227117897696622577831072693788100011019104730496246126888483505236993404157611077984583646457203751167851807227614613806300629637169107975411736653777979685844713734512403296709096471276886398330107989263053390595665926675576306936325660747624361212448129031637619785481645838619030347514799201571710604033906051955857710520814269329751551117833531108447651650707572517321698369099995826097054435983341388672224474806856422862864338629267710678170397773459867621412858306298634843567060378263472873356242474147864460672656615036475855380432457116738887634726512492512108481060381427144767049793128920553518755748217048542570339733687865271429537479394937124964289613090746863955478493234581524719073164430404334031079700660347149681283863618126299377418257751450374185398574744867035533014410264062214132013909673537640681161616933299284083419594194302250662201763823645164903893207844434235023016191592944906234793176183444549638568927343098925677625232265069858056128276241812694840353263984745114253676990996147143167901276851618864813609018728238266455684139059267903646522975532668141148567497135053040004138810581864845655877070159159480604921372732665238377687578258512456912348193071389248111131352650743580870794061288011568462935709463041616667311129905554068151305510465319736530521250147793161216848350101542361214815252192345600931590154753143115256257698519559394269080014139683188037790501377596870825923279173004523067309761009115716454835609797934273872081002078490303200244478269405787869766728243576611326720191173149760901715774812525801423087412261149288566855522872397209274092185095880274222793506033178124588352444544797930330930768354166973865700641470151328554270759841672739882991418497388170839333521965698434265965155467546557143593946029342208410853622920177557283981798187584489206858017413326165393505934087786105292356918086942129288400891079219908455118169410251560563088063040236047940436534450708533678344233074847097020908061224259246468308721390101533169187770470016817526323135686711749083621321318652721435811308793907392660434737382643719023788162935991758076265762659849296827139845936375430202679554179577915746988595187172586032801970446457816409846754399592818395837314659990538224060189141761701892567918854015724194547793621332033016659949467309254684154044242140255927359790570028691335097248434101449100965616136735952496748992405766298518916652441097303721934432603112189878573563789331419449358558149080127857822131722032388429859299014844425125760016003927750970574498271169260055301151083397917757370568153119775612306901174103904882965088487417923167621940251580616550602490629347893689604907245504292569618842014057957633136428555407086359218534151502612060345528924139013295226587762239908223572958748061199675755255192444503691967621821679262817125339976915977448839921074002186753199278271383819443845400240116296934809688337713793784141269792120205165746573711938659009087365462755875019238264897312761676143902494349739793930769377294408077623095266888349943760833796514812367834411246401968510613426581255020697850673177956968159824777210229893693453451189133167129689767268121868818537261195209315755264480553098613304594138645709820728024577492584483172653249082387547278735616480635094503463006004996766528408813457275761045836213084875934117421486917933868909945502598443914791901669517371691405380246501390822161456786657423948333858637010205454126045809692354457205145731576910041951264676682136149041792166044091901473820268835301138041169370241874986651380119189504419478236117505070336322996058042845044330655694228632561611981223370602958230179672641485402097978973469795939699386009911414244699252941169391455626385604410092248604929630432544502683364934854531867281516270056181934148568619242296717692902059236883495185624907585335428782821410272922954412919250729144345508514339744982302184403212866885172107222723451252930131615582923992656664618823689768756023941173073503047809332529718185707505161459335944218283957104796785974716480333447486728340403125550131767647802777055738402506912777987135536428998838679440395763108217477518758509029488433434818927381595107860035027725189286914380673157874448291628458236150452998845012948212413510376793111366162217250899403141794232832172423360835355197858543922980926040751506322921784045138314671841967917396898303688921925913261809907173350063203991921723333501223795080455630319555131229052844721719656316142239810822627700193708811446275105939925840287040575091964409434288226644434264112296705705996560117668236550363172872572334498422260493178132500259034341634447775645176738489515417100826556940634642071781937452525465020797917755517190936292364766906422199551045630713883125614586706618472161871242393431536116412761548267826345034129279363681733680346622131265213597164824805597710555220754949132204958344520931179107522113256854179295828422536080861029924055311871346690286856714597252106069883707322050586666491476041921125224627394065265424339713755664934413057991441356047810389766090851848598015092034457846104697958429118681862500924439540384440833030090829837995264216246111873178945552710408004378157060444320270740468766948250495766146682831355153359781776624170523565862718862360280469029282510006414999332485501649299286292071283459057572407866675564397034120851813158399001427292333733658280272176946437012220752703623255919117380462769950380723819377953239825117654356415740843621220152158782835219515618010663858255460067058796165832798500515020469932392530446412052505447572541569698663783167996406095152176435855809898099679335247763780462130123544334746223538497111148349044323358602997274132669027196873909426950374610662139441881761063861215368764869416147577034972509723516598762833936830360754947340463251647063244503073919652106878331822421211587421392471370293397634140174414629309746162101037926801614477252795450548020164841527793290628226205085594086292013221430895250341154206452520157496473173140008541544490797162995571249034104955044026293068619028586847392015499828312700419982506181276933909534988441257908526715493726573759364077552523563707243578462700633579494888440347319079040968702011719182991732438523010217752379782284489686018299144534553804040269466440039722741355273364108168538180369512989518036216558487844548651165882131046503600869998269137939185190527223280326364559271254200652574869793806711369290677288640777512283215772160291094038793006800224691275008947887681740943198359533143147194171930209737289170785746130186608757914698813156231472674691136963662897839811114943321935881462552035875097034327901712294731614166547903030573249936676798517958357605244597756101362719414032944582294707145548617739768682703232257274853745483765956003170109108552832309637946817533360709388821317873387831889982983915700547482929273121266389372923360611914068590860246795660069287426491954223933713375595069283993714795776397756888866760738688405753729192022196687689929569440731325450924981047678510282703736445235325404856452867243839526178302827817944705256653748684114280422463712199100441415170536535147431846907927056623745501013237569248338911660463905533645756795666683639689356579964705781852759596880470987278166235858515379106479374910279178944357164504422013807984814878396787776972889714234044317112275689968109043794025636916004373770079771482764287446436192555182939767700382074174577423410934201253777070710491538266382002388974313123895318839540361655022095470426701926066807205185735115291457965027974856593211635058209953994868313853593315724483859703082009293158431704730055577340942685306634218001720608745161133936204328515830200260785083227346408528969901444186672344979466985886542916992766400383103523662442832425238623638203553173710957970335094128489589279589306230375138037034522802566799437970439564837087118108145777342111311342522768029264303534326510054664638939970494003645513775540145680485809438966014135314509875957785899078516942458051331478599216173284548012647797581585478677296703133615308674318047372617501332580153431017903322508207027835089629701658067315114856067436190723733208757577810276020827273223803259095884411770834561028819901860892858568095925853910907081886166966972757132092038632719916573591480320343305198562380705811691182041913406973445900951553757600045807166500725114185305970689362461394025256637267048085827418393542649561290836320368972660085093753050073543644130215200619217285918477935731403184864030615388772127114062162682882169766645406222598220893549780511520790306936521863210054630122749659066488600834168196681452926062058127617610758033916848489830576821592245352014840843888640551676085440800553676229053079254735346923248150878072159430315202968742705930704681654418122849005265792406257746786254964808343977001632390392804893692214398082869993354430966437475938296681399707354995526156534687530548824392389530265924043734293363987774484979944959724366595013898185164928254551948994670104759995308232245435017417832496077526938196512340520679699971259903543347543172810248181485443187802644093154209345886592234869430029989159022667098110017999009193479573452049231777264949124006842115057132166114475253072060157304128390079813773442562117330525044672249964722541093952033364242040559194903922584794309445098798414261213392933840787021118814428344914843294798631791010902736506958609045659707643822196243102176719797451305202990498819939078764208265727862841910866176474847544467170749874407980380596510122230985314492042455188999433119830401605899528605984066715934254296907847949463678988815860710098249277365154521530988224515481759604753217530881822797581154171773190366789474233099259239947157347039609923890951986210500488456546698183229039633238842906090703128867796753740436706454974417285274247706492205047352233346486060084741038337886629934004315683445619573626184028293974707860664607296248310169707736066646119922116466841312002189548551973902953258900681868312356162149497837095684792809295147273371661740615441048549269881318302041642649084783949691905685099099197234746377799213121121461527231340358991448311314878997791081772562598400892818403596247358218997030099763719840682494443965192664056355638850181252608715074503746102031702041873390683988002463443146206299781440197988497105583795721514574107905089624973614097716089658249209528271948151252683180099128067029125869351282203495565659539298456601937247278830962722851468634617820346145416235003742137284224017600358602960668685584647939904084074059288429149272373023203368150914917925132655012882693646450293279649624682768377974594445616820383787342914450671318758948035688911415485606342834069811721577800614209051409508309702865981260351183714380269792467907840441939216764572123609779203735619110152998827380406224880237898113150750420482244288954492656002801460433688086120802350656109008370272562879022939953214308396665985433805399591484696143283459855112087777792663513870973710613347807834140301775157814396575209172825690363605638504636728431272893757120485341431614445647102112704015239557335960993386584231828148152062540524630432283537749310392181043893910829792456651451935469612763371246383625987329894474960768020230732882172071866595994442524580525787354516450641044557628898365994611744666449835942443176567795576497746035342246644931117248285992599930838650103134820389696381862658653564930810127921467818005450471570283833484804392515478304790305806012412180770141656297064710991520014679869652464775627264532468804050301023892635124157694909008369330794181605136504697148975963437516191605287430658564579003530012573809942111738235672513258924438660278525837418271636651877404064677012047812552479494260394719780968495592322309343781314710440718825044286878325016932727021724142952409155492234123968976013310248554692907390054066398559700131505921759423062579567572789775800730920173986581676149557139858634319656882430341291063915276629413696045405786536125046470592800775373448803708611022978686787608702902787078529616659520136323308356296288223198834455381835556535763619807134347621574765919013408701968698220781541829027280946347180616640554142850594484271008569003547642667535839000215636487282401367820165748678288513047918478155808863045063967863880408202357384511016437638665257654280003636623013712018977371133039119251846419591807635818613380145148258002699571383357210226421129114944520509175324130359210667054506191993943457365736720585298556058137846211018296117082975332396177446862602774288336336792549220451571435601279398897983196215862829164908948363441397471427841154361802418314923276104404825562883633785540212355996056945270154460550273708080440949966216381876176413223843415474857196735630422248119334791463967292244234665229156076213328186342077859332557402457832653004074344710776146202658090030865227033171645810760079805605524827008310925290745063283965131278325748494478809134118882394622600369496873736773259844683368999833988060712298633060351563956133030449863470424577205414038766216915714454669609989326099827915292647476349075194611333497754187612455856716951659934549841371281975809960558990526488022504989285039429758161956743465309602143046969132313798123456993604389074460935015811744267676466845325968893211312085716088165156778850813711594460314330106531571194345525981825036249211644738676557165824688730896757498233274305010527119273185876524153876533907318811326122054377049805885625405123830123070212080715294832203234631668177861081908080988275992372927215934357388535153103157251785967416088887661499728942430580216476151023649457495369627023208119194093288106897431794266096120762032135718587108206650480344400279299499793339004123165180061009910238637645789020616207071553497407445491304604662260944772950392117354699540360674615603918207209930664781362775692743186126542151540205180899798825679868881014836405065928741561209068214719516725501950651363064387814102171120429751203073674615009653920309916622775253837490406136255133602509833576168744994766644388333590861525889430735156993742864616023767672595038390862894219272935692065308819069070878798286273163728586560187851445702998497620662072217053711001264848351762086804007724940555447701279491211590268146385694485455160738286383533941155014011975341697458012388525827181335024268681128697561928140813427307632211538142761814865776494711654026535081547178642503326119200204015032238489059636477310347982796311778213652443859100204768029133792036387541370986572523655364475487062246769495123375773167003700005148801038320365177631205428973371292622061619358267403920231191842412981168196256300201804376382546718270768873330898843001458363124293909281371554324980437279852038895884479786062422338554624726293332880805260486757925207082523907190348768132170055870977366941324625949119670790537634976972709373380740107928382257364142569606510313933950874292853601907510519341785315052387672221058839176092281044017182715435795701835415209290883116729084626402165851480307018711170385280307975363956682078926814428022575796117202579830297125297196135007143094098840896592108007867762771280097545436055198771712913338356933300145741833297846396294438394595582916498022551547793569006671665782505716798843815201530111309819662470886334679429124932371832179362531989456084336660857040249049860878793092653406601210158347003988617675082208861191471444404635561443802589765520847767932595110134156219327652709120083869031686893025169512995679668325948744180919100529816772184253826163696023110539198982066144683074131836758204780075057801360130923396650914181661954281460298033191522648444383097509264788008018497423568699767111036638018512714152588250650872931205264210116931484157009406160944263026633510921406065861789652921544490941261886475826398406266267354579504555715919971399941633056945526744284582504085805296860248548567744222868544614857633677906530951690209372037315806153613989025635746752256336125741122142371616000685861377190426606842359666343217743701736786555602583423779682080993365026213654154576006611256248600637321703517888875011995749479246297792506906811892968785723435544892655945227347503079298349861121665202603026080445618506408954694757951887114185920314752614586499026388479352511567923724954583923166056205431524983498301334516728823526884471667030638647096158320979816286895073556558764503286863475327387478780407805566960132446519304097473145283848518066887311432146139237495441078398568789538116011907332748361886722949839718470857527908760309555372087913891025139946279682785227108062493028579815764900844635430003777489951273473823613566239058282526079570427018899310669399457675594847231915606475716483688012986671464770796835242584760129157584767306796731472055280479159203820728919162421153704373521420525734134027287399964808215885958970456317812202396673481488612769100515953667245644666907185594995263847118433611252228311434436344562004407166824466283084816805287425477347491475259032732856666911170532456706920910639221743011089828561307369490818959228418665946560438007269676391370194849988479369140215195017384894304177342077080454422535409950880026926763798411246272186972297308383741683113201102865193251463445725278951766377646010809357906725847774627116606300662213648943792547144359481839749088454053970804897663066423710971293646306275873474977984937404788695382541384404412362773375195860890307880057292209706266805677434830498145428345111362424680186921849009460663558353164997180082925763198879518993077367606254027646102361932467309233350103223392732124919303355681620526890852341693386554564059921859296035927224252592914852209183615177469142285427814713345568464010287530881486530624449240931858136180803626922904025225344360307227674659103862684989309963011380044943306334486765674350647423326216141917734661618905130186889610097450212454512555940553039466969093610303035414462531089898401939008823500471651977259903317448765842381689608624170315663884440999293477604736069363041463074414192600979905191115438323045894955982792399620111462229855980146605668828789278437626365941478849662153111540361172231841524630025654915519635400937310624774460122624998227130999797332443204572444704743978619589099651051576739892791736415532825258747809997298152594151371037856969761807895086636488328175925099468436476576279608142547804254998357701264137190630026665695671554438016641432426090425450878703630531950510839413428397549554536318416287654117526595555513464936925201931847746794915939606012979704430991324322233454594927455303276613954623046403535178246717229152510618044257046639692799359849057543240169070418662527052218234049837358168189936838229036069894252768320864465937090924667826965197429447283810513573680827759400035866697792129404730192561774036142281920555860270909009837012495036592907761075201657276067965331613664324521841089972869632103680982034203981340586202141917478750971595456421481250475020030581044329891112991070518659457891160673608828824080231486325520307306851248218584564155307858597406669209584057940799824027693030157625942539541172705923810850434461501158149068869595479469942985080369698423574690314066342784931440440112021901818538765831240130876364712439919091274617133615620099100265112200432888925945386390117617906790257236171518247077848096613875670558932812604964788274430638826627771732116998723621020594597493670301699388629325702482858477701821665360302297776816482794147621907685879806532601503702657551100014044426649309978481429241329820698737740567357980898027621371666299222682918095821591594855814386300740144922609408037354648957027111135410251923667109214911375042904078314187646340050680115068783253550456708289970321462237797132371840626893822987428692891806030133661920314629037734859751062008553446459134109893750794944129619111309227835144696329882981596649176046627625911178091794973538685864183799846020866048046598268471776051882828649952004697371087823533552840282213095814635329347817604822651032723835281942935339416284418558294251993934349912499597072375424915464379459130764406503359200109130359166315835307440162918430391834524905261631379092426970376821271622550883567510390134602493462267761744195341725907998556969971834945520693937588043660360594241603072065762782877953710215004847058769658505025847761261224717474991990316583558091921347311799495361199999116933559097147169861724410370489733132694697045148967368196332471132860139574018607897773796582766498100469154458899856370090662420209603976767834840616439514400416963536680632597485696405051031455364123212872229328210414417744227351772036861074406783877491871306770486755857189877292169362529023046934904999198276406120133352147538749487324713260700607795925752716115033751535582852430988178167618264706900427738253403408805806206462572817966262888903986133989287063332425573552214632472408631923733287960187677509710617948154720808568194963735265342404405189467089675844724713790803071005266102035422687649038761707453170843092636747550646302304252334058549306559388041020424935816073128625402285432043462425722241678209609266515763169992699196116797510433852653608356852504567275883632141010367211558559139857195999419265131795619020846932496598382333388228627398934202651464594501703863670512266066944482220019182930141443910460046087186812720679425779101139138062680976267171385644571160848860154553598084949275988644819268957977229029554184388586069395552587546366477965760271118611761070595299746829832676762703119791370763988313626360428760771776510943147881965940522648713519385469618846384997015275748989428673503583459586807399859531118138887792347510418633580439168568920669725421666832727251022264821841427288076326424514894417008529053740360514934612288445012954568104496468253548083995824213675825747009851269126135032269511435316446218281084598856746186930437727569076382049951327569425235312496462041970808073786011759476072739163333648567853350494442676113459924512730031220289432913944788002783779167773915538865998771785531533142117626489883004818698928354116670011935206128939638925059600202912555362509275209074027119399911268276019929401394190783430647748578369856576419120287988389205336125887273404059846905338630676093756007497857127677482744809499335917839337827977449063881610992855520641767723392809696070700888021869433917507566791061810788624919140057094808948082039810538032818914596866986230943685973018410464689485774779379774618935669141825939497432439402329475823594086419597381514466763228087949972608581196472261079990444248629126975416664818034752370892630450842619887860645290965776211214174525830532856770583327369375917587952053579510219391805723748836893070430258521702154477309105860204341131482262643448373836811359767416272327345145109711148463303862230753082411245975982275158120331156235115000233695851473428507923581230080426995780014909710537288717729039926994113779741494828103020152478979701021750905673681129881530571946397736555733086321576585813605474252162001625716067927325922292103785048488773013461100331409620125955925262619987481320498186141819145136045537217601217704783160703616345480032375982246970938393928885308595701918664926532055819013362864591894750151129817410153405436625699808603112191725393524849740987547573109703291433376523102366592702368250206710152470746967046152641332143377879601404220372861466806135687573816631761721431813021879509033482547811185933751452190637031237056193482735195837857958827106364031794889634614252032361540858264975977825705285635444608090045521106185298256842334501712079438618111759710427087551982883152072535646575722022610748871276563442626691753916088329381107232398568082231395156861263948586283266299103562034057663288288839434757473255237427745601684174826819829936846826433891368650924553203455961946739722328144254065640939109649445741947864401398262568920728972372328038466602206705111691660591864953530837315196719432204048680443655428018407145631564389667313172532702770543512802273405545514783774077055056793874498155884703841321049860325104924755326945944303021938548090985642853167219521589022815397833681682636719601113679879724158180719795399849924002990646747440369090923998221548658876338619550682753790107647758868972238932267620307097889280624465588574376794364748220928246771189942613020261966284418727128678215088860287691374849559404790646797359070319170105088641108900186334005490418949858449658422358639509043504328507829193446709091437642479443533788613629295037919429894832747648004000199422104477929413421333608026657530106715227848432490643146671797072778704056250246524747953336939458457904965699702566361715767991585675279665670842268785100690395593736258561072527224935311294193597820386167399412293127570511071835771811876414466023040076039666492562631342365589793387277493120945016301852303836231032132685586350916087686930829292319274940351371421887609740331826864319559529919637147972903834333442681886670409930840444654511259124407858779381349671111085464373712670887299614225384152624776933752635282816018352160898229831500152386049416539809082132668843634154362195170997358868756483448116385139428777647591324526852861831335517749444051544125404041541926639125210867898329178245217122670423702994501620297279041250599214264647887608150234017612641936382345678243280168895213589471824392077993056785545808781784091610124753716605327523144624162569921713601213825803946262629405255324090452033556123353229274520877955852139382376565871592846303852048111552891491327292024584697635424792345375523479333390408417868572968622983700093196890455079785962558456033073918014767997849058032819222149143768818648347720695259094747934284982575446027176928898350341941595562793995159757082841822826056916359423821308937593182098098692150188979162348946108014164072477127338281042796561769601762024194600539015835638365827102996545203469123174604569945330279671920716135585408526505891926379070590420694510412548233291733666161330913181269136097681374380772647260805518701737197614172133045929717357433810872229442260196867042559953161272548260692905015366379568142324114646353572679500878927676014951382335929194588071939922658851475263432493700073693807501154847533584760012656457984640026564163817610543342228505333143997887132998065912428493970732284093497405263549990060730147136896907408488467535460334745861140192860790111500951642325369584417833929823188804832994603732466476143179155170930889411215878086964437854459741962180644253823586880193910513791750343036237378242546376981828487827876762797144617444388248159343631356133396392140063384856127564745049555115980878249583582863988245619912823673438087213728166486151857258571386452116676799596596349703105156605923502951130437417572859182092861470044916960857626344768797368078248175846951906481806209743021606238012447325902847445520752112056388433553206978202001437355236175247446127063628351264406647792187996387705994355853965696806567274346913384212744310865578794432367794713374795452067572054321858258812591821207157949584280247901065615672335665510245962454523498728612785292875719280789350254134900466889740795413137806185449659801509856477815963414107809497772468316877848407162175850630092172026298201589483618155986592137657532732618902787156877106692596399075333111712309900275138825551318505793442940823460877604607264347504998612271932914919614012030912777380988527871133286121812660867930543925970294853642945694948803732199327907904404875693296983264118616030958166921415884541122423760224721081508364587234648059856321392731939131561635004242768732456203293864711738813952332075057377725457715505494465116104296004580932638545232387062030086805918628581667572128195632457820005570154042591976494456092492462551613161401775358606744648754986990826706577410266747907458560590338074529354919006248318257200998599606644270651197436769219512868167195412258683258175779299903769950478096767725062063979764451046613731937601728358664341200510508326949976666175168546758757459187288465389046432568271315622682269875269671707964268528293194285113299989768405268711094905485874112407933536676823269430923162648033849101022365119599886333029593335506847586775760276629515719066932361481181032509712068837488719554523161819503163998085839774061523547307717692768408174986338188305198245099352710975964459770900845478409566824189918214840585061412145847943681275228233594408987376291915210639077053610121527256462916915142447857553160567507828086199393182677156772330315219983885751747797547078543639658324995787525836670283949607155732934731340601953500762753055646834498287886631515018573821274141200750057563811141875637720754855607083847384625307967303558598590091910138921219644342004337075768272225063084477643185780200999992585411265748098200210669374454674002958030048601755416345257421230980655076136565557075066276699508511634000228310354423616382456809329916917934283698635656027384875641745585800268106794515813935443457129570095988948558183085132161560328635153284803169669092322873335978806031644963683984869549470283273474737990193224214985412807186208229687594199110296177826973012849788216760214472208281620948966261916892490639763814829471267477920908543520825196424837830978761479136394318855376687403589578531982967945684340545203388437958084360348043229728827331673696365899365183693845430144900229754678666190794347494264048391414268012624096725479215726348686852436243125506310890284017643690688883552422477682169926238261670173574398340884927989311376235694034685211524487434848212030389078819810767960923177006155759762661747746425508563832049700446366137111449691745550913867476373275129352178505030103395485678449102810654490558264352149148433213059986636545040190764267434307881829310649462269868023244673552027309649094369905125193337471076954427461462800318055164071502627398118276602397560584881196287537613304209598923490550983378744718376348812382575199328342119064081983873135088316583009040054116053153234136946203425454882836928972270472644038008886139012501577719193895947122776823870424712863289636374838354549132877028057439461019257918323922634064425223451949475207926586567226646295047503690314642298128480242518744999543176540231218434431508168330022268949094917611554780375777550326020787224062923457694694228269176817086243209579920940547618676760023002085412549343403539982256815745276968518242187472957559620519844607254788962517238022169484899056799711544475836152368872591783955236490563493332446414141395722504229142007944346703402694684257130564402283855377318346729749195351586304060677366332321746680519826014913726944121003005853443535125168316738692442644019110635296815038488034441954788678298318732161205794426953762421142648132855025880140006026454035835928320597131758094099278292027794914218889329137921243095342094147971869168235786208178547504270494972650831722902280351749816458656304134687365416806120053057614605849215613379675166187782515810484945082676162873807206363927136796402311324543090069250608615029667406957476205651667689598855612400989043897830828513041274288467050092887707718715067484403265806794408910774231283045093973052499465447791403923766467660338688804313420484740378618130545214099647935409124305471721812198891289278619684383512384693569661527930305764780147283894083582979844297418990179392685731164532364008339344317508309084333583882104305401830371486409178197571679044701285812863924491413747844391264867741019998927454284137055175712838518823822240568127342744197412730834620725463011459392420324298144790791045041075495503057632862881406821742549542179172232324859403403975026941937497780529091255107222519104128595467633996044236140402401636508124385234878593375328728869088193139590372918609514629951642661680015257355937995238338893591234193273966529765128816702447802907253600388042051964937975086964948376190858068011144164332652373075421987545184077694616342200966674680900986384068021315531088082151764016037825957611478145355116574735674127193933462203384103569223438184837868513183051316530803362632352500061810661394235723234751693561636195444316243705434794660234353221051988341380952771091847996570770020671662340132681905144254564731980574499539123110156253392118614215016351508896189138991560602075385885840410775388814835388414235855591151352174343117216509842437053449613435542399221764676832466766904469436183071013059514651558560478888150665742645542616588727448904280666445597496662938321532087769495035423045958298774316281531519841168478196302212657363046517332659001167511467840029272738046112898812905861364749751541224198348945730663510550387201816392010802853099480590158664621461108369404711206087695270484317178723131510377727867812732436199350028007357542795434118586649963693315240060521255654938491566620693431731434743174441748189469409567840144602884599544858458871345326403966433911778489485286173294309059412861683844963873729347954946181824854373168473700714164049145347091260527864222158017831892861522055925545400381983239849425489011325852954218850182191321457575860285188894999411662810577094638103818640882685495763549347711343620826335069132943706563282656865206486136484929778885738308935060300344301643327476980241143301901117415832130877028973565152087590503758049660445520604267929264576793815057338535760438981012271186435192787601459386934779585776977529492352179621754451188710280804005194264025634663409299385048533282025589189812446771305571243685887395379155182272599377940568573434821794254534034433477026011658274246136381028438475110774057209018799224148106118445309424409566775773116609660686573391958245396103759939383317311058106920449826157328406146920600046714288898153924127359563662733406123109635817357056203155977697066087284811196641273561092249161035966692233261324423767205836101341084765262492487580894353871075166863487176361857451814492287520695342438316447728037587650666634774151035786002790444570285323987442394754018430459002378913426845947962518619275357549296955344555528801641465528919204821537369406550313978547798610316088481812481827293563339017883705837166206301550975435454427662722601496781707190872260038380135431701807208183964988310898354133303195133916599403510962529203019111847971467667336164339728059582794356172781991032195007633306612801769728776954067316106817825082039377802155997920008949315243622475148074984727986765251695270052292605981006269052016784414034661298038833084992640212557461545642283625116660726088937378913266877440176321637467863720047416687110775494918290142798104468467105464248955343383180276802096601955152721492025594360454436367670295894285266951894646105593812851386623724873745685453382871898636965426771982255576361561388661796095763778654846672223589403184333830004491457675078019901147147037978599976083231939804759409529424436056522138224411043425909741031593801091127023263772236263954504532013653378704828925448381619485275348185295829775296611336432948878325585545248619178149377894841078518661983564011734727731476970494218085262829177049533366875713741912412063818728128170266514185659179777763569218337796679809829515251762584018790429078442734770534590977135183639988226100265868741076820416566928566705149596570238352433892304401149760069438583596992652883751360524855781365743733026023725027621195811201126804112741266843598935454074373213148888050088869448141377161749833172404231285649926408225473711776186238466624442529184473027166698703035130266499013002773508466238725054030845041534256397503811472694208050204915927484617183744482582997612233250310810727949387606652848820779854699834903234688944203909310262734875504033816802043226986996956379689063948104284765428274420257904205409736765030423820960144677025059599661223638910108771047330309287366513845128890151863513263701854187447894024499689894903146090833620809297636709527768847454821944534288285477031730232898363412594667952081186435950654580819162713768877064626744054288897366340784871264513604405461567030950959385771199059771743254383914951049524856979192106694879446781522232636728938609340930275412328583828509684264698035566714545415182904303556874090380523768785151490966330557848209658056357009454157131428505415746392498012197021739700025302538333472549851145907223697928089857134047034437331809533107030257079132705011041724716411225089226090695576601882294067604133597553333308119730773623208660087624629458817337699980083830953191458227293251429788735151558683912456555877531588979967387912487631720333536374805342798170867128955714718371567365481913847094205300474727679259248344872374166417206338750493467797581218239514781932549398341701093258472578180773023927079784015150428266827383481673374276133725651560018539822170275051100021393334920376332622148143301011109703229806234188365364433576807360626113699064075621434678604010711341642841033524995366038984167607810744473188305593145837512910005141127901659115683958613792901539688248540147864647662347898343919577851926322836854429509967504382775537789820196146750981316289386307053833985938660919648068494875861330628018121771921005445056932017650512018601496523725815986057779048755745733038924699224884695186876359193789007559828070036604583214828979747554037146233682196765192381601425203113208226589821634575219098876554719642836837817524174872927667641614991959979720373396295204107702293727590970705533945572931756555963932843117203080039698905021481365192589580487621418494538139687531737522702756229776474691793916323704641324609989695961348470093467196045035652809510148595100524003751687513159759983201808334470108344660925023214936879867816179641841155634893255412229080219088418384759628409819866705847027011156562428343139209686725858073630065646685277258284881754300092943690148185836909606813733581959031186376319438511014066787267726773597979602069983534334252510424044512267983825922100732410035739697882072244321640453180697968990856340140294077910090369200806802346514323186684500565951161848045860055874096833598055445241719961834264418467276498265584044986888604594291722589709208023009260963974967905613103481364449126929774094862067242446215960500705765326583372437923314877641377034170362941532974258831564242361919689475548711317623544989682075856110961784236202534877374347517454532611221978128307466630080618537375811100531678198473415363647385065460213989214517150149596982601716920606648964656098024044593795892190899807995349106567024976484422400883859812940568434456228316479797711694930982217550335378330943241191760969853354154158107161475457587261726360892999556396457442157048340720132133032116647992258655377428497925183939609292823284352266993218315957080135455259328543782605410139644905314294747622574574630450237981859948151062824506168867188962917504973976595693261875293743126410882193665765769688202642712101001445097018349772457415654022324204356850789790750380234842933793981038536848856843476082162098272305438297895826016675777170587541084681893541420355207272694248959460253181785778140683066566068364648650872597310445348764891219243989869642533686594102060431630061920047524344475155992803620482042878379403035354206369627742784691022068001695264266611800403343088457097454763276427406590672837265703002190428741255864591036450529589838094338599681935498531845794656024769061990631546583315515530288554483396391542253568337360565147033893717277360295591569855461154040787119995630199839055657308858202623548297422678366130037152881275268417820215670498771097156705342366289290806754587100274265628915237917100201634072006841448723992624767484434978826061588199220290423326822963969319667154715590045530072123417750171840047490749778861262166032328207148664823632603281487793391784747321701157267955440315080020226692879198008013345219206006855605968380358347637859632392295609604612753456447678033128660925247951687846629521382912763920065694820502792351346786823649954548012659267066532978492609632261169864844844644760128698634134158427948026776181042446600576293370916415425241187507784676126908699996481822383059367377823460270621826242978340095341671359764034424993251923637058905636570152820485746138115112498989477020410326866452552322658033071581463269935626859405453401351488773377643646679501619967722509399044039836605143627481688223763841680932006362240044074233540716639339567449074890405236548175393065036135833111876048050838810147593319187887568687071276548896875753125678206529127881480218461791147166348794295558482227066657537815816270007138180189007805231173134497126077321559443314925173020984100481288340077100604427981186940697764842829740129239092237392153280490366704189420220173993928095474689314404221780292243793174734632461425118803766878431287720991633264575234003811121242333105490773357996235899577676993421075766336132690633719469403300986022920702059380558669581261621089474774302488678958219824342345806577251764210374652702643438219201049673777895253369100502307860585484801911134308528604423277893806605962444828758251779454491984994551095521015599146434945229472234072254134389336492288808433676637002749967965520453342833978326546521898916841324223980197651983209759041288500485072423636800889593478535808606636233142376675846685774434549913744271911375900989130104335141229657117539917247549517001336650218284277142188709714578467518322408487833840913230515323985428188290845251255500010006351597718880996609832567764766016663783843065496773228907619690815168050491777489223532548513110702279894154333698721251630229735208309068422129563592176471017619411913995250243973512804930779963715135818933648068044188367938296498165767154435567020016233134484252083307035280881333700366840343313954665600786276743928374146216452453505534113580956987485706031409396361461113160408994966025835751372888361356428359364440010684180599199583524976864077842637276622846244493908505426296652467243204938188389964513050039710973101843557445563280868750686889968475709631102942637181442852349555322374956274583450743274840068666241904256135120801020143503561110137773800687904387665946815396087390892971062427723994344566317510265665084022550008282809576573448137593569765176719326386406584970962068084697559429961760298237445445547675473569362794947734661515363722709107056854955253155404426279375875576284009530301654346056992892970158288513523823509134264020367505042023321774071097382824835302665857974912721233642615601131454107697046121267535249462734859811255588042026890369448531244783897583353422764007233178940246010890137083872758424232189130468264381145519389743182369757795296332757044477755214474148727083812549119599415412635197279036867814244115273325869735188544853642223983828430566205406420055145878260141556461316220787682940783706012585398744467275367043476643382623751976577791524688611725874180366629529326860487299746721331609234082497343846577790983441592906773585290066856251898985701987218742032640601243413176376163287133521239379182851029722007552797008704571867883638893023845326898718921196441460855053709274351720577766743395308989945186331778447259169313824761125904335976418765197293531482257583463959996107153253834394481339011271983983753393805141120174869572246959620699385411002037988126718739141419536651222941584803360920291963214037642654909916791200774588709963469754719110635846517380906302096741798346590264186564380113159928645995123917677485484155261604602180527630726102061732861800294347638669045913133212621270792423462349041326672927806457441564383081407307674301590778400892412592888975714986525127069091831766838393073945665642790560659827857919583740348594881641072482535070339337402072853282719629322508247623211726523257435393901254384153665552229989736722695183109878929033042299811475292392282400855190972074500047873332800995887047756278500629034804291624086437259857977103152699356537236838745843552901987319734174563244887633899277954159497075358132601226148084809076317867910591311386254096870027121642808828183785867254778169181168827020799325427140490401620251898059285409774170898795776307584840037565975982565180961073979137182793139289551850856060452901927881056442635027609927235830798049150842710561193702877063939362961797061326062295269243072308117078150553037410152531866857107515515885581782598104972119203869030591552970849801072385717315433921526501236279823880518709833554189216535209922472562681572155192144684843951866223719631566799456334180450659037586332531955487522086893394869691110290047319691370979020788019624464277808347556534866283912637997310249302908718765268720188116519830080092595117950608921576141443781877250397768691649276581635249504413729489449091509716650690406581686913599870060807429700163042378148348981712492627901676756473995549669841566296724752509149611813085313098217296147226660218042460445178407315692958083667548245030636565592163929725595322912481922806971506757779418385684014764039264253920422412426370574860816864604398218845636869998567244488710862602337712531417738526486639021034906947168699260516497302851353896568194304680135713330258478793520204156174434066052133184263332902930579217877920003824855189765006371608439517706539324335714913611226055971574157904903714764470459705783244362050750164570349657654134951009325220499394800840107295034160424608326552034969943458459701205880202087019512365265308792547162481114569645425398392718516173653945795264054146149712375107489301126187506162899766944035940852434453833630598201779082719296923420398486176972807082648841692079858424108637063136007740467174187190878267260748982985767776784461388928088074640669959782328498312599168176744963172554066362667552666544338905895964601436290072210420961755061686024307763480807804174140254318993015573100251911599979138917454519591668792480004293688016292283808255161518634244993171731063902338171095080801864771580539159956447497740728892295288176241151377082908836961419233916510741622219951189683984658617311086202832638665294733768195628664479930968172981518830682028031842786816672643703830716093027598463389904184651875317639553953797968650811578004248371222324407144629503755406657265013010399728132868314235832473329602067978540166250976579054919897563897684349905881199328119526933561401959226404091165633341633359620196723636227927191322190341852635878274192815681479913729699234959830810412575188679908343739023214974479534594149634898299769740693703663153058737244921538462306137960327824976332914498794667276300164295117242190429383028900774840324020609493726856104878055702920821802213358908877097882095877263021157646781877748975272141635110101247942356530617292117772160707207783262891138734826862584492846951481217115738858700834718480043410907723167356440793967227058217359828564604157201894013264892237692757091468057222006023197349289708626434255616136280611692918307722008826787783988507231993386041239815239979572428499869364067894063119043418635863293346746092886313601484619474567048824661815669640447055717975826783641397167201005424929521471052584185067712809660271816691106980743707193991476178235349369371366952102358691035658155711022031290692768546804936959384191846472807011780776192073736846998211100658777606301480396348682827470870668464359798659397528880035349498149079691885668836066387142114688771129058690620567588338902653507665129149898276660025168576842321439805128952688231065507680220494980704416574495151046919524401538193442797557060749550478052084283174478963634817393947506865728270442406328261992036532509117298782350399617062817575480093376527674739717490932616972112198345131295733493690803159297991957701947067938629096503383380438868346487373086605687788532636339344807199056006705806608735667517475853076102865937111160388137535033665878760036165867679413287827595782946692635980896947632020050379153408706533209273664906726327269961390892235775741994286417919995952097094358848720142387599245612021418711157651067904526937709862501682513661812066093892967809649913136033117409477987653816801629652031256541304695697284429915479026998446933543436804091600325975223612282090033360493483519000705853874030920565534027189530599215239693657916781104428386769730895743707072662783972253236799510837725006137222030710450930944155461712562958486631273622470623305869772712907278537225915852580614019031883306203030956924437545449935927067505379417635014418082149065475012818277577106531692063022376051552955075043183564442962102000414640345558424789885981516182076626845234354057228580981623057966066149313237523011336872074047773230792798571134813205424993541233931697393969859420581918053591295502003844756124284972051589193843640106365547357921857441856955052811389825715495369188199988817283577801840987761770633596885960937635069121802139179749574441282972933433117959447609881668851200190015787310252127970538007783350803366366478095780375924206503217921357733350650910448750188331879235420554275802178743043303256485755897054729373307232800586060999785334446085730425769880895219450986786065727167140635468782449860794968460059823423540694128255382121794560414827473828297712499621058649535903728373452231975461710852636940540135350654878799486886181610081255070762347715520843415276718511516623485049878002616183467102911310063098320551695163604132688088286440950272124049466293808218888012963998664761623599730238826881613160580466067997212284352950928479972159808455351370029667240708622607359932395271426973238190055555592653754895693068933257126255780875084744543330927472484934331793409456994816690024536379730905691701670310269722289916192976570959967901086313123681847059974251462582836078855567696106883487655464569176885193512791642817384579184134230487919188268745587808797533892174932242982734687086975652239111280336337394438283727975621443674207675330807531706425096179252705987117686435945163381789465978428381805660644890025524459633522707651354668787150176674048682596125099570801950548762821108406569118659935835344728981810929388266236630537870681464746678407264983701529520581946984831067133741197940659186674754368760093653229782686402684035618263846565042357370164228086698330155413741036371561718355231040132876733787598144414646378429174636432919209596469486918888055865968594072602783204632063447774658099388062508323632383503278264664501118882948112433911070810448977184167072321754286556873296534806517822854588640396266861981549160957492838648440320014826835915415209945219972665597853408612561200417621847068085264429763933004978596941961458553605007988700901641059783568043214145918875158186672571603415217003529701458214638767526819071443244456795527684102198174406256750121619746484042076499285438721623445419859011957782509662361819674935378961912815382280793278454607703853890498394080584688945367202684972326340068956685242803896542680622448931804316024376392117423719180062383232450607502330778883519366043065423450671276760384515652297046510121692044842007772202553647923056662876834301406435576137119819138237345722189754462374522691038005808290112357125588051551835122083568459294441010451611617540407475874058634168652845342110552133593394522545168251286148088342826786238975272015800121917008063212302192901766488842675595621653543450168544135169846244623319101584359710461833372858855887552389646970561692680003254246500506253308474141887336406185749831245545769343668444364776592740869406482511578757705383190520903281749766728149902606009625876284800771979381014925799484710673232186035254809365702043260596761029484287659743389869596521718154035382289311415095961998544694650701062490874727599940138779667694177351852634363841344668474710436539126866354066652022439691496515952326810084918124516193206045319212350964927344479359667112749671281361455669352384826610495794029201091117462952494534532927348701620436000068725399698771514789438883820028399400294086164575299049130941839967503555645112503415466505294856400561437738073113478647446466282764279775805886220383618016567684406651494654281385773432340504904115927661658817738638018506829281860776453110792293207037680458593287629724839957210036347267768671048243795324510403346598682962085799625027236456558229806220405632871265337295635184450668964653737051907706669376533560743319317631821489110247180746377355330291038571595697241153555132677298564594170815420674983528847184019163550245745379677408205797508453109311917626166886552631741102081278452663113270786165076709473070005919965438095316098343517791474123652634329721335612014579034267763590882903845548177362679643922448235613831420023982857184799675525541025846580502374741692618068069911270137550859046374864969671906707459561956498287072223174642337140592120675027263686499350530553830998971239505869766644414512422714063708570936839368179163033018452720543178187506139083920920366891293891166594571111958766190358140043558234872776136754813091596132809403160481191221050603558758934447199943490347314019494497020597645695464888210848471446097878495111747516783015118107619073859139546073713860811510638899528265715150678686292945903477530354604730685974822525545668066144902075376098569341395856907277209652639172923850235143556221735672898353949192016474320661757963281861164653926402609277413587138112427289001863929212995226811327718058373826301629055981967359748275521612172924328988956015291016078275794442871306168175876863949972159722071207699854315904115319745455917710744830816228666825482852029186703375177563744551365020326450859599984633798428602659686716992147735793917360289080625967128399369298723096111015723940360683173418965564306763275266031720465336968317853002718060480431213482024213732305971387201210766733972446419790486951300481808988147067735099481489146723444524412664275927315952174773081608678801241632269921648812396610412695977828222161689743033685698135988356920451398426464971554048264298039623699489151012627618171949208853694716414438253660637791704477840105890429079909853606856557999673877197510274926480672025241058197273256938107162332165396741268304187289275442727442682118907652118914667307050019186371823948552551975400234584478741740630877700055967002136317035350153472212316659292664448898642418856066556020292972972270464451767436996335075351180023383580664544701063993316957155598638704524501080107645167322120728757776307516976435550720997735425443246836533174705423570787968698498350224716544333402613901070610408311970960303421876156381165351772181747629186429332032864160386312343423526539573802953019069373157740584357404629988417539476130406072557219646814747448651901888445139964759866745844813819771804075005305697266599633207790289855287528778201539097564375630726498345261374039959308319298870989761224425651987807292038933847733194145330520199129552639408895458013816713438042622053382603479371963341060042245069894444160121717738334523639593027231557185286708726221508825963835498093611290348527715826580259246301363443700685742123011069280932613350313218276786773433162779280531413005234180369633470602443032530993355890628269678892595654286300656076940608935082653162308636739754586433522367736535080623546028745009979592497549363239950598724066710103609939593736231139415039724406529491703101016367376893294001395401881448577014078456838928886681882798189090723765093960664124569011863036277730975741829175660682524731802939281261050192800315265393104174491092234964619320450635564860764848162388312445400019779283087171168160804644198381922772817630538595193486638436869017013009477611214387854431084417490463030978201143347429121113475087330767218167326333449998015906415828720818333973558943883237206724126827269138068641823167885480354558993776449368384327589908175537760237600012894446950771273297257114427662515138156950980136538254129211316427454506293719810893363850313108716241233038570087469839813430971716218722192181710469108223580674617323645551930319330417199958778769026432289184689173431654198043533515173004679444300008257305525144789686126731670853658759217267214741468411642772911577854510912576003534418627583689669017188069203130792156399774005162027803081433901261710241306215087733957760497408805477834627819583939806792224255478344723374253799767235999774544460530670556716554616824610408984540676445812665193834940145953992483329735015887572278739879406569996550026106128751004214800091816354207379430734594859993054018207081432747441304464255802175014645682197815825798793773152742947420891780867714909281438113459740163695164769331035014272321028166596798626509886769905702883635572432796966499797897049111990150568835282418681485345434448847546247658779867090748460892297403078659175731304816712228252160557539293929716761339222008984436585382989257469397175855871841469852686012670553118257697753280910972683456460874829882807039531346511072728652379952873335779056385925668975115444580211819762261262536058622205513960561753281186418834568405931576977077918226195191856124483874814631059004004826552292699655572023980356596440775554440999354848243565832504780183961223963571577160435012347381614718471251066776475206683199325735525680348497656629248836581785204642073968524134747739622413604575007299745345337033479132216730072352601678798016188948560897444771103609403777104175779713083157673237287537004566308941971032267901377396900847754701697280964711644584547912260338347078966132222909149256515957978012317550073718386600647711775111933775956101370508086491931311767181553891990690038428599666688040175235776908402632626012661658800948648224864877418394108968652409281992121464272916836140301408881712244411502064385392912727700080955422893174313341082177761976846525408674021293542363760441858655042362546345901763659637321055010094218301564102980022744583186466349349511909562304345589610221985604519227060138079318413056733634275174812843776329357380700283730309397922573950585810987353319981180622715451935814382887549713546252509194133582445764868939991741199125087253331286128701289305037705275650870703978584090027986184375313366304015649385045117465059456713684950995662876215478929011045765527631061932187496421098588671019436554014724708495007257988694308492772041083460085676975303941754826135804357049349409024647582648154962390347398284920181399769450801305589311387269156299612638709871621501005195622011899114917987627433058570997721904607088349618387411528224870451784875712364539996577765252923045850520947982740543822395689345717848624518921063230960908197941467315145759236203740026526468843086104303605856872027829741565289384932502656866396842704468220228592279566802341093894191536934497585195134295668063666187320665591012682985094537981388416733224848113557420592102967209181835167322096114961566934904741724562185999457972619217056937014562307313491501118279975411082632749787678146521622498615195701267631517639344996245587878160771997220772009767219404564850797621408240980518498434369495719386699243142947714764260132366474168643384240664652783712906028865720558025347697743291160677979235744540918705151751116953441529226595283176052993498941761342156807205426918672726788011593326787285704215779473772388594497046797209980534066783880447343146938810840780135115094390322845595657221665446121930278746527832430194872829828926704722571363909972168885387562725755340572118139794177002630254719836041968655326513704263179751772597894798963129051367044563457171053526051966270215484848479746379933267712504385053136125227930062208454643817176949882770547082250585153289246275064469803516415302739966512411455980147168229433169483913380050874755890849625163811332086570327961651220682393700808141930612838747582211901064219241924264414160061063044182218086908855563162184994610048557121036731858803273699451733494865757337062034925139854079627852446727277479449202920871327246954848848959933276499392423190314199564842014561599155226400807635089274913500976937200597575177197378712998467909501098389916821597769548543285791930150380567535810891331872739889293404171319335806721429437663065450812743657218870342959009743855286314469473591489462445010885618971035246515266373661339772511829166026673427637706133785074704338173183171809684302408098967475969523391237829839941857842075044917764640482043910199101818413882194202686482079483356456760545461978498196928463261714951661323869542550377229739426897454354973835051772832496781856033204368069968455445698183389306190979237092647710363771818783714628299701232422055227457389701528808250230916063308958669921603765567587242235596704480980881738923289226958085913522272795402406232010135882990738395800095896241961247639427010973507391976440781653069464362024058281342702510673075895108155480242753958520242406506542204247774711012982769946266580283906215076469529716027131531601225041803562272283761273014514917178204240634011807800172484187183092959156163079714265978398596814498540057087719490842388107179236611324454436183574699326583218314353814218399517136610239506815486545517748167365166679081908345110317630623205085279484664513941682278566631773747512884394014892482407640363671295229636519529024829959556844694916687613371228678500715485198815704446687255276738920487260505794737279690326949148747696736789439958126854932135204563412105252348835142483326808242920868837800414135651106866571327310906273520681520531852394281343644399399080783336145830254642478793292972852688530611304087827185759795311883447833385963525379301141214212850312659336574587944406076166580612721770079872979257264651080945100427117604696999575719041621350908659850555118774243124224992332937689545942470454989711184401549718010500054735835146691045805508979478824487160228633000667586706933825966302776235611742218883108288322904194935652211612748833675228971579837553133894987580931624430540099543321993274184301749139395238567743514626314395700430965144942496411501249089740057814099683378993332801563161797425986839070307000196050722273015758984376824275173945280193734453358247889791740837717058864728298377600761132594643579824377386258867217551571499435067516764487060473154553186515692831062336986558087744503808966655018332016512439282899845764990512641684881810134644608132096245611243286857478990933633259264818386220627749203527581141528244579405495085117012208255489489723964640350131113939034284215983465574199584902722890409244975684746123659306465631002003848458213189642544701304196823354643202627825318368936111027334067701534717103072262487440944153624252302757953328802284050272445310042174041375973015362648721447076280235097324303018291796332677689331310345682423530712915731963241692752745569840079958099500666558022593012006371291631341077313997874717670734882151279970222928212480857903085375485371424568233997409893385108565258466929619440284582510067490911567507251823714840676862610372334992273825342155817484264210176413512478289776279292964868552247528482978181043766117576522321183554164956937301679427401536766643223456857472264517062674666682343260517106867322945978775040646258799131647280984961202167861095559923357901303320360877104190062482133017405621837780503856994949826738156847119632541091510517738573517534181022792933614489658544300655045268132752101305705991010204955906311539981795645919500689590779009893331745272913101903576869155280529013677020461777590125117195929415774286236664104749986076402494407586614827954986219559100591166106817428985664856034237012098509847085845737797465486591198125327612123047581317103281879378086419788108860364778119899411085888661282496843318492348333846241345459045963084289091913633304135069649203376365310504199876747841456104756042311312764001307220150220518928856203154978022389712712163919221393052267738868698142765260528496096264221510332975203451981965809608663297304886313336415584783352415422715937125295883025447103644906866221235697534643893730135568425374579779266738174757626927208427978416074067459542592878400023796024691222074765244314375789214161335770350148179165572483496937797889769302050006776112001513360215418128391437355204041708245688224212569805751022836294796073025024896211686343911271965137486960162297907212658138988444823735194968871315728679753535838300438311483798531632553406355899838757763648139959380347266824116237797778441367572596890999064828117410611595011595446664347734062508346267113995128910202834116322316762717127524815807005109243272026484770937827121211971557780870789133405941226359994376183118045647184374714461757291827501860234343531457803504341418558688582451939731602252753305458832830685178340793977887736969693807615434586369553932347177420492952386680537869978587770701679904369943915570374113424843984046457046839723072133878676827330374198035057472887197711721226947201736342265035495950670651359634586683322848122725962397726836498973887582763394266306192487444900582062071602252499193171512463870523315591753622707723203297530487229748943931205376568352346120910957859744467953057413840947376129856266408907957923198790131523221066958420734540849736375108698490949174068609445426848453698432677568753831546445836042408312765303374301107019251574826146626285465684929732336121542603462824644317256032398461055189900216969680752598427581501509719014312049966855389751040141797587291305388544699517388283123140295879662357859434609474929184371418967301717213148423022545835339968617557136107172065254256576728375853357808307640766009639331984810940889035185681252386399080545629884010216403981141300534646043231814858117934439255705822830901447035408490230381725376659581379814680867423074906484126004751670451027663176913605890282497399031237712331087693935133696919350602387103290232532379776616746086167625650200773291921636782969969683845789200982978757538499706498608346695965200481871043018851101427037278162543772921987369273711997588945022667096770375946402202806111912447150616105025880587319408975558089094880941963745950985861027892006665875235127743254305556089306144888417739473406296700948239047479202494100085828666984408948955504425111379070236449291838791883163465097101307794404555338298742455910539324265435738534828806364074039705116401292203254868286791187301518456880810292571572854617245861137998211737961348986297493629821393590029864139734019969733293504515542159278098668742116328135957166187459111028099351814421715797324098459838744810102244923662186090909535474097709213327048552637723801837969138494768554406532972484125252979845811063639840340480618690703890218922885081553446810591429698519743785758748948293193011691797962457855536163370601870940457328600848873103705676933689376063497278222033464823387217980828349887563340858231819919794115255363362151443518420406743333359223405919355396196953689449147055399639843081048705760685742296684642221378790427634898268140150587303283812615565655639371992439262189120250256488006075339416673333667434606441730195940104317429731687214032916739448115839391257166318595455100806026284492656174772535078705056276358476098934173759380105588305680733194451630249947800168450174506744917284634613819498205751315381428455576927260229153726249250979106886626638746283154905262659840277639455955557791557896378364706769397554147333967705036507472411355816412819149259684231577685561268898811493123995610100248808723271498520537755651776466840479068356237587863470324173746427771798798452247932995300006897258073592851525010561858939310769784499600719408095257916699183688946239461570992629656082485118440383159832183100003553051603530431806172117090897273765452778882396111776785252691165004510581134459640731400511209781491625186944079608947448057270125526341989382485878825587198136661499024661695516052262745438059076478679066334622489205650332464576026024590079404447893543078085659523427916119201024582687051863307625178436378458512961344420915512356826734661593252770988470057887897581752036289311172304088623740249820035528272682472637493829567548206298737663062910225327603397196103141436991166391736633032479556546203838463388852432924564777425128503654864042876424422443891752462599826598554661870491771438521064254667992190720460920504849347602446122133894632289106999557992416394187725669300901461219738801596711943824819173549300384366938018708522592922746437645912909137846651370706039876296923911214756997428557004063447098546425732825348518759436448382601794283542241593953208561593059283520951963024994330457581542290748944477926542685824395694300833424248378344314915122127956824603228594756080035736143650424303230493556775525278388904793864002848992839507226514748938857200774637023127949255667765705290627427547636355175440454665021971843877001068185420692602288746075065687512008055837340441062816548719591564188525459235909956683360948450183209947621521326902576711824302520739201823370321743786614394341901084467483156758196695393662301393685385893586721006984157579457887543743029487148535122825520422487556152708468797046816513339280744568360614937836149121594371269376081637350935090514367626419220497027260295195075066588891756460153739114079778296490874718198527499783186537067974342995339408989951168278494466149427547564007842503233730163208365824356079056075207286006541469787051908729011722137166798710369991392536371787860960410482287229005629931867420501485843190495803400418266508604099049296227409847889488434868785604867117541219174837823456313462519146978532887443263669282064232278016714836505594574636236086619726223062408302068638860458311925228593810489531396869677232056421733194047056694132941856957242577882561973037139434236235812155736623598045614214375384342772238161974970685378501795679478198166290671153246759375995098925013642660598610218083715557087435659058896518333203592616141294685947260251857112677937100135866710921271247038091524761467290858132204799690852732722552578095517735097527171259271070206170667391259828403323167236482366086128836189263376569807468061272100014657005787747476767004910869642148894302509411787454206044865698964635326264618431222384867724598296578578461481412312306540891563721490222918629311925540929645868297827838616392337766824058925343921785512724670789678514276043822326800291229859774989936669661480805653297271639568483798518121613662078434509465253402083181466429035735374383872152976024198559593252956076191875844989816228803211796943451667616173366827738201465497518466102531578587049060888347724870584494637115117993533064901964111779161873692209502940081266394516860552564691609014281137629863368901603371658406675389840609665427364111397811101066260467349754243164595883640804009010393876563210377442082338674397915663911966017292904566986863799674575737650966635554548162908536920628647128991768747221379384797445944973947268165832722667297754240401855979133131334311467200190029358217504364810994734401018634030021138293600267960546390041884436440660351163822705061365977105881342133465169291100006923710574780920876237571937161617951944826635171189155323299305868372444856669510360492338886235254478337549055433834321640517706237875183295430848244189223445257361211117767003599935048792047624874206457820915834477822740854566006837738823948428890720297251615672741103074339202607700777893292751996125143089428402751214060723835139508224179837948748403399032188249793387002686176843345325954858532255760578056469915672695021695415889115999744337255392535218966093291898027825712320886292333369881873789545224607624761712587459205105459185826858403481896596003038503387204255803462127119780401759090561777309339637108787918695087165821711954332958718349626773198325945319401576029837858610464822573574895514094932284979730533715908707941051126511041043396189381310633451698608312732461955369433168559936815466380573143205569195577271652482496649526760981744650151052964691360122222959758264269768258636350836290033521501342846064824656791152855415779142906563656601887582148849816078137992417303414689123078184209557029548066545054190435074421963814889899424199188773616259450876114982422286838409516592675703249384890673978980714421297387419062162060145138810737081112320237018717801133702946473297659519618945115193015042591485759900723032966367072803861272052522234051432515063267796599372026617150402633658016101565180164796035072691605530997160556311281016497982111431318128913727329542622246758599640011496467733335528460833996901081582480538339784006487835833577262994261475822317233839328382908795684825229968419545524364400235352596695992939995138715392545637901110288864896251436415253803076477917785080808293730040126426606577806385623826417707799751721610143837775406473604505397855960069639921441136709151373654949769194389779791868540384654434538431957703577750836969557314352171920409297017583941758193748090163067685170827551677702382862691567073591854993614808236084693121060500771203380236639267788630254623781359477862800546234444331728483964468878538095837575605462031410383475666155348870261778738393700184060782013036240868091858303309882058672717434058818079761734352040113743604580731192426895237323483715945661017147338959719273969795209158654223762130123067547557557114571193723164128150961662366683642756096336231764798520226963700387970194898222127635693736335007676438344067625630692630216344273280914977501295537123403281205529757170369312000952368200705621114557855478820702354517633529523772501102792761850338997949570512897255835297013324441743832189011796860214156323218315511949269990538012753062063126054941630491252033049971446284168436425286393204351325300522772159742932452054483163227671914482967667924039559717497659841668344797555463448544916281249483567418107499927035005494924742647834657208109216173281130488215715279853028670577533111052279601836419484768307074124260107781455066567310406099821940581626072530663888245149713825986557542373913042021768974029413035949409042002387532455983945888427607247609212718689674105513651163046346954819063332499435156024846440792963071419439563205841745348184270459606156049932262551565329121459653149340990726360283415884534479103107452317878419035907381931440664970963984268777699213824941150520540339058281171867723385977355193455017620569076732600441199938146712257525119169408795560485605689497388317691116347468921937352713308148996864970951918368191161727401505242619062516323367563454148158184211813353157984197875904847193793408675747381218789696754344754931701511952706415524898537258288850595662962001813255071295274636958989368129161351769448395093580801809024283819198116173814485468851856071059828584191525699412140147521535835034793396646249715314544275549545347213683068803650713798955484181548161882003229905904920744682214956517693563566684436855053329627133105922345229456145778361393879154226561315912354787160288087664772196298112735602248310398451280345491370318938197355172102389718886646698366621015829415554985305503838203020620441873233740858434827429053827977825807266067411456056459048015693187364799372049783746580589751867225509736186838088694220808861505596944141765822236690846947546499879798849748843436657704076234920653045116853612359057197474711142944790711004863522403687762308399221183399000221497342482757610388040179101288850734615379344875313563694971579142723765066536596373239864184640594593654916087414064086626111032071606566190315921473379439139009050358721018948362902602800807119868761112785044191871366886739447846625700015466808791747611499951393276645947951919345871572673378729362222775982965614180800336070730408714000626485245742253498581314697189227737620684520219589119582427427962322490044650404804308251681195719268435056457721571578152754608432029837364844798859634950355103857872079555779797047809241243162655606479592805843171896440084725868061445698957646767951032479060109254460180169498890448504280459229303796819884937066063834859372265883627543213578147881764514866632696464516298226435104389226354597933529121145841106045226304169410354265980188179416683514233085595840234548398842544157877116267170335522982608435154919748757058442170096917776839485849897647326795859035898884642174652492128137205367653024526121033824210644446227369658013070346185396579198652436236999146063865716538970514783261223531850187348164175352426418019301701999126947872837654624506007767099993518281589269304723901274697502472487630577734193179279221079010396204943478243712692645884041368546341795247007138255078076151495269038210303067380304736977695269080520194357848930843984658394502701113191537390569054240175859071317936825439580777905748333462516131583685961559784113353146555356758160523132821226251221168028476356902202702626207356562900564744024672315217835074756083189569221173692760075711172657109511954197705858281013392747861888112342860773613047034130247165917583200402548246020770919948873189814215962194834860894113908354407813814335750826624730515720985489597162945616385603213681328903177977520722193742127084685820155846799164608056813463375820717265085905361337977894530440654119355042323513362142616166581192486280984193945909819297753905154927330376750951108956342675998804873583927566133407434823077275646614074748313846385963358867136703133981889810493549468120761769328601588945772042428087255597480360090528335472436889486381412733440892934009122034696527142782486570534892697396729522401633668160741591362641722603965807247457550545326370544752745771699104333232957227734482285672505245248961633372621103585588758309499294182791720345615002036818289183499715660428043484564258659235445281949118884617065393206732931125640333027134154434253424567303920270587725467927750032937818368411793689993125601061526697220025153739862441034456460182584308037988419813821018928346610245557095220500731565349065470297155979756879936540809749861666150033668618742982018695092547434011770622172479072235908522973124884531111850409999231447026348254673087569968665123572678136611820605256624996135630113079591012413852644792003213673109016325567018007873861088706272695766087360235780956268819211754114694292328677325412786409040379795094179221932986981619357604234756625087274114131355013618069439492355889828115010075039185177484938758338947674041006241598603109857442931228946619519941010273173812514979276269492916266892501799721981516504391156160911953980495478701149563393883790533253774199470135519262136993297117279022338597817843951882499135804208790781963931185572251319493866865399353699458714364822597342331993044487873118405658335672885947208204774301605402754597340919344066026254273405241015208380041009764652402566970502252732568092580682077055336630026023873059974582939625582909166207149486177364625250254034675278084847091464581219195197388718709883322213856844333202546889302200559963961847120660675010792990236784159506371795122307059366635156684712660274979265738427094616651364990563331664763424938515697770522029693035196724358589049842674850192911345625696713553575195977689911338439325221833302603394631872768116248826574906067514806011868686657112593281956672799926602646287931210692057838440094034045767913145173029644935787049530530418417109624779090109560082975933826483406224165747677587740052994632870378524560637052912728127898531629085910329123563680319251047851875641127751220829411150064916120744360798555233674527923018341434180786558279912087963491698788183306132999385505507948975937979058435566931748422454160255145700072521081005496445315997689692566134930147088424278896198776109593732709453012054498408558174975041505017628841224305057136295682637749346780909813032009085899946155237505623362603464975141264587604128451542258040059877863641436342120293302787931748583885753934276730243707021935341737966625465456665055659955900163076162979572999785852678270087694586263333328000269528663210434042032343751512083468588339784292193013396042676444937685908316448499309667445825189618656522669390268645658253358363236367442146408341539865857437654408974058172083309995626178743001469975711273961871811910435258647278445175151033388253462194417508441102249751585142788453799173834903407905172410854691045878260163812430650583230305022558064071499007753517024115031127239598406424947919668927335606461096178442200721007944322441561077471882880993952943197388281518962731489636433606772059318567703612853932098072279959745612987685026376915142090109915389059651360004304715263151830185358134568999835201134269835158922265736481609172653392540620270341394117270317210673031272543020869334199246624838307415586139380230950603437628849660774572391480726755669419980018904088598896875115210792114317119476748231565751858556202243877972626508375616427642550545805472424691689455277019697363556849291033660467231437796624328251179893028129795473571295435704402727206664089501578760097955258239749941205967730446837357980559490927998174785671298404555146318259594487652661176962885231315896224466850776444740409468145432580763898824866455270895143554456169229224926542224513069407137349411048055266578270786843390120897181835494687219085254164384541720834850332526415401312622535273099693676433714524123719637274759666698878013214247229727318605408318226230802775992842665658967249717196608111598774189202598183436486564771372997773004887586955793181174331662649805691668026038636592522489738347067310212036895560067753353896001210058962255227180206436753339286544038166792085429676321645928805478418938649829821173401143003984316646390746954549431396427465491883266855096023474280940149684864944931448534975671992287718916881479341365153337082206123396080700193854526741826622920905066829673283253619946590931375039127619130337384477564995353646801114691692097280962398800864113890215080067388317667102205680472828435657325230015200314142259052793328290112101251432217011269067602214792536609726381187283743907449275627603481653549714871202026684034214331331131746639761213323150908191921810957859573559462316573299279040994511864245106584299741576470393604757434811371888417042828693667220519727487998258420335465914463197116119279583904663503169170430152389700773213420942728210880071581726216060466263157588819316354346569391322499856742250068178526760909563210830887817886851109484398227801358918204154522249934580673941790550540570242328776913396130342709530625041683739780059023430709936410406390405427988937679571458198063470524534998856373163656354830530841595451190061891214578447898507802637413347530273954410628865505068359882923226941716073789593541692691389036714366444083209240298393865167750911706286420380083483050652539282549205414173195597718729108656765487066821638862387656419340235914221285859874604438686600133875523572257914401972157538844385451205486311169460095807780031100295257205702233852895630972494399329538383395972746466826053693563257599099042323381611237870075787327777525933841035722462778437923340244339608324041813492608555369013227728523190350486658848534441841724100711556995575008808407890092268900181278449887545949533870916729708566305566549307800398038400103273337584228031368784915794401505065195716061551128262363464598854756965367952281152685713872936412553243910880127983297874424188439279439193096975676734729208957568184617772803989499797204806580067559186444630076571799370760457016768002018076079022717084733280937041201164363451483377954009479865815045868656835749500232667082008248840777503371950680329257626077201786860836785412117603129783287586435352676883690446238227607256814123023055848321786098730744157944438204807984097810313435526800728413419523784011050090909875954929441619603176762897802591866903507576008720431651470030349537882087327753981422500268327716301869191872492353973180890047950242302133510453615173184882411886300971103985820451827912717221839408447504927860871016046992647057128152074148962951482459495554102301705076221437890562556191090598700501083857877885744638919423238545822260864850210637102941240958728821164478086566516970715165891268694029178066878208264988110075912784130919051548161560942526254591273932623303652540947209055209365424691756528774525198489131697720656816482790840131048518473258479996271597986396785247043709304336034443568488040331887861645432932136098654618900262976723692713056923929792974632918784448147895976536913729341170589769115772289575708529861773622472391704026303934466922291076581717072925277903102929650401655508367970210163080964352321260460023401687930007202756933292962131390909267454539122539360744010735269827123850708516716270729254386000448091176430924940828333571416060787699096717717095734031194990915184062291930142023401916758029437142976949040364987714113089246107426161371846412676526901038599738585045366703537750503944384976543569151612887097364914800955244931237279229611833762989089593694051138835423580430079073713550955769643808464561666335133544827462374511753033912671534622196101581039359034319323134035779404900953127281797473017340202634138608932530266642803196949244930376174555742304465385898118833739829120927414493741177764421250330024361031722939151291249758588271718740412930549129241311188003869629961024551830382071959550940446004390224142769691172592291212797116148115616146528512254141924971602932326192838836294505101236839122404609575800087660240858399312648296896588026786898556535467253375095152498940138369840755041414951014688537580225827333276461546478567976372576100260121981843331100557719474185966590687753736156923476878128627592779768329253544566101264641087983323426235920971412287520181902127424740603111340312139298562657016562223262478831457061424181512347819331144853323761172244022031706812373545205159475600110805462179760348168912126671255674357196209714689833818679218475498669598727610576970776721955559533714614750716850597314571352210013967888892189416164109955253125807695633342166820700746078701418610750223613759113704085183316327018722379787284896095626878148927667318521686657196892410814351125502643569714923869061172553668103625902208996381063033327077795856459755043748472202743841677624456230582292132916844919181635437339167640537985151365516793145155423800314283912886484243508580287994960559581056118791301768967669175406232865260156678090000765301552006296771810629034678198547253291439646945654058100905342755176237357246038531973699337818567428762056319433589838817917325891482775013292828356831053978641768414692672692299183931897106443944678367842099778603698735900807597744285575832383636403950526929603751717327733840600174538472679090561810484368811169108818430157428028031533692651480638733808574264763942632785016186517136885658526110532068445329090029418056209320879299728395329130900185534751912657050782406051468831058187459160158306591377120544662706614096230127968089253550105272688429682239525102635547174865353704360184429034124335806175687346858472773914979543909042133970934329669225653402750532059198155068637600722314497838870768588499187595640918195817373934908543558041326110278779909589614297888332245556991733614813262608302781609361112642766316640065609744151742312722531834622853304029652991870214324341637393099371268300819272434360958035810900516492569380668549368772819635787997653424841553949865393283458613615918669983198233195826370148566894291776605457517858763383192207287284755636896055513475900875141226871639594414236073152321520828688000520063345503518769733653283284135589675576115329856093118046011104413978647350900380943623931099801239360251858029961144485949647384422661601108279590446870792024790543171776564733121464393153819922025977975361520599058790713605573704956244530198896632419329229896139288643422249553813730775898961893491900085138516317238101058749025319684603755813400001746394591026519094786511462826005782456139179197947301641075124475587990132539514438665862994109490985556343872772704964553010372203540433693252485783101044367902395348593625761381053580453942046545823581029872360998161282077358123280387703411666242787824113523445004308148816933396484692304073892821459667156734954083809853398319089784918721985370586525041724041566422477984007829674160940709954491857479384571053488543533476233727820220451845296135207392704747780317047530320202463734453249754261492823290117617473571799446536523430491590952769233902387996851711499555207727477105907977984451500266607604153594398463898494213068407285886525827195673364347892505744677774093289880154405963032102136028371803254148592758511944163872919944243549919493627800414314526501494543002563490939578518284096267076483025869879370771621918615419296713310564514516570381212037895141168606779743429513133443223903707158231652465003118695270427510093167725230050470355293866849876322609230753505262816824679701645672923504149009189791887191024996700144756141021237288159951942623643486098848455590122730772642722740668241475313175583552613300253878477709685465501845497044560441531807195598488560598602702013892418157935045010968433889390151377428040933250538840852493887664969568022968009124400329765112792475988553103814781944317381739926340284530665313091000133044106638394127342678697937029894960877915778979757464271909702923201464075211289460253099239167003833925981615314061388534591153938712928098634369357541458985869932022369513247270599817797173361676062870285886806120283353037377888504801994650965480324131106650146224386368665131240656097323432552560660068860042227775186946571250583376455555389306797309669901437779203659017598646149800736042369038687581890874163432898379066869072827937524218437548486600518536775859315330756190981842263421973655363253282528733047255791396841518444727078766541643175312941110810530682534894823370580024461757828100973387512580120640032053592256838317086102568679258821771910259591089098295573759832106060902644166596265675801605736884059876078625675742170570667987696579585282771278800942334986175654416400479376350144040708408579930922552854565439563427253055322455409797575296509700953355810218236847531388580059294684446739605203362412398655517845403828491095800214937438095769361234386896042736273380564794487303581056799838865351676800340408139882287412295558727574457343228398715973326520106764271385957955783953227860799053472814164898083868792991148774906755844302514258402324531528321715825380626695769599413962487239817590650537181754933275577892720720910533594272768949164183285845440103267668702250395226687439876521074715979574910712867714478580852665897320984894308952401685683768380314590679556147016825739411692904832016267990833367623117195807999422576638917322947237370686134341867779638978991504460636545114990220545959502988904105352320748212645631394901002699681673345424276086751926085863522833725721776274709601367174346901496343432380283172876347986430751900111643820613999982771489020133503671429548904994247481031504884483647681807363811969230762654240923373382481949063038313782343682891318065290134378539179527495676354886002815880605847422460886222722982120039276260083602366860122588551891227024709712048797358890609163156678822097693643254051566511930241415975386616209497552785394834339669746021015127714385867177634085516832679162257663069773878384351995637632053499597344186961983969701683230697065676023989989809633930901712698568949973083025024668875956133715388672662475850339230707288357056067019116647725236959176117593806061380831150941406047844578451032238502732123433005525826206210797716015786641660254446543242142200372067640772908006954780153338636809407137000413166870538747517759585216582703754831552419310826756718545281685646553488051339064036753162294499887433449252756187543761512827660330448452014336341416509946912660647521264006733211533709326179233737184760294799507376578082956959038088781618204313337250891187954259147149149777103857811068511184070580474512419371900528412843773946019102379396778977518079638878625867600788705855187131231382256164797011326771732904793101629920960410473298501898487084188622110572432138269924377249831336575592177549651957335684446142510733881426377220357504310682612330121569901287532174525654060251225071568365928614621082992771615832795778672577246207870057337638396116782757322105777680899642391244633742847632469485047430410160047688048235650147344468444671570482869934227501315241654241702487206134427564673355207250872066855707764170408920727672847514125768590920840224778166534063952967489358861759733730189301082538948295536458331685949291176611597152629184423825580931373294833667639241516486297904945401418108178961056327532018782104643148272804791415560413921818032652690384977525866483920218652899283795776570074203814188551425107911142400834402918014960234448217746062894328333113740432495937061860085064476016359761633500860823623624601648744181541818322350929483482285425280144911616094122814619729743004799405882179792713343246732549880809757342178457549883936960657794922289781943374948788368261789511130721764256958735295298143200288291061841286589080460781804788007114408800375079017198733505191678599499798128035491803070508380634913610000877257518646504308216619485089474432445929076703781693725768503733729213883067947079491105267824630192119255233368924171163238705675998236941229366451816730611791894919342261058572613359135561066687353310085942288199296873627283033935446539644620257710176417499127341444034782644508758413040714605425213028315532506340952647870415012270215307363108015208277506152829013435950361910864099760509925767852422787577392211047408334953244580817669025763330949007240581940873636391652269829211096644955891651555057110377386482171715850967737890258770200803886300661910336661904413736016245486247204354821282285549107933486868332268993778370617915281950294766548442313522759930327544915118158906207219974758818806962770115964411530253595621394334859801215293870487121603716876305468418749402049001396056267418776345800424836869928599061434893198999492828707763130229820438014944001053823124708530510750459195110194097776376565834768198503187443035214432929361095941964748011290197791809131825744218584318003550992398503263960006492596516220674632269666080827474181194899405343636059297957148877142701777760871447686145883382169082384026997489430541208008998443208178984672471150066063895904773838882877342622016092348037252719319701505550219819901094334551040366105996491182547751934257426552746979414986843699708009618375728953895670652677586310464409377774587642104449990696931179184377736286699383367290463559435127042352668204480562038241158450796784183599854873634466280482602022961247379313114306121709341096914855138116857772726684268772160174173015667018856018980684070869728662463717441435113028804995976824878289578095796037684635673655018016164436285483286116051354305806784251781753263512046766171184015448023794691424647485328272529315913340176973951966071573067685173887838674864873576279761801045037548316247770581409944026583630689643060123400746986883932796273883150296487099921510378304926727135057938766131452436442236871622500789585334562648459530426254836267180797018267451033295921751884540318741141158685345395951605069815302753965505349440138746862202384493137710450226028290080901320113716864364537750119782218891493521800006954640560529267692826940109245862171653822373539353570471621581905343265858506818291006859953488658946879446270575537077396250167811502980735534106092821681531437794459483897399044825158353254469974884221345776802008921836959210089083843450342874838536892666000399818411974450422436063813207432114343145652544514579440314863249718450772815926817678307242702912230232672311535573133540155892983770522220802674328029407644377175731254700814350859250993255137210036981500472952956120275889969669057124813232171581498411525178602984071840185273569355689351519281213077235302077892254558375014152268956377374851240318487698365549570164412655694337216596338182795372625315650014259056476890683359945890252261825889843715595575988177918080999455374265194423959245799546439588968979594116171620376318023103511120470001060727767861003042700267844515785029720718360781226205843001447305860732727395537602750512243137911575921358886390114010595940705322451820637406808258269839363113285748456157143882659593137786297552694896596750162563075987527212350784157076181879761292837199203290888758511858224391782328921812826633788265459801179848451327987198273105900330353157593260862825190297937595639691434418572423790522761708079182014361161612542887253480293682481345205038636480255457844177871909388924424364525520788047493002878636905034660047256481175571682398584014508577958495284164553568359341039776392607645401310076773204548105038923413491345270054366810292843643417278815491684589937666974154602186428263081999563627029465013648234579740944302836620731805835903376146481208619121693854312889019345067700693448683194228570757706465376307756803796698127202933366525730612463989065748031675515283606259842440552615072318035025554599909426188647206179799027072754016671438833275296442400665701420144631917249259516064485919157279904018923848927466843569828073852447826354448893848614083595830416684341390646718646452572057123083692083595936562125533528125416722923338617116973864815018350415127010669748316143949992380799769148493354329017745818475697345346556357704338218912009922685955001959393553299592385560338123788720883833211671208218202763381165735510669665858562761212877497450657869519095909366870497713041306789165899777782701884873322734109904507593907366337812239370365730522488123021617918099721081496151904031046599012167177487602647149268918716350913618951957301547067369668553813003909107790328468806448203667278204093246522043439665426462199530920765586878014986908259325732041562694341948014098292411168779038053770860334916510622589875700046562126050540940500620788865900428808760207287702173599348110937513465265772418031545528136086173688231343573311489963333055477962003166258282230831277785288959475887550075870092810512071991293077134880383697816603271493848816924019882530601536503168342172890621919573158989488626083116081335143333790258392332861805697062826047391695972437989915461684590312363025705202011089583837398738739335658588239267288905501262709943772128559912763435956691398533833963323922742265756318121349919615331511528198287156567788921764335911280616213476820143521601072412201548253587532872813911018509905723464063646888226926734508764248535826958218368339658958135399653017299769988030855245849364791581124015764500710532127996109760433443023882563271674882826639922800147234473232645215096624597880789931796552615282109771590264786797117801176054480011587201376848330888016748702580600517615957104780092196242869934076373972729739020247538563385102427322071685287203890596870621352008180234787865659966100879519062895104770019887517650539293741634965350835366333411124462331377630223588177089938857471561544073347152887675347418373331728400513365133893041488546127937933947634946921692196128041046832012615267264200802511784342730418900906220776603254296004548186656201423052190696890596184357940316784149573422430101113180611971580964344284535710446939832153606843511528653352114961499743517155605442717773437920573713164952716937625205970122057754021940462713087137437273032917975810208580212276495520697102639065750406495236607553211567143678025859098875409957096798321573719498092017767987371395522118958437686597716052036483575150714545699876778643333083029356344385312798272529289520612562057987213497381134128753409781149969442577341316181133827436831961866574954635975818282517639436578378780515988893642514485474542053413381316731656529948807993492148676864727604418975007640718284176591659264371271055730040192516203826071890094764392406501019439198414669243508899185605091621258826048898295417843421174900609983675710893640077513900039682135952833481666204601869934582838271672775074340625460771497224562963075493581463330162179978636320752641967294845343023152759403732670485485737751955022196204087944429703577210555178488252221470466517886021558684762773559125945410784930227516124352993651265532654225062461024732400480783949921540745023478254483295878995594581054780968219081301819079367729330866303853327457129127459688928562366000250562043753843634725304423830824769219876658154427076372253275542360112379096918671046307917870894250211407757764853507219393841648740338086464559281026073740179953295130886405494437641044686010850029051908417341708921781996421022728007211177772094302584215108532728310910356149202617858955009936852221112724889108877095791219203734306981782336017136327968271499153427730178122360560391560694623909459058396568959886191778776842491034899442708895226713171036581924507408419400615792449130510692663236322820121784565039853005227066834560671479990031596726851939428755613605922734424325164557931600138240904748505932354090198819600790257584904727934345016970544855446053235495586166641352770961553837126058515760911181447326531582510381281825451619572278541302946487135016311481621640697725444573635790351228018771799888298560254388106017628601579998495470536495051802300531262606521837840697958796041883352924176258934335848909225774473235698158325518490258179324504086202358558770423138974432699585335699915918670546487158811890900761522695314758483549093500071450944447609249308383388393774824135468631117524024509897512878506262163894838804548910049205603105012644160269975922173247981515625090003100767733435255816329329138959036164034982880090362631506778083302200628037810245652132606235421090043694740699379124808548376817937582077511632256304196484004929411968988764186066619289242758269242241284748612862918094385898958443474294982739683331592434847306900886171217185824643012982905550122771688570603875117246556267016111786325524165939363968270618020289055873361695870715653648314416090973534542384061451618622568676846462596270668718921261067331747801382111879230229637364062916056277407833002843629744309362169932869981788075508196924803814018685974994119967998012950808433232625440443009073623304687416088001800766817069876749534475071092267553176334641159306500661002251966212069998010311145969050163736836151150849549025767686791866493005826242762692584942451464137157944681405997952263904347007842501707198231726273472689458650393458938920362804755246413882350535103100247318883805641468612185830431571528565753622228554744153362717016343576479742935063844062501553548306977907233954391905928228989166270192954610632513030666078526423277574421312720635628290583381557517669684535823008228062342604621546092497074136710162727403629325405722465193326621676699008119155702214001768571316972244708151196720463819245184810064425686658834333857362269328685702407717766618731128296402804044329773783318736900758391625754443096374577730232677430123317186667084964079718767889045538621420370747623370794901560733467243099057827759906433608479851746992812803990357743008300027323720380299125592273483284048180575792428642197877078227540971719841398649673236359328474986018470599501783835627340258965003538523599252926090140835324098591623129680468656895337143393787025760222341212915035141308231624937476302888657445001156769209365211424758993706041842518502271522093773773139166586995816904713136452118026316009510453577259656218263361138206329080662120733192887338218167355371912369735952516044031512366817534415740033388915668993342346499824576815683579145657966238189707145782371516331093696821655247776376751946538435832622161852436148164484517977865218677728007611551486154551081591191790163436670109219235623013141619550292946671552996619666881478708278017487678919330435465576351221416157200301614600005348820759954129766326222115970280132145698046151478836229456129396678012572566285586496191587348486953198340287223021672754707212210348949671067229787005532151593211804519013025797978167852389681978102699759591483162407944160944296041544143325731562166525418584144175828752913212901674376530261695181439062473465383774112058804892301149579148426843164705108787050970063108114734344730936142292627757965160265732129606589007110549792929265157962302409859103779087747366856316607587620874709175133300488336898039912577422488182752145080022485669117640329489166520481646934577752025558205748585992499666180258703170638395952959445291342781590292524512120642180127818003249668095827543539765016177466280545486376105832315367435921735681529041661936410849653860459333154701290055694406790282624789481657552153476950157719919115482383408060193241436346364883542977843643435425518233794846513403466620080012872390337346635324043209414069513706208284957500809139721033167600009062597820427077807088150963308563582484696233772981909383933311680523793203594225058919489643677906787015416395468234052271319944947964905465588989667988603837650050712171150696884545640867680673170876598973491038589000202964700953208833049736025941784078214583585666381232218161555273394284345405072822389010069407115676821933924120217121139563692165075650168151445232694522807150310939380525042124864339275284406040418292877794781494977076644710714847621179149207063663647727511016204431824801048484381070967481297472309221788028153662173201459402009187969676534136863247805436360905457872272245920066411578677195863727967063962484747438012456127076591124985285560080505424699195010913218242976999764288678450236134250468434460515744879006569720293319739856029310678251631006905365333797028257322322800148077142043075432569785137680661892108041874581301579853832471574796562998300451871876377485708088241373462664185887243632988188292331749642197888906290828324542796055984636445243596318640729283085705851200677858519508916238009530969297320008266361064291276442651630376332543141191602709573484446360217117020875514024971994459432346798218232115815902210651508915187400461233509979554216809175710136030417360869019897399727300045508242924090644592009522138617853499416575919512412755924066455567699953446552082444051224702135027456673745015156203579256568286296778303934804455715510029627257326578299628216809163981068652962272899099940387064429425932664441210955924694668386018102415456343912245942853930823077826462217216147944600790964059303084961989863137947377441199533691257067703946863349752802512122066076351228834554466785010592180373188450898736608739046957271868197948907919705546962923111708728654693499375050055703134878850956534666145947148998168891019331844749387559313566079795478859676463799560123971329225093425037619806589172865505598848228512349054463710497104873467266275080476276254523147092343048841533876053294229443091030162932253899449673693170549183545770961391006661950533580694181853101538948967910784669593015522640891269430752298079563413734265410780119080545453143007800490675456763744003194352493396087045097428715816156916681148451671804414666008244920735001860254535107168097244527774626515021754330705095316873220534262265201997840591714418479077572146407386549694385579736398962110774058287530653688845501140414111107424647051557448902615709032191490178447334426883429843037193977507290479572485238031692107956204446978023692140532644822566987977028524573271910239112845519427487669335834947343512356275614703043070187490170642435071820777185864780034884964449785397812434204977940027389788126207002370507671087393670768930675477066242292800296347129531072317009684729413357893665889250609223659912608743626563120386529547132124830938354961017304674717142527325457220495110374645435394037610419849495580301469529894379541901756250612821536807454323073709714963492698546028762601047009273880743838596853174804473148704350246033306364207308211392460353386096733022611302312298609176899513543667625914724814477905290602326461954286641894297644727429380635612692398121217936249457989597277008208012172998342562810657130104597361825554662066293496098406035272041182523069756516957708402978921913662086295317774193701710598182590597135165873083843058465604970554126254651195199776824881446023201091938692405534915029458222630630208710053946102251395160295592378382407027863608976225100990868940703887206268523590678769896227891365135198438964012916490127318750845713627984225243931583498517339735398499743996127776529606261340049629126003552031419746273316464251842706175955510590555389322110485258990356786844867848615915125952984504886036700533668857548511299757871658634835636414994469286025697421473031891570350144109598105278442889346647170847622845991117434546545854829763435418095192444166049272328463871811304101418487543704709529511973960001006472895180571532859471847753330863318920131741005747926811475637274774050625995421709444881259228575911513080824500423804423995751733840834054408408104290907740689916283136703196889611251408404292174355238900446968963736903830359712255284908872010886252659913768441347258503007155096848720813833173887317876340872361633392344395159944514125496763537686493779781259763579564585291944819578631165201556150438219157316683709152136311689766855982190825799367436977451994820662240661102318582111691883727505011221056942334991413693698472680792428466468707018110851352632269696894907557650523125601351635360104829167585824317969757206426031103741627249390321528544438004711637403698483679384468176013303389840702143547741769137228130811601101660427386550681256732240584530618442427206500584772186495605864620744954686710089147840375384859356379779081858027408664910835188101066537258470841990464391451865568867685611171771322566509132937705266850310214589284792634125596675180015253200113215491014749089474521130820913522128410301125370060129942750857977998386254953434131326599775841126632895572078097709125300497974328640378976418378335410026990719019526735533585435485367219541119825379095667040880670955318182152076487313706946549996937465065305003830735016463511657142477894253899111647929996779343059676851084615132248749255677262290387373308255509967265002412861035517042070406544178531662972842506288999426924811628484927130451883634950701454296670877861714964490697899184822506241778442736943934481989299356004346465276498867219937283556498260109029537142298768538304900720259357592923645719653219674263828051090921563731814904570684819119855839698507584211947340428984755991587745411333380905955447603145484447278468984017285804516162515360655047263646186737821289601102960207760447562871690014912850407931306555507657468089329243042256193477188649534909445380620302303912295239469284251601032401577283915392520669173702402382823766795508086456228643158997499179644541438219567851818424119060973251618591302929338729681667730994143386503682955101268690204846710604942444385651860393154475227234674581870852634196530975789346010260022251169416228544624202117329679050864436682112962278384871226973713641203365352307970754432847901576243774239374515950806884245073849994526137042139717474783099733505308650016511692147198396006644285307529482227022256453774883504173362605753099655327243235654722579610097854175207891319475274828557707698466661064198471590295439087019093115209968169958419489588808893977998942569494875836243622118152942657570819124207773226043745808016277020399573097599058001418010405961097213385935584941627117574070758400919573702608773062970571829578763041152531652086338513451119045459681319417230854308722190866776797912892217694073809695689196167026043784754795536597347970748175815091672518971385760603107082312707600715043860927317330964409775111449392073642193069925818479187165956592599768827272278624278002611804694270172083988820600422447521376778505054704842515624136076342720597368385910165020641657342069539150048353362129763426471972448759526232397870606110750192119938197451520280335846507697182311973091085358935097143795640847309155590610807823195234808819920971539655786613839837881686869212698992818650707750528569989085768519805470600585181408978507793433086704640289522495888590728505263194461986422876728606443806518714645073408826073333522717111532070775104059126255577194489132094795287864204788598488319533190205897856450124927502669554658159357183844140789041380421876562109703290455028968170939961585656526942525855910226064546480217522373013083494508064189795361649692282748388361865368107025567712361514632153557722866712624228486843410036243677900957857454805668801843118569409417700864056542531701784614567381947360266597574075606816154621090811629427364204237417955968507180902273676693634650235302060543114860708799866448125859060079599918840730950264715242810529616537534629415042399451144396538355947599934289180970060149138663116084041152498841017992103046405987558083296713992826832206990629060379246142707520993387859555140183778171441750014058235988156393929608307734841409317701813372118313629074242279188890669373752923033243014369446182202084641966745073219180308843682549899936188062483773821240418419498611915075812272386829309128844849333322380517100620033739300253587219719191671449007267703549064461335707783277925976316616147611998136762720775841250294334230963544264267195359786295470300374525941018043581755276015291381871148999098089007373514700407917597666927370096597049722808892565909797696195734633908646935445218137364201781008555920338173799295727663592757943319638663093773714946254508492617901945291734947866130319588438536681640358818733649883110094716449931889594632063671681106477829774046881538749284932512424220090046293921028669111776903470925288430281362461443438154222570349297090327840712161890495581415339871590828084558702617300911199783310008175893403547065368558702153973158068825232323906870576035074964000902825014037042910380240747313266298652156876507858027715293456646969566675046766495654681462773901650911811608019832386809939750333570685942554934019217033939955247273216617852009295639807545233903174595122704693523100360849872814963420098843690854264882002214419035572510302278787598711850521691114068859116425458130884993303683083991647944830322402491617486978942042763724154985186835791804398042392330475377627974151875687989708976860439210393203856504282310601304470192341830566462335893327524563218924399414716722398275174379581335367570765033374275072010271442269785465489684744425128431741887496789097700449951925068594103599397959111482622306475897892624641059467494572872442202269043108221580794367900288654969518349055027929277294273665885223185834381069422831892853711058508026631030842028171501448833105629234759955845911943318737911000086656984653724566387557990771787683017794242171535544582777525834460189422454566471904262720704653239492266274387303179803815389245466438042445671118068934344627327125627214691287127228127970418298432651111526739348609406181673866900173773554073961245185956066869067871257260536420931770980119551919247929245975746745408526873213565372571804209459204756421180014102696080876836991143863652851870390471717402317604872061371788161174063971297862915933612450503573298291350598746884193821722504376334198798840347004028955410349648815129677143016640321165440013038274810310391203704575228138186222594064960681156454147392968263096020494376732783053272020790700411114380345936181319792229038476614331249963274353564125793654894483774157695787920375510674381752986308699027682507473704284613462375446890458028039045540487819515982615403634149764699744326586389886049376106625087326336749739681506685157275180581065473988674157559944036091340288859553074201749359775556402638005192588236642804192446639796546329434281830897368055159989628562518844958266469231228741832200228138786085496594759959800792273149847134630771779317506089265000645423132947329862448124049058717177461919880065726936429172782440137105675446759657191188115517497584503908293589114318941565819769379997700081344024632829172462051507617021800920583810596429172581650211421777665656947678717937674189899855875205218052294526074586990018929169821696962742720248345842063015262965193259975519626019784291607506135527589135787159279000009400693030405474044367684958519583243276741130493590257008071783429148991432848120419579209874491537946062820476252107122191366056564561228160317047032024072111470032993609711323198537194202578322827426595312149957781794177038181020770837596573592041029566229353138695562926301897670121557259540890753982452097239707684181995872386155023205509861729249353313109943476692462588933082656831848130348498041115032604059414891652155981754034923662017745580625546867586111551438750903579215741950136510303256889178662982133189205740783843384299932385822988728464314208670101913904551536017640316245549179552508370020653152167167812405668204683725612649231877571869978326270920698022930616985103025004657596238032060322503076686722714396859703131001216219401024251637425304279512575052844121918581098710740980553143636247701182006513192395743734278523441658047915075877985866446476753731089864675209253877214137291076457149720841863027193258350065616703642252379096231196313959215575301771816255548047965358954839560075842220913515239700415916293908887844674019226134777902049580436724926079173881384592609034404381800899883728478782045822689761031680505547859721912891118190133694674951420155665835570000973214825458431845985463897043618853657403657219210145703553087529876699266513163445727029546110502373825049925808586567075540592866151132470839794754356959230026207636722178258123487014113178141945883798838958954265687200076627317407064745105044617656163037845343329170528229973913368253333828131742305360361815639339705399765811920423903726087298210121080589357934160948050793695256804466032109632475578054423604955204953981011573976998682867935450634319327302248744414929572197146248487721371413995854712458294412105017978036773711560923891893441661096809632856914126924704953211222995351308651872323250802522400062126900926252078329611465568120727175927736387624828303196533096956175817235285140767145401650816693813832997008944172666642755866392030980712919552766263269980128597711312493756306202349115034459282211419559096149476889828609042148587332606733080299422045314810283958005880970639170509694394614815146946558642360403206877237594312808491693037082303329787747758202571715355006245196131898446814749392745279325300017036013748117771153581102371076887225328728070827602765418938924253500351899619814002433901636682801759028105774905031017748232041823678211709258266801275115377017002572626088231652909880079415640069057311280963701066135415031565322547455446593450331752243207943775377403350761658953792591618149283368432130272043631432279857349935574255093782243639246819154352540105109239547528602446276420362627212956872688143329681090844435628606717203097097386209611138395853415326797855592617157654473467017222473599903543216792235106546838053658698034063639704373921843716937372622927201341174199318742574153147171994636801453742118492780396541293713983741162510732764435057177146633460115841200529750715547966154640947104966167665356320985136809639058833894692059159660389629613046660613988853283847411502442359546962077023371491210791547933919454333626881869348069859034953325073912341362460219645176396047599614169044129000597176833409095475560857559109180100732734565062727726769235033616648398349391913573174716087326199685032305666479591495769950410033874743686692216472535438974093629316196889026900677280504365761510683137710332186998752343210535854745878183083382872229800062486016063604392511451225342584003981310150167818776216852846633818385334507720856810552927813382255106621678424266561156942850158994479846680573329190140431219787959345076609246419092469354091302354081608994331998608682531514479064100373014044999978692797541408710646608970949580754670306315541796393072993230909498907438141905320977569531656232572839820532280170241244751573390459494698217897079880678682423770817401401658752596446102794731675536611345794486720903506585042593400590824469256632057761112743408317436731754991632591161339101707812128333087200491864238334760533382338813368930537922759932102396156621383592767944373579950325056675983275106384974722338814782835212456522316052855090675387452629585871047625568688934539964590679779702371197478569187413501199358115916075261060406094674217374692765021227108553166088502511162503653074231154376578232327680842790570936525902810525684447437249580442133112488922409116996580341778694461940959662287988544237417680251340615343179415913376795646815135940787473951753561455269223056879196604875762518567007614285842611172470153067303360868830837039080083576492658361058613184000956400462196716379579871362015535838016861784260741243093260707333303493147364576200137322406927556996348912783365052520115465657911640429008403430280544211121100339645865819802859175028584995497702439069632894132581177095700106902360247476719759282121916038249068657359614619445747663661326541722524809532967941629490147886833534523607136831846919364987815039860357785385108136721368681633535906318647491991997486380426841711446024834767088891976488174934146164691851618875297997364972105290607653266774315507794105743646814272543903893282566206633966811623231152800974624204194031270060179677202212812000104767511215133749158310184039292944483722836044785868525103990579090247974679149747476085978481282867829826420142239195538654231265905741671367570442300035396701279940141047936810496754813003945996284091264536617346781823270991578255054375846809392223113139346658858421586834119980863732940563947237007107440670619244815007160851106556271024307192858254207262370582409282353463419023118320245347676096760963612401531988240086766816933964754422207659235120349721835950415254796473299409010930800279123481564873947930878008752524243255476491420525026597455865066289959542219884074590732094004720152780196271951875151517540955330209423041939189695017598454316708514755350240941272137364222624982891107672714973380333401740565092485796145013378643194312023463641078473794969091092357151023491816486374960819532823615441467334464141623673215349498953380859800341823240918863124305813830752096161599015244240200027898380763142364638691625398656803889138973188069283107723372624593076793169904933337391538391309820330982497223104470427717529721742726867460650349325712851879524692030073215594423672016664285787406946755450289185027771441347975776103866200389157438993624579645422562054035590678273712680360637822206908161419258935293608739398635273237623293177886062041951761453963403512435395333642989483457787242998479569863470365830605017932970044371437649359046601834930923813752761731483017338236008019304644745672136052973911726084901915976805793830429888482254014324377184910099348784120749963401172984789169759644541088436053175030683112099097415399149040256764120213843351393057753626601807289775424021243003810366954582387237479031244997362637284252409013922303463702102750427250960156153076746681708272148819630746369787690070643112986416842016379123014633578298799804473446062821666074024998736672509058763357567891196729178667197120046600955555345593662024220199363618840446423781787669294017483096783092544351726901849644694196587938935408451947344188092646141692696186597789999205080663186120954328532479050023549772828714470943648003950018916563502923099502161105762513070781707939549033050752005081082436495968841079774070846761145250327055089462817644296558269009240006831049255343146408909072811039011531233939044695574044250030078698214209110814259064827308491158063519656149989282131638446498154030106078739052648785016566058058334065449192012469418857944076531688323565429673996546009950289361857609690962042806217127398802801795320161452419844113871334769497698572414928833097375603630057903178161445495095378311993564470567309657684428259970797142956474931865870723322693798939760365356064111929682500716636257497223391387045577390892812796329335083922953291234577524054180873274676047241861368044679298353172358966956732879799068708404945733252759736848776409153975646182418205533480827864876753333611325313587082447842877539968528210554413051062685529327813039672960491464112859800101500296694473332268166461094877707390522569146575975186287810424930580134256774696810772280935762442593774625711525910500088691980788448644692369063234288704615156403221617046224975751287739899174844541589201242165052356282092076291952502677376163642788076334789454985938126624895236441507528718421296950946873352099359525678283036551317925223790781765556672594012862126227727772232699800201422612272803525358072684990034785634945226596505525919040705622660033907857075392886269880277245971120580001640477164984953074398865591155803114044102514285064644693830450352428010967757158923383042259577104803338754249638048105706828806916552298044581433375516060417261190608475800633598605270651104674283180083951582173447626029363591215006950252954639139767149167560556226925984059240901439291541568438602768288034633767114877977584505669510090521182374643800058709153466720223893694711322245923985943438914040479050807234790305004735505041818393117909471455646022876636905912058162271827073149649249067355150165804387924506299575005499423203585502488445864180676638407990689995520708517458925527742488083386702217348250515812488645889507635710008107870785405762768375147511165256276166572363110045832151171824313338558518427091603857305819854327811906398829417892332916663202624008999343280885582387053027480246953036128652671933946480162276517478261073755242271531067316000310942472804231341653223730041583380602195957564060338313548842807984966114384174919199846552025150491365463291114346208345164433317304294331269108063524306069200048911296002238836315660368360302470202986132035023753883313826454283007989101286196511279034269027630100356991645832028269473263428723356475169604608525787309248660540600307361275762692340208489400891894525280273403990461957145838675557066030300177360588362541152525718420623898725562204632225692180786351086220331586853579053097719985626747163483002489306837731919322337278243808378498456033238621053730753680795045007042739593544514809699763229064901443954749353641527778793614808495667845143948249357991732791885253588236302752235451355605298948676457349557246251704756526343960288087420563091600775830701412204634577280008844591196924511946166389694352447978946294070072367635461769254905860717813743601349708070154877873538157245228792516139126323076972153071318899040124521923912488631992235634609800276950642114782710266487973455457405475867636153701830759649889547521680264902334718988318603050163258237720237596280479739219186452807857359621538267548415638515465590926186355152993639788843575829719684436489566466679412690687597261172351828032849617786513593931691628505694135063363381097166663873590791594897174828620341659820736926041347062291867668367030617179531590527926139138491053320093611899044165264321228238963401371554302697719030389195682895325366452863790349839251605420291749858726253413372876637017864495786385779543731084751921142408875481503432019604166343814972311399151824223127072867798626814080127177657098538878673254916769860628334647619821962058388102583563229991647399447169615447588177541664574614051290087429803325224272885350512071142776778729089866568145485342453901953534480472096616405551168253514806888622396594036042102509762879871359899245249011057690256968872187621756512664466150374783349370094442135743649217065605944869340191669395959835292367624280780995903549586836502810955912059739678731806320171587122433270700480900593943689169079519200876023136681471438160351181108426216878502308401071498777852001734138504890724578555881604246476753923112610264517707202411761097125556147508957793512421770988433776961142763278896465852593137679528113484489241446623291543253048477005970792902270376269057602985633149063186654273322983225295023129081098846603295478457384381266198641772831903115245753109090625967700202916293662538405354796286757021644018310931574660339011392813762932128193896185698900131845641927000456437539777820742711602366231470001338055260206849734738172259829384682748828624108362455839979385666210262074035163360230988627998750539456435439187487814250391203392648214911240331457264613996075514042106050435771000667661320884653291149846193071688205810222831521935763057906356409586549905967278150057300165505847923829293513686298196164358370508936553224280059455347075396470143854145449081750793706430867637354930781756713708412359704051986934171387532473228212968378935454856926471349258305722178742267187440521719177909165845553704174895095968661377654504513557780459976370609421210496481804479031361311176189852533170185292263830767833041312907856155900579366927553917509544835550263506473080693611748733542113660299090940432819503297015251593244395367829449689596403747627703341059000466904272690792799852194017879046193431268250305077130045202460810011208482564946806205372843317260763318362775806268421215435706437119995270323573100495595091499147801199040398411972115083072297724462043175238181798583735815236409491333327091018937448635295952418479799397857117457752851348515452446613926381850989147864898657764150483760601415721717796381301014277717723944247478982756937315731324566797946916961186951188917237241125093985987448961684678709895794444481909799880525606353214118322098930114803142696452668020182875531522125976228734319081674595125037243739285848308703228376040541967775884281366337235063432560877844469663933909594649995108879489707372553214692956560457753416188568213793177194468204618011517339636695522391382101009423955141062443022866295472278250811927002333890700277221806247671709248063312978799135241646301971893106171855106793325200098071746444570350889375655907384283894340663897967432168390440604256288026001839991578058150013116834393309368478443903086614485056174866057979338631367725901729688606082369183730645063722527247298073515357238313002400966061282648243548790347767907705918131362039400153454284632434332138144190570467328772513400426476876235140355059550793490153241787374571487959947390377723012237646200691622434701234443859307873720177285094903806721108529608235859052892961560716426457630054312025956960903788671595737150763525779669520374646522640765557794990400435983306963412933761371808953264902397173134070240670245218260694207803990476609850409005800824433151175185698662169986140644374055905190542145900141569077101665095339449002779712160324734118571727345738728752180719292075459170918345457280946182108238845779476928184340707383063736360564096810765885019638260127783162469749545351942696036567519196052617221046969709991483959201605003386888574222073589315996005417720709078850931625974791017270064434204868169550660994696914150456597609677032898386287429353917644986930876657449533086948563593388436208306511572516857990847827460579953047424487449921014772231012988250611145270777357529759406560947813842201351003677460704536749242761986980067535080259882206478561594947995733763673433934438904849570444546333595422612655430785608579162268498085939558661954080080274389790376656912898939726719070916148920401057525150182509358052959411273721393990310980314059978935878828210675664029641843921400798443497526496713574555395301635284737260971616475064496252794932003325573382579815323287825588960110455230176396168728109785028067267638453624701107872969624819207512989790589229666044733517160243354230616771358863609898936320405355267429944305586562498737401858249669024080591379829401408616237126727458518224667786937429498463410006704485797929874430752562533928546944289167363502340035406769661500094112790506917958110571728958879420443515158719351561159077045493887675832131410684613211498043473765764816676280166347067552563198055304374236276701033587733981430453964291310773310076612712543948302656090906267830539166826097734239842829047171552211486052782512802312140619827735185273220873544275709877225596655201954459017780476952673537165427658601764457654598856969062982746497499796822834708112207530711373014514312666059570930166186134741587431007106235316945504841071938828486832116595862202006630574001477283729812907967553667671637656380741672162903124609327629692191764597020338375590874397505623870318613353880402123369681572023703470822152664034266737224804060338087878807562964754464779049188436129527488408898083455495900516053754234882017967155743433657471875517099686851477056313334810363183483220847152228559853175545435078024626483798674228809775254606984949847220775941813197893385198235589598143313577663378926796318125652815776518201588324729998852210221198062421907954329234861270712214746580677164695544700703563558404843150512150944362643534715241495873431366085063434066564763846624833599682914862282498629529425312377752465268591250556498901658260340671844290528466975242081105036735273103716559741756919771097197342106501770733512296761144913268593790715949943699392830657980116116965564582934325696042661237979960185734883004654665924544371528779083299930051530021017164468932356609996762160823558708924133495584472145408689900939896451246577455074219818727259164789050928392828658577011369034393487690521563670238436340330022718966214595046686455761578940090622390008474600364043023301968658554300372403333347682915679094339710902753906422475832073457392690364420072123793204357875610093576871675895925898699256695459689130298720355665874073169962210006314249619759792715813603707049630487644635943312639289856525260286977215707844484825144766440350585382031213576144234130308248135559449013637747794899957923709749496870067040672273170862137478458606250538509122986946434794045732334622950374974010292397387333442131813078288185594623380133856662287783030917058659700364885882790642232315009045493688536647352398956702377755068876610295211562041961736700560434891120078078821631647714031298557814861757866619512617397512833295566786170302807169424530836319660698173786938217282064499013364479467479241679470658021775587855350060359779521192791787332302810742071024442741172133276892370225189230276656294445320346516959672184785646497481385852596559015023709902379734323460099646963664195948765635500132196172567228644051741522028946111545454691128598663227031870228904578139163420352255575398713968121539980355712737165680722939056661179033440323560294825162555348655453031159227874505778621636479021825001659021454245176635165284829955111750239871114400237684765013049795161733358830857312334255789687653089935676714122913131667587286892531451670577441805113186564210669827757561888085569560923195084972350326685913211734441938374222420842136615908572051770644650056728596769315079240601888406316170644845081185049385402490588264904352790008945110044513227327709402023388755880493264816995876749089570274494557959588344624417601179874324561544579533119073525837590794872090289781995816263067295873584038404256327020421948490178887310579280502871765860963764614385146326770249727760767932953586801821938170715677860566300486676287995908080799601208150392982444144481924491468689137726155286079156768217478898005895252231711898851554575781127162489641736912420715057780375781719368560073449890241834755007475972466126156821221557857183019663849234207116180279071493191989602431301400980442297996344302729628838768267084656190414459714106046997974083591386810155303204279728254870085479856286272947393427329239635875900577993479758656012382961026290856045787858547972327879801774681872537150559698958322956837294708156058842093819166835824303992461666311739489367616346494625256108498362032596963785110298242085658642679674471898892619450898106572219298473193865313137905504307961656793617211048844768435640525358288580838165374112739098669247775313377117391735546398950243791839956077366284919412186447625819107398182337640625350163794085299821425066710836369050046449878804954806717761257155666333905271791544483593440474995122518153134676547615338503146084985058270122863602699360085743581316229377962525190796050096699999406354396170885385682074573788392951938661225140308904283766488978134498793398444324608514944579883907433217305762577738414997544381937546009326053710176320862682708746221399423610591875795764027366202288837731586511916461707463982918257445438803002517274805011544754234873962276507306536632113974794188367405842699386924919125911785508445411950641228114717480559940642924161207227356518235944980125509328652050143532554233376406324932692442874881490578213170341521191120348628391013961958209346905034090913117493375371134627444078647180038255668487287117642434316646403279467658236036379974473183474445683970128078642751660714079170407169443276582788453690005704463876676081405963212860573860459797720985247267648617715059718049345978533385705116560705063226644813281537062032341858940542175785093727315948948746495821460743554064514979849463288821793665431130680785044403162377362296685440163279251734342673206993704197885561760259333753126576998831030231385551258486174769253582421401039105277528817354059483710025998148901523034753483147442795443770411473636076974384651905046880147661818930802778875804184402419711164517544750950892378587614881223347251989656173397836113325523710176944819129719382826325330295500906090896353247108537234642419679524900828819556356746381302082870129818253653473103864652489116329258635170329189411831626057102838638990759347414646429036964373710524728119839491962628227173443651351050076590559352526471274991527873943346012761409996875888962653058292196584162762717714511882602000780671964669954480692869684964900374899966248107967046210805212736835605260578899208277126442648942684650429330826558297250643203681403525563998652538461447427402560284106824010250785055548890127057981463413525793183758456399545698565445496499340195002521804881463285740895241606714314738468298136485218193300828292060107897627553564292414806986092444572379813681084847989565902630708566956762480030193105159737335903874980949724873412151672479703422791970167401468211584318423702555238375667399248188901450996426249285537381188025883016430625602276296982210342414283871650977519164729236836674676375851078864600483393253412971000403179938678958256516902148667737468038000567850523888009829420365529958326590333378397731387605514963727807399918526291397181875372855573912392970753732629769385764089719101927738527552022347165246264679485025682742457525307474046320816658522658184018557847532427885419374661078403893345287760999631726137958374703090911537471775653172759824696417722170706029752167622231965775988094751522530915328188516547183838062377999039489538057119905815229530318714756359222279327560586858485198889620880296542507460356902041370996534125079168147933271435120415915934212839087093969199419730471274330530672341026689202961453041700264871019896575819644782616659720127260397834943162353714727875766172035765546135373835397881143113608412599969024969800724211730831045049597304370400644092951368889943173544993451160386600184761984095327656190198114335267651620129048849567996951289087145559606113913332206030155701304362943454208517904032355928979677261864765762184824789612380001737670446509562648823268391540124011826383410641531938591743556756895347849144189688981060814779577937728333321317215738831958989417616179770788111631960995117162191399473298132388826080069276109437032160810804775410308522337082678332763092897325569989541964994690863656688545854778928615064842644777390363826062429624612526953834288472105798444105919069780453905347173112222329255102198346091337429390535090538707279701747298737750285250489833603500440239414051442749283808612292304565662757494969260269449900390689233360488692750046650825186503093331815053693486112025002736233296543212849319772925445324873694791762230979629116560103464688513007818718274985096437862549024210547475582073070894813204588743263161055037859207828727701870863270047954101357203699111097185144996831651499939314498993533884300981104531544354128085260138662463234306327789268981784343542227903087898248316134665212726942312720318608816503744554493620302994310395010543366774519413126627893075572073097242890748715307178465619798945710745918958942022820003526923706187390896708465652891400782259185868913128211355279455505284458415101143809651368047685546117007203086247987477112604971094585323459548415594817439113263425002183826561714943703770043102104171729558424271297562458753177488766574831611951119336222062551610337782193941970337359168955733179824959491843579815772964730460416955144350721154452828995641686464448936475131907826639231285859601958790184494268880240566387465224803845671650926940914623673190638100190999647493570617585689587700790925907256809190501582757323734114533398846889216759078121418107337969048895713240715929948286295658958945198211224745205719808283341613107398130569620481240171777576285550255482487381383115622376308908046329590787636294555153230656202645690232250711894665671489442129681879983413187542711302966770032866857618685404451654757105135537523848438082882634988809127624982004911492586473003937805597018251737820714222528975776632215535065651933776555075470513698442972753633564965099365077681846608164788173261670043289046640153775091277449635184126861033782297777487272319702933518223860896926607059501367501936389507305883616847386135264193931719130350365587681013315758146952418952440368522110743235364335143305731290685708322654990906500686405463301655938063243295884550197247383120883659665785847317577829392730693937791382217215618306160824995788176045881224760183492354894362715729745049680032990074647289573372980915311840636618547440536232767961431498071289185456955716012776508551653845477058860650179759240158410708202847718981515261197513525334203405694701117317296800091772361507242320565195029017770106058345707273312034869932641517145296563008703679966642536148450203430028444825561142328660248995375503163923257203440285898406965221349415508343877788940323890944647906049693964024007108869160283852173212147937217274263268259884257250793090963562765868860895271010438744583655498689375050920882713761280922365894522082283400923421277833571417384914629734712268530986191190534368222793880653684837818342109418052471019213345676561873774671889918417472562496048777666156909780568201521280433916049429149044127172754749443156552481518732903949277424545438713616840348480475463164154489645957910854395734050208630127491392926665825486107155946717821462871185524323949253556598391008475231047375159368303089777019451716823206247608405306853287206047801487014350861266336793906387165744843144229492652552173786050666742225896712835893414492608989871955814105731507534997425734911270540124903123374037430718108562445921476190457373400421152655182817387420378891147768789728415345161389671842623424785468638212870421345114687309133210669207714925420029972881199152252995660308442753471299447484822846427728131867146318189653487555614632007713885814592646663751740003720467331376278195016824258331271452949410989584258655544490835142973772377761929142903331931523442586827955020424500015389859595662390798208654355165449201188090362268605131902834490595347968337195486727321460610489950108962512459822007790764003504361663398098783404614908816155990676803830125496270237419225900165323757564617488620170559538069724729452656621463424549043700768754163426300130089783268564153329668798157792887375119238874360818619180059196816077560089256531239677975606965394975558609238024153320297687570178334138353176968757969852473592033113041013441017976871978520183323328359888017156869875698281378159240493309863333451329209437007468685794251263680430209084760128885880250623507199224982691562733080438637615459193715809020306380770834946560551015761510257210392165645478382127647897664891246862109251142478834430965406579035947796647350656086936762550907536752770380998764189876768602374887008571683353890085639581045870036371615955872714996810396370743075737866828824146471672381423359769752425253514323673963768685564039241572468250247747582868075278085134383891119004476478202259802741524897491344283613183455791124439264665528049998379064260978144775343984462178154779464073616022405044057686235905255951220142983604360994233794691631992136657397566203488105234106376311830943003499126748816964397827983157943276081113321631049813206749343308752206284313203444538102558217015324955370900691015967695103750491845006272326694825813158803798476226681912124579155889281996452764406779901134196469923991362319210879212278905148099626516321059910311968009684987203565675581770692630410213072099494871704443277536881700902266344410022010550012494021498948153451464210748757106087915031585687795711635928477475567076291770167801279967067249801981670398457316789557651127863463114528076774546370735185721136809169135928669670541191608819013752504629098903549766330628079813548028656510667462507183878764499701420889225130367217681448042805945228220046245366184852157772786833534165671987938163047368439590116024343837447342586426150813019136840884153285610660709071794079048502687111294536771679761056374446272631433989041875605056663630731898839262028993277074456880087142311350906541706950881160251895302375734314981305070457275037093454986091791744001410369192487579388702161825607590200102063188782872119520385361387995555185850452614739537185595095264319299977150372470624988503115319684266030607655645943812257998223574487067346910981941153285547223087338073556665193038377394172234649762932201456461189524619815545697062235027392736011320223370437925336556407757011499653649469513430783768106533760262269105530662094046592447033673745311555062030718965166299663409665412669541107857765802883986908300325503859477239048907041386368177677102440992946886961183383464968574206266272396639923672555824381292373119541426698987893846304104712982340949340665319535934874219155536855958145960420422716015509395776888350971157274439058864559376582813074227077338920701502193735226882884894148276382433021529863772259487696717974805801118398032472056642113992111458644742948569746333147320748757051057322364019243882222015324716484463668308073459489335624775457378716487143255415362599584628688007561883713945848552939462733710567842562709692845866869400610583731769452156729794126003373608885792100532965533505408895791313185255039622786893602004506638634926758286223253139703575959268350457794478580535631845445171774378529374085695701932371936305398146412181658288663118639741972016509186766789381944192882202121361868834529139480920357184667191018893868211990889759312644081347743153455125542361882552691924938165406247054202967419115067178183433714279031084390744040928785707827794060671321253881618199894451842846770906815185757285969434551700237328754363777934311134339667455063287381168792894896454677519145110293633996229796396604409805499612589924098889463314429890623981215348313199678644970459665253657627199648672050975543324149391589544058638139131112767759519194673937099636490342741796702601557390823526674883323126421397982973377783573634563475130875276277748429557608614514540334696506117340421511170788346328893274713463451082312682180359820091552284279373789137823397701145910592421831733391981791116810017064218511948137320907455527531643314979738051051530809795479481604307009287730940376582315908640837966993570934205815080674680919063177652066416052762710343997699629748916190843306897411160783633066936336537651323763360997367040444968610232546691904624661482905032268579886475541211950125330635984649831176328648871136175459888460714285067235464814990099307934286254725120409209019868647045240972530210055703429313082813367172385892534415942556278938253080436425421017449362148000034943414432740883135397913823836524401951111101963198400468579014876693851671493430676034143821524789112671183036218116037700037674727896005284538525046444690343879430844754088117300120270184650446848974621622815148577339672685833580865846652604494416406736661719579029265658981820286705781965010363963876549356781692346972152322555821504551053086659455485324715727363779864827209958366713727758947639652727491457685465696330703038292339300225563890328114228637533864232475222521338193140088731485895183223048916711261545890573083799721709738669207114520762569808807278762201422392207820596643827816898765651231479396817348229689113701729689506678140365161750314353729904971548459735510836859218308657072412987146881455290287002671182230184827019428432844532268192336325119691789182177661434006915810318560614657687086997809904790860546186542045023127569800736709217447922131392890913322379780041340144388309152804519772960717193074952119106973227534603575456769346838196037150485686584926003263005706316786241054863430102065757312125492561657377839326336946849838781618125152160083831477825147395008149449456158242286251940462731148219497110064495918884708249072436853228992276903142004560353237643457898332153067136976574886448137016737235088778728878314764803617260575623945144198880914908732602577800407540753803121153074725777280356154084044057253483510252017272729936577904926599883400883858322047062893804522346062440845502438192611850764173837414148376277543754681793793098029050359002326063701603732453377788575940655107072370229583807152631776874564603326536068041403543289479859664406169864869492181739473083539851460513622169102035490317834945498390251817827333234786219154357542408476666175363573821144723386198451604712123495909329912850078828930537179124145996221424109164651324439933972762634297102008484112727020467962861727847617418606620550231206585421123017740906974218954355196904033157359173790590904311421121837367999669142762048813604286537485286237352929094295530499970792110091158965456758143603825551114504556121813540490017816502802765569515618505250303183414204637475228815669718349978019769667784814273205217923893671051082319044986782716255455947265265430686655167609707657325028132776252528485475632984882705719437496421611535743579700823223555601352451704644715746670607831349190436576899234663591751467381932122391415913708306884896085324468004652131158070092471315054161549330982388557745793747597413448397612340729556850874545823737416011696973404474925545916823807191577292848692230309939578878856067779360937964566449581265041010729147361437383997669360561733400338085931117488328111979218812642962793400807117250929972536236080061754122544817025857093235989665502301996014396360084098064755948062548262461058011716059278826933972950267724899344760982705758880456365531459569219525361980504751210682183732195295337424558930418761096642085224281111164680927807698627297403183969754455087849268971564027794684658693724408172060334625026886249650712486439588323463603277602009586382031607075057413989848761784755577541449982688770548511383658870534687433615000227767706777431038378686297083572394580605333993001901570028236969797766007363662244847689335104632714217057382735837286319922487787934616082779605220178397587061711197973051047502778251725004399778746552330779425630156383643905268506017034287664107678540294231928125854447118355057357084250308579450669028678296660349431824191501256770663926009964565018250414292182253119395521527158835876345242316606193720662537117020890821848460736056023696586245599902851955202613686045776570745456198579352968096440910201998614536203089214867547886482185594226815141656256096691760346016532996343982777814046621442969696790069364891655149441785723505555446658222150985322667354819521765973694646776184194035697027391169003490787324421490462417123516364038001433264288755605655844188019176466958379665167943160433875611847130764636339568957097700290090435389086202944675556634369270667430366217504488241202444436779099756337268291474250953137771619728334315586451782585158505370879223769429572259286177864839374679940824985814539440660627823911670270697681936943305360764802633840604117395180791771650046938049344311392210169826651575262413252406871537914618012022358640884175908025017863926416863158979637303324496615407361315538577957059978533996779358570166257610655361587322000561907149866491614337526512886238099429930061330064067052080505918946720441636045142454523461861388898309103275910978909444887311478986548471914447051519061260025084707729522135985495671794239148307901629361752809015472775159749287656951385794605342915743772355895547987434141561919799645459653031822293066114509477001803922164020339950521168074173484565452013728513900610221958429806796642031434078381411906242474492669739071599906834252392835788319567892458834475247247253101572650896993465007675193789947489576147982515757910594902332317791749501052876614129342610858362124409063891009413964125986884790877794461503042111421931179620017236994472115316085594703858328112824540727494422767646242348131437189071270345035176747028531457315143275645275662636016168543006797436315209998827933386055472715560537213238775657847402193845175682524560393962870680040233319705788129350926404372386591174933509173759990300404209557901213266139505181383772379233244393032084520924467246746761007649568241384333818813139791743679213780839656773685055848303369108468756362979677281964464665707697673672119743837053299065473693724726690936355252826571181906428226687597050411728792341840056368942889279475056335436924657589519412642168324854031554761401749628742483077727838837919643226270895741852237779880819446124202243583661730822697591492670984788608506604030931903027149416478465929229548465615664602037589304270664992986726166688474442672019663500857684549408919012564439303456537091996684805260242636575656248474385969093643073472108126795450852534537552888363421568175379756759445030760928894623344940795724235352466773405831655790790827966042182554603912803808825041465017030491995283171596780863917082361351073997761894742244994072698523422860073579956522232969480138237294010104975057875052992045454832097315834736133610166558505275318509256662307333866684825320703399037266472543954736561827694445675062573158226929832116499683207785915501908103744187594625021184413643851661627145747399093903716834937264597811217559132573550818494113589259200601289768571582449544827940404339972250690560763452703100286022038259460993752741228104860221733310485897449516009927388545316075150411015040537922386772906125916684993834202988968140804448312423756556446532124772058867600975192520176363837419231391326873858514166934938998427200623262776463232442229333238917564274015303397909164552400913826132046732790754153667595300001803623975892861230183320716329935181912588846668990115877290657967307350617191685961723093662656467985519628340128503935312237102795606834818983424361887612903053323107665717773690208149675795896714049190697617737808887143345717807531656835424003314781586366792769818628162480721158390938363313563451946278289296577221172383625761300579786881794838688077778806557021517125722497081037982205249382549395276024827222721365665886313711058026456101280319765321424917814639367586991877546745912808236082361221826350620266087752450170376005353365639689343598061057327147079296750127974121733475213881650072505946438175300348296090895139411452139474847846627708459574587478890532414661637356723524830065246011489309282824879526589084933283735892862868906445499184052811567994106762368034900790338247532804653971138329579641896564684488523904588836323610982473258930753957418459206293553112654011021810141529600994581938339251199392350990041234133658058054924024030203493690129896882683574952644806404677954364673766002611659808046649350306814287454861440042037802804679666918768149293872981651886200911972399504477885132772045064107372362475952886613590834770648306746530774651951814774798382176803170427895183913843346622424431789877399140525485411867656238941191338764945084389118156984916246532014133625882278548090167621889218128795523180709969213522386728660419844166070771198122710520772883599414540590400065161631617501435322678257485651449451915001442462356731629691930943055002494498488757354454117539903992350384685840820298883817330070563700997607771930161010510423099012460522249654275616467686382770674525871697260724936467848123336294658417817624552918863731053082251756815481897244582679231131620810811885894632392248844003153733493570123430571040198505255916878336131789970224382122348240047983818334980435943058582199948504073905353513338689228267694156932214930930005657071246847338932005203322792622810654954758295700974418213282060765293142289798657247886204933150242614732781083831346208791605236839281348621334104324265801678564909663834882793414387631946679761273299173504471301937147174629687869854345892418536918688683931306694901293404683357492735815095500577291482912239129928800815651150999882348946464316097682864439200930683718276232168418810168918035776734928368896434623674163548333768544499748181822475046562800209981404298647230731892045214468290086557348846654873767352543343200106982502858287505702135649797433119992081054510354507822314180276802419783219064166289513876387054023914707870644984177294331320648163604383515891342602260279330752862186714755586269825295582677834078097219030318255144931299612230286806915567909571514258897041900341500931804904009213719140748029191985112163575036970635588254411711185898221326648211374650936963532238147093136197611552067834946523819024391249997240463288308436099213469084973357897330245982773402882321743943301577272043224657792836268353825566900588042917354091827146143826091725603887135597476282567431665522280529840132438868064808974488354903841306105135356549043875236834688527205159231557573911368894750872127439644247884539744297256502718409224812268189943027345428663768154151356616521100121300346438169774125603220656518029219769778405380507302876135212234409980467081302214099576239958318547328424288912525568013940510307119667488025863359276810486509927677911806411395631139743139421469602670040496069171312339915811807986323097697582033476470988909152817466851396763162548344755385668610824913264001097767309874154203341958846243872570115571859934869850710305670578740145572835934912416409424005531221630250798276392888873661527853586357241579730480616883661477257625080420119527877077322128211218826513954457232892233502673520667618005123090672745210637295814434471823050918182375512123763559375695913370886763916685231580456202463319544108407103763195069937483551974741500514572695500600940744305600498692737797041650829599460793417977007678005558724899482524688963364059262601171048162017982579878600659148765875558956561747767741392250660319312989789158939919862518339707777030598666438562301573376379841096831224756696613750856239384644743761450383200356442388151378376534356169346367929562471981804340838049243060114742025937759363051869881987500517278459589945997729896399916215940783191282683127467809465494809278812767603782621617476498832552297061812820708838992923217259852761101765605631301217950098763357307786541359937456618701888541940923616185246608987143342518008661550018048299618621259366375499731621039238302675095384285797076013903178174974211746361539610652408947902153667885968273376996271143933939195098888384448872498784457609527441784506527165142166914709151419028713070930281881329046899970662414821607045149354102563765745183049297321885493614851926768938486534823504922921509562931212827297090801891484332033079911145566294419331137160485413492455336834693532169105836039924187167327681146167231133036123658643582643114034598542863023828975291582221083512983947441537202964178261005211912496552387383982123751161828045887361288695495501183450958365579938366360324376857551817601027032998880359610371413517070172012858393780896866412525339421211290688797667318681880089773849732145120437327790785436960141085457366045859402044277260419018820828306636044154561888915180922219892395349280797747688502786003100575183734881876438537136770746471489794229713423954610497535616662405093754799200675981601389934712688352321299656660546025274075600536623982058000762939019824388511816576596141621967057997105239814436252219081173260437543607884150140435085311677624287926770481542674485177295441385563518316882068798926748696733431368518400876753737564063790193314492869599738272290427715703477684189964298865479347960578129900144713188911429256564501351261284361228867128789627472358926703540338097043166026630493093747811403936591124497652862489728248811197918399979979605104192334736869570382734410862587287075743081568422065957426927962620924590463696573999201767124954470079203291207010716275214949178735658627020055118524092927160995010999722764514794728133187137696412888943365589212588222480841519006900794537096419643555285255624133199745247118445551475791772574254137657784742975021845740495127364746643610035146651276358771949499238988640800940138498415169028021035059172538564873341819813229738972278495031193277736741674636199855000094747748222499238655414166895621777386625787420785782584968194427119255853989967372349473578886091266119692641757721409523114719192976974703600182494923026646235344385728829516581067298576919057029949059959703261490287949118775642066108417327026170893547468758763781216595299696748214179548962883851143813099906310377771942695920543514205714069888771170289528238146997637066526468112063159762147902598024270764119092884079033257426705496106812255209584218146216531370735823171366074328051786829916291429504226366300697961882606567224830136460149490603183330574975431022893122808007172742490478053019284581046897426186932669721533247447173727376074271255342021497814572361643336436705466965956201961527124340847102452163669217088892476369555412341532490423128215912540590278048647430397206624992602045431067517497549621443424473664873996098773534620789782560068527146320737680982613220478881065852969785402341910164494615732035939559651058378048651703846349573612692948360474444621335953471524648778469195794237157866964120391332665712643007085647675877330913421241956345596170131059597771809747129859923687511104970634245333864527972186158466141448746741741688675628766565325996311545479288807284304141588993843276695493002883014884084394425009344014379457194492472618887809531751685984488124247228456261371499774298625575723944495043055014894796019520218291644002712606273010620807620019026381772274096317767836940295528198038363445659191653021947232327677806866189145606680284449515899213055099830126781504823011554605042951251998983048578888107278494575078958271447356437488624912799790924955626440740642898682717022434701396621567644289333513233061827942914876743725950327844892946238729536238288702473843690648641066507250101594138178728988509515520170844359152309268394173347448471678434682127878349752184558758645598162078720988600508361411224395649874294895673717904136263864367160273842987231885462477574231266468988974420991381258154615297853360213520070854579853491341910575485706283602723973140987010024170916165197846246777956839662815347439725040801264264818766666465850078317814102873264087752669576744844230853209430556542922973584766735386663591060603617357216854983269216364150316129067311608559099232242757035679152576077112904841692201333896624997033741328105046388446547392408678351687758017601701324475932121992978654994520680472082805950902986535601292067953793436413508364968919345291817910359086964266937072133816775995666145874352167965124856572873188655207648618355871060940844561022498840845782516351395619243607202732203102612962042524092365904784122610179718178374756812541416950344093447192800189481876956498700901456855841132657855388728967477391751201697673682165747121742723754980371421729166351354568990255010109880889171810283232284771391947461829123130660634134427675727000799402073845106409698908287658617523920095707314522533519099249135114323220690806495727608503255765276834104251831608481547543064691795471415665936890124680643502197849009434008669804362468981062015370100428910017917861547693192593877004773592884896007965872843615898433524884682998982960643741940836372477958603146172871545704591332827652305566361237799761428039872949202045251945693220172066582338125252525326510377611209830894852455961811511061119809553325779605033177927596306601735308269839820171834187640579652395008605775478190808538819455605806075016529975299335769640191212409888677499559308343922670923092188839580275180212077623050966196929467367226788247039712445002001917283129301219337406153609867233956324472330195707874421817224608239240028558557446875360154426470587135930983195472969269860392240239309729577096165860296936676770408252144092888549425151441259718272929878796148629126290730174374687624954418472801031924966750741526392544136120694920353908284331078490354215392696222981871538196279378483079465910313165286256608993121240566821000111751304418215573588798040972828287346870743625396972965664230802669145794029239704439584119618430736838213835019924079913494606619575334037860682581290825842591775494234311866569924127196178235645479925871620803881665045764377685707687658248249496026799755837121338098155575260070150161503056556890538582627513490065368035872723076484711470773505067586842517472688693774708790422734269963710016523599706897304638260249041280635865782563555156784623107006220346582626637397834325023952598836913736821275783566110984525851903728956447334770854644786434603381768577677033196183112971611864998732647845390014854416926556851011940757461862443917336842277575749968208242409154538214517886598119690260272787494087034745939108582683060613738240849005095715804285462965245394884093354986307288864688913661886793784815976926121329214792919420384744294558656997043847005384358976902841348189839220577253472750736357141995612563706665619161312760208545387718001833876578390837483250409651374246649764482396341436463643286888676927434962851481126204715528279074757103655996057202539307951809350576266865909721220169262156784649800670943425383908870980340564695554367389755499084561386541555064331561960869265597429900698067530388376579865713443964632245394549749457131014631663120673913438257221220427343418592962244733926221302020743782367032202356514851589782295327574689886657764438593355463563783034820590793464481189508014121733054832589526367768847733133548915116411780823139225038153061286873566156380043774299751138009207540645416729227821644804881587677209207696726587936226777482084636187149096500393285029536848978332859310315888589547799386094315973679890248476680341532789596808194720049631211991925914194858423944492646821890443593003343206039050016280842252038643394651561556902040700317090935795954719274065006736791914283732022324995212977966935387002284946736088149212345929605766269734768465743377046363174334346759967592648091063014530048295755909083122207803497349469725029220290413322314140693740579922153920147467175863688525844211454588787451075928532889221506071991001385216913482024206875893813134236153846038715544240213385581999423752115798204094323195440813796721799023349472187246553539078077398846130176224475297349834469306625988312488382067935025105764820221717859269852569162746232534106291687959761932644415495755993932171551284566469382109347831374570070328326477609896487639349669487694596080151371110604207644722801695678485621545619166608468587641553345787295477942388475900094320954691872846498903151037830843365248425808162965656834621441476886495418693518527744875510202473105785015934299863760158498959664737224919512535637002239382937177306380819377922453800674482774721077811823487035011970662887053485719913107141366342267423982854454168250321740056123407647578328045718542298599854443273263792715337865191451640530837800812085833787855988309934630846971965928837013107641680699745321280723951039961973176547452480575786529908550739339192980183216509422601870456772209032742859679163409749999506179883688301400362455728746636592725210748239288275144049514425568752038592456951014166899072963516535901141108230416313648980607862007827905644129334589622875834116232618471272346995357869290752104043218081563544929635743398050289992121847708223125689860455529536423934987907838788665864208126348597778676650209951156409080861048723620161593347849938667298847082759509407736860144585739481845685921901466582526813571672001027980434970664415400829194998783353598585807741797598553486860472817422935254587122244487929753036436776052242846833830969202629119536255956308163782181476049259531460927629222824793065440604670954203508830108537373900658966212590849804789630772109227720761119754116022636654853044030868231713197985857635953940392376880341517341498626373747315110421335655313056744786264612312326204497228258229749322335993088683592112842352821967651527565031504679445018840546849924702910700180083306000024340994417976647115204308468332066717217851070054929983050910362327937797029941034890513794626504907020303590745248420942718841940381232483265949696457185794016624179236687062040656504356538098634446413752089736750734582792449760635644116250556125124163643378923561184298481722072533498804077269088374332306286236080980295453903492436952836824533758198662974903348636163611664413403299673894694545945834275624303750792883799236811059477752828544727028802127666246346939008475619121957723440113839493653873414647019132521789595722698680150394515469713950234197518285735487473605057531486628905087523370559427364870534712752313167202740607219044459460679546265183898820447190381872373136552623055467785050188467219122419573454595439412818318254239405203010057325602221345949913434799558018518715156184249178926567666355308856973206409928714420183530242088128374839454719454974446996042829385753754021114989842244232458578798079622043283769469619594963280068985289245916595451098992649327092744851436410930535197012321730514123469494779107986252217977129155447552270040022580144204507409465864878732028086247779152942522034272618266185735803890464882552021264680751745232081156198508247190536176397721859993196309690880557930547619516243052014347961209241982000155765749728658367478980950329351694099421481800577892284451830709683555944679479119378264494378736080222635423441903282904178953130419185761328971365358518160173200451968553330795173047798586332301407343483324832756695584281792474110058315205784301486252935869986501739562594129070535925798688855800802296573264058831005627057245093838189201258438865758581221838072584411312121133384685622663850742543681381786529808583669338780892649783414737206109901374094207493377888954008105772304541785061189447711223648064838922423047869836422071172742452594732142984275705963872108265771986982842217658268363966611294915674129561009945172341372504453930318564036208903287380862757912735460573905873361638735626920321085131040599045710162910062204386313483247663016880800149842334262327560652451309975212942653184931688092419792524727509693516159665581037981604607031869819547937137828341050854761995633920732935521411591499919871063631848956125109457058945615454180893058267300065009742524759384739374236825714687029722194659178697383148907069503812420770539758778370095295512560894937606201480275022070957761163776568826309845989495693926528765973455428572532893443474278677333876268036671852230755448931823289502035811796107193896630506742624023089263926911826782499662889583784604126271371803146177633085203096060099736390887156745189556287271009008064611550302308791232030302602708962258250849602370397445666755768307303602268861482836873032383177189540088358803847530701650689445183208384047048976691642175050517560354404810487895681949029740083698234434470022603307795515481031393628418190915216500204977825851340873771848230889147710446707381430710168143571695701894321517548480248703443446782018763447462425646798488712941137160846798490212249622806449319812452755877820356450141284517069173467002351164601896987092442583911861707383327598858590122255051859470858190762173932777238018346423378951237765448948944658157084378871995716206041066450374714535030752984430309273741373832725282108834873935179614853969944247391628404869613547649835856853990561607731019077463918245350383422279954586099259737546925684922867668018746537288863371604392040401309855622770267749346491076831880934843424397490471671346045775349131236573919510753574794300318876212986915338560150001681980808590751632366256262352834724936778819901133397612348098842288319183045033296820427725708495528036740047228328404094461893698843150813495427394859369356512660745649388006668478659512296888312801539258831922829466409085484025535793808462663751140220401674217484324470768069328036977915061906363741105366845185684382800663455091052144389716650267838872169993813689571969469687968456431051245970826276868914440143355192234644648184409494244642777550140983777938956463099694511153814143379425916717498482697339813512421973393843671252976942409223693044738016273502639957388961988830074859410936141448518582095041263307580192996828314421274404229721275063276178837787845938769663162820971573812389266905047235857914819491285136688539756147295161599721513596630548220159811317532279658155570207216777130667886473849150885795769640289709531390323959092091796681106196364329407610231896717100850712783628272279271772959312305774704688603742856548947854673982943995724391937529579684551667934117120256682902300180252935336293079642571499527697925110209501649065507664551772066941765982013544185098876316409906391052045774562318854048756850482316485359552051773835011814976247155494795269092887306067495150975488308218138947730273177828403238168890924207395586188406910156052127860900342781713369728436425305346278196297352838532227663598222381381628767670419948581344079771386481693535347635320536041977149939789307394207054611649843398340156100667213258722084506090731851815948943377959644484911833964316471424693605477610086467718917773625115317636642163787366216306230148794515370254615560390671523571643346268799872843243464719679962607832274329789299980160832797111704418069661793450504276957875067694443639856197543084152961055544922038231057997675365330749517507254574292741680312690341876443033549582238882222174300099512000465914174556849451997022220162419045810944681844543009538781916176138736664995773014773989351020438681344504934092902950371889034469260249144617251193986935356148850767323255849913866939002521955771889021779110374707899844079332641159314589266607521465734338496644690360403456513378066178000029234194094143122546581182116102733977754716327386407552306715928383379677044793512058955376296993049460635721531826944725225034657878505735987930584242348698816849283695422256771667344164212822065071492926855312619216558983734368184149580926473113426785489111602658583649640321623339168149779169518709662513288086671850200181910125752623067317138300459109685492491214438145947143283342986562569344103945294902072407143229363224329218570708790706692973234669452959451987541757500310913745651793693769794385784429917806274834433035325912654565644278527304521342543542221312593490400886229903057971380989968921140934344358170068896274398135925779145044683129603638096486798443249112564581198241420502879949040748421765323376689245816863601975939557891651972088292141222896384876544386657549025681784500376136608699844674900232686685597497346449692620973565144776422937057792303647798439616517711985025407449738107819829150098736633476353168703449285391389496870769061613325197011234627089826355142661903124178172889088108302544410141183095407319076555743557686442847717466606768982332472200888131361137340241843608063784583571932913014480162560514068205805532781310653593056050068365787263856575669001544632764035940008420080532722954789027205075617092773462066604272022053032018765594142975054644687197089443773359383276178420004263604010458637997236907195176644188058314350305645579896210821847694374228374527611036613446711152772788229249967280575810008031141304387932652800126015030218641692073016042117835585581645929734407872088594391878478823367767708819620069127724363695980013578010085817606965593245590299261534627794616281007690112737083603447416462505546237860958549153759272885714231490118069442044779036590729094097423374047988279622709076253763607697362494466017920321098768851404715910187224733048917623527177916330582915900814868712750531339803488915445875595546112550215526780023477900657091531279700708467582275164103706021868265521602547898968789068409141262286999030243958886811303792267191510843214138662153641323686469147117465468910962734027002811345584213857335798149421244594057049191195774534812805506148074768014531244399635166532084533544277710030009619368997617512662414953110996732367947549625814365088397818118751340385543774098632187907569112632533537704374056479824488519401894493359722000946990980244329728931016469970036674973716945543808546086143494440328947785957637040233303292989617234479968778944011637586709443777182756603067343058420368168969120709817732998039377555728398734034424979501087528244072018288934085994410169173918511510186263313431329324230965333303759965844864139730598926749696927968352631906813599728781467587435510244620103874735948409041786998300537899976194003740073512658804615332655537524617225365111380406816302614865939299864716908402737284668309049446721144183655638805877038216604072831625799305881744144034519528478684808600181823344900426145973291376480045488797412320726819425504169518472932932893772097369028755133691918287906811560613960124034913069197599588176847195918807130099424232675753857237189625846772774997752962922713172853905667015723411001810026078827039858195278013672690955002377700747637887075155442047877257324123404123726998064059678547974072231696356145027947348830399263455231494887788473123577612342603964319361756990756994499075052779770228289156124549030789358080564595342390895614901022363336752300095628997607431458423062611524045937711147315849129246433137865863674862929190823809512716719329767327384811759633464368808287588604916970032791661266940645042665354485851871789894054317226544785074174867812223114474143642041690893406330638301405901305738462998896721313783519017905214811132147115786291695883341472424878792566089185083795029292629452816675872152828596698346063467677035112336628695376810093189116761751269457110186820090906584888032428640045838800788703670444363379399144803808900821019647492383637259677030531400482838806283056734466906908956702365133309235427233606628253281553152940208909194149779184640557147132560192154575282042955704831948922397812695418402515724407182585208809131241964564589339291801748916262610760230316346238043347882832542502679602406834413239732658756767595665261215861595854192272783717409938916420519236795637142329962563826013088714928305135062716354062811982218964899829739140366895264885402223878046209666458067159644552284672612336741571006590396951775607988493650392374777386270174992406244359896506741996256759212317005815416522153675497562247020530422094537444488847844008875536880454824854281142003039002730608026992392230516126814199904939073537899217304590839095935375639989415199752314711741927454429710789100522377494907089709460280411416120170893149850594136287032604270845944820645511457779037925701751392233164427091751388250885930722243246752167286013186558934539461930397036197714494360622852660866371391904550113179767990979954125378366609986893917408558295378333691554944564633894355943970618175440893340434578839522169761663636468800990847741659593839184171719768052814846072880744801943760515551686404412632956166660120404214127848442825238425818568427790967690506290351156729299194209399395533173132130770774071673182604781652806716355747354248333839850456810869539703102893551024305750905519564517473941302077300291794275493008871213221941307680906498539987383670186244222507432530423847960576291885826977232429443450128612379536340917666244272368132843511993294530029675559626729155138302678979048703950604243255325716582792193243220995661644914143045783120342999904410491464860828278738252349329057382050654335048497530392290911244223626100408985021019823543430677278483454568341081265376706308007109397932652317445491858797329186510288216222032870104303522380241589094661874713387325321381748346689860046255442970645636880593904023220246560956118344764736466591260871906428339950398545502811150503092310905488372033381688446003903438412576182064460851846010475820127900042156674778936778436591561922982290757736487214638893662290020173040397416833105018746073447611495850134677777665923589896821481422018456295591495536749722281163782770732241910460607840159463350662277255821207047246334018826006095663986017457292087895856152902708420004787757454373382715996054743974644921464753941834641140025184051328028162913943283326388040782442229721335990255284046226439822935808385917480272176991944800998353114533682074689977052040146284292384042972263683007142906951640080503016953473341150651676584702707113703884458485888780870144802052441262496301950255590078699368365086808088796530417235689088781186777952353189156218135275564664302152838395082800372827116561819161896332228036995989446970424390586278034310940754524168293101753813641624570378576211960067663899760196312597038662613393988754798461706362987577436995523689201812413132686787607688261088826909421479886391793431045917517325583864566513131608207976111738036226731266893061488720164812403689912077390941384503944447989966417349692979290649188585789197095657992486024917929189602576287264083935945034034014817665954474060503686332279117806564794830722207239230132048124175840489235984462423775754581053660731608700570275913093447323384428493367598430826892592463739676898924660137720356418440622071993152392936339343776140799436462165814487623426945898287130307597809688952978777836231446088916493665339867089523596427176968507477535218778836160073423591630444866337396877295192287970033239697651165352824457730232223234525339889389479304230174303121350970026728803601035560407878683369792021089518072531427104535401798440649144810689219103075941460953842957545414394720222344696753866664751641203472375711983060279795989559770431687901010486006825827964983146837510849832957956000958335745645929120464546033859680495920788377203369337757726014196898981615587450516056280069606760532837822685566110039980588134767655390201769166185925145024821452449678597938833240650473410833392459543336417178428856291936617385636055471471311442740314337442776113769849660092462429253194634385040431717787439506566397378085706390429112366086611946714811328289828666063246933034377134941082939584269630837797225267343004926871441796947881414304622357006149872558412415860462564164564595344339582766350978545210035021151731766137492987953113257910771587413942856912011821538823890559949604345953040278733828942656267354895782376304608975858249952236590246292687180262895330130852441741413390138105556333615275972322365470544214789608137087942657327604746252462462413833153369532868380685365806847247600889770349886068669153548487723972678612145970160405745556374751851683030586840683795476595177159671330788908820244475215768139210098664659789304819205520638672388443213470371083334854151448026778801969911324213020946398893443379895445393181046219583042790918925757255070304570567163091444007256195449509816900301140694734995176589419324711105309845090827073678670594002774632780047100238576752886728444579256781403539800095963190304701040469470078573810563847215864544777730812473811505342724797442803732123655669325143498527609425767984887271836544623705037804614080722213525778830235155376325471994220869440387407862503603537927594479794224498442547760377856134940016024849973471052269472542298864053889992186298374943354462063710670279334406834045393647525676366958585369313638065588458976849016458396249693324071637105233521579557278565231268817344385547934002188970111000931427579471308926739759430150868025775707878563997311441972749715308725933895755676504371650910403861972714474162000846712854556956619979312758328240507135255343953832340625173693640184086269585401576510318418056177328096410072785280755901474784717079249424715953876980002602057536573696584700111489921453546182497883323732203992222315577613836564179815441126645674728655961208368922704926969571096150009431744370240830410455273908019164754873110873997896110975915136878692783987428340339529798543190440125581669674533911625382576008633639325815408861267807616979042961727565723718123553127562097576248694868481442989557887994036687394899901945371018440262475393560349756764033970843959141022447569084469836088239503118509992910214603975869440973614190183795504224529071486520637346045559821165985060188144153820923378852660521074096989788903826045648218121696288948088258072419934688713107838536963364875204471485242903359484639727938804280264272398214123056099607609948149736058256074276772020749666758531881582143122128778489150203597432097558082368562068566888052363501002125546564603568574188150635925399507685376533294301298340965671190273967247386226263638281497767489888676732917532816151311948449907849213526708394181780838890569634866350501799947595665980130794087233219986318781146098956842498634427790228497092116652581167978296056013987940366142115395690168693575555276355954008972362876846933313745045562122287197958239186611004524816274829541527972210680198546233354397072613678759071582303880678518045413704177462463034706836232769767132327988181059862042443764774523075316787371353733340580563159826939761251587206320156306725999447711772978823722802283160635591090248389940679476112577563894109379377148062580406815220246746593658155394114476546702930020213795501322782276218263450771406816771618967721543991292001562580485389835848341484259279372803253224849142818186702848573300528257430042854508309969838129916220994287646190270454184233064101064636080396311698769561214408943698891647039068730669408644731526832942851239176344563479752565002621585394584800655435751861868919817203680691169267646305381260508047282440698431096695376183779329057266288499931588967838670535852592728188184488322692461682939054519163998333481303792616065822163711966576516805301691332449831710508421439435217056845714275475418813575045928137980512359636687601024961779635066241557787460260832804918749901369697631052797155617181324246204850232947760033124314028987439092096878409407148491588802595096231858142580405002506125975119215597932211155170756919952373408345557251175282436407998367826757894550412497867663034107834434991653451329886821178432877433300734375351021419635463423384482080976165100660919095330359619410522386971660403643944822704250931094782347911570234562457762567532359003330281952370568321878938102179135258212886388862744883214920102737035542688058972697944654795259516314213719845507620822872509258074410331770833165931372020268696620169145394548925457748356209246026728768993865779263090928191836886257589539349375372753654439873460540406236637738242594596381384535331560312562113615405069391842285489329316667521752634777943779744769046620890316878195833366158763804981284906676886188617107195140325423608309138721006662300233437283408819544592048620194339035653119193728501985382815974776534787265580661059872901571849870997725883889553646035590663734277273187444457335877827139542226892126089114987298755133264355722227757031229048331391308233477643596877891414754703980278437576829187549292250395748892568871445401765388531113867514120600046374381955473740080759997305085872124922169715084603515081433694319156838552114061768427652293410018297563159111822128643850049324171184363344433130618171441240564292419761459304918451096598655133079107664768698739283957649796869179195884603256315658347632130453406173035629781018637342049274906379994515763547160278737094443869403409721241152529949710991811151904851511481727904887091870753639029645451430910183723299258939385799586601943376208752558907959671506080915888269811996273580786668768566212920252491321461737075667994999159049232676959892306181338629735551800901649853345694843354796049884152806214581632518419512842055567623013450380459071627379930006750871068491946619897784603637763623739508824768774196834735524578059824314410656452425427596092479609150040443104261852690944209937910516103697088821744044097169494418148087582333028549535915327643407093897723838063392900966196999306165377242618709907304030624646253819770495325493593963143626706597815458836331049728725323411476017131763884969135344492474182601743375791480002545582678068250515219089751505351383213880450512898949388399158575768639407826348406967689841549808395901807122443915741158400074704915104649874423631999003134159264399746662942836512073799956918569737712852193626310918403514322856848902082981637341397704952841126578593979709629154277654355773847935341867072797451145154168805140195693906655890586283765319853946339056391066768913760061489407406697954151007989663085507284866661182899008748581097830029804947393317718140358549702620435834113436666919710687673762660974379415533495610253008979055419892328109585368341520460679558364830744693596763665605593317054600656523279989675408188868433613826876238891727790907800979575080018931640604760600485081037409336327643407198254777749078717514266042074930752081863431753968975774071053395696356870038653759152863940277112452413052225004753397510003326954879819947347283806245012705729605271366089031022283425863311667370750988180007638755933028858458792695107292487942770670020126617055936542606054417439919580897268325788889649005022404935782697689844682656139152654574170540495498719081762663204393158498419696089845927891374126797346271624644002593704717695254164165520839146945457723421657117239141386801119917757389086544966759983015126176718993792465322146368814839720607679395621836726000863975908413914824396684433314903727196482266493276999849395209936812104023161444399752222708038260916356528092485835257953211523520661814055437717105744967746434151681761423034182141943028596908211100965917467251010804586587206410402452463581740679929533586315928806676273581544351086029981499723683941680221220167676896721902985624570808941205363110433056926797207578311739102368698241098715613919775846205885194793607254351709631687988769971042998521956192240921795412775021666028017142634678141811561620745061801888647805552506648545756034389558208976619053954480694074613419011611031960539948197086840649864737362176682211352123294715932841122034073407850868235819239058758873938845408519173305258405097383433769006254195080807370689855303163515627705868519222731723794167914889115115043524180584416061887410017426441122502412032560228290341305313997335560191449627732811438760249678357358721698191699908769670469847401074645969375006167913552879104851105526458578657247123780441719559087019845004846984047418479305946602275637416048477158323575504765030952041853665271898404408329450238432205739719627861373327114247841809148759185744212032549016298112680273351761363668377443957921713175725332342885612331885351697518176770518342231147563052227828106829716050022503276937604155220313621204593901895104213573471773535700859657257647982937047866869727693225782623903440720248514682108572697341698107179209654464715001829380282922002069767597057234578518675463623625106148362848009784746110141965501820416622616512445413945234846406224986720929725348674999536104467813298364435552145561087254113315476308956712201590309731401257759007592968349053895772148486020180493715391995851040167421759615503324009852170665400197705280564744451038913470177470335798028846295031335394336237481724340407467288996543760975610177963356129840645371693028600777482933560311498981594002677667806398395194041137066326720719158521617864910346528327875801989837372369766099380354894493890437605715815507472883659526330919985993076064402307378731046280196890227451396007005752006140786539985500586416339878376029869521359819125000364731013212785260750010980482810738438971912594276996254626492371853757816708312277838284145456086667835757910156979796148595341564634822388005341591474013063665834604213516336564763283613853404112934442446996013642159011169952264893908674108762414648838132423918277143712411371891459242539528146183993571541202586255331180039540535297411450920542456482814864644692010805356410711887505462428149641329303883257752947087402084181588143249113511601043169004855688216439232019902652865932019802687959444870239793930565581656277982671980138218479790090896838996372237456469654697345474947228060355869376348006394567423631445226492253731330956134745058338457510267919677523518937385737877783678863822492718146220092477892889191423718830912808936803125811869785558444577632980440139504696032796413180705606396974847186520569160526274999799523657949022788654464523994891386975461331940497440614978133726103842672247902405695090740158431355310318109726089214773718103873128533538791208163000470296518417339609054665301706473776288122795398300379904925097458570093767420951605423424997105783360728442060257409620098894701192786075070021235694928740170745577276120055663127953361069123478952631029250220839103314348152006738734852905291300456947446998337695565753584572802969869696993464647727516779546824724512994800461654335485701032350984866967554425743468910639296031886360547349169317789180475885506103854108112490851873964954503151067350213769933252694687994929838020015313294872232151856523611029600452844951693954701202692293646339942087793781054971603188545427465831596277985854847257225784590442033714137565278701759609523122806923821752322235753652665464545780771661072384844381838914276002695417770967870762247291395239864019346925944476514810783466576942800050233410054129286025245288022804436885455459127024032909338896421036774312662333707865368267058863252081705783050236494570030963285159091915211864251703633644303794760521353355175416859330173232227895715492488927650967592820002843031162952589134770485804681010357319242769105534012730944998916723186795348032355655523630844748517005437256212023710634647674184165454429551133264245406993454109028728205825194647584451948263182090062318658433269336413649353055472763066043534845387274828320830551156035391292614973325377139702168693138211269716346164907138555392887484197083108168433630597526540130547439360895950122296145622709004205127129591129453161473262563468583472916919320657153584307533991016631986165584939567219287922436377829740738292190407694892866260589363231892344187700359858015107645385326048363293568207641378943489227184838051620221860310389240552004936401084421745173867237056520045322029312168946747243008452766491816688004263767917427369431301799467813770088898957801199477548624543150692057134229506614085985566067036787860009292251219012307232106760588044937141214933318536698149450784045804616153292636301324310497463023711855823455194112510313370384105659622414786022548326599191306027861906591799110042963503344633283195158437051568285130889403898708560033873573771971934901041690810022064262549562512489849450723965240140472732056139237077425873883723394081221401111312459439692616938511816119531824844692781508091291512737592315217599670099972472017704592627879832281293183168166449899790404551497487733803335622445760414763129912824290100466859331057323450005013257728996027360166850472024167807983788699950705608481248212355352086743018714965659454398132113682637603076971288500338668043207074727872204765542428344433604497708291231016906358557801582131866766490525509402380214726591936040451300361155918829302640936811601430809608146977589761678587040749535946445004477490489531726025446441589003253915395034446621598121786985482558048420731314512505314895755070531507454386082192494694547424624943805929799155706551528254949445824849021915532558919719734520031844604014849938009884690388422353320190222372973530932909234930027586516057735937779133595953886838669721854905985969609194255224701386085030924638609804564963313306138682577062904466482243740132245720361119162888638803071606984308936070839629950033279949790689600349338830642187655271254120139448684677526471052438326061555318846275438448185788185258610545339509505569317721118198099454429351546929413569285740690925446506721666633505596356989932903679447309229778681702055850287185008520562973774153957503357808590088779489003078515173719244544952323744877591243000205956076860014704936829268250937018325059193829678886715279700097076727095328552079226312930316634411231487280716314278416079530981105158480201555768035033698304519438714132792202024131130979237725594121004024045929568520338516100588356401750750069522913707494758017670640312675611808282526522732582106162307019985539351214389193887310064349199307277568808291042209658436554047826269198704856622946629507582738632876723739003212237139078764870355320103684933026223627904300641054455769670585123372543326667046538731492919787311604662100104464000443788228310942760214197976194811464071011435518678384685957960318495183717742239679080875379198277332072424895963013577074209341647408247892476154818984006474479749565502293021709987252846538322690897852163529733361439669733602919656163357798967062610908531218325092224355638628370949676086339409822399579866762259972642405906322685780330497191746573582355010159201182731904460098247589178963345050572033467540596763737882990590238455000769476631576644149030689077394514683993253115679111029089817350387697155101359558014518935745116799412194202222101716596423198476938832969116608437928924557657637796499780400740721681149385451741770087572483004227579316113269494281587819824955718628381873095149512363600842364474715038529549750993777589878202371379225745115234727124788825203955778904235583601555044130519248216405293970433300823261118549073919364254277841855816626228704926650149333805700563120759146997118135179992154224658077624820662156907908758509911327007771650699219319859157049678730925704659588235187801579829244227731117609165205121955717132834269549912672771121443857239783931776759984895711005990902178960340942821050864416738610186698407537101170444461601759320630122159855324007067532392396005207934707075006936160835002152847135774891560686902319383845433425111909950477271017059536671622893925311191061997941324712882081903562140468054692474187941022534095278642559150522605210180320144658417981573735192146958439455714038704843789001797631896056918991350198160991216286503425792563585084501926434538790296700554711727996794767249059554708461022857184903238916354445340077937945190616074064767359924105252000551140011635132507840034642282051096547089555100478206053612089078213190431037632131724594968903749362910090383948733448896065434662329211255406032038828191890293576521745248464347412211050396806380487990534339736846986314525451951147088132269440095263526952207980650576314843555711968143436302481935572275758451673412657618207993205605872752475956701074280296337400029075497000302760406927183009944265733542807048905277050012161772196933923349868823199996131380113246656133135700583465289162591515076196453086856183436416911375588021390695738295429038148020494312622663287302291867041954806816480027476168007284550867031032086247791287040445750206465931277127466877293747698015751174551247072035350032928613876069996055975432685799973087973478009063568875257248040687826000189256005465954834030698140647705090430301604134205044791849119408761325160969600919295264378493544171968395792692054703156124177566217394676097225921225253627720284069738331941336125794319414867068779345695459065937266647123007100271896276822770119796337642996678175020722304765316728281502342158905513362688808225915552312475342955497759108411771811873155416564645250937756216585621263821939252415497010563992024628765887811561937998076636086749900101554294857381431320472424119030358066117322449217730768348384658077069637753707528473250857044549100803137226152277373482259371875723544375668401371230462142809333728875592676776973503799519425121976372105319317568838576132770248976434127830309349416746779171666841947119085066706346025565937399994978798184164203308252208800463971319460419052424038394009221572790833952764760889770890424762892285499329503682158388797398385043914842301525882259344070520550282295600817967751313255556500275003679764054307851023004702624160132698280077524045069387833520828348579891120018406119559829814176472769589494667181952124247283587645724490462127341665118363683150309260155276326875408665685700190079268986970171218060894978002604860910197854511625529477837761639729510677785772966755210487390261128771766618446315593723548092575849959658813546878533209195579319448240653682087298660684262640960398223469998109337351942206677349969140297171940490213805861745801881775980824292583951401911695876729598811875104243118630438209109529891282328156946625912996193908730768629884262025711159434044884947520278156251037204797283558082875782384234064022610603187718442656664609157294706813788991242221181221503330422025581563588663225014494028213245052808905608586721553846061151692428135014467836756264263254403546519064601216929790827146477032545729920269500970661952811952664455861342841667103308689154939171745506379051512722057758632354222417357586503389803403840865053190960491551375141119818096272732235914702047975226996629958419023790353737536005967760669806243018602150321436732899890316759220097031278434233040926347364492901011499869741783650849463006099661730905677254363425647507651555196100188472409349064964147045467191381991696436935138968914137349240256338737714953356892894926526619381588071236719164312716174196741131121229914985275191956112977911339039389825800491585027496592680061677763186231990380226358100630585370530062447928332810673592839432245993442370022422448243194974894129589666324787985951755743884862632401771430962621596211661454078013454658068150616361923216136154901527085354199326729253141747771746140162365067804118211099906488387435408653642918966601412905642974691022060518784560379558826823145394122671714513441989396229411022449790616332043182427007842015673188532092121811953196265350914012118046674608989870320520381976229661378651827951079567561255488494155836178147536269352760355229821671108100439731715057230878656328145543027569300592323208017506633253898948169247616531232214264309005203182732552739309836727854972130168295027745844490611384768752231501482325031569765258332879215491263661435372782127682178921240482259848173111717412190093343956171302238407250833617230100580498411944597423233743941034735467286528601240632647477387381158115090988783012020627784482273524823661893469987987022959397778772886717463033589820787888708759395216665233608091050593261963642734008941183951852454374783198850453868672728472061291538372238918865252542160348422823123861768018406419791051166377429384791166675913813121092914870777768176217697410186917780768752712796625792288821407530886456820533010402953383012945813596177248632930848307321283199207840701987485599832314565496152128327097671337979202789885174438436505825576109508898181150844542147480180460907191211739504261158236682892579868480691819211354495929215932200388853745316590317756938052817282030669652787129066439004426651099321915616050706527601732203956590338724191442793973312072336378570920999976858367681753201007671220151768759014102487877579814370739359794201777705999795285147723591839059315047758101717640245301943074745191666716302191192308487369615280560920146780979866710028254304085880498574528101744441479597733803796627262775089201661947077550968916405645897067425021176256939631391506014264938738847338784664998327072626701387402329280407252107291956303563449326368752479375535179986191896784677752322489461678053345593824893972072581509737309728058568072745710583184867866924806255002521482912547691505917300666416447029769763084586521213142948034675294768342400983007732450289020790937145376577445918444736140019311000893493916146355090239583687096106593189173660938835822205579599054229596109814795884389661140016983239648841922850593177632316674128497445190656748518931412478464473183794148137091711174329710751011645648224387697884092325659416153966647606057643916128589842517269706090590820005376029626807020389858690710136926901042608816495033610366141440305138395600254424150902401888788487362287006221253074536685734208851090389904838273205629356776160261430171448947971990121359185637020751705966301098732817451306534468855022810806942316788124994705264329314666545205128821813030111072194443536762103647877914961846357340255335133304759316683861143145769148807106730919740211309268649418271999873881595931051023274047016996204677811096818217553179102636596230407952261621737712756117785278924794814899861020472099254504557569435448941977669664095416896532017674600755415753120078247338259868120371811149102960323806206124196758054340058807588877122614188132649288033319286516795977850369382347694634479744131503827614586193142856049719603234049689547920064488539953104786130897474891745148228835264499211671239215105563619696332074202881862342159596079764385035092556645221152443145976715208610431777210635301860816641725042396612823687077677465647321639378550833862261500562570703598800176735343467708448027307579257646000322597941818102613139099448815534069148818296077332860388094883178625067848235893172927525668872633491484262955807491323185054757009393443475589030226996563515347175162091272439736016735489693474582496318890108966710401164739098783096502966439465500100094905096423565789725629159316462523423559141746425493479061576059023183568467309017700851322817040494106461630207696748105076971291984197306533159454736450974291747546213808276392515162325686361758765666724662432843626712015168386349483485014433434607112546517636470712257242023928851327782489373010479039098241182601005135564224359619418229574691709123066501018336439424798400355242737513249802866461747242643096420169066376723160616925011522945364145441187037871477918441962317327677663153018125749978252416832896100069920579923730821845408560924619474000435950274856148472040282071431790040670057466231993172769992859808486921209642742752395725986919377301733300728480225941425756411780564823427661623503547563182903417919892259216023818693130313810405965343660530487528129156756555018951463509984376478220457023365941046937031802538075167821013913509863038932078102132694601300450407042885971037832421021890782985561048472661921539205250505094669664869399024798603187140220758573503584058160825375833384545701839742154371477669561635603433940317560624457853763475791957155916670909126935938390388254785814998824311691590272755759870148838811490957835809819777927336104995694200459356651632251630897162638009506930772775861442432205210682833583304301419155894598162862150623992794122311159937399947665982997915756079667899016155038127257198718203240822185529478422062216891969049947817352611131121587780200778835019701166125436893751883929615346589388200181527867542243511203954392742158479401827556985831419633481175643807773118877245772423298878148186888102733144090001968708128010585173020170512257285956441017739837294649448508572177010321190328510638172409807541767183549157204679153448718312181507498403113377956689648578546443163067499579185982531392434264356658278737166302357140120221910068811765484656078208052825348858388203562082900852439542096249236442062092028552174887700525763889963001686033579774704029023001275278963701393670010542761414953220467332777831651576838753987853181230103942116693484146763241334637607177390429094334262112023153569903478169607891624350918088985138977921415035599644255700974732309233249143400584842383058933366423506444453862379049284098881671326238840810768909908889819652935680538952411750064023170563241394521575176889692387269882259822420979845171724481935554401938731865847191278456413057414324340507269085381685404691919886477708807341547821625760099690621541937509483952099777615191924351722642836845367210034404734853937979026844948866045948824883371709122335538380239044859970128471629934055958186901073549336438573588134284749789511397827624087188975834315193621709057010616595122439672087491385760649448356678690941546803696030540683224573063101228730918989420268175419129277107376155737606459951867588318734195612236243276890358965672079824118591075969499101587848383170297486260151729335035532461372212426827403156487222540728292513416354533553981304884656824082394690300541460655376308400935349463013612717610568002022112383955005646227053087747926334649279501717115159559926844649664176293411194614451736077438928846732248577562789069790746654068886866154896563166356803129349465209836040137078585402524393619965173739015995959860071247629280565601971848807065523038614019194536396445486456963871334993184548030960818401756079597496859370656704964740960603061631452624243869909937236442009021785294247951313561548023425439323626518587102127525858058665667858596028890965317615997650949840316411374041524933912451438348792177883200267753002154725434403333190240349231438028096650558977492315485372489684445855798316615949551115865745596989482640322598137779399479101589195594880005754155042617585263568535347365318486586410170756925885412868954121674236250728142321685806074006987791383186186759643089160393697766648124754821425413508118962299741084708925897460520449698975566169401213195493880505284551306015621488340471461699143964001204622119375668627590826374486809324568045909933654037997254576324500760207211381135193509250824432784871109770402873074488921366379811551231687076370619264788971375630427048504098258432243895133828151092491560395431893946690737480907501715032048966015428537730041156792446691544109616901592748505183368736262472685522422094152600436515254733064302149948250124659328222747256898591321477284529682521634532615268056240164361617671513695441676445519640751412289356894329362763663619260327437050488294950486825881528230005791135940488511847929081798320531046769127493991142699263517856103904357610762885822736039518412219615016149424774266671702686549420405115642930959921062058809818827627308752840451360543009863161155024537683754939735742898485587718895509331168589341170254480506248532073208190610812092031875667728942203266693351762586376818561653602686012340050393734440285209357571387624959146507100712186489755042164616342855256203666847300219416573135757090951730164735652642330663508908676455801049705923798935413038316710291722249266915765691687669632560386734399542594059614796989498917654262816491220538313800673220521724724566633399744315604257919126155043721104302381860393308189502085340366492996763120251112612810259824482968229214296902085140766488800944542738856602471911024819039519463372097751355875564246144321151546284983819475354838865447289446900098817598722741483386467555149054575486215814214945327173873335554421800114019245321989812306104479331386698891202983259986705189338379408647500594003923817788887901896909325682313184481540054766589136818725319129487415857880417830579795366809287692744837222768266007395819907563851409590313181783421256634001407301616349486116739795523223738646093900231187812223857017002602158802973311372173432447350138547009215919446356307838377297139628665993635254074984617355851412344291825299517540785632725692007974996285564679847091520425561452164833828982166848172245199538922124694509568529480044298210680117007521400603824101725798796247945361022872163388628518905351777658093197294020603778553665967156187516401285943595243981566183635255013620990143394232681937461686695345266988911355151043339705668140593002715337711831776501641337316154742496320167201155355030350510909735311458838825580884382787784482343496843710181212968714711894998271503835499828773629227944558892127163966374299157301579376796653315209341793448854412586162306101287241220782838534906641261991933101169393794576998920463233046317062644317342854567583762721222596650392877654790466609610139095215368393973664051045741302008242003683844783995835799371761593134842307756353729547451899413374407220942531355707640859858116056731240489729731827187723197839530460665580820712971558314027633823977890714030213086154808845696412476607345733722753977616389391325362410567847538151186269978387570551018588552596136188640016957581427632881746659413678626978403765001509827722740776683077868482086809353220368945364052582410237312130170290408639015638581642008893634401769536093412883813765248780861957726672780421391165899211643076696938112971751254941934733088298690848383029248173447651207649961896149543738146791387555632559107887727661591872726491985762172220998054424494598498329286757588343483059280048457001720379078099373334930335971287205602612358095148245870667638688856895653130968934962463822332353731862738074770286708171481011950741167568081453225964621718988372669167370351114340218253294451247715190771328587163637897339858051385914755820004940981569905965314655904482110805397739750733094269237324948886822555568758021196912192500159825853589144516379839072512430919892412014100320357800087453293135879271534436633976372527290522287901915608350319689877299173430336619934082128671220080659361727101128450241684512509851037799744797775287122663561439852422555438828270639641136909734955195049936721232459284569084246307872666430568265012735385956421755436006977717028612814578093603567703300943356391077849336101208205743456631109566397095065618366461188474506508298654519575025558060188019379524540227329905974100535226115751138853803633588248148716271110489636421576714527668815619738640399274341490594575209160124734495831641831230587800087842423454890284588786472904810479203355933159930358770698944946400532325769222982895803178276681299634888473859006702480756110038906377710288779398831031034054709642060001236274528619305204465429835585197318357922047501273509061113025928092845003706480125830198334885951733144860373875497384993505717749669877369902002918734432405403711015121192880075031282230969288571306980278337378088885726092747838708750360013576936943258510912590151449255035759400097628302855325997482529578593989635420025874890054923739277332273429938604867386253984048166027568618463507303361184241572988226756514571994685649085594475849162419040640034201867291481684366694708016876339023201886518432415552301548063174792028926549003070252711848908881396514839127136665920954290759754798880413247544119255439248465556168007703365933841376186488378747604372927153041878373865318679231307965412346955335453835104588044265258820783019970343719233257428452046321689437100374391550544668080035765902068867016620904271928066979419735830914629008873538003833508727871619779913822569859294214724710987618105331336861499005420714897783272159362280450516348069107492815943971095358489393994627443116483724054877594726919300002615140334165426951336476631491741546815974659005864874224754642905333182203763120125460608556505437254324153573141327621591333692514926054924663754216451794098154556229947193774377935039103617730917669281299361972921492929653293248695722177443440771273621909481146745241265862261210862213341170678273608787506209311352981505387861781401670776008332731996509861495502330768039432334767397023877025533445401152170762268425552159534258632698769761647289036336838999535419062931051294734976010153720811870668961585603189568454004096528412657746365865235472170887983961762589211158147143893921798459763113192020324424575086127640828296282359026591967795440428496016668460021254854601306315267561685046059419200816751624578997908917439838814837554922283544560242754916719361259273693495979955051671960088428301406922168524098286837039260741332145599764540591600433514915237491447199906929472120410222217929499096440328706170078841765746884132760908400802859465052327571136807548285140891877942401495531413320013379706678034942694174354076531737362061626826044946182078232008345678911050959893947357177161151832418086116499047554776874314362624610808226588024705450706667075506895866997656169686043596019889142008834040732442380396315290967039384698748831518266533154569222777072667881441735504510290331259013122814082141266432201284491151709306839610698134397257485040453980921520091048441271095590446181033691543078254588390064221377572474397892325938955290217684351047330863618819115833986233008987691559402068153710559394244217092202246803427503874894065263837788664178300729321825588457023720419529553005553231252538327581595319592483509512534038519422066473638963397431610981560599214416881865921647314355675355117744777823798439071693201134220120066910617374515154374665276611304816682172567610993801018536274997226488414745523405963196185420884970625267011609139109924401586974958117414181048277064049771033025913664008861194228332026225495505212187429002409512095362283699257079087839979778488267786197224433541364687183638649989818028560338532607383292732812599762470417535712456016590257531535455935588874739050085058380685335698903138175774259780668823219630063639123366393270392158308280715622681617259752114770929190286699552157158754054286644235472925165156936733017891551687571833459033093750053895283257301792026187968611006089351916327309383127412531341534224355862664749474565064535423704649003165383878991162049460681699725002712961756090960502958751525254575154906479333618800757919909880945006279349721044045485784123913680718688901640970925713359211052331438989545399516985428510701880238354739427666939006756431381629637208541201940043976450173307960916579071614371656572449167308863615249008364531886006049943172683533882990701365652846283932446722620708330571483987151636247822535206223921360598510359607008109245086762862860515389125668507102564151497637678235547975211229607844868695276508738571985531747169452018973518532172189981060463183248916956436102459728844678760394069195615517047516269398933300883659431463038410323221661592892604777672841444759018247884982789660848225059507390686841529798677292930654715077804898507271968594876160617834998290848726434801627746434327814082882184930439672474807118737955052560410552868421657825527329150934968285716055730974089510747478030808880986815123641179207707281824362054642297594914657617164502547303149146299800663866261248201218976745779128603717693477929870659526303083216570216912818054447315004311333117612625770982315573420242944653065058946531854238342979341137898352687973432653438914784800524504348117838396886864096782330274859422534271136797253650971435182003401841221909834798023490451357170056795710805107574931029099793371708211193086947465824696147078257339334360809702875413706603784106665453532956745765791126031022539579433525469828217835912943230887414612075335938534844830881077338900086158578706775890284432318589106870421356467416889522797125475612090265583680784844966148513380724172269826964480586059800754393680304811812456650293602359026267546056236735310224470195482619303745126580312818959137386469813815563862093024877895460573227367235766799804286401632080754617411036856846149778613490807234039756429232871853487376479554962522435904784090491580934085217365281928765140085879184234702394951449530903309885365272799349923762929122155184972933431322505872087848458994993759782996789595203388529780855851287488521592993357734104469875094107782413027216197504391242027259637302386029396625941396828970872817373712870465537838682227840734790314610261868113142858652435822759253204675128562180015252287972569976737366597211411791650544326104264591260941047639490366038429548400444060368329566190179198030280545122922633879277935039717296462252191186124285214466275344980293894096393746169283099103132750497691105935808322400971763980447726484153217082596238236810883300047657026429620834858025703132396266136207020110182586847050314550301205043912557147172770782118342754033846659914272388133926621283153218368345464041727785865253963787766053150713869860679171457776829493023573393493904673834673757217962373401000319393936606917598583324811685542011415047017283761694909216930695591976592244932402149891599893189574346140312506850352850738801488652431173460200545880064193222306479767371838382955925729917367295617526202599318084818346939488309581042028693750479776538485386888284086330719208880489173873324315953169479547229670147745255685881383477897791974747108854979979525923179349496142650352478452001274313388903633968820894408376448366250927609320794613574298520051415710299381307917650256965174868561932829410008380424062175794667721817578974225970058328207440638903467615611818023408134524315184269998865856453079061607899562669606730057677860021005523347764956873254705776924671189226052791490080629768511825552449827605507990587223773305236989816943814815422253583012453076615306267654808301917767411152214840526215216078029372804491133809176306819413669065237760902265544234999934017581142083910316718988577126024747129397547621276738366122171615799055105437708715641334184551485324847457619197346027392496074634092540234065662742164755042721658294659614174122764906223152058200736228704558690005241453021911672104956128671463386512316226530788524718136831574272113393368811160659330542357697044098623477618429452296813255022709265756619197137962100745650696789676017899827980758842782483352054000307599148348112645558585959673584569840928326732324463211373697995019269297632318224774354887143437939284828099165023684336012354935539763088980379465945796749662590170840083799850580169996008175145055956932090920988554115808578762422535376739493198599187855783675345369772758613598911634618139171789284578485478360499574827122774767856211300602481771189037038915024193381892250282923038403866838190525654816283226528745377270505317961782822296768540231146661685887632940621957277408157338205477363129867835385472063328778390916873759429133938776895975192669099267914798024981008445519685886845506836992860495393210431371178728200955887293203144065808098789962154001381388638147342957932747775165474139307275665652263360277251773174500126970837584572130821065433245292712697744347084164548917216706470817105970199471118545003578595432459363594804717734320973428441044013374430050093318723914501347472756220875724205997063913908469688088805044871682537734702289005950406470308021570438477652887579759758492834548472152328615060081511803675195576088093664722289972592951349767721537289374797609555268425563442681257747767842298864785902264318271895331038418477955865557788868099503953033228935355030828059219910549970161576294710669834220497876559992068629902068752556338201920004396684259177077174135673118794650993864238152407585111967988973905376458634235328461524657416075833426168588690188954603199828839092502006195451931354165988865135683688995666661482699173728159901645756970956667932606466046437656384274702336669362876245250512388294903899707065938591531651072252619667430355658211371110674276805356671636268613594074184524256378894185860951385993214710535910126363908234930809753146004517986497820273569328700305232480716082858237457586093195120082918992615053045988017897443088462764221615774278825541772071603707872998188388467557200896887225351255565333950106468974440919745791807995060640433970934282961174728696389949941691790061780397852547199722679361620293849974186904373542460187144463924233033633969813747546352908685741889373052636789033359033129752450730879373841138461235308803902126950199471819399584094750815100836474133771939130727534820517210125699429925607743046799129877406264289273725966272155785560530918126206329857032826416230455857666771990368251526396771107648058905244537362572606761121343279017711062844819864385864200613253891875094459864395800712459887423293944492996805908831828593951669431053422176301789917735584144510048251466598215555981334147576202180578117867363618411480330718586326006433430425258335341151218029111459668166091307448188472850914688148114306860360193269904722541029412797443920356540295486143390426300551515257535743394907944548265682479477553890966990432704246523796305331123994520948208234562862035459387217133785043044615654376017279459193236016039219018243331471429050288903887281717962918854851636854966553264382600461051757662397976557662437309163769958359070674352634207941289571756425039948931784559431217058905410341867236506908612060256054346075207489538281350876521129199383288239808522523223564354517937899400268097921925741342694048139612120244859263068828040059347842711992044150993001705656839457949771065108566658572816438431234069424721873470972115002347272230662968736611683887842462495014987578605327112131807607979888531125959189732027221855000280142174562696188993950499070117618975097708999309155192368977067581686693633467622080290543119185322717862202988888690953650932053698072927446835614560996493157312396431678521962740166854526205192010908068879427109291479140014275312650517967460308348811684063227487646247977497707386848531697133504081957568379067226138887588702584162625595910408364839088130595053796227548557564887063649684407820644586732424109687130785595938357355417110456052404118459685406116076726850855336194499218755346157662494518766575027242089989250056559048663752760232735231204172100767108774986046696901478497625973044985570665032572268435008284267358133730407427574579293539765921634656068434485823535736603016492712409699014042045219307982343379083968149332190616522834155817943003840715365923786557735409137749914659232540584347770945959642053989573623183429759046259687213050931966563808854893941163469882707922923065544142131046340547122998314217078347770936578457968258119876916485375181703890166763512114884220645854109044034360537660846049996255425253036553991485946296144801673389242260323600287302461593754816364251031694787503150467800749455456950303473877269512056117281908639765281378862540137269785620743625112197330924903124496033801160660735125250691944806782296863133723641249606200120764938181223484935605162554498364586332386468368612619683719697584813868293457249897760365387538688823773311505930253890307937663293833122287245851935414941278027545389868001300137910029103769149469467767087953319165546618933542551016668957156560872080645270028990071923378110458873884427407559792256622457598322607995863773489383549476197914886633169835191959564631003523827048214018857244180690708005622612905203548298611455540172389249348530977860041821759850183830317537643595561164166740611545687570913504236191230670274651242398559839948130761248324919419671653599233299685367871536863566193870568752953321161179338308091761488903415189791306077605908225334958320411109315515864849419589978192666195934757402489055297166337534701653612944990324926517116013393444031052476150204233598281368205974394400479419919249616012857342798673515428645791967189737278860004967724000292652824044054968537337675881411172922284681046668746587309290643947027707865784245026345861906783020614219493519469600376930608150235419711004091834156543745646819726836842764483366631583177309239569952299322356339595141492977002532549764429541725163372516284016280544432894996550720907355131775214866263783046704443089043877820231363656416947613884266220321783754200359693161709928473938174924124988826395264163963869333145638515505454974600166697741788838355315694234204102564455855597651613466719902903742845907969442253366039602023594265948246320418323544944321539998138133941618848775493070971805738634423931730479614639016819693859198939948940377658456698560530399544260183598827116890087553719716555796294759805397295702323439225950129724265851264496139379018062173166933346189402326860314399721576340954629620649709433142359430370782014755880534173868220413110407192874705896084578201211285243390950180095819502745428885399617786938149734804810353705261849563664452780208341332836677821505165065193669538672734525449875064879291509682340198823946875522167188002950843672148160277171850721166858205249221246306879130863534288166585457826836624835114262997805902250785607294918606100009782624940300266864855823200067744940597752514514999573990835338140812709575025522755593607394949706535697659827702489925330693808225290134019223140238659179240543032413910096679560923574874759674561790711589150131659301434638483630084196472867478351217224172001745496915623071028692179789212912156275754019913290561251648188749817467954454628552440048387655172365403621974880126723025293762593510597736404214553460636745583098612369521556677284723756515521303113915875778650828634745851264292947358319252522087963975979449399518059080864101166450257769366416809178249402616526240770176212431110925039413933224505661891972371382509054016432721185967363958478066551207986451592044457906060253230230451250421131656051527794427717751598919422022285632977547863071336323802667723971473136347236446807380406567725564130587202218765320466157418544831479501820484191497644981939329488579057202595988340189410283452618678235633563571107444048040444271903472321966589422141398611323365804689582180429319989557693799204650130024880494559962789063893050119606939214448050335454649404048739460075701145159695300262817303794876382841040746511727895297898498580692404165095018534630754684818347262703448106426506260041797838056152217927392097557147894572233715710945305362450194773343225033761635307658644980519231738373258763178387825192316017407088789420288992769085700323972781279718534244677342579258373239957514726014830745684272695237911367688872204666567014560262959361059556988623112589025207696946218211977375320389400839474537534973622343297107038941300670752575431547233323217010709634006401355702715963029877263376676177443939840081650169853486669641902463940052998440113578071421196627032569945506479259170531162970535232115976701934838027894614884954448307552402134408991867334406242921216677780132145023047410828754905484052961148931682170042192091612216572108910761450953266935944882719774296669279792160469297385046011709224294949649333551558848302135494929551866515387206066805787332539792464497874016296741055289577243076372192293148374769519526431944653576626491429219932902266633529224446557223159245174640085070604633708384825503821119444052068735059473658285805268756331289253981087682550144324243024156486379699068864403964531340278074807335041479533360258590869786776561603482880651077113287949585287143247673993183283978940025178946675992574063676103251762259594580968743410388042963062271307245295522640222930770481278513729311402645315489035870237837587676428309678888255472238710677107858148064777971634365250727354940834594081105102610685833250003321013626826307115338533326245229310351785994959632903822921343594006226446810958929597581695633128607241411383143922849769525160497337254855760828043565788421333552843732309247930388720836646338288969845196077403516346468365292793120339766654166027571378305767630156442059320804133587236818196878127224006407475612341283667193114455349980500134331733084512282338435897260826872145932565412473158997419592469098305116379655799547719015091021095953438765063917801133507734800332165683038063794443857093241910118202843577033937717075222365720156151660472508542399629776367060350040018766157079451727308360521622051146600827583281642253834030433972977212448746951034466333142875690083064310056271002393272807359096997384650718882786506426890254349046597076323870656514595197580162452850341111740129030287130798124610811779904772337580325232631666587716995239836898221431376411772102893792687177383547614389721501633772804639001797679434914603841581186671355903319456815834004508351143734344123138457474398133634705009263119353371229076890701785429020154713880315643521788934551723666709376674038817802877716112937814609091341476974258277957981806876961734696393385536099496844435453146553883962804956911159230879207386008677396748097912768172966238195747729263831204176538039884238286877289116922033991486770736995340554991325488461633332255220339589489051928280378552920851431521949893068055725342426498756652762189135943318768552001445530857575312428361013282151086166592084357395759195339929320494627987428846417445263957567187113737644567704393906138264535274381696065056624942246560947769961569242270666538573341453487375020490438602817999809763896106541247849902676719163041289813700729897772441730922754146237241444156132360859353681222527986763206036982639813268672313931711252375565053376255180524462642749947295753076245742448545576821917853953763007715481062797238933749565647974069055903127818519274785168940681410009471028651513632790973623794601293640357877110633571410991884598849641870036998611540308381880316742150676335783124770034244990980449008765705346190086336280979311624327443710773145647035753397023655260084091084613829848726222368933894578426686037014765637516415478553501786094832333344716390290445943442870213921707978430799759715930139185394352477886356140424892760331691772933953739208699037676801804259373961126789311484400698576174454950454011505897594502652679844288413954706477850029937203347012652951031618615796679630088612023427825645149801894523151375123546881848324279930158977809216896439404336639320400039824308707119728782935132062603244829712555671203396320164619314029746456143366487349717737453200118140627544835948072035299688028466883021842688116792110884815837014618231582975944581674088989803591058325403962632048173760612705449923821978116136360145319388360270667929001072593491492647647697732978912541337328153015755137283387084857633077724836740533792759675168907473326998399120447522705883144553332160046918533122025320350900704364371390210645307398354426701149505507494650959128565902452886122576162685168545343285037704808323441767412811427028698714606984792105709141770449173935370959793345275656482905534347998180920711992669425047017043173648579875562768194109034169408988310646499078648961518223589251649840996564416433195926999650235294796393671787123240046646330458704290142834661784960322237366619982959971600327237391091863095112522243038587505896855217528588713566212294079723776636732029961124474336749559584388660858040012022609354587583369801093428992907160835462601390218466866248089059420078003203105789508999620582725896155807550143797815302947591960652940214408435000505490930266836326265267621971107480959416695693025266758185230996975762110491675738832315278738831673991596037162713433186107562659586336264434749914404579203603890969850889191965900851512700893423272109517409071412177447496705251306521821112231980055482606599259099777186609664355246811927104916587998820857176362666494553934250427545332357770008205398104929244786144286583248319134298324520594061771051265299292687930783461434184530583718817294212624190678216511424276330593599502326006826593116517355332120250689100572210424140640895206851651323507090051084342846447557170709416020770203408123097724992598020199107489106154145556534600836234039065990642089632354386992726381903581933599149763457270188949424417767773434784280285800731326518765045543780913201857768594042040485512460323592379603639852578512029470586427853482382037591132659792146106469055966319547813434779542039590283272040962676129341902208384242562277659458786131175456600504763820692036020706272355736036078713060442754053558878828634855787686139365235500649517564274863917520545355531051929788928495232868304600874659711835799566439718528694463813080731124462525736040821489845385846380140581213852699079336196557985700911625739713253557294001853508718478386234621817937750878052236239932385284641440862602297310248302032392540837002538299939614380319219086387090870388690972013022350422474157340133927176744104330155199778264365192828813755381955887290015549045983192453768433833646473885360135963071025330612459184487904282451448868579577340996354491010596630428472135811486420186179781134332120851848737327558680995166974852842930861983363051356339167282697814025371841291371072935197739342879648029262553192314992837422986190155227273973249146244628571863423467228876826899146099004473658468368007298272219567544492460858972016015208380466951418228065648277555466821370448032152512664389573919052956463396510404368335896819483552174011703549984291618029937915926685379733123256659265872780571524634794571120920869461111786793692804763951649120410419576821068730779395759151958866136017358099934216868642980293843622070384466368261210932328229273991479808960417253534253265114856195740995513647290312338107729042544739642847893737431278807074025725846262109923068894272090760338213592726106787208162829609277997496740843721573020050970596763415702576168289522636028265288613787618425826193460892878374250641810832242584161185666379068699333738943334942611648572525654975507030054802123665089727885416195471412549539787871031981299486763399034518531063761260286399159117088547244410083334056549458253451892476267755838671031456780439278567279392798238705344448985288850956048770491451217947618253402416793652853076847302297287516144678039545448750889888923127238669683725056622663118659323080805650517787372086172545200170179180882556001914553785403036155238917203191416820781670306475197002371784790338978307994297218645966385674473060291217508885645714230441207748693583156548835299759592524784656487580374916568356635097331827638090102915009091366844763978184180828060385415032173937226536805698034585247842634813120324120257941603570633263319995648999521365916009284804187021683266762380795392216005784614417056302240077666357437003985232089824637349777107498375949185866241011687188416315228655304307984368120451436880880732175443166602782524939313040350324792022073181276920731927342088314147090669376812763669371979321245793673944735276211407179416246790032718480770019930004137860092216006254587501256566366349241563466187003608192488045844588070520270819704151778464178539152983452221304655461683938378787891671577916257364571065323007398164919045647252627235948908107457964692074942412247163220978517374253429502521006462211106570389510293628173593429819558876028064175413707168590718084391552319554582292611088256353742476539583012932149513489145928772501938816049694605993532301979995880040546708403077009446820747901954547711703052555215779165752097382367885188409387523573305962820126254037365981477876110849621576769536901458391225493699940911002012160376140513671570640282867030170110303866186663284711802274910884534810876813594882664486021885176074648481287452271979564516298948980899356231259535630062774383057847057447219012355376948877133894734379951335556952125921339565385582157852759761404225560401219996169700620770821865551350413491271693844942079800925834749805293044162263059670969715351906587504508387194862026090048922035431031718075887177733256362926387232254468212902587390380791923727188390799660755759135778669778502151672881472833443971363050071888946063057716283566818941532304901029833410247547761182295367848130021222298342912303859982745898261620193124544763892136272533052485947152367039304716699664411960902362788440734616335673956612449020592141918957194359913656557235809345559923915488039337901118585277873476835664435050424114506346164683926534016002624592548017055616258965265537217562220083687776167208159425777970573036353394522579627477602754049877916033709111440781203389882103184182160818462210366310498383659545085532972002647446999265189292453133553750838712464858568281576581136575133675619626874463692066617561644868630541570536960013879065985422293270464284522604760276183428697781695024941661703445313090587120814599002943078728795151176893053252845861753496917770693989282130140928576094695734314263724420809714670338713674051017005601356170479249151428220478307397725121886651995815494387399612883591689896542689122286559560414065290931648500990649128590133042432146832168619918488264275312801619127691040660464528687690855729765227537976889241027935321647396515117569748910719215064089038456212224579709931979908657312488933274063338761003923084956368817185417152383380584179993967911648699142575835791233529479576397488937939379122949670189098685726766837700460827374497163969178762678139176450982619693726665063287875543778639794311176419048851839004050251971949487086795751773123266581399608656457000976719834694188854872049799014826856562276687025476544007208056897516004576462518654814268534367551898871901277609470256332061026685524154199908486687969444217803864673196063299084966591625074803661334393111861658084192119856766901137626821076282914970323921637373950953862094445657724692462594694422283029693033167276625789431736063995095773811092418726740467847324522707316402439820786451484582540807636582531894535766719459070033039594860728595207209299559256409683725148509449931633593531186854468792450846759582961375017085681196473899317372862382327951006135343367327663134978807278005874274828983458733762127940349092525517072400733762717299714434139817274786866488550547582243303313702902036302267953844578073050618107395785950338672896493086794079173578212995117894718021562932191327105720138005304460052141914420846018779202930716378143618926842135128454429584958454743670461843645251549191503587809731494910264320149413818124087482889790281419116244148897477903465613586439530679212923090488654988639986403401508160173010413645594869980697551277443905229244838562563564998566291304703106294265264187686339752265769455813920932298490109352807689125050409749250635603589339614113563150795331831882507675258495959216045083870600549323503691305700339874524208880749835511450216771457979782027022456580050101828892059623627710766806964265767933066059943919090608804024342774265643844663915417472899367093302081577438114545287204367064571590147721399649211641287458216568147182343598813750604220755936722979636700319888832288877006671688631323371936738515933934610720188996576847280241170414764602363113401250788993842441320073594861834838346877635072141329214780550570503294653812815566997233611461990603341853988266364868935821195759815943414761448508763333457955348507343249072078316143865213068499173083192250895108107213776891760499581902784808101526256174364324988227766009798510035842985493916900010600838757863860111615751716443830090274891819418695702699214636558229659578704710716645166695910997533069584537256870908326654557459649508807276337464074562141490370706576559169369700334779242745872627484569580815737582880900379846679722721506692464512304994351767162025038577205300802660088827790627028274612917146891097376151084446571420743859586897311000296176235358067112605249582409794868913571632321284673085864162699731741887458981542036667730903457186992624001066499974343007348850174182876258739297537796167141549413672760064793520934355976043174935409003959506392982422549391517252566057394361399788831785174657798802854606298684470183387567490044410068255555446595040749753777943748784490894271156933762618995417868206955632311424073041192661621397695456228408183057632919327927420211878487055028123709248450343780512500144480356607339078745513378437557299288622449691761048295254333022475467723212092464765789934577429973679822203240890107568016075908337391123468146616791430125932139773453934344132838650693593482866226443445002390699430987791868077936326367088662220468087859605337907667366278678668405212847834062611140028208851721444943609006123032772135349847830474532701195728809043790619748978552900163168351333877205872804428178519615325814492304888267136281451151001372184735632098526500537279229806823390931247571066341459646533052407081480507094090051735917120553045674695258677654676052384953888300854325558244536028682923619183381796842173692392336640026802438096496982038718945210857311849528315547271583176740351323922499864164880319178691479225524220814703698951487346292265576263404251259318257269280330076488635338219473705745053310357370016416584206003367301767588965951783151277073641148588395917923506893307143668266884266866031527021072779963183482039001601988320330783481867006130675312739816568251850911087539132079860105019050386692938601981223966342883749493993477568291409990838660528241411054344858965205439752767358623749793963854470408315957474516268087558362404888268968167742647825811188304777556876770976047531893075429937850102807044799351963512883652191217876896933847972311811125916606035621367789890048813949535380585108919450230040366048807704828547654375979647669175529120463578054519858519918588194070083316545364423468046908453126748060723113292470888954142987314711971285245135681676904048782066266418612903480577950298033845735676475425412172721236621613617886635516582774353996549608365007830992347353574240747553670926373251351245388038152474969848915797131696392032337295795745792994794717861714288874608718750421769867845290693112886295532361923875047161315923760806910899386181173647208789519042239466906776904163368381426865901618824314501063927505004072933649204449938430747046686416652531641599951092938080567722032852947340423386129230921704481948281999690504924042332095972503596389774083714385377078928129126199438380037964552930836193384561252168793806402573936212576773527446387900016221629647104275018694100701929380485857531543422893673278034177951190512502720449298848506651601282822648843824084635210918717392938678021333196213356283381465507519872685223528848925127711510670565401949030311561804062350023312435366093812249542608404278665148248863621564325552558405238056540820322360416837199817809459813214962686400928954501186030366870271714850011217330366355388793535228021719542001481825629983335646286639103630100715637004381866865556816440283105752117274205801396492741612449892026936034094143966985353802608727494861360430615842287310493636065619850318282970472248991664151993140198123752502973194185744246342040017949308118248330192843089476371211398785276928779122726842365720485260103299570854276462998695015418565642234072492191058647184956628785776424424422060010509406489935210490922128792630202761112691106811631890937663131081272509375157844295848774204770503850355054741495891862258267420052010801738935734421772037290350842656026980609491770519231191598447855194816219937212844018443569982367002433966517845805515173705969760665676468631861175446482500087642331649401953525702706386442704289379195795860163133118039918045624990406559467282875830357689875842109535961291533188896001040621781606833798521592901083488740868809717259431681373135715361888548335421371026691171669922501454822499468730718202260423315283379632633928775664285550296174808767096136691731131521406819784040458604520156031308219503391593543829139087762244837860894508629900949865299547687283910245699163698874347884648044220447848451813794520253237501751137265248017933736672938856021396135395841951060051840726208721589839794180730079965366512626756752304140097219214200957223801870499733862495213949168395638192961209669509859973914397244603793378036895248648832475582527941032963306403299402454893753108379812983536846087382802365639815146166737138688845653041231894258679710967512844153304219051283126879617045728706698136236967033567744756217387277566301791115128984296200715456173591662909374956708431575584205900609427888874701237314811817966004942143363224630478135758360105457068043732995221847751504194573632388000502730945063660482722573034339898636057612698469305430794586572790204557645894789845961487704984975864633896949381061791407730975605410124435323213711522001544091641294942981395931754350122013297065667935209422149015751118069935786829314375945497219705337608217881354670332860627072499666146879062189133635370963911687072804147973415116079535227667092070896062807730125769526888013146927272317388867863007661524702266449646851385930474090786775239537927100834321793768482192593489397225601446046657184398621241992606205752820320175598170029425550445776880718325652770479420818523525791479613283888818018860397626482635582800299171649313023113978308408521278202112736079995976009500538555600931228439155123885482504015254285730140828288115653137058759941797300536750401874753063310930936277509704650778270441086275389670152203406808701184184223154782474196446890285384336313481759211040428092578903623236852169175932953594650006040822868950965616481231683725057035683207355387079059897542173704733322784792519842372877796223794098984445098514436058882448540530119401200507212213874861987820305375133861139183829623178343634334500689819690518972716817239970521987692258126091807449941847321505065276218719781608872982322769514257576325914024015733808446015751508214985641527273262862599750968614864795344030100126095432030312638676196563368507489082648815257732147538964970218702204826914585852271268070941833521557271792958535621142303450434519000902216835697541957845106058135289322432287681429621506759820579407303637356449662792766751963889202177492275354941278621818156627072556760537537814862967825410384395184539943892448108084858334712279630986200047248061005917682269311543610411647340097793777725269069940736087847926470003988192740416886474134898752660211139436042580130464173991797403391725847414348401037880677875081493916943378489481056406107353245439056352240282560914451683621865197718110183413064232788212872881002463519048463944626006837497060152314371370679002565407965709581671706924156633212967712360504422259639220145210712918197060516502399278529772597167417308969362931311296267060377341037290953574828859382896736014819870763198719847016615590486924781170150478910371443577775628361848693304227267614470223475228120630289878223194633982507790904468564570474976817013521600237000666847503150807648596917685439035946649647520664164446434363572554829318613383598579499790012083239736229607736404533029253490275000967620368190819855555935666023894635638756283948376336507737475492329691275812148839123315578091722209683028203985204631475745223762816447228555285646528570852960758469312565572788572933890922452406386478756091229948335266285917843799187384520693991758125413875622442157842578531973199636906345202871988998858686585571925295370529425059753368354028063220733141819490991973823231681222935875639928451490315213772106697222322600563024826464497130232125012560087348670113595240347487450394485411385281732396568561074849142660585599757218371609771442563669403969989324001426951725739846034841941298956385954575737035189933230125006747471216949831351147410414388873549881392258259881173771807467419680896183084541321103190235338046821784979382345255078952465961369309174707093466728263346095102987055351761488059774735297153718384359435547122916810748317017162488771940811888822953900616265488957057945405610526876974909587206267545130022206871870782439191164066218023430117779859304133566125283885029084739054199950524781165379103570445922394370794149993587235552434113840508497317805081712597199771504604239980274754419861026251076721791493724214743297287093268595234610785690502146732476707961170574759246495857364622354121294742211259459515223903049575040646758506858353209248345192631459699121743284505812235567617369143086391653335460990865623375576540115073083534709077635879471951835345468464151733315340508925415259577592021913157508807181180847640445929621210558450495304946455993002734903947420551264736476972406472177726821558570979918381215603699032062458180522050496277415472244789477065304288537757531613575512017172852427741224375701888487166297594507660490588040140639180408756491576654568244340651114395035799281399994760921550915892388002779051385013875115304850293461239269108842168886811297882662133726133425199301463680848542748466634882436070666191604649264176655791132312230195884556759226954314526238306596719296878067842755157842590263828513606989149105489867223435243688369683785086049251102870662688780979304171241338332635882601109523805320529061208797398415544396566603971754215105774814543884409179535612279809652270159721167266154219754663546828711950153988853891090690527877438695308033184122091690863435116914805785390245721052762441933113580030625890880568362068740742096557295852672747060463323404142368950060774804376812753148146574002199318951782816261785020473869733344731191629509012885475198055125701214093913871180933044817427444898943567868988875479777547992801794091262652319569040276021678702371454376318198054390079460255819385168090009302585834511306578096327042897017814492758926971129989610693357284645670562004940217712161634582619725398462629411360053660395940666341547504809363763696810809308471622122467620594260282114048186837627997853247385171487970124461265906045521358455150262195471315480890533739419895145828056973520715084103567828543719638285930327996035020389337216111463938356030526795882462415427038175030156466602954284634781666105870804254120780065744542632737129369729569721826662493813386275999678790987401164165607658387143176709147724194654516759279510822879452033523843459926576214882025599616740216667249603756796376170001537901920326674313672350702288653950744197500081477752293127738071346107656694648094022287008299454497680658563670044737338575389771077994730341993329143954335309668366575586800520521794859390963049045162114040785730206773509792911167504942609231777031775428800236879415010900454339716276620666058836978466931057118685583650128045009841353774541006192687383292543301948521275774705857599275394209666578307943529879247368425054345750143145032661209460097596257591808528922665183797617529467387294335125113480421435964955002721902557651203236386693245945415886319484775114437733765109561920723364290905257131582884094642605173031508655185386861849358027085854575649943640722265325141241423541400813223742751237132761208536310323773435955668541945743993923719554004381031626590121610055445849969686368098888365897080911356907705657773758412894338179763013158262888976507927203804696034381915279351748318821618149797239815437504441556402398501434025769538770190786052461905445790552228033672676833927466893062844560374120567572585463929160619137947532818091779328076896334828367859064023031002093182968869744630390239419315341558104885127684288360150130682998916330911024949365854937893159422917691510026320337099922658262952551726429176101526422955175342304721901976713079742614792808647928955944430747815059868477384521946619948923543616089777670684589330442608496857187231494523264307503146509199435885461159208610597504192222795454517779053836522765103138217095280867510971808796107345986444214155029755890075285907074872349348598548372215346046089509723206898127907074304944492709924127827027508117137353097466515008271816012989162261347708863451448976086846301957292614288849373102280418308009399915470900124911719145685394471189090893104275651174395536374667756126191579860318305397799034730780217936900095987188390487954217331251899622428111761395021072449945100413221866020471360642613775087696547851673434494586004647109318026106097697973393532523288350146371154982187899022797284504437942435735825544122421866359742577228007968067733844395270690270030288173969450163765659546327816347625321988451976064954506862000343247154676512183940091417898579015534321056874601236989293468902170570333620413176586481876044989890282553354245933401359104294468551578550877297638752069176456521203271792127550340851608653774271100226870714084844703926837190326898102769466367066811855844971450658033306639417795064341314211100296029430430852979123012709819099172382002255276768297301241271714691800595994995743306466790153533012700177179545410157579528120816484128770656693067977812837013988713866600651796265079333433246077632751962350819497038713496808336966118461916201855317906219031770898657387878121005104427394894437306342653623702794276367594213326928257183645443904159610973466413645196385695118659193478665647859661482517206646214630691538649139534602915580041755808483470938016249185501513148296630625454475522407989931339800424103812545995497897984411335518771823672242537304271451394414868479648428054199995763568787200513812331004068276714557156526783781324783628413946933339520763822558872051764428376741956068339716740246844597933957674335312913198137717322930354856623865932299964768868863027705925759188562170521852201133034286671831100739002087375654367062962246418550140310766890123950751917400326681196859770575022833336440354934039936089859413343831866275906379437291320985897131625885246484133712345528341784498385431693606501208478978714210026384941280397170075320647232701568881577675419018741715896846741971842740187889683071597743219414056559188759435044985620700453503450122245766926983912698662238642661890243631467893914584901839500120335917382433911169149467527878280013716009204189078572719648207116681453464209768888013496977381072321807546077102469337592829185480586535826076595672337362794137015230366454021234456569973787165118419104108003946681946538621615546342848379835929131667483046872892418307114699863639362654810752743333408884235965842688578013131691134904068633757113784689392455082361270768332296623181564236853400061665007229123167772196071481389820961554500708609031618659107310190577257542214784439221717955725261988297203307226698793251532230554235653740407735477067620031366224943091451832494178448815356266956513911946046091517211209714099397478636090491276027014365489013280519109074086648337191161226380904149922470119406051334708906220286434419049045710954468311198770488943675767757330737852691151424612461409701274159897935151624571954383309862996998580573749728400514407346278828039129116010383268399126882206619523726185075026231656487747430877879730790641222718323689099718769677753487735318788552652731381351152767990297067010290975987623464317264600274811566968022507374926440075480759561620365268849370076062350234533030358653113632347292010201594020461002732122861987371586980354317338342790057410240967712693883103422686406505704666417885671717764379945378920231637617780771326377395389081425677039785167335896872123597385043540277032401019327792438159621511918571548952254835828176483944211749991317750731988805427893933428786488103528537965482239201500358222429389124090655729309812670653560840245162975576433670221322808733521544203429695261082485330315187458228371218113107440502593010536344422072156816597449474677226923379866799376427643026525619623422656879956044992032858515557206398750641808196458783746796909715575986450556691863251818954636034238980750127139675262061911967784024788286721867708283542168088541999157039122509227106170074664601832108630440213319658906561769870638811739993418226455010365110330403737639354378462715978021883307770067277578596935009613325303075900949689592975287643457742627861546964221177801088635786466440441626933573956487280858239829140122683874459262055213956927655271905217830524059598165294846280241280774492167534120728990668735380239901581814354228728467658936571387052595686811524171624487351545033597251553074541547516634230652041770634919585053963363763267376661002504399496986912836397969170796070788338361314357632784269330702308104802238948614408298677783770278438432326229528186720385317433287795802055475442953673098434240392733478323516860839278041914822181077258269135450947527311325814604478114931899540437278406232079554424334348160567736869127148932871722366415393649618233050456322526163898781695176548604672927425846326911870658696119816952158686994886875777860653068530415678427958006875478239971732169598127354246589621672309017503860888467578561891884822133791945534887589953821243384211198160176120623506739209534038906455727702738623142677440271466691154362145055422736469436034274388921655669592288367462666061054922459255963839375375919476756270011166065440020913133467916538034429949344203263120941582555624979892710535456864624057182548605894627621679293048657082148788274428815130525081281836722475497173704084823932545901149640333696345896654755881968838424840204286540408104119999561727903748967220277618013368859222906643349026101653862519107972137485827713287250579897506484610105907121019758147195783220053722790238857995166198738735583088475535721399698102324218971708896976321301780553126181628289324387314787345298917010507465268477483876879800437091584536365858922912374952763170489548828700883182908660586286600004850578854524944000095721356625821889888687508841838776210873088463870100179969729651937713101059746542059000840281025160734711288194749390506127555558080064655582370536503524941607263702259478817167618779126466628498887177674434271110918164377388113011410582017161905231043755959864909193627638389191268402060949077818957425989566232629656028446960077099326822372439928416047121368160980311113928177959433083949795111653049171424079302269352321609302505499902675375094558301275847480115469324908137821419726267953988433721576511676126996777704941427594305487934792187521352262358666399973763169193160884905768431758436821776720351644548786911142772365108740459317427684331928747277304242056222021300597802662540124189110219725683413833121319443976818233779176508852610612852071862239609780664084609226538246144628778678117071540606970686801521434664753467970873872054122263975793368356844026723593364406803629312973028805864234610787256465145018967786853091215720319846017867490023095030954894370171398501200982975522658895885083276633135356253495634828209948892793867288008592139584532871145218568057590605272726340571748056258091695373633025294394459171909964133046152109873979835298770190205106124974455120895523135840266841350530547497494406914213339349696922535555372046287407049533570569949623740392181945408792492295802715021599298795636388971901213669870720428552615845053962994965691806232389712677724977835736392429217127114469237884203313176658046680955105938741736515317326882032113989179986462752893166179667431716100011290563591901671821629562305439655728356304757006509653725473737107223835963865559953641277369029597320525902306737721442253359802713239425901576493982058777081801693329099586513095678927594256297335001203468022477547682403773403789254024550404336662846197392859692031426479423453513606702392353831809242354051718044705670504477912753827208491244062716141731634657739490999645911814130313759037290560313029756564842402888618959279802124117151671386827958752283389378410949355478607260960945904667644757256991909467613814861861645051584547335615495958373604400972977365952147283814402783414741715645967377806701164901625922139121683953317869518016372430837690873826647391804296262093547172558988584885545583273525725797162946386126597620622274860464294063550705021073401770218598699321745243215382383349868240609951653256817690020910117813414133785385340492118836621940439426984736237390786334522497819736666652390587471210579884735214537700207829957616695036740806855902235822596123452838228849278618158713888692468385743736158947240725307012793154083111258555409923383001194920607800131202328766005136063641663445366916351167715765610598478536970223207278735710286817516438091370274442767904323232906532618344339916478500998930018159721715781263750487237690215841142309210618454410621440928021597390284475638127679604112415117669199679215796447787949764809035826069656747097251105066277564061720937420098203176574543857459598482468359607467932148644053985232846885163019212212634080499088313751448700656547179077831076159905860767316457893056839600889170242712513408905803931984117208377584897232952244619574918996329511751765347012378044951725981171166179673778388870541246483162421157016132945988067848579090149924731429481000863816740488494773519538006041129935179885868030599166556006975919900500831242014943475988513311253284311260820834633142311573989287840847436072420328278619415659938401308773291217315927112727513007913893223286831344216776228633110053153000215080915592650098300757214777364492409251033912061299400831369661187553503320400750287994888121770041137871621432959631196869153622977151498281942528548894569983785703512630134868530134710236770105534473460351624019763243652250451772500797960545317365973983037219443262994656600901466979870472060859225419510039898132039402902797276371702257087075220498120384521160296528998257630599436648377823168148030839862186130219543555495273017626107230928305390501764757480017677464742711753732121915525963899779980381106844476702910903483983275409944080082016143536355609769454367540874612968323871139840784778778239371445825460067398306242887174930252517269039009816643296181836612790503056296408796117535708305472374044859242124620971911095045056627786831295966670268145245182728756486258117979391770143347905323752450026954199982516642510519964516919775490832904795191129216263681634032552279177533521003337666153012393747859782174208696017494371461470218362833960053854821689389858662804311032642881030799809626221438138048873771041988407613466888929118671605212098953449373247769124595874689882251603477068459849923186498339786475711931377888252027580505813400680640941053173264264388375722954078606441656392893462190922830034376730795005772599643502899113902572907605044915400974290469273075287265300450364248179866216263215007282097660978855584782872938493039436943793989738443799101064494624244529699825725722953391863631124330298702213519027175467849363887043414125298917672149687193880759693227253658706891904754863856516064031801476315646222960599114588076462931026587554514946827845554759096348681654166887630304878229409211344148673128585728357496389747348737605533813276144178967989087620768677444366410134484396327486552648536323890293768671244555074697579489795649516900303126049333336410381429144426966915976439627922462798092761577625287195486224002969689356797321210908398051064393921401539821801048067939671700651322656217950212275760758695965988026301524638893366986144375177669365335102301469839709564963826250364000834114098481640335105218464037805991330440415428828635357675160992319011419581635185604487223162372344818147910831724848505226296357867667198514844975641127590842912100790280525093334148635164266420912554766066981187201986626558538327185064858582793177627215962551783635993901483755916381002602726256761706733766473848009758943713787945097900414143768793020319151711954248591880596333181666636735768149961001856094062104521894376806698632080860781282090216100635221160775631376074615411954574583591777933648024852223347846551682774514036085595770286727788080168305997535899184523081489349710136624915007091028154623086324670537935902388991125755503458850339723159363238451700362843479100162963591112947212675970697684349525288419244709667975584810374262181995450342578461691116242951446371582224153076920382119913903061915098855351921879924318782998666424934838939610178143875997518054323205513233803111052608528057563845816242319296867814765267796443239972295094589632292714775554525400081256029796356533841288497523777584968797509882527090375398105076671961014084853735105986544965242472664623288680757851398232184795771761862955584124440693169298881852225239131553099085692014940658117905000248309577113886017164941065765269454236614486618498734167855350453457579477535144120417329455844000045189334063477216345370936115371366740359937828200115649034664983758247420607939140306336234749448973151620112491278239007753368527430411169278705013500528564443260390474690784910198250596497372852577048084853580242457655694670616486534044448926176950720420149782083356160624860574159303704301638340168106715540395284450809913030273686817992378027202225772854413604247131608194052096737490884193118036363770888267601799303372934699639574750533141030963891357132472435061693650092444883490599665829126781768764933392646740788816598344465432698711385710290785325679929950863290923419582735130045898702351917157875437054992378564544216350312272262703044703016833055313580440936602594404561443596639168417220291229193626290208205511100444650234642620384424632804581373703941570087179441956097544619755001206366265466741016271838977458943807072341021032370481301270674132601688621014656586389081496062688438327748957065493069241993216896353842746158776948755115271295696273841948799790303502204015967732923897073996457349121790033036351845388555219652445898165896980854867722012385532734659146582419912851590032673138505295130652241923093240396974432106382284989237076901973105095072710012958143493428278337222675734193142634577269874064360788818103413967760103422279239312387534284860851660913105960924096148528507792305449992623575489782002615797753323416549022510915866277046986087369908899972396194654268296831798623520717825073247712829860033368741692532841562774015007383581953359370758648858324008008781976165389160591383995284933505282139048834048261319680734081751571707731827829865364276494908395325387025378502190132590930021033705008866381704747190057366745835822254095646368173737312722492158950867707420959116160284221146534978202811002740361800381203328300492548598072346920575976291174674800596618024173558954952936810849165060115729191212535537627778080797728698536968305619033725982597990874002075402145790780241822891020137990282021282733614193811689580198925550352488865014233162645714095524568653388858547127990777987283628677463833463571232992079554885288326452364676586359042203979526441101286637693528925415709659003774085778978377828343335634105781288592609623502936706489592798053258991549508797594782312795523264890861990410319934024699823443731503920688142537178393973260292357347657806756144758436452811524797554960045911428599694570804482628981752932003818643592909119370794252700840497876334525967042026492646045859759092257512484584030443362972204226283796564265665428962637120766580539980028729470789437378528188020517264986924029274997202220215403088869162450102855075149396864364830078835199962718455771660330976439070463060928626688561217458452429269828236603408729768004600082659784130752902883253054723716063556300883337773346678482079596378386286572027763862299652650488946922266719320464877845972718638323912533601653318431553827819898837122970908025255136914591919626225270393958151434666267267694163260590488583348008976550800839103385582111524895066280026120702272342797958690261511232366359797889879014066406872021575259104758017645094726454828610096609816971985364611590468507539149047907043241556097784355942995604858502105252141994047727584887722986902793000980504496509958073554820860934283633358883838754289371681237565527367427539141068887557952400255434979092464381438642947216592645107544398433253305215003944173955886856356303292201279359431313844322795884248687733980722238408921855026327908487709440023666446026649837878686391845573945202748327632740861890502301540438361708736178545611781171415574407632320262160095747242912921680630043452770445785677720591452666804444803804261681928664513063800068887232194200714010982860413567104659979269461035352022966423152875349551717594789183164383644761763012893805291479270738172753546033513717310115973323099872939301287525704359591205717290930463291721346031789385050888152100886688065571612994581456155104195732392708037421206927159208461273483257843356724678723485544126427754821182905429214160411712040081895730714201771807247686909923529883696928960754818338277317369824244884846630818166659473723517698334979941516866741077627631757543142855696650069485398189412044261062366910153177715707498038164763829711874893320770001261963255111193411236296639686687823410343608001792278284288706556076182825610135431990807379464287402020015852338569785319694619362982142744395365950198793242383698352913764912286082872684799581667623253031529411406786384640930566179778045504718302456938226408985677967796500247701304211928219846154522458891992003879834541455103149639343929532180059047435801821030924625725052517094205640080638752587235495482456720118766661120611058471790327660763186615444470554462646167206623247114950321741143523795164292980541857080563605546263393194776125363053073569572329009836165216092127609788103102611738944717746695596118933363758777647212973424334017335313583423938738927469949420028550849668254956890711019879102438882631363222411001297425657808500035414704919308361775597157707022115067881813907926445805370020431604986069405025798838751636026490496695320393270462694012867281816658648299678879356589885377319433284607753217508700947557153199439766675533122428860468113844387447813850748107395726238553525222549309938645625926333544270683514785882543277627034510502929917883495327355691812199084307067149499646936467004010837237924746178402649536403032487992461180156499221346403291913388287139620203753530647509589402471388712611886241879507690938399982181792054049085497549105444896983037633256006897150929029375593075505271354122272947479624108393428511194215689969683778740903769892650345716911973065976274647149920503327747328282713114968484102766390223723664107097667969862175436201168417941380547259667999272075060824555734764687553716017239749063184666920906734337140083777710827420033794380189714760759370903185129909138765149850648477970297370890801533557708857472734751059576850013619271111695030792301423336589929603957428348440428618041362018002969702705812992674496128359760497910722864568283977531058873265645394990173597813690335477791534867438181045159829487442792507301555622090488733731956117587653995131648996745967844040984433638273073096809363738537720477202284742780240614114976472178831441900983635246500947804945437558594803117970049583255955119156440795334598546777834445535386718174607541562885457200572247024982646744579051132777155840548765186851386037077106221812532163710888641169651889251072154352442456334875329624609830580774210501823626843121627935788413559776001661981727627664570405951326399233051145259410175498054638375050656408985782359302629867676074940552896407326778921187704179042126260883795707196117286444569115890242153595582749959223338669218795055061737277559150251860764503993257729420483953868629537541117034518746075144880614092379055089751516543464057079211497591553456740410804495936314521157038305240074508002235944620239035672218060655091325228046199397687758714773680647801618608122236495540044297492807288414230460856734061949033443613276593514078316049659169673487484944321191357032919636723929155681249163420757737289169922225563102172984673864698124007243824600064009402933235956881980439380222356538115478184257364960415606362928075448646458373819520853439634574071041163669686023161981233540859657108526816227075116285613769143233137977192387715052340219132596946677554942800812495331232756574508447848897989454196882615825132794323652949423769364866208341503592307105860578235307363590699064159757515460008179007134238614117267259751748266495336453455574527317880352077798787797665932343501444910184483905841729559398791336916594304458892622730684703491767564150334791730616674161402469295564935885142708427906586690542288102286687551666307640148348748668906397084227229032372590635355236282479251485049223418658634452426205668851096993490568197278157516465282489531120525587347092946043060638627340409448473326925342346638495488522844915787813985053116922571470423407027682103436633179429725666000217093013468984441503688468045938244705933324918017969934249894703751949955160089401628151089230987490905696271101797890034571791917079535276268681958160212210240663691741751377418186417652945054168399692291636584348547557895138241801565584342144717974498315709964940847285507858317735971594672433294458723785802758873428981251658491747611653368418115126585888506645963726695354018452582047714139171591291663833035130287725700525046231698577146860556905060604177210011963358014775558502297144020238902016810800216476229706665778840410911250990519133322824182801865634069641016691978055509110378969869624442811915776714346479406929091442390003627041907610515115959783722291326825982861395445028894134208032619473386411864259272290086056994937575539522432419046654747899162702494487402246475422868441268918844261291085550883434613639257507697988342408608812724999273545856806691319124889280742720586617706027069815789510063597262239739483722039748828128890954818657174588170663937494274839650045688127124239665024013533628447388935826917577527696711279903431477841140795820148424324545309623157233789652013086428941774407143625674290091804644843748646895294926681039858422931886676292738227544130330666994911746359947930251386403902633369105660212915973705878457790617905014968643269970757817390915378016326057678434522797569282223265310598136316631587551392939001368523808114852471878277403117947230956122689025180961498701248061197388958883239601388197323479345049977918765976459178770631238111640132373859787038215649292764754814412399758978294488637814588853057030648857059371998411158709483247268557613184424207623437776054012455944570005367246948732967023352127907785872577977950154141037370397993836949196461492672155068148746575117047021555136993485879914053010001893330422963125043527430487552281786028467939247382566319832514472984015589615490550862648692424591240549853331706419336372171183995291036292390073876003624085040641113472621472549100626220855226940210712335070072405515514472257612501609464847405808260457634803049943255187711715345307150275024635931211169960355597408621471472603233934559870242788515280257114283666761624766235729590881041901383968565576617120632570521678461949587506841813282492519826635556585461994136233298625511560713890208323607993686412925639404319254700204053278230874379987558817717602910571077071328282317089024259753734826132612407870776437229046211914331448096126888352705456713471583797264668608635195349702218108626980276484879209487724555967877186451050401864715346425827857972117350150285691265703045114653477725643988065212991909542748861338119664075882046687564507473552647761969083853944657034755423922628031488619905775852706003410920992398838110415318056790572340196715037617104584362478137489799004687908689371328424266071065863926869966677262257982410592630191292591285287033756550330086810307824188315804468293333096492463160908348470289145699017666533766641399144523286306545885066187541265027944499803325648992131332421046309658123540334115466512294257505899259783915190018326487537025764819304892197858087200705461272597409173362737123778120194492070882428567103612914682679808070036387504077148798285037185079256527348967081287540290880858414686523800363828528589612801668343180527314939500002325183929600446289243977351343448084873051193726048241980860901679553440974406568032127595049858012468817049513047345782187920390770021665668821597515703430212513425606052397825045058233212453741367708394793307141237358983808678764263344196102361653552674507925247406426665221832605135969915618458246991836986166878655821544510125557320340270917295653336468071144574811248426461241955994281913721192871126483413665010641012846000636639089525677113421850957467325818167005814556889956696742751631383374925641006046582963120996488582946151179315838774676265697289798332271901082765516465518268891420426560681915064623247808993175696962149563680206010263823762009807410103587813687508179938709927610478115321225029356586049602520410058732149756404941121214121617277493206275578933115980946328202332043691801773845106177030732423902884635742824414949068524591294249250233267811455081017919244754429613813485245902136595907658716111073114562662955498741920486200092732194893317273129292782513263268262171080063296959486056861474456072347283739601354274749836166026553590085358805337152299424609522183947834694127513990448439005566451155898834909312293294931672027805303450762915494596296199155501659709033522704504138354964132300975150536964581245972174922170669896008678072558441888089925783010543723241777318431873897453183571133838922886149903078487149117476343576363881893943471714756892781331786615849125351542125251150607541592825211016775266153587122603245698680303588672264962893635271184021233100629901915422990676272163972566574387786751637888274370433406085714383053074254281962492229079263220332999560190801698038526990303386671433901694110729062431824574605736587635796932500367732023710628611313583843525517865344280233737263632525061278615816572906660724423915416320370663599372393362639962133649201424768628833205456723487746788920210903934120841206167443818437273248968716622652651483928387240321012309271472127173005062505849881800968924200911671143916673854221511884096483178042740001255648065989543093865231476525823487015016195585536017662921164733329719862609726261146067155177320208749877338827629417271544555877882882930448849032745127381700524542190451769876493917645505098661101307231432520879326747760466850609629973436349721485257413371495304752108613325899664572401569754799231830523600671007180835596088244095750573801511010695205438113087507048380724562744266678321895812328912074434643748814312306150201447681606401044800911857242424047852619489454202239004551627641753309625842131837325320403936711060512599885762075253134183472496028105269282193002142561239042629179537859978787988013559055649806699018376475109880416220679586711229510597991664414976045601617226576761205386397916314007776309962341819262127077939874020626636681814354150311728042554624219390372478090584921138138138510519248826294920198598125608489687901137949609185317496536443309647797605241496767328010794690319644379068427058319612283769754668633414405576549511095236812355265063569137439807289840615384636918006670031356815804498686677502236962941024246851480798589240368327505622325897290277537119452260163760247575888077569164701741126516501368962265699136265481250016047893642175536978878621203027641962583654189704752271936488947116867798104327052357001896192214277112994018072527919639123190079205795515276066999212212238273913884274971129578861879526276851261696074167495520747881410823563834925713067250774489091789681344656701173683591168097008993924551345093149230685099799486162983025001713360881602148196810156113212574938705659851370017012993339000062745859760069999740202478984834446951187474095709905540492678011924565653613607266587295197871989906986214751046378882170357753674160999882183257351097757635493833943123789416485789899860395332628999218424782385581630881578844166787736324758118297658649190918860824149507978873869357088542140509499038760899133763266995222239721561768518239243201261695518657946841285780464151856862936893156582028789383402761967995852031685470427815037609872031805815476495649422124319412876675525156111537136625286268485947807081463566628656441068022093717170667324931000841244699074047392619422908999397977173072372897971090564529113766326451855672117615123070793006369153436570857044003361059797316416869748538387527101584745736842073356470362764985199686064161644226966595422386164570513012610623084086691326367149265309161534407731263773286208271084417435708701056925468735760401260709716409186419742313858832238624245689181737515116635940360375513463785253941065645556190130129329609397401458696923551497748221936404911905655224087072513283168391692112903736831652425063274829325303985856992787671663241378126956666807456367351096999539515962663850746912209401732307343499722894119338164639235643964700030996648575402877828275245513847879003044339766337873099694631061128850140758411866642056068050820959964155001318050615501423145087571264279963840654341827557509691768423222900195643972837993355910720884540996964463273599771991973239054688002545990820065979469649990301229681738203666355880657383995691220612506978182889585558695201575168915171390914908393011138791943377253069008787871436548122122097261204125956722067747189010891467590166266873144980428465622147163933122937832116089270338790187673469977055288057360407231950496829400653445713183513791958430219125583058522294097366058990287433486115747607256309168507282491429864096861387565806682145063153839375430422222935454525027593048761815989083356520919412600751553223962620965775008177290011610501321561315594756666925307271045868855440908409054829910243853106947541589156503128376172945992060004568774923977371403559015147747233869487873178819877530916877392802896820169507816362288154861057918678477383093978306677776980044971803338305868289588836339208645861851010411505629452134490344746107079461706182731276480077654635738723079784984606011580240349080390226283474911865929027399419893497112336415979359261414256211896606176654539937475479177719301216213451219560802444718410167062084542994001540761601412832652889845981719441225068163270445082132552985802535465134922987204144903142340069646870072280773848379027540101452162777865221204449424227976420310158041641028447808125638405827552499717815834946878845295959731117927474047012618637245151077345467101970179036268814062162691670148377107774514045159992294234819841273098798977177044953538686934023746707408066317585826375467712140386970359932021309447726061888374890536051569935430840396009407752212963115624677336113860338041553784622670474340559645997614496727155472289448693639728199019152274228054446398385464446318893632208137669609302629935755375407581970020752066351052106754770366540100143144528757046680806826137070213835626631578304102339100309254409538003568329467290491031586473749874803116937735690728703178981526881005075878228606104948795505398900747620918712700116586052409524814937950705760482154028097144722738774950863700463860076649442416359976611855365022903383589084986582403278135660850271545445272767387460929438794247500404560456775273079123072570723074399039810951016724534395081253636315409984824889436309031436119651244685761623457703773065592157484092565304764570684679311313486366344241121937021022497510835797053796336109780393174107564141258187837945663732201030358614104178918031270701215468681869810631673671875780126952286942394451918400131718267919445646153004554147790291452859170664850896298725825824612372813708773935073551422675310793714825552687529530668495786322662976162279078364129448441568433101668745416428670180243035647706794097148283042247325945740453716427911507084888596246216075653410902787787209185760412982893427292886763909549435665848400287829256995778226670625393978087192934935374177667615666722996846181017756480358794044382514828151126294106367566133750553183913917847376974986507085054361035198329513395394845559580620209922065504229665057210733674373334417825393368027950942181603252226357447716176436601045213262441207611805925269825164705583224469746397487281675864949554683349638599779173409425166441889728212414461058424006151976381433146338829077683401694841476573613517515915215293914442091009635701539153070009045873119170793061252833495377636765266060184566171672964100914438192489442233818344382979635279126855970800543745586194480514199798489345238825250514714072725577860121304096865288933958572360538322177255612762187319157599857335898114527190114510431809836593089675088018277799784424170909644508952970090087926872872858583697885167227068612419571414741004824260763848489620842817888739155460270505633412942784675731777204769323840613724207408519215211068097537851985502627404843052801374022144259305889500980540400588321409650297148692566882991619551991070597164475747922705391344334349419607666305404395033174485970494187856233800865512504041819142802695546767835845517352910363961871371624890684149449687846723016300942905757381820199998545138639618312516057509329789520662452292035241201814634326696513744609086299876612876775533674477788786999008828157507422414275795170003541601593980490238409971921142045021360693958476200842888537406660213897531924419169188469094955783070361905961654944869610323069109966300916037442365367414671885156199139951919495264956143213933928462491707359963589323007031673933371467108151997082839443145908781093553109530554050189746886565548747990763216983362560622641200286541770581638402758239931941162998810676269189023230694287905934699314441327169150074295453508248739068213516285632180121179255529174218206824557513502753190801013786445986332686471970127700079740274686310220902373231584603401506633561922567219511389756151193855762765717487800236144035698961385180158066332543433937127960582390893514475297714340181835992531265291633030944531942602757688694961787592067531631164183125218061978485058792657789105203299148657424266581498726001122499426494992899260002523473265275435477173033806766596768125683870686494728858839773012820055761563670599806317626417218812098413533238480359754135747231753536772630694701668181959537290222649098086753735297629975527146699480797270105468530784785503048658070318140858604147490940367392216319674089259031946440932543170809653119865504486652081262431273440286770058819949949380572874866121054191954629769290792938391431710233161479824613039237372038925182069446520008022949490404597241238064671420713669598895625833653319754793942245551295925884938362918456191177702440748053900360391044714877394739595939217422480266038884088331612640380825637203443788330726046717604695057461508335905866366126936915975751000611116142910951865911408752846652674182263252998751753725707984179492434992955046614153014676937136305366030571874691641961850430417460630307772847114559779949203312544868224393059311380377993477017587431151007734609314669370076706740771032435623731326002905757875053894070405734186430066514952482856476814010376362867599970581230837293748515868651823258656179653936574732262989342032872254509444090160032235239685281053178624287996669393050922304751195557137600927477174749629364935653644010893194356316959035547145006992546088637571963707565957130742713658377295411040217519388464758166256482868871805751523131195554734376931070224060775474420428978951375805559454167284220437389657241170120554469930775559936603024777444511033711728207431686779055232808675840884784518820956845838526454404713867857896240098760201040543694641971591563409414536362406514074646303091865726026218536674533133570924381027984132324460017891349933269398260747045457842597210181833611148850114728345110558865155057156505991054428928846246447369566698169853514963521543354748955511351844133143412442792492357905539085975697649192980410844524011130688912079355927443237771721245696651319223863615772666399010441900916592025173706875595997623208506565075809147352940768576971923076668737731996919288487148064297891820266480814734471921182302432647953291653514557619876496155594242407147482018229546802124143490927818145969436825021266997168084726094996503650410060573616454951414660528309157281698806149617495308940258525664921983619020031493871023494973110969969464087133317947302978716877679054122575668622555969071878522787209780439285968392260565572239157028847928585173187394102955848228602939373814623636369959510767031965237407560337324727513244315926389524531361535646794311329353456005233877327975175581116512113215055585765156981102299100950496940199558451165671084993048691689266991801133002268201614281137410782951447084625511336782860387067027654231513189851940605526098010035812067672340481066938083867801827996467145043859092152624533158066945411100122943323274986152789887418616032867776483576867544714897057845194895854512306714623447130099273645516082071626044661053102730121986293122288099186684968838023162650025746120448151710971125042003826696897108818769518567527956927971035803125868251751770062990589574194380712378078338037728487246226185345584181252023592606661982540266574409923560352581834073948624712426874791152361639061993794980307728969234566019795491369356255490294703692920931353349051562629181908123392766419682661061167927613936110312305226362618821370425591620614630080697832310978298643689836111594682910483179491534254050721430547110982184709676083349772969497870510840254846456961960763333798161328529359963170532678277821740583366864865337076317236483978418338504345676495826995550274250647717069201333259746669465388111542716369748589436555305646596746221858997330312133796910301160430826268498339149655474144362757935777888050403103424089165393407882770046286624512962632089020266333792068542817694523695872045264090060287642307803909449781306508947829670729543895066707886014716228550411747253659629740371758279705544281881624600492416395055874825940768465386090805742892896888403020084936073500154663170113821119477827445642795612946145172618799308469996959314281160194883313455657416565315209597204701449243848393168674528604936019178796583825604559315540996196579302309155837014372779388082882696567685985726212372986628561529637189264521680339110158577550098347888855607659275857684612698125612076899423826506157819482959127631169959055754550911565969263134975678894934556738523630566427240354415018779308568600563057434679107963984061958788592392739872334265146567636342528802889666965775969113072244339053887565120462240778396414943341514943918713992256244778950949308444031869664721636317693315149300833069146227064356837891661418043606033751636063704329058598174536066932763035033374103273866010809104459733814537509711009983030869266172758658704175866955576415753009906948139645464562306541238365608368526679092693459572610366026349379580722215579702397108579272947025515076905566383844669237465513910199958466992624020889420864359535609231960719093340604404786547989023475760229512225137471700105792092650817690188489583892259203607046473938624545161540378633268401824470331398328594115501209391613155675627241745029891306797768385022751902480340348669170713572280816363745727465877505338822728404559219507543289652028869476755522502303888353527970279904995920109840498649163894064398030456258217415501848262229805045983208849895238356890510499463809195548718208185396890691248630572639601621193337643057866218392432804777070066119715302396412921265105312261005084120856986064251158721223353827121988157831342106785699338072152081404489625390905032961333857559573898755841684314568760426434037448079396818781295808447526520766592604014121783919257585312801005143048785918255047062964483410709466019446171329411723126704462099250302181558809224301811931036712793104332905580047259042863097436139606454169589972834638328248346291524540961116389775822967788219922432350285607748231779816600449390884735761762517478642465250431739110918834328249445216225735180511358243586240900715212562229438418792170405071434892077357809898929289419437080566232488373817068948344107009303903813834827676769435584944732847757778918807902750503287582412972568350033017969153749585049366821676984916962183304847231976294931039500685192334256413830989663212085020679606850182958647448244417750007370406135634958207298376795979325223649485489831199455225873105872919576842872250038256025958925341062537523814704902055032162249706926076151506922641454631777900579145642840526926028354333497011093866829989302821245753373446008268655738195535096757120762845439841174827864846588137852610108993174348083023559809808197989382027050581521343221973159181386034481536116210904483429029196665023527833900956839326334777799265129685404794645354134579640865295766142206143152001878819597383372018105697246700998776369076040026818301717303997868376364535484342451206396457532255390661377070548242264153334239783155913361043342372365085026594986120875242394721599045814160995072131506790118121859602383726428363450508606056933978139077386399662069360223766218390189185118477698534910007440811707895637322985472616542020955665255920725687862940575049818876072057784108014287464264786032572662492278445070652505586336707758882057021930481470672574787555710719345447989966503127047725086571529250904881101827112856725299766748680728136904590680751938446832014319393058246270178246215414858999117469173862789988436385900230459877138090641833820342419169958809643289902006048312525341121698607893473137150506528462227606754680534973774454456317906166198239676234813863583722110304700613009647570059581903651059716673791138301325340274852831907356093482078377858388632126044453860804877013017114805721213580083691087617600812797978582081164088182443957643038870169628198530572546458089170724616411524908252288714574151706426986962154667531661570470168986601722373649189903240207912541179543325799908538802317723212741305330007177961403012541484431723929352999305169706539231140047115250431807416994983049710847986924242952438492887199354259583931664340045743838086929314257558668153938213488323490524592881575761858164847236953990597855379967230313440447009827166474653683269776112435422731687841359266701531968908358964932375994027565108454562189265015867348165099299617545692444456675115101419448116807531895481941710908989262706314000189657399630861592882162964144063097547878429501862249478752233503916774643787125536692508379994358752467007979801039938075438292221001969024165556363689853277720645373976337748184301780078910486685906091482973501786481272488322753710675817856093224045204660284305070925495250382806986868747727750806700305420866616199029755010076888928579727956433059337478488769523437848967849247573434028051718253053521065394676635824683556275185601994103661254642017500166804642422021995017712753605735622502654411505064047089165793101029499256781717895016495321098553260544121518953786031568135622319566022699469410606479512315441928368960190382792285659836833258853383357813371468005905474924152036290361406010716363985298321279069117480348866522049836186374007936717978349430163094873014743443282915850599384620738929951958474913733924460697538613183702612127541686639351440302785772096950208701257519293786370249156214353121108659922002900728070662448631603461145905132158503898059453089676809297595946987463664512789128903430382439286780247405859277278001013918874274048781569971327051990261730842465159845215119346783731533932078601288141012070497876157466082481913334408844578179540987743511695779728735644758928729327816415943812487063634208601415602584867891449917678907784517119020468381032829804392667236141557142075178450202374377122792058430830634836261527576889881277181285841578758813955854329754760904591637789385889061886678888822214512531554449243388738729766004827129810506426741136698448037746335758922638682772695005622759294218482011366997694292478889137508695275877279107783630920726531321721323746600848814326629882447203737051128193181139132057941122297756350123373957803403389129646847245878110965410004764256487194979524266346588676256546442502336898476744808886606199314930620562781124709426019071381421605406052081086487325629218942651401563560225706571600023590201896484401629937125134023428098315548187549086744130668231376694515145230713547788719763325165393417772634841049527153180290146392276306308060413420863827301380739157212628651606454605583758910526481971062561109629034912412561598751618414274218274646397721855629283155680168064239996421220307627814817917191937787414478855745918536634804334336675414632016920165567563135683278578948648334217334167443563582746143910644182916919734617003276819746226461710271906235112948906984511646909297080831413494473120746708315559282435503512991213440610639330283366847323911026465075451690542327788888993421193892883997498435641736857490929016917024667720908681857118352481319552107028327168912306293876797835320647128434472125908099760621831973246343121469927309450459933655482065815481777764991241589728063145620954608777515474791654559260619938380005149397290505648712876866623282091122946387244147300223713935659759722416201035166431324650839587812468736565377486548665323107635731287415765091369661100035046159335486939646465484879809482696982280605247422534496159583137006473047769806958285029526999667477289930525271355306707436263127561313363391848540042752786118288247088029073659679037323795334343209306766335519827668135688946328818371590813132449086196583587714187297445345796024512188420232448472452694453953401648042604473134261179639910967367564401519875500782031805325493194956096999446994684407580167326637812757108377264638838501160608163482477703320953894479394755345755516299923578585895351991476885795651321719868805631654336329536418891953526241963200957445601648994992216409343787257174310529419420001636939870616653185770320920144748601143099773011280897653638745852070938646916010660912808342299738201702042209916315092024920121389021494777249125093166121126672635589692077003953484415921909315657418325736524467782186419039389748047620587658841811725933286980405193063017288766313976684422573020951247801786602905409628796251286715113685605444145180926169353513577335641929638566672649356985927856614509178852379749720483494802605894781930091794058731383999079857465456240345661341509769512630315765861215507468457029069330382055237152602137056422120295031244242690136253463970269839097919533276951546628216538173990745070520101566506569536139290893963282934946230956587372473555021071292809604490460857458516201171220644002804745518725367558963394091783892411105529576375048323988994426040703443189397412587120379822935519667398964473949613356054446688949251299219664297732379456424217194396247398749780265000021600435617101843985442414013073423703737010248688475499553518925708313304020802096293689778526864786160368249154813372359531235693140617250191379158149340218416619827698303438375531572466562876998144938234645074271810016482641420467555798434342742442028959492946166446829687377674481387069374990018997555823975595573943085682892450670010472699071916474258768029343850543016901331263058309060766370535337648094549549337563569165392207151109405167274617214999589876521514756173942009621250670924724940971052884194808034985405127229497650177669811580177227446501324980816002882461240865538117468328409432119447227955978790137368863046254197895953332567034392841536925192131215124139148584360794156439909174569337185286003275911189827924946534938163587327784120842347487955239436735550621570575484656137305217585826345594945386541917271100282537812231443237917468929948216024605653721976386155532937760337492411737868010527006908850940837178100969170412820690527278184412963797302821619782326350007439255474862023631138474867202420395068311190520903571179326958136475131583952318330760563265027153564172025963403845022708028667064362581365873642223699110840527766326387862183708363170087687830132022159358954952121149225955632328552138839294311075429520939587783185339587488892910120052534774922915686727038830674498894205423921369944651142762482416593969872751007696331251783173248733499444353238359209737623961205848136114962198514626856732188418861383524626227278477470727274337561578975220410537979148344282066930296096946523016012157738577131576561744728036192710990013473078737562970657213766475567454235652359225331870752180709095534302143608325467243923086659069210412095544210068238248876281953448507869542537692038086644816204258425540520476846736310680874372299228404926118773931579846219227640977506277044178545621927056026012811777139561268576798096880230899208768221130207435831376610212953615830062034419309129092687904156495302198042714291543222355723690870306383317433844056846101061336763098623199341572826745650088532112831207946265564072557195845658685439649965140085068946424104410793616619232627307051428618758292942170300213690906887779111424797179581409503210594266612378352287542025313961129346885185106258934179991275044620297136034153971857248698514772188745579032942610264847857099107146956342964925190901122425302976597505850100959509538243925259639950249855113004857643410936812936503817871682251650212340157116196547164029776898641097244893948099377691130421581736176699858884550672539468356876070478516161806872672897674939722096891769794834925897921042430040241994088460610896455366932480301983877395214488093056227984169098682078084503032003100451879305356937681194953614556231338838811819040657610399221776530418738070024363739858373420860201097502443747711081841465110643469932400034420280037226378375375915238494875845209387541533828940060154148169545018102273351819840612696424970595117082516693345848201493886862993729989218978056939132153167397972125282916182375547138838544024410100731840438216318474741760261682846038361764393990596419234409037585785968363886515304864502623231937682645796793920672001281227043720433379610468421104078545928409827631260604379489561023830395649145760858160031975404650300391992383274820337204369719355888060384290926505793425867353161396104095164775622511726255655772873603465881051666788951635750455124471199462595842317721431951684517939605262866499155398727036411823608804464989177897233037054498428656659191102099475340002309112805083477173652057040185993070802192302271728447375005287127630419590393092827243111584792228974892734088468596335728039475170189523165643824039436241041656795728183692084421290298388763948740725909728202756963160151076444975898415917080815232101630605718616873015260241020552680792622124624605721930015223999221754175975431381480744258433413829571217368250384070656194828603210844299751658507029361178392142258456051078036100663606955740811733909194755326295007639348493235286111591279174434041877746341232076773032722527200599425799429308115446229112736806563509137817404394212843928707045542094541041776899332736007614765132219926639402613533883672554795440681862044492341552819488689864356211143136248790854237668572790905391433504903197092296226333513391836718732644587215794129837695950359012668319785372731238980513821914168233006235492194649766911605823019259654590767636436993319622712804272813504240260095255487256735419108171736347822828277979434322909592522345368918883340030993059283767443015312476316949349314535091254243719140840174187489739576686947732156878609224200111872446649272776117417886611140501449513372823282309669610185489699427289589693349750904925295951748373989972791006084132725992053231908341741422939780071570112982631457595530743026611060590987850715853432826052323729981007976433436131113464771193112727599203371309772608717722474101222593618468750406758156824890403244866491322347885846852122575651938370822138332663249350860243860376724431248176960583982233657939530334002048347933528347211309926455602063926602388577054971868568772296873291047251397240691844834021789081424718231217211520929378770113718467082183289462366711212955054888269805671874165785781146509523271650658965908662261195454727777491047509528141895899938753927763859659826614635712489596453534023315305494343736225181110474103261787245352095567408690798994645131605663177320514746893164032536459867420154375876089067705077708963513952017484467629058742224934647812170688250432704665210647138624756875467329925706765519443228715975300452797468772499891232268751014878950082243506728148607410913817068133249064886605233850307093860526031755496417348626086047120175086605375611521744093726528876728237926478577501275205286577456923358681103980059449575324895537758073870724437444586506479733254364683124131823480606305449094358714237031000707352892894343635037442831612680481279231611418092325013658282155628256206458689550524628918927975556951271327776826028485639851369114476253522839012275437865746968375110290084452913164780069053444594777224740894172147406111887993536730963172902776331920337553650707788252726039475578594203163424122890224961953801810711197824929949556271092537903376969266159383094833188253632059551209096376745297190201948880223788903758236502404238945758102089417721784439537351521925191388890620536132045221818435555690785572013094952862935317455424995085936051533205361584771140405463579955977025122504391333637817416414108001890525787155367096810707802348504088406468325294607008389331387074036610990628779784440691803710384932259769143512054035560658901152620799169377574286955500485952554001276400839202243371574118953594634094664745588021468833013410738482373232564838275379714599840957239027415213946558713295494821161190340354253943594843298266547866385666119704843768127565510498996459046589284318861588312022669148102235583309380871072219621520298443897565777473536187014466382663061867355926100728479676222369046028253899772710498081329367107463035630070133212400788412802069327956216108517227755196393566208699706903354411070402851767902861590839812657262199904692729643179481540453873903428444101984778713337412257887016528813553500589033958775868013806800826368495059974953590359358875032449114742758366256994581541197665555600276824127050871748596741019955167713733715725138411080557082841810692365083088569450671964058213464104411371705536254207816496190336891599597265127109315727201707931859187517425584590793214606542436167428282960396315421022623161689681987291841388434775934935693621044932075548462834998467378403122748214471590272582259974592235407903203104565195671874394655597478878312867346808402904633014130534258205379178419341924017735874504743240851033406538777373905756117879634311291401970285184867775197291187876272229216882172606707557003574865932787622822291343410079058792870651422090191145468996356447843736413752788215867148223441699579261380372602869774281754241665663726998714198588311647738507482861143062018351166236776986850302046316164678101057394051858170698163712811608006721960115394939325243991102836247810176633012364108286034342237858034607282554099634627382647227819111962825210729507494494070648191152288164258902553479086587262452240207820394763073835934365544062902617768848988711883503600568427888190069017840581719426073438460945451132919540300505229114817331286374436734369938876266955951535231371104762519524507558482874705776796790703987470479820642879360988224777710447970128177869079297199845584356821450535553343046022005282210697068397727113113196331463465018553373686523416122059956245279282417518108647674088229920794631151935076151723147765291584645357856387839005045531653441519889574250177775883310034679486169445781689002657863545657648492442193756136807455174938818659941482159309494385593903054285947159777072594732819907532885644565289546495860999874528453178234815206837478615573722548318342337778595147910498566098625466636298139129579682038660770923076002138361455260092853381500374290293431144349401059672060158479805986425275405298497191367477793904957140961062260217883924339627924380721155127471929872008458438952979518675946263648490498654679497679331258629990251757623123509596687954381928841421194946644223124165472343559834419155776314759686983931743739023580308634611108810862781404699016585763204584231384990769791774721479660900625889675473666526543614805491183559245644762587750822317191463216668831754799846564296704439326893987495157225839489744806027938465202763136217640429040477017739003722204071117210835218807593482435919819145592333664460472273984946623191775274210080397617542190797642380814393907865712319846852568714024521050174471357343415058839951230237541828590255713317344531329589311261608397382241014044143744677934374668157731986469977575770515338556056078690698582907558509448064832847616968055614127744789253085040200733848329760021730490113254210448427294210237767069429158988050847974679374139117897976567013028731931638187420233222009206110441265820721360952586475170238146958647153733320228187082775215361281764452554067477805905681814115764900131696468565833970090827808029490406477500508037536694215276446984286787064524572884007647255321879712459489079820546900437088122677902147484858725287080495713682327563428830867739943085945209350678122640139813585041661426665419486765960744286648307692585432760660628489694150187490400609317473290323767049884524415255980897052756496439038494245691721866858241865398439352411930356285466351511339948481357620558812788540789077278891674749125227766210284110888284938384392505014410107776289573611281116981892317293361534542287905138145996131993456095595538752207780274256744331399287944670028211358411232034148647667238723392145020749916979498006032209290024238653613353407875874198298235797990918196779024477430112666112437536625271544168892046366772067134769837827427157792374252775402391416033101613557607388850184730040616141210207570636228585432939660765692699243342841286832661762141582370524831909849818242253601446447439517706509849206759286788010647252658456174760796245609365109543322774084088202431624206938671706231377408909087570533487535745903966582166969481921804177277325800578022523469988839857899933946540513684610518438786529276510377693157333967191240401074226375600551872041460202556223182450376138705778526242047324744453056903417737868536940247392965000703821545253068638779789202127076633638605252599631008972981982501190627706392321908503437222165196965387913947582252754261918779087215522411602900784852145395898828081093712437763148124660143381989730694820077388266329961750523633162661604591511013537952139331969693598802920321844600915921757750355635682635680060360235858084049699459776976229505965820485815336703436154023855678571228894642873036071601055477276942960823449871964530302826965310757757173060362828079841620319395132401416004347185281966064757648172145670145517879574195897261480908373656888598707479956314291869531141082194307367680444424279527182111517599008540131185168553927149820978787003264999243033959413541296385177151318631618542492648717855417133105386020964614191301085351158050527054619023349491292277494995101075410301246671526402259552660688490937668894350728508446951752456200317791508281372620203566013057469089452913355475438103792893286701111767896187784014882894832195561877515178977808891259784945720089571312186492776884844804060688507960341941996485567715701442504650566369163949979377768245422473301392272082090164779808503603468785381839366188987307005466748159415633677137607697058398006044339881688837287327663514799171462088042898839291307726583421872285663193368765298484582145628677970527068294492681430437218173257072881313437768784146551379010975859880007801262818085081686066043690041267753490728995462297859979213043573538678056788833505584933864161065093063082135085717469409164889147617405641101071021723514808530378505687299444095854363269150811914319036669501243673575223633167777273310010814003316146372735986708821198603304128952340325967114842394467313587749288568071677767986454464095450073208836066998596321476020375885205106285279385700609261060321162820629629263541152643307216119091578614794114929746883492585850387771554888870831813874888545415135374043527480072083990970388871151627695461734156841651569465366891582664913261740691876750972685293255934111433927365726129325941255397125799270507341808107824796363978452207313841179920594586579356372967899468425614168433742073063852428310187979017618430274426225194969275792666178811652131213812826230041694541070674654089964127722996069350073364579163873774148848998627144904691478356448296031709785440779557665797256782230540065644415931119672764111060296897243898564212769410773632347823243037490462105135285454776462395291533352092749885723335531694349398626207205010668296540490750639836401476515648312379791890677572516080931669037743308644753713942802226088105459514235978008253250770187547690716287263562904734729977046985815100972497765752158304853520310744060122180847561258020628835467391880391256451174096911040043867465222989030650057064710978702666040249066639899866295692784343234675935211016931653486828561438914357191433169291562284631238450514370579450776555008846540256846327090219783340476341713941824562440313435406639681460262416331052964282029606168031647582600864906397225519916169434108476517396998282368063571068476603697958417476484094651903506382285743851399195433569689250455012330838071059986100552154941872842672018108380794609419045562169463536667327613806712893309162512965001055420485019318023730615265814343881301100166126772142830211251905743478977043597071268258614076583803108154548251485898817180937153965423514814002409399905120466874110656684319185030474648274435500092487964974532767783416680982950189621713688000954880866252561031918439365680778254591219850965443365449507027795717350477569549486848035970425309624884740449223102276494274106971136126609124631896204060245049918516131122555568974087939018764269505108974386924817174812962238182140174900797702794146776261286769176011267355269712427573145612372901891608749179514146718511995693475445046812893338663466795525167165453131011828138843338768149051890610987102701661947530520597875258072250505475762640785532497260993889229098218742486112089661709848728839149641646926673684430897780884559824231756551908891929385417864232034994344189793280699293325670318588552641149763940419717120747875181277210538842861064888021303953587564794665460304698984689443607864943786560956827763121331454313571762271739145780673896307587348475940901039744311744654738528798382393272818507755129477127538396866428045472412434721981790852509709056804362925394664904386377548762590547173182118315223706978864600132487545285486715398633472668620360403615639179523440059914776581850703924091299895442397981308855417801954694747062140909232953604781291401418034861730485455087799068605169682089638374795776908826925098858852510515831104126834345235408507088218091003534424742556952199669215764636161520383035335849953137315842079933527347569043153244925049010783917196999586633737843193281589007524439607210457614397581713532271082935981834089112079615880899880857867504462975986303413832829067336504569263311591105058988235655563074324902444581498204959818269106632538941670084306081262127514950740668501089534533537360729260729001545713205289840752125295582951408294387593355995011168482626126346646924307030723565752792490770668132567355233662840274979241245979859966580161284028167162515004228320247383692006546757436349490280701098097037296097686335962293349249072671697404150357543115267524098812042247723612057834421658526965253310862065856507979824594580538039514885997533525205477489655006804354825429681359544584278902256747796547111908118991764221243704729403005621994536666422147938579869227499837201781169397235370218756533786059427678582395750223291277680204238925494092795215031809077522242403145827734408963081572155135534358573744594319954322254910457690825058910625616063409293849807654223042056581822353931659206478988647105710108814357648827663884547705891242160774303303208861820600905908992309552690587174690826893051583573614336798087542637102323978075288665701413586110751071474845505235810242830623397254012744036181289266724264435926148514857196735497260254158929193800920515249264232142023589537675545428688683324746523466508522359165842849591614057254845221362197269741656616390768853141522684834119675701541014873308988007182961264942147918592707682302355582560102655800579187249220718361076658485847441060245560028201043755202545267485279607690175445718593402148173294897693525464125750546232198095902365376032088473862657498095810262387396948917432255409920277495157906300272010944721842754679244184246045821027446719802169772525844480881201699665157822241133339637409043070070151873991398480295459671963411792933258456969150709855185592439564287173485970565443465231354000308145438903992224284469800873472950999482603560995927442410263833792924724255389098712959266231210792154177848283298745062504165534166337645627962076267898328594985874339328508945123430274094298138163085977756219294695052927626179568387100697929529399935301539072367316132603741386514210083199791572660012581481098553801002804439221200723723287401442879992024990917562264708233578399524413586883965059405557834639788427605660192753318545690370284631153389405176573536397492470164155612140663454074311737640815002472910943715611698777109672525041329949440342888689621549464882602923505146570385446476126110374702737159611806916677509103071564144366897393027427897986194141940333807456320870435042960970064310964681711692643576770888887985889570221529014034594995957379753132441585089592454742171885221022638921460219543677867349450330782083133839829535006288125474222412706904733153899779057427587712690581845293633178484896211046224928274944249634911444378867038561487524424618251201614326806292192488765779835030470652543215190494611562967645286303367832576255198226125650698364708609451177171790756488144407632411743723138064816162676038444847373028630266723098861997316458246063564790778524670801306538429575159669275015436118301182265544783738841633219880769015351201488588046546982634528010476910896632277836503777706044849135798528516642108451409023503707148677814302516450157567663851210014370795643159940364617362632006464614306580764057817976861082678488257249514294453289824068003325190286305580283286527499034324443438302175071031437628342563958277043497275482522266393186770566582969401069450047049082605007541797466636856387099553801098735882497653387896818302039419520239997756332215354705057981060600498147296369967930783819341167396118499598445302565046339933389499656561776550172153167539834278855712688595585896718008856023545681920168320004246054081672399424102638152356439941986105651218400443875411231723575594632667263004292183360726115289705904017763840190477810160862302210681301498768799274643136051983931837459078880784539751765578364013462833582192929930354250464872430681411480520625222944853894128066354166819962663650459889560272899048433403154622898422188349896270905667582824917261785787026812518850619073073980337253135204444924272249468125874231637289871082406113788325765609801136305191009958516098975267611579136663112165236386108664619575498340612458662143925373384121658144756352474962041661312724664378810218430107635403879223784627596212269806516184462759408580929296102797965769526707686029947245203232602355616159443437988340581300771810208624954278680509475634222433232696246165158549005915768706976947611303858857579704233909126025827566904766561400720863111231115417777704197200843321689605564229366315043087302930969318574268944590874842119163291934369215026312761863814398728985903894408465602537315279963762605834421599004706070053988119919340119383419507901749916872699692590309146367154109390665249184088143005269796828217570159914726256029554504268426769248389100179003434426518077536765574596226590627143507581712872479854608560567834406934106890046666838048498656683833723544851837875033477773193871294989144265993566107940096340088153015255826713533084889143913659114230489820787066862363658252971126245023302525407974407827718856979731767728508698615291344804280754505896724637939499545648155511508697630138811773846934103363681022697278042104039020474631851268686156507844049924780905955757290020405243358660027495976237316303740974573333586240851226288043440536914361497204153807772433188641025827732342753877804216138668738260750679785063197404845855784198284481241252272017366616703803072673347597660167969194759489307217159503852840452226599956086888078921030676412328519204967477318944783554234848053479472640145273665455888224230312670990715244310191778392931326603298566319956005559770863487125211234230015960755583636426538618784121125357348730559300982457145114782855572470469360918863537451541268512187807698956020338104446269309406423641180923435242660910137223130879556693781422224009628932942525027813870489317673276224752168467728395392467312282748974311489851618876909665026641021905465838208324519658753480569473680495264292288801116587459619073502010646322987266144217592800861488109793352060495545476615055006532692970159191226312687667225035281085705837586387089545276353806438493981980393776959511696288410202472354442569339028177693022249969345187577094598015209477252696143751631090957999472019141276580825810508297302018645716275188431333667960704514485842316068366052725092663932427817237213621970491017967581646646531718173045828967452882045635563655496512943355565938791607710896355987483805231520251763538949121288296175659298046988697984165596186292698589427643069348272693349008971149768731092144959401574253974201114033626105796447538911726591240407478938823178366648001296885369550543703441925215926970083638539650564900574834175105585043265033461077139629252629864883108757327557650690099895451256439789872447845046883278112908894487602759953600961240990311303537691258589944154377219138446447500817892510145021285743843981217565149696462066092679662348252404830027554419596871470121702498747421157966320847091951025876359460256543175796801427648891542702881258060626436102402688022223046244118850294792048637847585445503220089162729108156840756070986399072308673629110462323624388844958730899785118173148178370398403398317567196272803270616904618532910759214270941150015506391180099752908101823042196435073246763490121397723994739104978828168910297710976564062422203000834262124629280586456947975592409005894869653254318863734713037575283261297373807208885912268092586892267599722836325176839127161971747856339270967687429535337019267989546610906244284419933524388090675432575349177174402938962522054566851699588427879414584032154669012484864633790194762067436077499753858911794928209965185478152620790959131503198885602748519905883628678441859507238721617204661998415823431739973980345901519454437280499362128825275308973272921478116990635595327337869526048428469765199850298778061836057637488888121847437114984353737059720587707927368727628560174283741725318541979484888128455057071048086126233076102778874027779053560944152265963001180368596740668755167563170810735095759521694634258529138334894091538474023806871296082162204067751981859344449454611191609310556637547224545836360630056373147694217314264007899858313987637150715864179116564952243292355247581936949156419425079641171863211212893011652940543951807115145056421543561991177840218928005506933993913103698949083016986152760119072636485450218059403729800892208420308552301239339454639261204586526845033459150761146699141011879362261604831424520983973908585209140648209434919638718655982336549993747302003307980950962379209131836004897926684602893636732344939921857049684389588885409522055008548221699136721314025760098316483980916082570713617436448748379942244219460728514745312887005407304980817744506073631503975387733389072957160443457674713857813649597733203562051707120563951045736763611484894510325526366642847338954105687617297412164747658239668249834771655683930081677600302998251948406817306120269085365912718013245885492800957478150052350726650828199036677354490985296006110322862023692772749285339691244557528955918069119471927114435177434009580801646369816228129938039251747490715670715003466507163335380667503951985568097483792943106771624333765722539292669254900697953210291312333427027988052329083299508037757747904026688838302700269074603874531653001128332701997821899358637159248536496946284698423350695327877841629532554887309252262821055099024637493887463528226031867006431905380117918383646625465182054206889723125246857855544122652214537828465419350254966498989943266420349465389017255938246527372985687699653093399070367321295717945503529704091503176200870689599095366642070251290087728200022771999541344998080201131035201368347786764421207427635352139636952210357473340272943470630821905967114506624443519471276149281040362932088812804074433849513887257578769046697498799277077938528651443858481645464872407072129472349091754689108610253768240892678214424956122853322605540160847945625395421078696570960042054028060926971853701020483897738611210154033944963508094390779578443644238845774417060077148194862110877538518038683267222093008908728231584942695693425910838734517436118952069226193071533690423522290486569507495182835983381009434534559680557493461255244992462971116446038695170120581668144338615196275654806871493509182118440548921017155503426965363419949103065575515347714686945361500930065335544955283394586456286971419855956776532975271579288686291614591460311982471022889900851468499453874706030235262379925184233123580514301138340660544574512744448081423337837088947100637566290411486652221688484505393337897468782385874043214085908463662228916496168126977721381784556395757776783141785588530344474466020161288089773775175985762487361274532804189696731655643389113165753800987211065409412634975190006807662059575504974682928963287000079106975601307805610264664780220608497558880117420737567246602183406067323978039548706570004441890206384066408439640222987909923030741090208649420480403330108589724877070009092190040420278112868417997155058872445219839038400119116322861645840051633094696062371346604330574302806538956367758671209116336272217964800951337908332504108004675086758876744748620225877215206179399166956463547923906249898362977109972679326416000905097028218476763065986184764131542071636017162696482432897888717724971936683193248490161342811032855635447936396218293119722003120749443205710395907352366965636249421391017619270405788451835692343708186712856019687762380885788164386691787014770464548157384039004774340400664906111591728704499713033531694101078698514550768917224740049456186544240766900933990127660216292094761900874972155245636969415725909736473075687936491105935594622734147395219681363913882213224561226321342825193881160206774105382435920781372632431648769577492743407019917398208658843585457517505962098934780208574848126480752315937840200852415388780086353170945306505363496498426644115936085742481581752546326948409063013919790933049330404128787278436760261765197189499239519446548566120197087942356063983555411945494340390861286852568750900612105386978007086577626313170389191708333972798862924832660835158688615083250765282388494450314517400582768639777939922853638071118149058525046697397895760916670544777367290105636067060515216606338499333476003002369502399977908090954292501929435644160546252023433382874861294885801204853283084053734007923995030278517841939536782092492206752203973224525352263912453869141077465335981836483356353127424099492802871112902329306590140668637845170338681564631117548659086640703715407742334769775460185715267860409586509513371586265600877061657995550028102369076193425597547062364346723955451289845720212526094496730628227265276985998612676201723271775730751028074196627151061151940601424313843944712983205305597679572320014275344058607599912851696992064605695568077493989281628985930821918600197715215588910475751075005964356897517289621570916343387027084654559251435436685716431056147118044054764435202810518691373495622189900849725208635167102807348914333506676620745413886559127462954885500384929453990274171973318646579036752438394809366354326964675892856169720184437210171317156907627430953959268070818880690712132385278571334524565395463904881250622134227774672259611681156447883949089084990969423759534404021161387247405505665439672076766760299732574272970868912829439738831522496413417303493320479849970885647726235240324810406645952796297980778834651434015454194220018768777703290996818362673285685627043280684750809086376903183327936960321479199418742148318623953930025608454195668183613423531878831372483152172760938121671548165308445406840460202387255971365757293306729173125261517945936126021601771699331718545706198338092670924263494366940354367070030670960230675393369726959250537851015298103484430971810045410745873312190083411632275630727026200876294470894751410216254998984951169856852403609266434695357462304163764401824564152779726200128014311597345468609659928950226146580829783174012872072395267279480000389654303320408702919248104603566163139965286069526613603663798726588275595971230679344932382891905207236331715758275812957862288997830285337181534610707970147684733254710096515245580434712014372008251255266083762286026089090135872621276611718394939694529486306871956469971137601153332145984632988070806475898598290494358797671471123154355610706302422335004353439445078752822369743376189124405249449626403565657288848451165775897995530663094465079931649344344518414180691814598418608982398631891678829030928653404856874923210575582929467375635440653800825992728761744079918410288597176482501323149295752758551285290279728101732432345765623013332061960173155697414212917715207910161427850727960459648434042062767136445884542284364289346225477695320025070035460734960501959171598015948491798692754270894587665263632975409518579817481816093158633467870950524146906656708903850425126134050623241984308296235182757090140106794621153886058274893428385060898511508845010009685169017272470415008231803039107617797580868666634831244977246761647562357823563098774108676723529369704230331332184209511429064487106127901765479578439585131142201089140958533988338659228298848617519581186866387203698643344172178124840198223307458808105900226577989146049312498015316145607321300211329747548560145141755897537977905036792036146592499955604658644654978250630214275470260576221195148890141078680025152832338172971372190533223212033085491540430244222679076840153748636631572093346822087040478389678921720963842463114602528478933103146874339401149556270191925682562812062917951156861815194799171556230900750980797983157739087943392611009423420027219870062947408280330099807483102515566262349768314594574488656734231041089456993550156034959877078666216550963320431911414778391350127823973750122584736235937921271090316734242641347262376204899123824698186159417114540525048115860883461199568738989099545904832713107694113842418477314675660554616712278440116329335425850606907679756792740082079802120051522680218644215486449048714525142291675963675072634275336736490598555628181837887765077897443137938394770674090833382531757608420330159582393324457211141180559850009378866432934409978230890082770246354578655483196514679193319359520256142605987520398253574312336860247712602886494091868003827957056035254049803863407440722718538715075418409893267617620964615214796573130697133918496628213297272820105133092397293899589951980064113266130006034151034518133177878920484981352676079341820337665312647394841558220457146006406770541270938031985522637378286214939249047569356656014299118591760583736452401902942348356515317994311725783989535355115479658371169862373099421788842171359991031207773735523064410785979479060867942276580136640698353865067583588913922673862588667203272129161277968004093992704542996417437589844070812509730680613488517085264939935775665593987953340569981425483607843135318038158500063889338419909023236582757148062801840888880323373349790962113476049358405443882213152062507503911074545500820712418422511453159843328890175926603311961276395470176188445505592297127169575309429409163123070624009143397548455669146090801375071147309669581679253013749044055964693760354103113385928914464005968088642113780924896299078982407919537082820475322138357964196064747335027106328500734198938078245151752480692336050926267172659434641267967023871216168272028141625932575002201738304768213518206437225431551157965879745496854409226801283877780315670322354106265062597435004883290218273094386710680116300205418244609059636492971327403283019721100270396052529645023340994060279720985736372258100120578384512596504785884073469716516384426680282852506466875431137051605128747655197746522989989600454828750859720716346021503147990234828777126216388057539166159568648145563208560617111787264349128229685328017526134120494813080370892928976566998285758959065522839424723814362092607493097836751085277730917493772971427178486750133079641136225052983763838880773218499168451143209941692332228883911716486227902753657769725185716065853217533948493560816543313526565127603810315452444746050964689312040147675767463877548190008623544846483548620519190389557428053817643208831782237289006897506548996042815770284971651820320294415243241005267002854881037862382088275022303539552772219068322062723315724199950975247622866601965127587551665908929910868672718955589923837029109759749898839299770424150771688524015302165082327532755796627684190397643453247192765880364792043318140620517165017580826824808131407193131077157826858129341486622012739619490349071549403736115484773978623415746450466944939557520033892371637369785861403089055664781137252811623772560247241995091576051695423002984204749248609224270214633885460049662053226870739328338981086576521826797878049495255105383254441629222872133126290620525796021298572042772473009833801284465195866792182868385561283528436031558592628238397206530759826948423179456869293672800053191888552340425142963777463423092513636794668480078213837914003636442043766670054223279013115205618288172128326840298387271717563389997385261916925799862403510913754999306366400629777800465875849533623908049555262017143613788808272344404049663328400442305138480378024302371952069803142134878617731679178377090085520579573782041463768868200145352214077431166736119321979494153596537656924076554463893445218279004682943729025901542651414887514454264959504868615316863431007876943132198910012017031487583407306594335250222516792439210561353921289626719111855332386108106282997079272876411578181826808431936209799945129660598608735975317349001469760343980149500687081573062436684801914819276164991899335846430361934977464781578241799559225381884331227496574058973037549854853033236231891636252464851639619960856751549235839136308570425022962004131937245333575991772634400040005239335612651589257579178088052213428257447921284282044750811340693320473486601401875417013953204437756161129969647744761372037329107976335160723862584366993000576506470912069962693099053168009543951353073970283885249287878687438330203049639867916351812978892571180090961419054166577133712848464522072681574417335628897892017944628508013061889451493323729511419884605358827343560521639163493935862208025702218352298111383393888958358526302384454081438864702846756990107169600129321824267809955878334323622385185287834277486586391575148512785760054033666659508103265808781465135529264992416292534386121231894109296714225012471997838446621856429618040187231694847001779988984294693291523833331029527606013174406963234291287494838426322618998421638625104227587554385630585606576490092425156336094311429829045690522561291785511816383806945349615459820669590410475326645342691649916414566161249525223572490569598882241818043424153187091322845164408384011513901077172643474587726863350169130364451735786522212957051320181871932615530642708918351346199945596163917351448804880407825898963301933208110870597809969774872712450854990585955572118303595496843148283281160818614600548842009390468573470031790116180786539647795222606795943065343171063460138337324277418007834537563835252732763048194825030811442251961245226981380158233435237016538227640816793270420220564994676306219828513968125579812437826939423714662378453241431629357264272506765517048363128022316409917388248152071240655490534487615267084559981663875396564697929309182824744934583093076584076890007081163679730846435986189173219518586366317402487017776908185060671328822968336688283618201369806909015030015305012476139766029640583888294719129090993130222241103051041266689542824560717918291169773748558354724671507146353328124821117271548496243485015681586013805857811156560680856013934563173957858049218099355042100077261587782139026022733484016207591113295867670470387800688459747059560449139715942021534348780384015577559896918389838551461825120908895161319304671860217921685968072089075622432417099323438899345068747577461569260678289185516589296999031850987135334607538527662322096898845697874785453131613964170734366593971718801142970001388232751335895750294270826220295963633403087537023870424413659113080901501938821339577133002116496300374186285018186122343885519269087809474010210634643284554353221069626737881144794275632658685604158942591706332466741283240115229939059084999809293061998872079769207249040975496494660217467163182262015115337990212295134010769710805009369850190189192353805124390375239028718958977991622649945868651912140863778499941816718414854916997278388484497601036505429934457691759159620214412975996174476040718994335344539871537130608336645137956905528377640163738951848729662268555443269338317144886413914983591267888094583805198596307841085606618677353296968941128398855715677334416426680460597152773773192214504227762356519593833125043121519116595324366766377500650462056233471549740982330070100537124373071759717751986906642023945676143589761162639686605844089144186343875979876612645518651138951025207501557854275413975819739890953041534223987893718122658017589709911053160374944203077700430561570007960150058430204695119490989478989959463629804261323198477623810050252333403102787468251985265888199468202879553723239211113847409634534913605880090184859264817769170357197031121156770258540775144190641270945853657498046716067001841502186384526499210293112465782344258850865459118915555694765085320656099539521996697942579666558680553818207057893929206364218076096436229752131501836983177900239791296939159457310909861523798249362909104867196196577684791874856623138570452931080765473980627141465871600965897199165948674906725716531352340959191485327763454779747921268234749736304647007398583129762681232597984136170908221833515395736545273783602507061736840218777036737404413828018711944448441105331537027637433507242983586968148708572921030333360582420168931457990182365962604292597969007952744249974316797448982896822799089133938100238566427543925802408829249628808951855421433283023414570579781245436194728397984423549135400746004699037396624357056866463798964489769791451484503847246396915934252336308211522026618420720732846667822862902407725644793191582932117933833670273936618177994299823037965776443444901027350575848900887662094496636739860885662415617240318805310207155810661409970371663361945243853557173369096148961046488980370631686094228533677612573340338321582137855009860837504019219407448821205710236209411095627326945008112827634570626568718206119034896512479017589699503710693549437316588363257007152250489491288135188694563661648174792831643787995260516949518160414361410835954373114220477753080241213962443234964243915734337324530171506173426193861838350062263757558630714575391810493047731307535665271403018217573015915071651427306477058702002186329141348205224364015284269373343605685657760774447252396962364057178340226783663248336191166767153849815512255714106740513220026805812963567599125514107348695938479858456737609463299379877702250671346198398345401258080237247561867125846398412310758286779764042851576024447521889805020731466369227993397936616751303065824639301564651003266540612593511480049201501878454085255977889213238134943729590705187918888825105357213531907958642854857712798891418995451896832499421923703932144883334916129090034116142340307690847923665329210283170445121781113685721577889380364195736444249452560369214298189262224187586720049421328046566379370591313810774758731099024408992904696088760837668457029693901601747761023332380110732396235285181327875672046734524312678420398954162379754765469288469580776525462512427302904898552258146692544937245681289723623358653393310014205696103946292994122030405271366115590243848606709898975557218595665266468388104381052515689980130399609098486086680896556539346504158492907814803490697864624177898192819083055625423009809293975623114544263274595662321521685397235608874600208996939168284981792763690727370706334164551371870167254836813180452239759174019947403538262932882400389015827376262038087008980711575334832558139314452096371551740606345361960408723888106815987858593034011999965724189165318481160998243940864854515603168138640567154314084662681858175811554139099582888692183225220999058336413459225206881053041663289403697910974020355143063710146368623747938953436909611350789543021421909726556636087624455500654425430221606561246933029602136171752871181980760703337077197253436371279507119501086345617408428753951199424189558561485916646835165275148849837041693304643289577686901291130066423105164330686182628068751616316195804846516674018601993572305180086231469102050493214087622202398739400296778386532694147971283119018999371638819695313687070180386948096615698326287964629694225000210623989834414322714080574605767370379922117724015811050718209782515505974594246315837834048900396870176653443846386366190333063639004542107211199801294304919054125118195148420324573303412819365736621930135381888106270432145074037597530576300339551525251842804692979270476863639226716055232031907431414625518714070643908781212039331736679057835590197248401805574320745901441701206426684098046644278088861524781517005501948294587022972817683304684397594291500523315914491143931547764796883625517136360481251078811636893455367985847753406396320100164375025611464103957731967197491628580980798911237541273326983614119122532270383653219437706796985441334252342704558940208129803544890184920369788463329867683544042563779916949186045983331953984718601455180429802109063790722119829152774033232980114890878479634114445804090223463376680104348972289384654093768709141456614803262486126285471129972466079687697160243300067180434773421543219058022963544283889618773704446323438990935823638288131307915707160442227487726538290201430468593618462100389543024028319271738863790855346587833064698734367229116802227108168903342206218103872003770053276542001779031554344503836975050544256630741459179265839741872080261763394268745588246660426318219274332626809291676495170439490052855741785525496283531286120555857550185241073458001533085838521535740365515162047701171504236093942564789610292489222256861399675602755097199119577325378832743379912042665368244207265114599701513649645752922843360561005059660304682048991522938925686258315748695685041902822370735729376757752622444740247978438011315262965180003065334663620875397786949563348432528165881501490596329785050047192792310663797242054181067324576779279186361929893506761608954783969340123973288690013000238189021012232918253238047893056889090949636562094536874563603372625535402199527388421086236951519619013709767320621666806899494638909566141821635018317700055596092746372721141590350370525257084620503852752719498634142818305075948218937971577656443004213068230119234870616981041639229342958091683281845986390332745195309452358662690510716577950585804750479652376404445827577304425030786488290996390373688333212928743718455410756128074627454099271045302942614938649501755829756442406301159329850296815562809941337133415343274333059490123512772510561990384200566844939910918299881373092573857124188215838693338932064233655943179561607768652387892300161945706795000592586517244400901498686599745855100319577953330506507440929533578505389272228098725585558630812697844895576098739772661993734242280854391406586118472376319830484778753967223533731798781547451682837280285688808741583376627668456619807614988435769247760432947206119225238770454634336874932307014542312174096658596777128217666170304434479944398370222325345441724564305019370116895369939219185171370521152546553532250163746594041359871566903417417993025309972285933223411172042431195579857331524332294478434387668934268932650378438482551586895951123570596503281958332532798664749141480293425922245966572917907397715910906151146619449772074351080916700976654653199262846088158702836829273169323236057953220526948061637610653525311508370981933184860882664472902434807844231601521741112493915986800212143378950574417065164329399231758447015002194414825383766907017981387087444774647030448647964857023302205075094183592363629054590797610963771261321821685123760665227140857337147889772597809467355789328837564674820365037318026265920362777999490752595981299957843799629528505413961944525221948321905885360617843621249491360793004284274598763413173684383403331146313612299260986790813693204490977083890865667914069878048753095413688037695732470502947198100295408597386673581435666110900071713442987231323051809508221955627914824018150087870958239596526073570195666723215604956184357458035728681356598533054496553067741662088165010685516161357670306137019257462186812929845267377746739199493288598399923009778661788568145704512322818108061297396439930411216964964547725000105534286418483439207241718739481138506119651931094156388742794187426926153524066415060257172134239377469899761677082782707998822261563386236791820251767932993810888563500117795612871914475877413579904517825737366086426310785313105690006774860207068540923608207370266939828478789781486695341528443812781967455055374973966068915418251556197777257018238391885967702158886025617399253825222542334328166866638770094303674726460201079176138131374130071382903970699415919582972856308545951276117769548008677159190394663491256364375514174174599482142702335786932308395666669393575781433194677611757317761804606135476161424371236204492660018789152752405693910371141979229993561210908796829444072534280106613712568693855897105989471980979099205173907866186199943123390273407338254346245773647159403367839221194766072899399823770686946399065845005347571096383323704372074682980500250105819269035560917426725546379530399362013635062882612726470645045767239688212602605988954133420051275850781717581266930144790908721992375456604246241942011510243090669203322407156431809592519911478298372769818673054343150438676553508529637786002755821558916749165068134077241832484328888547391457853042899529364861887148834818560774101686283259739244152722543514082047365730376538907814227742406158974355207055678216259177065469994819169541332008798779142435201131220681588546478399991587789192129004003211136208419985482787126122782670800753566263079613277620643481682985791772348401648214301567118748581670503131835838963220809493013560633947072524433066163810862726877699917760655594708929266017473466057730503329663790634658187832689706729930430491610322784434891035260181390409135930611038889391503828725109671857776114407047011102153760482205582960633090706791509877860959347272904217496097072501328450757451598315608970527587152658765161929346252525207551508708694789515878982101881494201116327167191907725703564587719156146673364138609584870768551874190339980489504351278017801158492604695471038983420428319553130411798269287740187867933916664907914055072070964047685689921440007380710577098973937373056457354621999949215366113731754498334072751263618774385090105840070239483352229805493425962235907988125244721989341228095954351769147567160106562087525716411056937298650837257970651289981227744596744206900001008727134574076341336041463618425992442902131229982960403245230847821818836290917049258806572097756413555623610689762375610309035320991321127399708696923649345069043850038487749558659838811858982331967844283889681645181507620218096981302169291880034522433816507262559485298370171149281006119855940789313852517925074055893081731062900112040410474384998500531870890965112401099634665943321342438216227649065003687631524685558605940741681851983916638799232816901555245254825589467087347935517254802578076740599911816163020084433783028502426243489129807829513923663596334863187018584075552229451144002396819664938921931469957961025196238345962587104167348788399570323399837553306769244988977565002235315236946474263360725832975778870195942510014276487682170315254348571422126488555024286148728609858149944017164306296109514614521100642748999299999551569803256605283905165679043141982909574123135989306417660279996019704055592173550899358171269339725868611483842185541082346070324084728158493566941343524505937423593683622833678468690552457562983763895761060596011388606340109463980984574616788589701893735300355167896134408106168699945991484663944337137934974318368237809463401983144769737237176262555224790400370650432775757526919110633289538581246818597483995651030230317306420827560054187097857052224051049553098254053598234510637149693026222786554847092649756643777885033054913819184440305915123891617215491898725859876321218953954437749519625176784541291411915906007675487516695012450850103798119684882771989158528491076629106933417858873192196618460869451033881688237201518222774894564527377962995711892280924399182550199527946068598726796790580637230623886495430103005453509188256782714622892048607842304816208904194482850836093838575870863099077696424777788977493873958373418970262870948700850883560280267161624678997538334889552536658304366688094254376327420887654919598258069186764135113322703316808732992677079923822355425024696096288278151557589006498381177064042168576168562144545567553568377430024778296449601035220890653825647778547956589838181584386592406299795328783828873124905797413745568578154982003111363176876130251335570627375020536940418490171221084370342724186157485428758653211233508587181426383675275449855528848182267867636595846374046323651448200903385139104488633661278906253254868063144152761069962808106409958417812699272661121234980596347364065549706106086409415642570813989090099312427228439655781865921303789987213586551259118732055696055694588362045067333789042434262367552759019370112534141414356555452650038168853656519018887391937827497550901402952532020047918842614444174677326396238457177087528192471891525783202866961274066714311995848567029042210115998247911130561029846961346981242178225577161514585852485830626380312889874025078712925540090844852853317939243326271320603036058441024921117386732062982805376125134172733524305360426622371418907878702429129703928166665348708465967700534382896071367662143681131712068819753644571405448633024429662837725357880844964499526205194572573563791590219297280878460053454104285571687074099418853086268573111491093247120608403331683180484548923421770758331890968023408098127128058386368681769341783390844078376575855970934610738771688286869451646369000865573743648160147044278848588445302775945084930815187739862712600546350749555041460979586958556125656531182387716620604512896952537410332021921787783443469999051979163826945555690602362115125667084049661556230179085865076239128096991371658633072611169141340613855513966917822744293667887465413823966778245551669517493632035511437111978946555939883614669702908652607964913620379144454612022839366666785157402311675491815562667125365556719971081381603739554993526762463931155943245781770363598677012572540996351961406326044913557883228725697357274760238181003720634037766400302933952982247434941560384142149784623873253907661392695550181846511494431058354502485650862612044712233930347664118068401992034132321337628023555123035687352134504255712686096300316114843720571006503605509058879485816526019401053440087514365821353751102730594831162914056003610197140513992866341902351642941609965445836403195961085908341737541489882256419053546661906943381875138840199617001276889744344232028536634708939332659523784447884314852912979204443107944134782139088972591561032463478002208421695170263074801704567119582214095365709238113903970498890506968558946595956683162049449423182480162106682952620134410553653531563246786566480501646440962729777675216542844170253711189902987317587339505296666541407608809985997703245696008937549142302434428296009146196146607110837609940776517827025207884113928872394616198823908445976656339720516782093622448582716405773985377092829122389779225905383285312682474645699677732901869572280797623879735451438845290136458157679723525319345907993553026886152179169422366283263514985728289535068553923357789042722238495069363239119708345080315466976284104589907381600405226117041013978317916366125981841930204657154245720333712004333003556919585841966394506690023034706906972396647571275604376318440766053586891865493887623450438392447605949669784140403939049760279497197579758747990854886121557470013333527497391261892047958692347198242592752322771622361581360105252440444011399010241033806518132816241232207523862811558477022580958386601287623255271795419506305744796966349835726415640478354159166313927465889864030646572894255715359328724476440141172528211930298989397251803500662561665813548401033064393937718196522360914113341626998604742542828531751185379178399778774560862057751530055953287030480074004865240628575527475414699164960612533473776450676143941651567280473566490384146204515586161582438286243719498759571249293787988825796451730354874187206569973429347633169622622921161265064520303466072444136101557278627327836931087884437430692529300152047236683034807833643031119609864256627949203799850666413265429118075610510524781979385911814590147604815904041881379211938860901304698030520654179610393703008789477764456580044566592589081667763639639386725749460759351910066097285204884213743233253426527407360360819995260328731300737172166031518712769371789255096847411316115585684260384531202623601231266110053162695488320792693119061026877731466407410943599332254656133339337568455198817850121355180254183429841577244418623808384364306294426641114118704667932123516533494181501991434558622906397096040172003787271784032580133346309958407505036560515826304685111903720383764638245395565133128313439080343088140150695315266831792844402173276632983973457453745398973324794279777494408779527041298647008724073406082891099419922774642827972981865598249233473165196972528236394843628562672082641099247010335272074066088571396470657699029487143906480608807791805629820874025419010323755900073428354977169873948827833828123876406649934271847291166562079100503164527949273562531283406229478300686552929674729723804392447892201139371714537181925305921367900910423708673877673121992683263037130120409862428551035785333363238480155084058233320975204881847207680620000093131803773957573368746384177124170329505195039395816271775001503912840557575416343307450802069765541570820582275270922579220546600079874462710824242895981750887359618587846870186872694966125957469967327222470923243262429470996156276907751142700397806759159352256815355866658985024986081744469536396310795707515418959202211885611537093790665273240595545336682813279182503405921468097788576997708556700141465052866376726992925576184233028470774494772182134335343154455952110818477416080546443835037764298464189905455189473283180105257843277376967409169499424717883412270063662196013507185585973638589478550662853574884047460781177624574948387523565069953636779583564252025213388390332494806594771261496247877704369541083854530809768104733866409237892762213377519367752039933160064787362655627344449059620031913517691566050591946293045889192184984547045483269162220727584512042093558072607310047669872410625104025654899273728560471027602584367798201613846348341721776313974455063459372766049345486582985416371918061707290056252735206705053002808754718636890626562692693403783407934403540809617803598938630446357633155084269274582713410174836295122458996257655966826011910207711030992102189123236419355451006871337441682029939760896461987246242447939092738554464635267481487346418090558001944561229315614909878567888023316461639963334968063823931787495649325200519649040566628396877435405578349104670682068785116386799306876921702294819472612838416184474363311032907428093445785583969087838790056012492064611146007169605911104750411209347739467656972741939634633155378088736778655117666142792360962457298025799703864521929950765491218246998055674856766735057585429564101718200577691861449786888550959442599128965189026441521574234833234070026290186243703422140631766738565276479142680311420079449305489571462636658847874440417183071071820391716700148444591270352198608648068603829653024788165473006429640972755247223067800699870696483799832052671046193621406211589280613204480020832438110325649124708131940922463821406743069341078543685225022585642454871527459085649666287127236085322864320859001547794397198396648781414991869515063163010158344096272448119485791012066865420939281807958280917710774815427664847285656545626557453906396224691981545259160033814072128888675335594073664354583394440635949463977125115412734177478235511313297856756078481302061597186893373736493742148278478834480391582583214512764441683398284933290728254918984468199624841831734738185427954598162845917240784095031960784433377382001731898371284427639914239609427679479027944046830155580658843468151725907067502146424637837696667878339769191601024413221815222551618072445596481987989511332758608941165662381208798796166336035585119853036585705281249738327837435485969169234058480180143134171111067044815826984781962970382041774225619073143127216760001177879496601694939910934318495361128949764370445118725440930823965461366234903939458526262511114837481870234827801593212949449143265154089189972860246638156771807955912047990980217567916862827255190419757889014612490449926771013314380918369885595559699922970103861466550631776615922320404226806956745942418068790161131277368284956458614188248635549356864083242392725195373975282403333087846129255484243972946810467087420356240824595146978593814468160930054129611387950575034084419249181342749063723143678067462015576518118094332912442784937765928955232131922299003705647108503182950049825298752463576731649352277657532523019123833681643061394264149641939185595096300465279351502404667149634181258001119450912372691253032451110944780405341342349159945581444961732496648411020042887854755088667664085199215979982515485618180673074913838870471598651982701934602029625901610034787541893820490363722866101111258237941259640417246626183457523815974050072211932611519507159068319509607406575762076618975703283184312332109095140715470505059644850922073866135134258279658398265231098090711571079360063549703642215620088787274045671425137291578412501432554258926520429806528861637448202498564477823224385469182864851841517892679244446268247755676418706460274540947628424591878869628978848089603686671230611438334344995289947381386807066554950772077836915523384951803948235183631699146903868446861095058206611378636755676011579598125083898625527025930980667292825450082363098027765536715522607723124185207535163400916553922748860167904408862392468152521387557631425116619277884832870644156857409828420588790649014714420794158826133115997564037078570077237444571378254756982014098049399926807488392657657966570432541345956135181088198806630002851855666654925527714231529239298327673286767965509484710716824888819661491927271422231111310506858290192275593751553175558696153762398881452177824001775822906473213898977925544548944936828329467488550039692613019405856762499916842337193954942865030032527127642255684925396848583502544854161997470489718485735715671605940396651628251499641875857749940147199812661447666702097958261373570340432065886426321478204057567645961397427675591780066340725219466418315819279784397271661478225674066483731500110194654198814131690696808177136715785174762934308276139053395099766575183515774096630099060300195119948168151201846337975680658435869701693662935172186453272284015505191945350801866334064439740290220512282271221087930577440576176407581494554630058166679115140344407245420271365630221122365269724665229358466040143985538392404420298699550081429428474242726060670017261835887587765640722172161317342602372818716334348511728666890604335550853713129769401853103033819245266648262906551226791672337495724454841599825750261009193668337539167072393538749705578076960618296747042471208518264555856459163284138089432748456670188089969650257391341843602028047253643864321270953019822802970171595550183314054660884850633267008546437667210909452686119821364202327129787667053967289690214256739448214339565858710814086436686803172991953737860513550862276332044731115703680550249860258178530383412145989012469204332855962623881906462148266323397890635272437792053707134744980336821346681876143334872032083610902044825816350626593529976422849068259937534436026339044445111080639680325371862202778511396749965487765138083262128098103104826652335829093154619793545949247601926065877438691424230315946658818664516740632642117309410542098251452236903366825749311868838526046988441304177626167154417843121461798238390524614545931216875628950261493170418559273987441719888225294262089589626220397632539445732539734720786500067424731002028895038785310115908907643623334476350343755127690328717980188845300043612191966701113682502076451328793521405284896001764053930337250369712917343029833214421848564709656057307315604947836119511555412546543778110719302629301816508636496398206708395070894627302840394105978995847633588817696459540402928716989492072433075543363509071311276366453302101593589479094533953089177177598676975838967019252969601899281560475121726711822432448766392599248963152056915595464301755563991401280160726694476349229931852129826204776970671953384475023936259168962830235964770266928509467126728431246033587786410427942613483578011494233517142428420623566757446085064593288727208697092693045039550509249370381731284839459477839575926458976744766128212555941990463448370715727158592715268807468575180203950249665356489019797911545721350855655947486254710370677396664182723067206844919774405198270041696178713389146392609588286707390405469839224509182830132177267315301253824374360973249033329869164674585770079770225221805688390770339884587907302036246184537205990231619282087869446958345610695907722246984726148088284836629968963969156847454507857941646638580776035611640461723992234642966868120113274369960589718273640860517519920123321433675165258123339936498140111195356379198902303280590982783851977408942606592958103453549535996449514086164653139176535230910000189858757854576524677609405526789516629518541855113440946264679726821967030919564748942797900224802273702218034598264195264238184711739205469812030978145672119835515354493939600356776882101158082333445140604694608103767367026689747455564585702009579935725680553558707770358187561716762482546848092052061852097243352512037932228032880000444787326747844256558536672021713727220623050239754459864389229134221061293366106323426274165372447975586231451889316608943655037933635337030959316404782685592752061083159101912592849097225808298295882606065266738721869614019213567912345867741813533056093039543137701102323043236088282869182247167751803706935835053483702713152170090421026024316221527378080944619018390741604370283238948872652829673131668116956368734735355577094675204680466545835044818426172996834390901776756109321914147046012457698209863751989826755679643543063889974128858349104811314174167195787458296564612354981577861360917701981600063203068313243130198376360381768598255077017162739870983617404878536488459361856689696076608136871596769395712505752006174911195640037796977459881846051725303319831055566999843390472795794758289191986981420586279609826342025006448414136818256105952134214888497991994776861567240344805816949114779922162651319672488890617338887987210796825969830104078904553942170456199405591704154822812538279833789002051539741129451231341948617272950385684772923193120279945363728087718149586298776971342354192926741595483726778479153641029834572961799420048948137121977434666467190875555149264696067823192865915088337392984529168634214703988674677736888735172207406909835403809271815205241538557925162436671184765096679193454376026901744816910748773386674367193712132820703523188966032953362457354193174562100836356432181461740401129221865321114790999573609269229943196361000794702495763679539338822539488311140830891839328516934589713914911872722112893530899623414015358015364916681396832462000877988715914306233769778827001228218935437699089208560903465440986127623728594875857582593645844762735897636398265110364896841669984682997409726699497589292609160597443888634990576918526252901087787627617731123638222885667429981276066889573443042461632224730317313410636298234041557078707568600644408314673285547478288960622423451027910348156371591162712742027361353826514690927215174296468982490944122479357607675606309849259443774105542317870906612716895934553288114561444741791920134019164036159167907076534835614881509055018211522545916349712288233301013821870801064791215705472676897799992812353830749735961444642418630381905911541564371644434726354636337089985863276854602767389068588132523183285067225449942859170834675599242154533825058231850742506558791262116494707043368640440536846680755887938029365676804771556497080128036868030366306052347505190796557122492274217031672099554162762609349139752834552906677277316224970849949866470064535314059891927921691126923786524926176960149059396710821816064064234669829156786169006434757103754681732681453864957566610695940163003929680800706047310207626858209131753239013223636070128525293757729813013707271376387738474085158396973604130330798203384984192133228521995137386535181225514271927556304623861428745766299437824783355229066939235386331521764324856205584276775063577164789245479498984298397258112353763058943339586246628682809910521919208110648984173894009750431249817561342176027192386350451497429259238938790923857628706126003287533368163716400524686029139425981564355661753056402364704335350873156472053116425901098679769223092291939737898377731245374022441495433404673072865971767746537187828969099323917541673277589110151312270766242057713047661321928070181628792470695292439560230905153047017795258038111999385504838233204961155696927726309838385059012146448414267498233307617719700356186871906193468386235732443946229280242957823650253019375703608493436614614237183686146127107978308709554943697442325566869041039934900235752683753639629562046322231551678964641238517002462817331339768458339643755935072418522022797152090554181505667291801821988383705775475124441455350408575749728268958686286965451142888035694042665878365164722592594771223778709911038505742141568040532127766167579774277182977469424503018282982832181457655068289635191604193189539786268747450555582242695851017295179168040589504857990789414202998598720621667434041502695978829662354491355916550693097581665869553253205548660730211734248343997237462983221814037713625343143010661558540049281533103195409431169081764266032775245842742459410578646108877015345788401445826414121796369347862294750211730727324766969639895301222623438648967411522303774382900544879684796635543346959710185011278578481013322858797647554677466265468101001651139717822004947892046535131215208180678930113239127417058991627661822131032827211097922776642290618103324117045763431182764652978952173137420071851975523700063147021408306801620066451180861642907753468223250625574492071587326560909113626490845595404034183711821008490907329987231446413242118778008066950609190973400549393311774955318963477746230007959644791918932398092743393469440111083531259600164958844771944693484693307900802326143271372848851229075375710183417266127443218270159491035407694562545175261687541650128142834550212993400590902446375986382687540738439828535745860533943314350704802706709978264512076865813150624442427795106953654282836695258161039910268079310005459340178742830372599202504150096105195669182829822377385837320273629725441341763636334681093681114251623286317154262446435547827922526320273857547605432640912345705550379729965136374056365332440040270295394468769866812498388693354533321455756608285141933049403290273939549467963502795846919394422177953075827650752391070832984215041767573744666804643891042307456937684962193431671198301440812407983096502584936801778659335190746928112784957521716662854715669627861716632153369046645225047162819237238532917798945614603714655260215730006068427163185424023336912790264812648938795896901151014605822391466768578805843430940748076230615841073439391556545053681238685961704922261725402301943215928765413478411183037542933087424505257451451989112775662767982054482779731774976124954769297840379705920941755052186509056797172555958876164146774414921691532056665800565249527954688753426619107828262717171245822984700189330942046247007653800740356269105307025531013499929700768680597993200484297564724076923862793700730736050176559338300895905701195321382610494044765670246516415651626219071203322942514821979445485243184238750782763977768533100209133536909103913424233097300798060490580318689366763487372571285046226999806405324058413465767312211617469931460820915789300494315697131394125985592999398347065704433163912134433912630969904646486493836512433753954454815706052990386866149818321787593946971486082825060173019375499091929046320708736438614529075924764421487878194633302712586110987544476954475593878112095366237197629156307957149184497770281274006108016390851016485526927491602297777951966383194658206947145432301394195257640931477454430891153453315760998961437301347247061908745442334466457502508984576949388584899975605820852146400271602694109877598783797371707880814328985575494074553261679055433126497667954093080073495088563268834115752187685722200193033353097729124077478749580933965082207868269832315236249152478509834214626951592481822316318211351728601803244811083264360979958888371109943645633887630315230167912948704246261006244931959218330400202209525257585753786043589465697865082307208841766544751392030465729921790249164132040293676817894548352422484876277373657410154481086020979445620208579137374133355338429221800804837002520310979213733375473358848084844015300640457364214453476436744641825929212028088231042213965899246996424804587366030444123055831389598860427387974082814105885831076918835106849668112727580935028574260195836473082080211371460205668353682656664039496493660711400695762001877828092302014866982954515422536899611471233995600650883625466982593586518354326145325358794550157307471160089625061583892276437640115647107347937229155117013575968637157921772281123414164839905057712628549700845930677347146861710128544876557142641786699675639935971399011362653910843090053977247648799633696761435898738741170526909528045269047679353155318759067216805736084597209729591007955373519054574319580223076544901469499072858405047117538784134086415362260413815832799878302944143068428510678727732995751613919740019375841747471376069206370368865586719167991247647373597973997066504020282186204427246795623099097730391851406954354897098829259190123042024871818025319627592030204690829602018948405534363149497564143259942093520713085456828731739457680716690997626731821762162105735901399446822050241350657377790907553905255756704722955880396136594699551303011589148995059354711530420817954083266155815151528919621003347467072361626224475882998050141256073383162122531389600618933382655181150557629114876042923728847652142305767481785129347418431700853982197417952970378060053006010719745706642266368585770377685674914608862094523140248368692708422228669940370192410192453181556139984481584393159125325018480889557923126212482365124064751694546291998511083797638967100399950002805718860210502944193135085551182982507830095392322956748578719790003303626726570857015352032530300754419048971784270363429200931320557405991478077861074400145527462200270994894002043102736782134806757656629730540735691577330638848371727367081861401922535620864239924131468481161711984294722447390715342726943009701559190068153283240927193792477880908468394491588447538968822608581208496894566979173860994195249263647219940689920255811129571780361165427444965848405856260291179804380953652377949122869489582174246581576469477832897747723285641467034791823528141456649224023674419024164817955764367161070548903844870679219277916220312273113660515680769158525509870222270829924932904392087740994273320609340332268613371572766367405988737841151639045067273078291225966957048413850846861451148179969930020199625489630901806102223838750806165370010003357076719988948872716740174010242483638650740218153725424831051851339570913406887251284606882559319661265266963446546731060972417054627705531499431838482998868264715930559025075105896345102118540187449748487675911052332457822017530054972489099167060728525972164019806268322568271116405467797915476212321771744227604853707847539897737158702392881680610219655749114854661910190296964639055297214617894914087027818160192577471218407232672150033042927399493333088568877119713592788150361373267392333588575932316305053428750843774135889536348733465309750182247887766733481541219447817382840417612819590628918178375392665045886396502783108958823014629280859562143177133864045207488178157290904623511907581706253989036580302495772647267513169005811060512342652270902845195559163244056070439393694691910218989886373840908516227134522540430715497170424482481929436330695148897612300989943686645549534028294287385696007723861996962514426459859654526728939056367225938174831953119449423554392457492795412930781465367912099137463146393581964223236681613064124504162097329660428418966188534310290548195353531550784088817320923972796698060588185285022528841472221050771397793148039202538702144529446548206892051115449960748195399479827971241832734096057266643343558358235422286075256822904709474735309717379966522951579358912921855709575179772674679245681906160817498731765766544190987983120908081039833335323018745129566611046301739602243971520089170067647319984871170237856786669270398181487212020897082125945255100426350298514330989887339702649260187482343706676814289982436894533901745804939260461318996257406580462971830314538432207208185539882606968320508525003512600235379922355485160627762760294384879798886675318903428045181486223603834420905858782541110473962972644041722936336637562022149792073044092719767330745032475365261086076811389906378555030937668304422482923394936163627327589935066497143247804404192163641417371372166321863724228155439517508130832457216775071013102523736759833907417094075245752945161289669417460876148401851104302051313139883132962657165536502079800591470027738062891273499314609481392023709339355903755848725537004088598911014564695515212058359611416413614827780968139524903316354651325949468907556180256461616277990215685767818914925944636696705873542446243372770710362309612792670762638871249965142197616214247932316683256294578987960399832846597082673453590729533834581136127540963675584848985347130636218409467093458764437360494730489766201935379747871307658417768258275433239971432657867468529288117051009346623284669358699725824876597025187795114105630077221249828510655530914563976274070422452447841736238322014865383338636129791649164275066221438193102899327652603622204899091854276520232360414488874216176059431089400727406255973015796026116754811376644525204250471580382082613439958016197753295072171664719004242147910948441541647575856650447438244795421839985652476163292132881729853136619552673438502652512584540551294640831462365212272079217602197528763517272800996359621729808553208940731912231037620065501481094666981927426613162908919652754971498760823563270907603535497834049716956264476389441219770978835189417391457632423697181594411984619880617078120979764737106658378642821361698029147586714145629025468117020094763326990283821934350368904034864474734006672083299172583384076695390460792885196043306367054952544084587686850633004145834533806642386394988024898382817889674110531199051909606453282272935077347246605675939618058457934592492149518520491114964927758665491579863267507988957922234548020582553677769951890136542796474888749141655705558412998382915942784172235328730070043460033074053164188034725586099796570091146741408522390376181102974331168805052472747098313163556246264812129385922389416345749608010949744738370821450599615684384382311983829457928082143751671524520025908177840405755562450682174697591275145262073705318753177556284119508750337315066077558656257715492426926750916383762862506426786343802452555520069539971777188160854846150395402718613708522285074561345870570792566273192209715577566761942439149302998121831504038543364782362219176736979397348082679098826375417709883061773633463872455666302320013556433746175542912877500501454528138179616877315736679684707803571736223815280516271535232709689171051320089973477003837044081793280807571047118702953327318577687297198540795696178909363742809799404072301361871177084673646006192308437543713846622955038419200710517403339693066683736795843794674567442085921368158682779196930569713209696597752775734176114754581642827333363051640796516094500154527324073788051913875530177768192519615824093403094559736229410544711156651967834816925330540905821098902739627986717001815438940239973181121816777816371245723347108026158747225524629891714836033180800651424254946765390558682937750395916326521770647052210968139837405324385921645180643883267967597598127950038024241065728731868984274858855471697380251010343293936929794056455592497074964569164061210176633338094347249793149733462995414734972242224745113896237735777392497795870181739893238130288752567859888150386883819373962549100954288497438662087739206141778207078695441224488923420869747804622924941130930934493462039795158660893595257201057835678413028302818213446023929032284339450865750049618216045678343899018670065181996643415850212445541720792243070965701272142016724667987715074597917258679353798267456397220355124780308700507200566450334127001534670178434006336221271646856083420075263761320040768965149613332254805857762748372593013521897329611282336342871811846739493095040644095772007430283883676326488648180123441824347994158895749133399662822655348651030967566306185049199078389840746694808617862182420445895622421571582233443089159788019913006265205004093957530694777753175422604484366967045566245504377668622111437371608928704423381837757530020119655932095756848954460801330924720148373622314886215821591716527986157139112725854526703003795958509923754564180370262790233983057453097222078516232900553192535231990351351624519530475746381086182159580228004684817342470575741218505988017938490293672803040633730261111683913209939512733509442157900653489025227162472102513017589644115211196456924674871634561722570960812658799534982537034160210019890756005031712605399781289193867303783291134240851361886735592049499391172072986667362469026093517893942510312160675200083464672924787407909982337996976981479466787461714570573413919697357495904269578972794947910112538839102689416844233205762109592667694651001364371527680716445393652515132228083290505301975739838138479191018251826322607656691665891575999103619418970336750911480619719109468368766385244345720246697052748548966906447000227405398682728711936910268103050839652435862572986676822418237363338904332042493102704474868541665409226098459977109641211833506566536790649182401012418796643798942753177329790492828183505382092323270403818346834109672889371183713742418572400273848337348631993286570753520226268664677765317859766443592837779141664473973988371839148508146655896973614604977963689256864008740573307487119290922012566860805310987277009838203596840210123104518599836522052281667912959125668727268392416793874419221375530475678556633873027271252498899732106951186597593808670052649808207903806769363951109178555226197613569369901276702226440142955581985707795219864159515450451748714116941822343673430316715991756741036702299517723625407438065555011544054952529025098404429637881022087762937628045784202527918114204889049695608822370015126968012035949351603268065684493033426894621104584232348601740506085969820193368045076648541619585386692294434271153303233594644900649151787176454618871482039534680031880564776700713637708955245678665683389165186600487935138349821000481908191774449645686148851176485262623602593028628977596016343256487870320166247210431353341315969118582077506961172524709792807927904926006174832829752066354884982437291403018766632530521896769879130046416524420496352415608636911163656527498459751735671719267633300125069464583598211475333608279642203006935973979304840517010331682496699918490579536975152563653873459365023358152805887643696176734507492807897870448306897209403765793997166539846518314788921050032057177427468708124436295551158917493525888168871291696571379998155644543415195774543859909642276616594942200180323781454482204762130593157736064918090927070706896684230821826860884943264199649182564381387872754911185631659440614399103411782117566904463509161368945009774597779314636530058122707965867274319302148516663061181475919089006708079534578932131912780608027292103100665932760150843094856179409760184985143143676289671295619607381327995975810883333385116156154429779774001308954127461473909632492663605933752308437078533246410782803908567889529070498997533682638361762874226897017002241779259328314929999040749503125430105409263819756218589053957186695340728246752257300841208440573996502412574211435506509978363426488698827492474352178018479421184385729444410435421997234178902554984312943399196182263860978232695910752894748347066562155422788823521819420437447242377765176709130438545931809071947474089243825833611556179164872189909306735535736403642415817980931760404390945838460114012286450902946986012023041589090725177962400254570131065946791930506445001104353437804892000844870544391627929630290149939951409267285399855349220302449792109489747932410773683275288364476923094157685134133130106644735536533387596638765738698993478840780454241884964733271725611442921432251197545204322371785871819881204948135378880767190039509425883636166135269072407285227697945600955206377721051021006002774960242853292501941476664615647115996976596103317128302872782678672790292571599740638965779055125679837533469820472275667770867250979175259851516783998716924295248109968662874866067523011566829967237128325282637831948205779670849516224308801540373146595593899453815463616595932001780055206017029165193579279561591909612703574359052935567441597198642025702251081836519766581371345821818116101794526853951111137937611032873330410099783020110501708752859945261452077353391776994152639996289673606413129820125073649910970949575632429211073199491883586458542070778073393741516056193449983697267273021786641364687899719183386260089743356007410383415878382226200817300306085092076751848415262397665531384711755999512416726592683637514488099477876583603167975256349526498072694188905722569366798004655892966202870371548899166230664689171196249975683466871542144697074626782541344593169242226342253022856519137385949088374095148008291627773404798482758011908925985718251273071761341326024851530356561686194225587960294064115548951303772490893732817840086767381128010638573392096075319325968542042406422586874647147572834258166723944446038178763580754300374686202420705113422670018574679137588689328342856316026254461428427398850946310090105158176266282575671626116265690775462894470261094990497123636611761773299686183779860528071705434827385629083678566230409718396094041994842348312196396811944115184337270422608207653782297260126560494721997860447802824562259873525396053775706536056375870434456634008175547722666417654187542025338679990079003357090384090737329697545956371824235861980802055687721868759309829589005557999464284531879246955072160793896194727756240219601346907518040382849928593680051330474607922476057034974705288437069614677389608073318902754241251248439918158752469217948487580413752140683625704008984141230774613837259884478893649461965406111700369808967432958361891701801146113996296564687820015762369435715725291000821074524222913369575005010399923897052082542785231629248896748983854927870618302985696159349452879748409565694941590968834590819052778470192944297082323800514479273282057689940057946149843027650364053212449048345619184421486486008013694329623947403730882475467481372584974313616028959948210345594381300172675790450420386303653381816560201945304430722669536868189005620981351331712861168048021180851396707953013958599203197663189694980268363032053991572365920769824801770547509808068306139668400115815621911455800839571278615477673216902251419820473448473720522270220254695310130137492688222847533093905040844144393152447346290853068286494962343274464868527571317143488682408955372121942112738820945133319936154999344265290945390535067648982891235942066801338341238712149184181471575494839138639054579942156135970915234324709017607100786577198979171751735216225504118861423508379027961708247167057964274849664757731628947349453239966281563550345577072009066958328149994771024480190337949688158418043215696456306112596935685966347154649875683407455989585704907385052908187735813348066321793455490511444020171500662086936266997630875725769797288763234616581112843823603162746227091202290948360109016568720645654364227599480460051931196807361492698290470653872646361511486187111589046782730213109314055826106326219839044563671106128124862540365238930491454519401820572021083133313091397927769869096620120668862209101444533677762767478070558733574379264633428888234650113393358203629767054820180695055842222878224565163579025235534356361786969436417223972653324757966909019537124330477931087295751245670978160588527672124538211187063799320970081659460085942967372081276575040938783481868671418325858054734269846798786169868193787771952100526664155101816451363439537387153526093135894351144046924288334618283908365722648687830711906722085077967307415571118014826051569603513035424888867059901289654906910510828656057877858869257874893654095444504279964858348931749951566550107559931611988085190314949114123970660002888562589041815967588604752687336451035525621960356257452745810565012776188243457598487375525907222056967679463927168539520131230823464364232204351310509083619056882850909986474033724151002804943843894789305273125143833603081636890550851029511966582170024128614717588819689164768110581073119243635195888870817540032168428975484289470408502432486819522541853470468899743729388175581740309748674171960829972941768262666984803005194034236851860498275072062084941066708051359952883109170509869885207494100770525307441990967256365956995976240271960261474521752445476185966803684760170029320618221606457367448841015588675202365190257966497717180687078007379559970369816117723399986153445249337435339434005510044315642420431556427727648119858382148750500824105805829571010040355623363184692404874470566992750302622556592568523550205008465392512260625751023981716452053777465903981700113022328980016394225096048561772112800218641205227145238710024221316565004405121715053067964982314462746784151250043981056912382848800459390887570310190856529854940166670457791435338166396221170334726936213409541048479360788029042303819719983027686987124681059389908855516450425460451994057334204949682944966265229655194747717386397149792653020111401545079343656248053338875277135303981222661466464024991973236034326785128391260343534081266709633802432317754827116560493969701971721619466417988771933054055373268960290642312571883325926290725592489924129204010763212312925687213496701159437191507970321665914558082120400538706571738612887432859525764474482171697990679522689999488649140850014991836045072870995789640118423493819093295358267624689353971604564286738092972810793079770099113273818520195122948230022220006383957383406981138308002342925802118290176767064615957608768717253812310267471738386379260502390126462900607118123649814329513214181126706245570145281670073567849910383430356342315874024925337085537272590482947343295916253291776435467813823776570858178162767237580575384441954945158271290140890221536260035473327345909189672131203783584023401320257425965257915265169114913797993270672825859431768193961189850980629023536511361046673670727185887506580555447556081307416462393177911651079839278713231776635030316186710342261163722466477813770343313862994697466492462122460345948354913665477302996627023208883647829606930035547470023462352409319729985027678863425492867420759138334471352974860314001646480918465635263801068885961188280060399263988267126139474243827955078730681899192284155800567364397681220232213837670183670331058764767436598166259956024367333156519982420659885301846855540750846181998520792443258874156346197447716464193553135146902960121251489092775697027170307299903254210741922019904750037760695273376843418493014193154831204395765893454880180862092498762247831535471558304302740498261523817488558110726698300842373766853616657270265586448031471821497334178132498548528284237451727354134304092990527176872993450922952002923912016200954714777091675704516412324126023723534869861502472351955323161329665123921131300391681022111832219130408002160699356617174983339989343264678295238665102187206542602958981896615161682571585796412164088536958438593631722808038759570789450273574817351711565764785097675220764505798850096569034519397782166470609373913014849590968130740948589717813112834742076852121132624797459032886632199448791418901626639694366059783907369064689037412709678836373049971148667952663785766698463403794884691555066651560978380540096164723702783141878402706079544499473794123489441134096311427823177183516156902914895408713433144923418963103315047495768518941225741501717455790356051736564791453140051931537241000540811077870054006866502221204253936691572682985685347380061874953798092574066230354284500645455132200092848147445123140468595582261342751502624547286424344209538744360780695166730454026221151190371343621582750598616597874771463360644912285028491968839489749748141526816178700414953373100959860623759568244531586081352171934235093172822538407050451018723197832047930898316305220865858797781268861502852122219622382503279830135468055328736713208337071722765848167897208978115819846153288234012094718485212582469846613498423002818557289096352171003964860169326106982529980016421940530973163910796603957284522227576635037750760462808578986886137640286637375245598469410618129779969274930906386118288521793193032942381736174571001701400485928738358495526447277340971341838050836412249903725454215914972662641824777936015079467342345480668288199965121808427745272029053748561015871589640730927461500870054058093068056968499417190224496103799524990227690408087743844061986529450832722424534266041762774116333957006792751272462332202003603222531097500777434600787123394298306185304181053634661866625373354120166229604341019860474995525775621716175431561459807945846870177509505880891833760528969448534297968897569616264400376272190587339426436014561287170885714155757335556118638595626889078292671097298058084462789252088260647507193301415281593175855449962722021982135928938936421204699341022175329846566304116466616702272261935108344141045718384004183079592870673557758098823628741780186325220660676486725713697718891666477312156686232805722556826096060068622562076741668700204012490609062844573208256366856760139209138208059791539898966033275445386855412353861235160463037582397754849709955050589199179489194649883701201009463475624368616064191436672326624826924783900643260415649983308225769843989330569319176120876525654057332266538035640691309312615065753581259168074364704101443100712289604364671395706517255028959923671901762728416458992245388111729790862516943275263266651778417786052449753153475388224301820254272915856265094180733936520157458178301217854204754409297412605172139707490814353478858752219038216999028045275751212791201532204269285381042885299536721380944145934713906500892433947478771751123724048787277479613342671688716714777468833244358248437164766544129673691185863877256950971608854428411596282626875001724579331522012266560432223413651531506912109710932562398868418112273775637162871989237925179478762689077010056137446437566544690939863693180675058130874784226639160189168713999317715923659757862713961829470378946219957970025217551272386651264997487648470328522682475284906353703749473882704467690432995518842040765978545593739856278801393241884878291112064458681681810360912052008244257033426370395114589649931454487363917707218619705765191151359428585590703224188619844560391254030948391108235743044277737563008665157201067702743438790910564120131590205242973142520633031136551319799961411189989398940790346078315679269672240928668273698542580869609856933003153115546828142966407296724837419178631146888384393906602222404522405350656025762164209592881702941861606887123127196043399558163588310886031998493583913943626699485709401477474591883812428274402789742139478100004709606547309610166113029341910506677183986927515175098950106460223826051507903220655189812311955347107932942605834251225490233237992327538341205322070348953772839089185385786725146148106579331232771051935945862264868798967647657429817329978684939247868433358262091044249360718291567704555192651308562485872387835678930265728310220824298246776824719380089852843597863052225582865571472432122167313193944205941323423209601839937899657636195698448592797149459117525029259056096699401193851919016235651139458683824169616706598006113336763042841851860315695344903234870929555662142487161818214820233673921152822460477879084595408474254275026487033268360315876409857393441120104429560680785947671998843072353848436982605545745675268720149949708493096061609059530164328179075995796123244323276271352781837756437679990578370509913775220481980122003349329361590204054400544755398884495600998162132659623562899199162300333233372083231071890459264793331775493144183375716336543605701512316434945366270415821254730714139711543386219000936012382147178080204917141545185183785952531987181423807032756619604943509886510476412050666526451872588085852907698359504739108134731789690353430876572109027375535530029815391974573846295794598314703784404667427959348614556257348126764925996452714404829410220196491368759344213072470220468377238592952530304941500363017661698181196108807515036650482116791167314416160362564206567216432050880507869262254398496988237035823330016034924382702996309099373663707939935244298431844538480583734820418191828704979605731103412833110087650711999356212418700253116397023968183829284994840466082000332190716287934755754636238090602463490516563279885788945919610400641218930489175921759186705767786677130429577007029928411234216139926058337496638924858091965273865116916494708818307103306085250459017554652148245102547449463624897293250038162529625228092736606682256029197261058875529761744115885288750221423145895082201595282864133806188402007289744990946499375277621250229270576695750698330736270553771199800288130917999585743676801832695019400920676241905541349103460666703247926018330068401492652833223609876512977925739743190117748709905993792134409375154141935364353394991161308566221749395784550189607938741113493933052993432064271339931183934439718373655216339487445804075727240159273910637836597873154413822130997594198876687057239352953934743530107862570133374983616444015700155943074007232815916410038465723619648653742986171385958465940100625030636346817618992879791151029940077547252534577535000461824674136091223610932998247515295104243287872449911022315755274609454573277580699580346929896583884172002915898989116055752040223914453167095898851944674755308294041282001148032921314372313827145929255200170678647003491179647910910437067897348265891454126300622599606229007559298445646004724783965374554974911106692995116903846512695779865794757625554767271689171959109844904557673839899415858194931870914043319224601916871544346434926850651353574696946044110439273139218698431500451576099658501292525262063979806850794049240719807917599819238081690680568266916745116202915947135418715259598285113897817254180666235855008527199532034365358495953133981427897322492360263117639102405975658160690994872308882574039830576733337265329910139091068501338451598263600695254983519015934515257969877921183831462505097917259679391582350285916026666510094559955733133343364331444073444511746418575469525061994548756248665520413519556108573665138089111710553041908093089594071548230262068347413925576567166372510762042821327041212719027603642131069318953730115757982942138056234944267465258422556860343559643593315777632530272854438421582577685861298339755640806787566271939357979953654899376120364127982937117720660597279145797608524240985957062853389797542548909641289080846564408681022437174200654031907922721465348920406937122178575108409003640169650219541630753946185116970470914276762061053989037219029190677872659449324083346039792915899371971198675822777964975913192570591322471189360169489717690884866827321662471692482870116287748612754730721110669314398367400469191837306362996164738518817423620870655689564990298585293169790315436323253302092741031832617965832032822109291199496961383049177868163922199127728964968706283508117908808409566408584907566829129606662733527725272590799465325067549117721045685568424319214519006966529387592838825665096793379725157975660154769818842292135428756897017556693392525235001997143333458253403031586671769645518888402345286111356163240010335083868132164916721938926554533199439038117210020912567358527545258113290545199986756448209288285654351803660896932478296741341347969145254667301431345968167242227212317791459763553665424131948617371218260345826278601278149383759773050702518022422667805635055376302247070190589032340565361675708604665084959660862115461037372581313678817648232678141778826338314343603998741177280529300469438934388278654241976438193180270244345397164588706327087284100869911449040518440129539815494766102934928825840459101026957272618223284940879192254629674005575359917058371570822739574997461116715822627299595496260052163654488083354840829306647708301183180124755463607381602729413185372798187880550818386803596973672026847218582827170042073043255702608618583445569318020559801399180513271137164963194165716404659519087051438106912058479452223918664861946194770292587242031194685294294243411744807341134121014632584177631583053917742887113538824858948973696255720480819972651550884213944218019282749544465748269323415117372810339365621057537408848708797947300515093660376037945626010050709133333543965347271735647098310160778816589005445181727430106443035031373370834991375779517045737892769072644947545762036897306180870695474343261331669892167013086266230459038950184185203992008614071689271921067646813722853603544101461779987359474009845348439568444547989641668641853043811153584030920565018587188888194557362357893948052186832705657284103923314833710001896184474933587608860507249603720648889884878827553309031330751009973730445190611429203150304115840726142588916925279599975376505181785626100804521605540371261952030211227779689468593702849219182667492960519572973794376228007075382609126094672503058531873400022863932333644842009512670837498189413169671013484264040624695344603497047878005827828760277755041311387421291325046047274844511755627481532692007026371892681627246153618689177905654376017237958823132790699136138473084797038187207000434734013434540869351964363276427422907908051196873100060877558325195015336354718684489489433400073878154578315615937544868399407152227777260217645875179685949937335448359478367473041031258447618201234031227945020681695466496301390861303031940571045359276535625835309775823722897987848369509868134229561756872262838806026743167105933964889585570711717283901189064842652251049052528535671636279927965784010570261603676612761616803402250261505352319649127965125017101086606909358401656598469883963810202243072840567762718604998691208496974331297423189680177425048690495802341471924755345561922132900735141741886562435531686708680633703154847731720003835802459237481236685817708331944936128522679501678634554828149408513659455245033517836262539550032347896973230857008891789757686972363143714784370048359602496245237481212489310395838716842554189111039823825824098415287647304666892204565108301517407024864224892874935258793636782390660947508436476529085729983295732376982814572003397444504811625027341276055831862709780039271759508860724627433458793481030645287414267329325711376497329135384459898424427538919754187914800013751864355258962283651324699156137335434884926400878747428087243329198231144467206306637413337335231426646367492324504138843691739362827887655669035342807462080992098428620263422574400000646193162960664032743110638776358577464782284748989257742899856872069254557598999670176392725784598316674045336768963568971517655053611427720106165225963534389319300605993476723133927970482635489675364034537204516403858017197588978473312114188873223803880537407562709655783756715009491088233471117915999219065020001853232514981955161911180090514685441184509582144112305522635321203074712986992536948990959342405154817394247448769919919451135588178158512993576002699795496634813934365002219703886003103347547273193575768789325659177859273698018134358862460954544589229482245286966673614312057964391410501415400840588264697337783452047420293201218104591002447891165363396537482019754862951917133543051780951810827619311122897662832015617147793156055353163399231503802302481087118277129829906995859546982087526217389492012362466355249868880678939475423665633596940354586353556493781758546391985402227172969634961871723263591189084402956436411603767185328589294168059259906138673659643902789693195998902318846692651280607165073063210267926788782381957730276176752389641245730291388293293081481360551046701798129823256738027437778489762580016684969562545851482341365412156434185884866395881917645647864624366602241887462432242797316647324025462635110757842462903122618533186361835077467819733680321345640829086300020083664071586241144698364447196760258472870090839111234719199729243085830658518388523830382319668931709605621407121565206119093336949970291406640144261013573287554507114704405255812771047179950857657420816534164499274732410346346124535751110686255633368616342687995173961860586417314574190141248865902210109539938219778792637094529172784699071728105535769724410706173929177412888894634552495113059832367374656551288702516075382723632509517038495439943467618705046263684179208117356820461304378580328259478361107140932273084206977150294020118585681642078844642495416974751012690585348817450718457773571789546334770378850879254405367719326157792448497496891577029101658657000992287709584909520031418353955151936485704694552094858448819586539737670898965406911452693174172307855876521606246275172800811082614422858048415156284273036520619125012323646343596021204706791482502955694474882024099110167662474937072787136447112453711313360881321922830544116027100958972181168545588855437327049643917518272907824926030922548218201042681147746914279052237208363834787049136808687482684691165157169412440962172367118168467602236741478923427770394521409682315267895313652302156195356339579973398279376816017815058660850979330922429052112071437776079502939546874051814404853839358447884065505001516530299932787365844359873788661886794471424387821334736888498465789173135885076102234430248742284472074784538079232468426957905369119109571601475133242709295215145361014558799206018948012018321036682865907110960102323548193312418773260573345079831416421800259077284332450152287921767950778143785006417335089543284839616369381737511582936320427092065258990058270969953710576694371500151479567225846741088257966429044785566286478410382545879457954190185249128219326633085279516273297637365568358528926334565183661108000609081286578779770253876897611250849222401043396807297842079574567811735260772111251744120043169848596494869447752427603374948455920195297203750853739358606208246779216658054391814232110143500217235986165385313562029108887099034073372530725370147599173214011602835147078910577288440594911454243728377305571119052125199387701224260221068932146026978535280830641400572437466653924871182871822669910572894188158262611265336674316220498763751463285334437029431171494973344990265032380279490311103792304975062275998250024418766324189795808215939402122459642644969652368483463810112188338309017606343227232766458812205520916130343910938853864539234804328189711981072277831042469298370408343841765125041158845794035308599543346345217754722267537883530476589975535713927627037661619515518355878070456338604031135412848810305130164199835483370397087583321264580205311188664226040704784442215581084366549889660583796020965357089136152472500465322960780007036208955011709194823842006812616296651154099398374439319516418684723146860824538514055830597410818946555532042659067430246110641656403526108902242909060953701415135001521913968947246206954672428941452364281819889372070603251864645213724374762242858713703421887028405363559654008768735309199117315884535606447384524325319603725444692349289294691279131044543243867531634351674505850287259198068778726967063977833015472927467705337186438666448479046487539510798198678014953448759300015045589097334403724314362455841015402751003688766792770826931712863342352324142899226187499402541342685975775383631346263828971239271074681757506452205747648202607586838733503098858271019404638703925481804292124624288952849135154883617201410559549749392477379779266138387092874526263646621625703673657236081787975524253104835797345921428285002399348095799053648037650810932864332694003432206510849194415645510426481655067356689131580314077854329223641429016025597805987439408557025777260981928876525488015646306251065927426197194826925853223227296509775371638463399870563564319029967983481424110608514519966776725516752190707833585843394156789941398200390418827696754330950880668578964047817642799030769112359066712854231210550061641639723785999766882551187937021209187517368417033198395627433659382594450396748385075860062450018467489158290446203959903619858183205392635126758811282259984106605896355950140554974416926737437118212899001563881887264923006130408101227235901355443335775274561769340513122981026311197527718751501564238899556551788324766225330267234279276099495393608162363805529841199613708242993867016784597810256920939355168047010639241353762805918312274154410259964154257730411977859929336674480457889170396176224073407351719575424490465326017624871770321753416144321788922120554686076769847359522942394421401306425120291508453298356050474355148340270584361545721338093798041542097577804814548989938228238455116177961343941729135820855680236182458135596266169548421738019916623869198666796997416947447753686691214620030885079151655807803324345267800958941714920153845577998034160093467076577658673965018262010887989654831903441062333752392225904304709598788485495246678445558155675320325513493472739490906475214522361842730873355864109474279901555785066000684251078519784277005727508750008234443615528574312329498163997500396652898190375983818276791252966549892547148288711999684591330772247437403833830859418584678218392966960073299915417389117576411967364102948676135167539491570511869429181782130963053355867440745378354821479356562756949676051677809873554676618357010558474398611441370697051038761546975963791926907088823003114687199664252091735033444092620330183839276096492298225483705370054167414073650256234452277162565225150894989059297849315236573973707579819307527809913936002733485329421578821568654517242503570583443940776811297519566768866424752307952854877243214835546633738656321653462453020193208585103157204223453222494262566809796019366341338359668521204965121967264205954807699189478192663781507057093652642056964967853609099610887606298704747578152433775675073252534633018968785372274316483454423373261130197839145670763638258827012041305321482449366003783544230460375761165907697420838987743316956030963481622181343508369336250661654661152423995554008372420538283081108383842158845718515682068581783894415842113493163161647510639302341579668488489160318039872503198004935390175248437978015817461337787460689111167521232181205755637943842681404998803523736967091752727960994731115750690876863828835681307833809582576068879448291896367035916200511220061514145338067210120290582125317092603665334036513540466123605862497034513338747006069365053836373489513731480715224626565580547403792913513302935152501312731434459814972323595903764669014894290921165586420819345390521224245896638854983646078581804124709544952040581143806488875453251922502313937521518318932622287592040272206317193180216093773148461973014325293588382514640843748812562595253675998444209432413328222157079040820235399033517242923490570725580591246820504017516492774075377679352064791208193873589145064918348552310185496174666658817199766294894047199051367953334915577545602549721728288779425777431956076280212357951121056663790573489289023517496529482075745405094763356818649824277222870396966742423217181671650993420906122892629677787827127994914800543613513249190548184449641361533818962465308268096810424914795245808674787289277573819155671299864830343676042443304419930095679392361771492402715285365989018260912016698412319969006088104273024717763640436304040930709175573339010502324286359271639491853399418684660114852097007804282913441379418467623167696295275230556275156026525924170251825081732430060563031022234739943032817474600784152154248866682865187211792656511646588821380033230004598091186952326408767201040463053625588852467182137909779358884060288216905534106719847776836704462061606051882937948379613055671859318178836204758857856724062271996853860899373344446766793712140475838527392543630091112392650224286186782281189861155584040153691418706891205234962907428178101284794127864443006207989616136460616088218088109368292932494241444362057647888009549364769935888783655775841661648592906818634081662515534500701164908786322358241447546801466956012670388956386301372956841144069164258317823510668657454808032670078741670826071051544938096056427780408520524276905409137152477021425432086390734729170519554990086371472908080642461756862218997275828729066226387366731243299158582928455377270553585350880773295409748486785571030178551416019744014617805324569470235703224776374712985105564654783325617277875332552307743418635104054983635320125997262909514488640873907985378462796344977286786676260174430829720915244078505325257214789063245475272418512296787882346091277485455478380776302012945623927801340799626889182818174888387476252506327095139717615665010012467342483169095243655844737989028870136541017117279460261561428822116866856628358932702635350187802039014579193073731622462231203365626805199522238545754551279114605616461677505490693500115441492899945875770773724436414204591852158701315535483807864850780768209232532252450203872363516570140967601196957101982739817070116043265016083123239716224188794014320759966099046315241760825259262361306546837382273375145695728614396348961879729110467194662114159857005000177253835843370412332182018564688808756079012101825121113567138737958598702530190965985885375733389225990481703117434169935683574288047046051321261473665190111183924914895403136637956149485173886472386287099746763513906480103625615445415174535134750751202004907003452958759003638794627559375312660232827746475604981065403913016232085949885121874860951312651719089399637959176738243982736191663559207786861926540039436934453862820110780302183481198822129218589407221622064049049181090862001777993484871568076563625232194886905239293841407590394750687737753559645563913685977398980956096225635873945821345084800602758808583055017539808667647779195309425172149032547365059849105093345748914148901037062788667661129032423482891717939711835296962606945531375107857186699187642714414739147080292103403780067934200555728730738046168278085286045802571440042743657617803380110794483303928328907834692935302563511995789717933523919464711900061902429118185793333660588985340051517284057065429302805963314678088569321616679998247587482834966939799617892523814797647831695456959758551001324950665508715200089102666012890489002542893095909421573857118351117380728125272784954025197118126667863204625982310056586930106279647434382635111838943864242288629147782817717090873071888453062577371924510205140745193561755096305554150786496253577846768561971481664269396932404168169927424115378922845735752325780739938205306590288060122800981464538488335377276005441815608748637825421516191992993995576844444921676052495038591793577102038784280730367752811799469818428814750298434148027822776384939819282271135440007769678301478793204277472332572543262827008332151099888929099909399152801173656212656791303646094388261744045103987832859752838950205218764382343998613931109085250654265631273535216976288185371559354740233125883378355793294436306555157930810315865715101367661779709002024449039618350289780143616272633162673335435012952538121382254432465863954293138192234022599595618806920101193167345218246992989754198290637626376074749069908055724680966887433456646912139153196974516170746908926368191902662416665934784655165804017777671552864714635600873037499001188491794643897719914626963202487939488532408338104949782856153407571229794177628639413034149161751790327564265951837347947211284607405216101812884621563646859526202262127444553307754373725756701937017578581754559078212031568874010633014425321894280991720703085729266832710857655240991403047339616612302706476257463028241555016356124292479013707875138241510920050214561988110084276368712012681390190073716441886042304393370333275210791952208177930223192672551747525854812286610995773954656034526629093766669732328376266577775319537443230671708066686290439390453604008599527289144879405967300901058095322038503501237820117336381953527948799166456003324762668882646967286894801790955261249067698947019649908791844494902647774871000904003160226027479880845362629219359196216760747503011895467856497356959638040772472723975430579325959886936655668595443245756700776588853969945917737458723926121355118436264591823217748268409992340774197604068849153137675624876661928595231844185862411150169079452333010769502269246612248403185682957441620877695061142562513127157311422027131018581457472910458739470311691423138685528610743582172329807201402958431952578996069326314132302357976409058784918850542617108355289641498763723072751922605296728947693819966627478504836016487890141801769611917678257161177161531992104480040722868518091264758783526767613787835776806833880841471979205647269290748816861021281162203321176031286956479829887826731506255752812873905676198099905943686814886289842452260799364189612942665738354440336249853894185987391987661703384309358738481514898169745446911484254116692560698192855602886101173564709863396095633424173432495001869528450768347560089314234205901952792213971082065476737532486993723509180726549980652414995620714978458935489683464324304792881880545573135716956275831654971741013840227425959891240479305375461909359287894455881984806688987604133461486379802983157106167207754440464396699871272932885339045686011680588946719486341831546303176112151556566021516863326155016844263563789753058294371556040678066784363601882982009452274756553168231251793573422876439106980820118553163048515652806210910367739994185003651610488847025631847013127337673129182119933121672306692449475259949353390809805879730635009579612970900199585722424155208634696122990422009237616112016437585664089920477360102931665836092344374964255161463667691240028725227422464946532284689045150035139138284939211995430998413589299629499972967609373785510564432441915633165539014415505222519589655154240899459396748849556232075960409750002883291799661556291708639740115294391930909794180048930866082221364209139772371417885415692571071035950353623646843451836868468547614263659075894970929681901003484901117540138802328070659053485566457788582975722332008905148640576323438114673795504059080669639594132775811328713475693908306625357300245372203017892006438307969652725245363932112178863795359945736587361559200649982211478474534348927245370470888076462636679665628541931251224992407688395803648516603617910105860618964872246498432569708754474671131567749549404711807138431887846951283013563955564733518096376781501954925721586276420476527761227686049942664991728820088157109646683720313499506435783402947015496502956281837359005677993182427294069594517919668804336065321273705258888022999601025550414650338099141552008337653417128317595601956463877196102997141606973701867066671170162282788942147440493972050875697726182054905862558599721602698844197518271511194591859902965287216530693684622803820425588205796116781742903294083119057760453101672285485448350448048347305995984251518521407657988955124430336942172822609468764062225520161454883840537649207984490862982773168253669301253173029772849616211182897563430700694628955235084254059598872994287511669596672598584107168666697589211323059723592783245703571102912662212610406469490356004700156566627127983659734644206400875281494515679675611265093303031135340776729998603942936456207585891654277562015587746271628424484181425453817100089511240966686711951230771192836411852954507833628379148654676950037607198144055918450891697010961616158636455820500252419476109564747303271237241329474354985675396114642052449279873789461765607242632094250125294859831296595228034879904313826028020415707101394265816480430646006087978549371164544314644397871131104795936849124030147140726242305671190763094766719355493052027770084807094495944739283653457500069277584987549650654660928162616929723438779211124533983128874615971398079583376663314384033487880262742647260279187412528297350858094014901453927104364980670074366789421718451194249025924105932027478162608933339861187231632115052700796350826908357719111334009690256497095400436671140228942483826375519492017603378591454302123935819023886058832423310449022957127077022623939325914768702122251167181901895866224931416772505797451168436781343594762347557863038759588522749271670936547872685602878286559189935141850716405968519528202693393679778144657787884637988310618786714892836268701014843159494387003644351906577470929214908422108296504135480225366726718636562093983914959758794418983281930911899729689510833978549404322097597680300698249870549307491262726057586313308735966514840856223919844501318755259836829454263012053451928436978966550212346356308285245193584188448269709770816954133471184724235754482741098574225353094286135076713376025176814690577740033094633246692880302325057962497058293888705769743864485969679753818220273922502449287858640499285338728535927782318697113762826776399834439334823122567219620054583642225531468874010276852158074417123452305973095033914940422478371163193175541464263684733410286933905742072049175502233537032472976529917077914958793190604134419841918816615605981608755551922503655376046284548275814056060656721029182355553181329556818873426252677018388155566126395496494646273308924308698134408123178864394300615579793719706915149332914846188104929282815289675944437325751672749682495191176369332590712575391382768375960316854844784330860240371509958307787930930629395671686622581194672363668479392884303760701684746504106127202011251170990337257665667742545506325491506817285428593385231525019289654262534614616057740207824717484630202871009642267145320828014632227343339059244697570154765765583806281818666993354031974838638133003243715933772405919570942606951295070402507481530249377710944411316901511822099203459948195026242329139365281067251118685282164359616752440807205280333499757334449462643696371378216341110810589676738581595646308345333365457821629885858999236510776851696922480020493477790736418254511572516371443600271506032903174905171473634758052040418815432087421557732155238615814858651127921724908408252698239235370586889985671535491564153620150584383485421142819234101548693455431801682582393152593282878587093446062815720834005038747459749009762242448145758937629487721990396754183212514668194509708763234440945233513311024331429761034897167456850631262261011219924520779559819640120419954843109244507924429307487870343106458890429028949978836875371003712905294098040770078593854321515439891242671174825318961301760896776508063644714835336201744566429068060064190786482715716169238468577099124105120788677916379018045956344957657338465357384441905300755030179702653211673682409848506491596217201238525052115327018465272007413081778193930729497212195793218046779096869020190228925411332641653575699917881138558624566788453720051084510949146972049907994897166258040514305266598354379325822370470022431844362318734256064024475572272112522914486201162540600996382922778166444034283677752011668669904288891208211506748822697294541967165058224762624839054002951213447454463057712202413873768273211658948136499509454540111356398758004543560572548691288887551851637632604158880683563557796721110570785263000127607290965415211350315723466053817694159004547672543552157868105074843017392747979801038596027820707244070484866262564834230925440845080303491846344046300604853335427301301655750493870634984554200848732120939701755049085215349779145316884877384858854357713132601900740682272597061742616555784038226533067675337073521240766396697285222088074127447245566771330501521995593680331295483400038581980033261797316983248221650671290860935644179111421996084627530749477634132105732377002472879586927518002918286150427625912652022622617891890449707997728877642883271334014391760514885094755270513695417271474068819431256937281805435798628155391720589587253911043607252281058433830872008204088009988485564880257464101223263928847035906053936009962017945478587490179966790871623221015752330011087098097787388683215434992274421034322388548062000654407953783647714648867881574655593562125644641619915106481477312143489257732146752187807211298434061711553895925478260153005818478568856700695215029891775094524136642978701918964493599039563565543026580436862453887781774883936992872865282421603596116839697814226380332207748779375290959685806485015848366119392442037498513284492969122164534993625171775805594173843766440423583003574158901764754989161527771434520626879358531188969990649812498509549177364659721556772211085758846116565563270275070724717013264630571346612056637549545956188753663153920268803672488506057947225683119846548003973890214758328541136594228358643389899720192371922389414189529318111624360335864495555639703497305727535637206419543209786826557051962724769691460286330170844830577474560861657697179231522036201549447416016222368883997825553235619575454386236735236637506930678565038858102569333052002521659909596310747687273713652796655163863613265408764977050210058538552132732409361295650213013011254418344339364340986469939699558534989968235947286293581670914867504302601782953884300905695049705135523588775589395766219144194375925897728857218338709217558081637282437018968775384185625808296286119435126819555135988757567944364012281438291989960349400213312968247360282886431655573593216919980477214816065684991926753025331812223144502667534257212214646061540421543456494694691013036580518194233399656721431965820174715854053413516808605712828100337036202037265857773580370786234928621394605133772774752183669152995516087385249656475576067136429529905033787133663131385579377887521722283144643314965442705905893271737995568918312271704157865901358454114224605469072124890912326316030631166208267740457230846915253299411592554151106475583619204273123948280598100377340477273836640748779892771875658263829013336190023148449281390432324349240781148098483809052660465202306960324249003199200950444394950788980823535706426848103298841447802524351667526800287363031522316082635438208909002143471666006837256638773904264073853468084229715843116969965703855647652520943941616623902486641498873643061022450217264951791621061291636695066846509163276392884050756061992419490884941055460461629893455241635349361109028174581610532252378764412217485171344605572035034347234060248162281937848852060956775602656276691787056964286187043889877493084110121928694335880516773055723811785737058964564580115672605547871443493989546134053868871676666438909077545248737834474030805415629449778174543245666068034143548529786704062761601248597981700080983841223835910687917979804948935397900209255711435054228363374263202599193326217957974672726401064989606225204774873443080406130119246436953637779781608111591840671662819316904392608539879053098030608439075557954950895145215790159993484437104159333394171782865453027585818341429209416352419901456327959510450441221376351469859211017048971259151833309529063522816725647952722011164302770105458515236521481455377385621291451430882386539777606080644440517260739595685785985405664592669243559574141898870191343469819950933440045968728950035741773835015046578595972661594423176626433345814798122045110677566620623739687426034817127792858126242726526019442387171590316609500516407346574729273883397927370066351093408677480307870641279967227880216740968829868938512537667232466000192574662525126965069253820879607825893615433818688189155953799091324675581953257816423245228885208299533252093418685307255291967971802519865570576491820632156723408972530096445174591156859149726842440418377304875732972155496149870758975290769705274552188309419298621318039376074258860575366727530683998172162581608371439312534083866871551654871456790290109817797772095515081777177210900915953813641495303354127136283992043151405186218961186225522664792766407864525419884802698255800573499974148994563490459396489092617757233467239067354421911707374421345365551061750117360975170321451303028054002521827318597650621049796639357435845218310066227333147498516188156010641920778900180291891275043453691277655565629965213817672257426860957231406633009947782304257163027659595191424773636609128785232488460148275886464591365063310420198432805360635280845804950492181420534994093454706640872560448471020583483556864347636765117468261567868896633652228354310176248942709341184050792257348073664075448394103495423262916633925869783913023951493784349547982457291501343198938675702331110476798447496537766263514416353037770741496606629672163127112071949527483150121565618786694654444671735168721322568201048475502772981880979384308606354087456999191396488053309545799546168697509827480981838131305394362393950435637899825474963403722656686922763045743860792991204100216248580512628971911520691389065308714779433661949546925234180369268647614160800199489214566683264502411323394977321384844921900218182124358627217782896913483813753845584363305514152168408314398964631306227718524276531206571762306194671116294047874643932875713238250726043490286081397706291107216777727391500718641569373277603978382236699248690640586228188516078501468052343260418995537619775668334903004641135078156443552456525036788828017722804252085336317624386946364676118647133007971752415020350004744082955086431150100705848801703607916628010937766294699537899390023290980337602877299689980736524339217326341021409196121647103258718080031110088569945335768605619600189904909569368635842712156753325992969070244715984940582745425242664310119665329676419831360611801231600995911621671128989723825155010764588584877161062813091778340588751354474468411564841948089500766886885771180642226654673326274562625439668451890593963005144916420603042610345610193565226995555126680203949612811150742657889708280352978377015914175157924089477616440756379585660753009134950909773493456323690962752189772695023157732420412393429289773207703929148287526494617997323872488579244965739543003390837045634799083203525006619740590055235610894697157520636810620967639513237257433838205287761562793043600974480007403959316697836047854437462501258421782160029954980262722390781196798566640061660342650469462455290214751777234591098123405365345436722887257013801218451757130363934981000439683703798156670316603305955341163336811619418730548729188972865382311197694242465132535859423445085417262524690409946117307477404514030411050128752646383566626252602692284911528442287961765477609987024564669777511257461922001972662775568975642050223590727014181073233207773760049278071061777887409515746546650763895067877375462369147469777753651863491811764418002290670946563310723051035211934373343043478320985945965521133092924573672699196359385859842950926846390711563311984516244178912637861427193652481265956905908152441425290197450194394050108188265364708055831305792158338686337736907955793051410531331891156167852730869599550389883703360410360472072600404098887467369055001467444996072890105220336790101891504513993603324606998115906949309614621906177042231361035105294587907371539179756670489952751956395717967672792739854781277678451302259912458069725408916114671950309736832709128085550840809852190908943336623139324045735775664222284486066530171791706162960986254335619077871531708647182581380829455811069105830436854752652164145007619420615540513640675580468801730367715670221035370170932544967822111862586179052551728604405547808379270885068786902135336107917915473645026329980599584045890170846885821571480782582064504490233019780208961840502221627905721629724070056862899236400905591868672204636416702214600397647617340128620223036865439402189555160794492900297671613760833711327161902770104082364377947193309351330717844168793824734657736300502455150818477952982480636065436953782124165681208514105715595341177548057291323733319592825040987839640747788978350882188222828297542918551422851681444969238514097461028672156279461755331588041247380342459471723225819201364148160767634068159809422584075626102721331343472717692206633424616125033110485728836598077442459059017346959573614357136172198663012338522174996987554851865787510604928176329831567684130932780937577667221087115741790439740625019473824697193395722341425236652886431018276565334672338712472807024838836844501843432234432189709955701069475948974408379661627495582064298699074039822678745751689559917250244499183994005331900819999872561157333026097250416261785933009555883559481202881065325877306275842105804176439802440335381549010097970922956543136651489986209225198156472842909452720068431982533300571280849286052538355617566905921497785917917774185540815908881337962235411447981546960982226453087840970257616619295139120306002765002038486855257298949145102392869549033125695923391459551213165121430268850130866117370105132830627719480857667727321786621293496988869426730373483011577339025472761285496259180327779397186120092219696148849454555492833865958815825208920743101238208821109593578272142855163436997370942096994857603883484663326168067629040380551364732884065409052597576725339816269364113651710800621474650423470448315116237980788844601546507227971541768606960373633075616826303128852242342489319885842929292442978201732566027678821702532353282662593893150660660944529498207749386064239383744708232472206561006195529672345546356076885131179947744899628211245962058151463584929571754760465782829788632380015428896839608345855894960609116128576823673369389177901568390672982445800902631921054733663940443079606353466368564814404266719979393307108203303611448864486166603286477456719435214273323230100115752806126856780605414710268783207268309420880957117846249184275075175287437616217676281374234998466421072088831621524114950517938250386735542647141282024229272201683829093994292589897070865525798948641277782609007938520678461184004791137550850254954778727890337085037500990086489203601583342970862269439244671844770644046837495745595662492145880528703526771790406126596473492579293634644805667948493157802465273585098139876238384597758021776421164639235919445665991015139571974071494628422120595023842111028267132074987678455981670553412419521016665814961756336483239976395941954548144115068538118788915089547525327478951404213278901562466182252620437191919593861862390539971633291639297308296221152393261067624484819954814234379194581975605436844478619556973094889415571123570790129902182284280204032918809959502253758123203953982898344024463260685932324615954978197818553493441404061065520079204115423781234477881536266285814376357426980304825213880099092763073368342121138197745739397407562294309412078039938202147563295110371217155032379388248682506804954110967023862704130985833940186477723675086760229299466121394981700979581652526643696358099343860165489593905584688245699338948085318435409395361399986444923153182292922726512818852768370686912096988084688142925170676553550339644389390216957348953237624806175180221773437125986980604929981368667677431773435289653816007098582342750839015213944957134096364407834706342402980052817922083217734430145345650234982814078693538227085110200190394020761077701519077323202335593100860484876279573484856926719046827058860132651054570504379001252743161826604844524729633557855045979781575858465257498305041159499242989552593045615041450514348347934075402449312322856956674107288236724595674031631080914721990736038091973554881485237176215219986469864083342777244094291626001857455399802909916753198242896053254898648948638256854856656570688304042476173269617383182060080880543335247564747830455146327019494919187388752195023263986815395352734089410465108667069173545290554064481539283656271404304071140454738469806749255820654083479196097383799418756626098935384463658810146892062084031557886145079597998286936485830633172502414322596137517950930623683667325706640897456541687684212976255367924791037127821150320594758136890895970259335015810847779138699936254136580857154281297231771297751255311935742265920480542465564502524504792211464743734724818708461354862124216957605183136554732287463778260707300699247756282976644365003446368790014016925064800453358552641415379212518063186265758764866864859771039127297435842213219227004850129198499327923196653644823773917885364780829963028688278129268568216507104288657611071602543302873610254641943194963910424513161318432662804971334276715499835545484096027200198231335508804606039132248951825062397628118337288339789499755878271718882392662514774659496268174735572827990268635788456082428621186430409656653775429301781714386704557461968061727865815664986297788016601510923192027415023439116302244293935660522048904775144029218725801104504731944457291829228025118843996357158131103467529780764311875773250686859430364886613647549177451094329389789581278696350644240787070416542358207990442596129994263274786416491480177287710771655750748328139986521362534587603750488613256036939277540762921389868602335826353726286919364933666987884411803106533740857041062092749702209077907528027515169453778566157391494732850649329348224236884280071736973268378252569823942924152329544059437505912839882710587007188356380814846154948527935330373183385501088981026068281946499938541630598115404807820381202495183788179777874482587930466620247867324898406420119510997223193912886160496134707524395376789224214747093909427937812128095075417488450668907666882891769492331983346421654857936868970168604941553259596005011943381721334477920324200175888817391169088124326712115255551954137703910352553222074690441424240233490184009552913388466134806351044686901093959346619665763645512084516706178237861785186253799162123149410894389631673021916280291396921326075526964703210571571448509473606735053018480600645227852733159168654894198711989506514159003391813414957120930739159738640051199310660654501880126459994264988753572806410548108070659644743084939018904541436355923091295715928297649533818219247085896939629107825694253455642420605865983926270083252748261313110770262463005898595096901179942143226166018078878042920710201945442231516297483336719316490531762593256265901308985903087127423786835922289921772551669249912360612404732380656785927730727443921722040421686892945659113425604636919053408815701685749050302865759333431336311051732913475006691403695025055848096400960020587344449890599524306031620971450008878923780712162140920916153495986968853021074646549038189099965234522125410334603590728442245791858400499999233747301901424493611742911939323523375052401316029023834169598600878993092165949293499039885421134159467919546538980740413833667266625605224925669702433127085786222900450947654422641068360645702014200914904347778203960822473028480253172773001513060526537877865484794402357080762255582148759419564860329518420956124940092275614802288976359963574303833250798695435380514356471577476179999396318503548999292119447089353405767280722039127446955427863064401784761499187737575710122636663482607147512802798549431943043646218684213409694624330298075285452974152228483768061974891243797437088819032885300922032539568484467976869672207921191942607915996496674550505908172250313538153169676781421115764486235885147034726848242724215597476301369134827595696630822246063601320921742636811525041052445222236025681234738580172963050404972065393591908133115513910491998403858869553608426780705206530460049550890364567430543950608773707960107098822073275405301040464777787208980640028245842001783458552496106077450283463303581279974371649434279135738373715328060686927445055537902407196024960886005056024031685212846579946410836738528033737690950682270632414680855242941318866342094765335186956467650697648064475155257948885419545816895189646776843952612601406886582205581367162829385092727356713043277708520809555095953243780164293727879366189118792883248884940145025338374545364590724417514829565157599386314312110211705221011524751232155314560902918241135412254748140323230194520737894515306011345608150229858536234723488408607926178949349456989147220297764851730386250683923344614985078731208680261320382998682390027965986962666072407732462031328600328695909387038537781565767717991518023622426044000213428305033352068693137435215029327051702769153387554823478375022499514674569972913937257269649043237062715517835868766767720616310193699575544045528764833362041867183846653442692453347247670304695740714807457498527822053560760530212889627935706358853941718064924822385587791256060098836317226048435590190047696025616054033371034583981540791054323489915212334218408143296318024160146888322702476087349400663028307493134272095459817715317802570229913749782248332465364234679277085898065670225080061880221763653908543487135347156636778804456481215549201650146745022446418120145484318851525972668388728846791548066129569535578923823704009042624674813210286030947524858364520296803848292522314193564740610039466846649044670515216070350646595708786802886622429743500491111580448168127649211539664290837835924414389204138964574356458340041377548127376973762614919176235427957553077594508923167763212756132927040791861843005503649852482576996724817139258590558891253717892263682538386100101317802964112983908816158403403687536296412921213245388179545205471039457737390358548024536578190194926336670969111248732684653737676707693756166689874038930156473039922460129174578743856047410397430352556947491668327354957247591271218175875972842868682120987556062958703858438367986409662308869825262206364778435693346520871392171960965599561903241932084849424292185175139759557928453579056441139281710103760491136636593117721522428554812149946368525769967897851761088666810563479709444837626221249613658985364637711719343939949520043479209629562630218327871513655513086897820486528407894040578055760626212387072234168278409023896272599995081687608147861796770112683436605977241379181227026833750961072050269046008682566413791710827512057084614308675730600327046707913836454460709137568225005096132747111864787759550859281132805092490709360229116944113430471825506230475935536501580114703792627512797035630206474186654375601404247493721003482539833202389805197900282025200279565414741231203603847099093285230319149813469253285249643750637354281324292095552245829773345448145982355310279194354210854112190575240359142451514292390763644803864056288684512109508740874412406715528230175141223143037819542340424514377667490665992854673069363051175595194929032699475005007774446417046350362215295980434115292384512417106387694278266021258257951610105524527769638455932483770424363459906283063053824274514845331471977048140326542991069001708974655995105497150662077012923653166878955040332113504405133715837507168052381935350724877810700043014509837821829390422365192702325741518460639982423778349400992923031468975231993669943324139464002616118632276695702483015954091260201023542037447750132062398180975137411587280704555816533089522331852506934021735320312254140456613451011648245185058027120216601918995096279640620174538340673591615691619869529924809795133915700319489274537883746531674844363668418286851642555080656648719784734649367705087155785332893855634739658396700736769430759431143464579415205738363412320605603608232202954603506618262401982129715940700296999109887722007932991190383585382406464497680339239501418354116662965975984519499477250824886411332608974513636960532060572653322877355793805840206532199959886742558470129448634068707645949192964380831054269406402133227390756566131670948310618096785429666072923715099252022427580677929837039587325107414598130794472739433213149602904796145631499293362151405324710333894486470481070951656616046057744000051459363832418061991928097856913343998467917627205039561021161136674211676514341703524109219875960166439984982784546807845399175385145991889538466208386766184455000861728072021992430547324001691127506356087739658401888850087175498984286518260549204087944624857188901474153662737004795697901310081328607380097188895900231668193121584652115001756204712716080951716496895402374397210474751704214460701308589161056932809369079181924471377026719870032963788949247896704150049185919293248152269562629408842866912717825877002160612930324857086219300591656756443259512146283968813328186400556430348103535312425073434082077419070713714405165591020359351261218280989430369461711392080695876469412333866372986334167341558477816887756937737118235675479824429677791894413862360675409899709946534064640819559797478078252186563587563662461274160366743584956728188601183146879899126627635754971548992006904074977044417660589257962823260342800473604369191435156262125629177879808074691930942636900528282314015513608011567416503026516015394733813971771433156020612728958229333786772541971316236578974855761023291529475584584105491516933292496381007945426711509983604758902113002933632257963536592075781615327167529144869109019887550265577965672233877426321310805083112802725483090996806342583135982004209554790741277228468978148945394080716544452289793725128145884859390522646383426157183985012804114311988026826057267183658517147718659099418426735087339492379212105699211711239399219148678234529596737496018752155901268280554128005107404587138130064062580342919186007400568907692360330048377340789223852179627884643666572885561014424239501629985002099947469782806654589983416931272813664491763851664135762349239563606617134776299329305307411724608121728925856334437743895797009598014487035636687379904538168831109763379349501869615537762763507454657469170569242803908239648837667185585405521745739710719801324967175986166911443296974035177833415453659574227369518136711177029747862199650986804651266861521356574972487995983494534707292885390531233655832276501070398549044889675781310950478619147006161433322528891672508704509012392378862802195487180203842857283931915594615956616979694353053662812564429214834658920327406516291838348957550838780547001968379752100800340653732596482412046291561011224858058228776843066358643737167925954369246517898595830177398011424027439189657374978509452926138235749364983626663451341712030100024934955785788108961653672675251462039726007602794840526251764725496119219314085966192155924505270264926640850096648125977649553986730704445394175682234756241054579699410888314989238377686199096763290299227627743359083986405653463191729154532037580308935351437558281200814756364004597986611009182945466252357197522396674999451834200785554520872942743762244163005152100227428673586843416600083750142331867725835380212107358955695824192739282616069688869981567697536864492636444670971266860214118695567944199544916796320345172744604679460648609179258974042492028979619847763648903713917889128742335202306032342021546316861752910625827233904138236819688724549085383790422164602908661573196898323169105065400842097187534385753757987705031565119207441831897048998533028791756486403712619301416066997527235475048721353105965673277697712314099556639887857504298804222438836638288712560456848097266488789475473817637067829278470760956698254949646443281185812967725752590260463582200174902504701867638292696262203051104860995768625345143078749020512300589955932624229330034233824932540269774512655170025298101528013539953857293860009131558796987831565822308036194446779556546117956791892149275573723279949068186119165449545893975707397028696291993630397140656721377612092746057473020749651265174589356269825847742110961861813281262757645064035994926087377567841374140931382029534624436188710794259908597689897672757299177767658556813729610674409979108146521232159492702644313580539870731555083999920695853891616296025341512310953172067366927045971619407006521292124839846042920936174732800176187975325696397032527552968399304974213641884304924601338697221942431442878938505657509332698063995891720591905480866784368416775014921984213374307668715539709064224620971419224649496385245894376354626764683305312259090326359381134189555153672637563474439869758069922297020169674576992562792117688677195574943402200455566921820822340600498202930335091004159058877365746242452700826775134889494878625955727469863511713622417104886046956773143742798330298470100631164584245311304850975505677762766656902886444023810574398371751304765468139412732898170920177663925785182778471192488144936261793953954331998703826534032476888446750573726218061681252995071845156540351207961112290488166400978696114348046982160780638576641654709466688124251410147695018646206045936182237310660196144015073255308363160297269268751675263162657884645743345493623841020809256851986467201402923066710341585952932882282236227794878274551594980677063168500394861800440972271864967853221351647260761182882825072221376406423227868253380838173009736681761764890422501712804021146179656820205910169602894127972564152403773150659403076880623454465806415503047560223934540922111920097758247260505350481708946658006950710599788454873126258062185398862924777635729080288258191106361879167328694411258088470934500872400743349507296166741831583701704032870263143484986258180415265975153245521581171836843615481314705907826687173505789159094750349147966303760816104707817711839694838105928522542231889428934792365466118664370178061311841437664512123016997812125978759521972293247027187219511425141408390630836526237987523756672907555899344756566527114034369653619851358032004952724041357869693076636519603458169040800304980115392943079751038136534338209155309522073609563844492303979582523032140655186346820039464373041239569347671700802847642503116695004205233397768350191170559858449079796567234454542359627340931008738619189574068942168918176530954011272436351054561157103151674562789121453575098651509842000687071445796763564969650079239690518431482706252037709037246098910473962969728192353845404502437284604252023256501942527997662256633078395692587843030831753631233694264055272262651415328508820674498952150469610793551318502771310682124206412623966575882080683968263521889827480377136446480730380697992458598875943509882157513466854711382458030319972744462270720102040268534210407901509554305104995328889946003530808894272863276352460588225588359627875648750538124402241920724502433031601206137064304049778152704906541454670178477349099445647037803127744366978637252962964474924549175676542047969097264136058748004314499622093025805303147657178019548738824649218887463555931076419912539997842897265978528129050878898047691981100094981743325094549512757955837863243441670864006345584226320069006393441746623407311106303604379418187767394721883997774739754691160847198915441075445626064536733697786457723594504815745129652837937359225403217364227112194734555315378164859643260746768137585752829539304480121621834276691009023643766104427589148592630324682993277713197625015011892353006722811669209398018290684095267877473767941642243443389435946830721818762708582196440964793967673310801777989419524176729801882434904065275806690505105206054093227837493165385394476580588052451405202184135854774099520025743634109834405401225550537372888860694187336377631137116684216595177888541141912900485708930388182521092050540081024729406967155164352863257451564876227226793054060731768288001715125391310736603153352112171586065687381717543909310901434138915699817040678768642536440203122618056010551192485509440462968877205536637330727137996408341323266558718175325493396090299412227360713813910766266009420434398813373353579236921686581031347851045187890674183425616927929596913196878359229814035261445494090085641176994449212550750431795770418801844878950125859089404243886473051085569434705801042122603847443336058844782604976492209406755806109406759399276033315206247695566748904767665718009482576718914810558122888665808849037414250893353867857432307993242917922450337273126468225790045762180956949925364379242776499382872346473539853832775109239184719493496073534961833810942553235507929059392980296071244388084663501345079111615111356021812788493534350189688691987463672830839169622604459622797796216098121434977958363073839665982204364598660661362918544568203991909686554712774039712859879229612859294175523679053488754941533254171645858361602862013022083988397237837405419620809415820351481710913903937851413668577398088043683308801330227364400937286732317845909775307821952461115873287226074051432580465077941698566406246441480313341723490433953270153541743895013173599374338571594607553211856609222302995914612885327677584673516765393145327809479197233820243987336981061001754232495516158664101105747781233336248783435953396492928675940405006288180844898890237922731494329781786252580253906046680289407340090680742703660177184525752549372218314713853667307788443272781283694905658824398435716053864814670503435800747203778516128415790224146303653296720988583284740826549442129613072977752229430502069623412502789821212281484155016879873686813658757857451281578486055050131358329506975603495889753579870513085662182643448877511110024866125358024223000108864521159171044174526168948685272474666066085175620983188874794546669782466227656612199541035849901116797073565558503699192989310926410603952332811177982643910505551991747136652414933176757660989538091603030924568477221195393536095315712208036945866353404087844980796019440810113174461607280255431000539223871398037633085790071099993048543110750133875227340290905413779593092046954384315753257821038116154745693446902005849843767782116696210327123986940938332457260916298300238655583551087365807960511123988498403158576053136227317110925650242478515261057022399514564249202061277261202621853517905671031420689592032311135041663504585255685494947032020402747786661395725506305729485882176615529454610021332269867143523348402206931004091804164876827524855493468439252304706411449149101490849473999476319292146268672298771850086907568759095835995342308324839645580685665219606751312620252476675611171650714198547359340359745954336012020133353343633879593215308784949819757734805399422743153485119420074460142863648622101688599205953814885403573982864292549553406136382583997931440417633169736077419984925431720809659509494143777178363349406081238434076974968081115000631791657195563205661345631316310758205830816596946916293788198102434697558542188173295306660823915009030702823016309900778810775603615062085774882801179014787550974664561453517269772699054748774202736181338952190742153417940860852650613306809329179136438565060189225974221235650273667272315287867322356573769947202466255785621858939631562128405933820825934893817448355991224344317744015931194477294231433094124979751621073543862420467651856379043270867040451299483147881168547939187616640198030157170302872108954653318414362579786892707124032466647230638760148510622609142969683180328564082759621129980199262835679870265472143647886154162591469740247220815927205710546313242701310227111663362564631112464901261572675803663666693305236117884616484765096397208127021062425495681279595532607129523615182554372832173363815162240767643981850869084728861549830357941688171223277278675000477892946889723662585585521406337951038322478124438550822550744820717974644410600879328145779976715518558705512942905946164229390965338196512363012176390269192762738212148294602230964168885685500768327973385576047484316157839036561442054895777386232924315029514020677595736575637422034376747807923846777518060178087074116919236785435847301389357560645338988426163391067812513914707262455528160262675314376792005271755523796561144890463079285580083643896492693080336947957071033196477686514048616953391450417775702183608229373980794562343559950869316137477234384671588735987297745306066411040058405947845480326952598079694826591133728242515043662206639903540772110089271694980036247224218298156673193799730882475115008354648604925795864971360362441681782172519860721669311680074739041594717455564490909256517279153348020952357775131323222929377722566135985512183658436277606036818687428530521609363097512820499976604945315734065791104040852147429105104478591860291712268335560362385718944785555974514837435331444310630656424611404163040710114031594042638448449520538979310887758087190664474799722856138266687487053743278473164869147457151168784836457767268762429250177053032848023314180158399340665862721928450176637727593705220236145236849529782724981267889782309481660322351595251332949781499995127116522990652327289756148377353867300101779273216196771037407321738143290413688260635169546326590067339847791845303835566466265088985818321232241993782138780086809766362486831289745121569469385507229217968284256546880612889925220957864339046903702773091324291051607335779828639277669110177878744717037840628303847629814558779602399232665342339873972859426615028044714180269609464244691954282356271107957555819116352848711774797504359142705188009432355384492593607154608171752330581868525922192021822701234252566432359266443568998577984730099145914394487010548085360170115016418426821403438012496006965571960538234330469505524113139885213486528600333745430797238756863589929910773301665641326159802250797952162077023693447552563391737472545029797082086780110829976483297899960591478090101798785939677516347444899098554632422205337533890287853753572020386379032249060215640823733324083967004995805589277190401566666259372484563560935615151824109341959729713814460933037010024368980500943092181719125109885038642510781594969714716140223839449359493043699884540196936402244769703544061994648106081967238397546721328019447396833638915074028037159577957092181301039206724166378516476419805256615052575117142870073226897949102550862608981948841319815280726852344852849815779169870304083398050996083050617452366748933848084365843609603466038958816894578803453185254276288233118206084650829580959968235103285187643908878379701644970029814007176002324452741076153470184759177844137963154318653721239883096988090514828185582754224717446154368465337552270681334931312475619084269953731425427651845286941136943222343446206259995277414581621005193892194152009484925039990535280788075176241029964431426633064206641952150952161035278611039224427991906489691910204871334336156687725038938227666957514466384082066028442376559912471072598145794266179599853290931376726093428592780445300797927106738406650302712407785996660555408036729139662559103273753768547840899041666187687200602981563464815650137003261315481146626620397797650364317807334556372490745891122221279603740748537383722354956385086304526357029188543166760998832310559889957055228112529200534099138554440993145521590373321993711372616018346794744735306553638056176333713154534785275948732926910351873507492525489196111995773795842855000425025306746758599781535467526093181823730283316619508794581162672802606342025865007099645326716003549851573798107552118603323912667455388097072760618674963098557677208505552671923466768055633542572053562431686171400428626233402046708433145461440731826622726262567020633545152078697055249993745942639004603829899985339892249260450454936164247836731619078584764528709268009238536583217953517444889980825580577925716619378388884488377073879249666131852296324730937738862850889682005196924512298158038661740415251567304548779951326003035340725990901523163589975463924008830008405394901260175556380210784795254879481582083682016680121517170179567791958239371620949459489077929819970161018840919397475366744512728347814001361247449459735423527907707388041768499285506173523308639287455150684622503554158238700648136832503087688851493221533643016964061309440538826235132566915622083564007828841900072293981748180154743442039164294966507623042574140358071533690675993267928840351182856855582643259934871934484749767320518186415402678825349206192057024380419261390067540790067717164125155935266876510688020698638603296676059940913676638959201429926346357053999807281946826196918690792042139125043970274796807443487152088982021922276450396253359273943474127716831611223359519689572655435846087823023129732016614438804601908722935873280687278355179969308409667527215115053318219242775632044566647442787420568743277318249204657602984128238817190151824906000301824370330443977360181160303089073672212038859453470568804117037619601184733009782300648411377787801138284925648109718289927931316378850924489111701920346052304110425063007760861379501508917558240866787020047334034518556637796138306966286645881998398393915694493786717034838173569296293647362475736382018858733322470658545024459689350737994271361132123529060766151677446582714073903714159596298298539856432118582448167903791671370116115980518349213827680178716336421296343311652160435967754399474222877780028938348094004622555728734894718855922226259196906428068300212759937580625203977785617858640120440093713210229712550905655333926870115719611661726993110740044248833418661464515804374855508421200877471030125739289465689807650684233766305307858519975974444890848830014404856153465414894021183658115164352057738853089700524029749009705004126294363346440509524981075331916810855232964194083558360241821977716497176748949100514723032140073768868352261835531540508551845406839403626334674227911970506961966566181478463855618029726181375824472576158869776397512141870851004375932626770502055905420507659417447880935435136433703952933874353452965547140695890035178643047956330629395327227520203160464365322746899056915709595439032236527189172145239742799380497702185969150566392893640174554688530146016863731566359130112306894852930353827521791093738065728045190333582589867306742356695000572465476706398903615727415923841762230911764053927230435741679333294239022097985359187397249363114887895974440385865985457816063845010848048466796489927875768535619963628450540644428360959938872977816194811725636596488525901009773653212121406940078568393726006184117181013194036081352725818792504030693719198309054608528345703214576516478137195530119119180542003595025002100533382009292832914585035626026356256922647119489383974893402817221735233817555646109242553047693302360667434463698358867516116172363546434653439975792503268490369325788382166329435751053442582950172201729641802959887326989999431085257168997815053024688374510585057504554135381852154212260364583540191607986469384133702913592141896762494930550954819036491342465987115170332588300106603991191726926643759526468755485295938978447926348904838899473903313214263748664736901343153512350716204928458137969634705575737182291592978466355810049824439968633690502967813197449150090991302965098459815839228652010372397480384410744480203088908658294678521925924550807805570041970047025501565041067382943540233482357143740144500509274609404607830718694133933884205300670748998928249245804421201069890557606617882886455005782714244516000650226394411203250452565019363729500331470077665920331974530901569655868646745486899459625626913741393480389302435876751352898454070632182980698741144345545509282987713771264514710779493840352524169420636387810660326107541732582326622216876139955827318600915562708267159248484440925961716596289354418837478414220872049417850442921451980332104909476635267205913241351333183254311840594691901826066035526397193408417131953398692779540824441208345322973445196499419939663151727023818680796244695332450638911300974565595736892144812123160109613553296277311720961277783556497120294953712958985716259790386695309674721057174578289928592515580573625296334171392694711949834588357919842435997655753858577655030510222643568307368510888532534409311894339993751519794856193870944296452185508234570013626844062218900545712340704291640527012280646704245296322872335247399768459292112214244634179302087901596940846712591241194697585471027597957214024825659465463828773256878892287221338707754562514025316071733131811088065462283807003078181727428842518282657933495247567113833528104938790525997313262177272347962394124592352560218696455268538396707740426122177904159747679766313607801648544078364040369263602128851138700780876656018801945559025367293446248704181619433798105946196725603217595249263150022122243224378821062241749695962785378369513551980979665840395820550121207439939736304384718765225965379516317970048675669724474259713211148238435276404118288629243310554494861936180264072729127537584888366264801684657831630531017811457692975959462907296829944937199467454294171884345467311384670447211865299850188931481829290175928576788604796464777465162102996055590733902878099974079577051118546885751241237906943562938705310992342245197891935530736285220972771083363444501120789856503341851875428632129496431654213460643419988122360847017277470217258887424494156394229189841794907625667788860426715439052801801934723920790407498495418610442933236929808300575732765133013018365003193515188799771601123184494764675426437349732447473870858703620809902081164147271976335452246725099934014787608511293713952626526225176316983083192018832497624387093977049951867188633392944181805868318229613096851589325332662899834501507288747640502113531739787074930120230271993575468814844805894634876919968672211717825451064548266174453682893134746302131351519154427745501856222619771337365099065037694798495494068147552100007271949461349202512742077636940718633703810252577237093726286038440656357630986000743214240420459415811457951555788131321613236060476065340441907274376650958213137804505050209613080886374722209432074298079861221965968047352971675739069872401792161356958384877262973145490143219191217158570694746496225544480723662085875888727471983988956610223407138632240349314675600334477348671646794358774573922870574335991724185485691817190794419986065292002833745953357471974725165146060712041495314266297859939804918718304246594329621423267835921518586480509383857949019857893458814157696069332982173800246189106746365992446212596147944071336807271137280382109173243994290279422303158262782359664032023043162756476549889496741869420266029287224803361816930768088994067947672221622292746916616449045056817973340262377990035710668885962843922280578179323742290045655200596013074928002542470223273210507731786196818841225563484298836072990843217133978896347891548757606399284671244220064276400635337397471242245107394839952342328864962562855217430848192084991297123233191416683096704970757702551464131669181844231604063419360439301705112999256767439219952670742984751812038165090929965190999360187192701998645861311600851273150667472660915590528915008085070828495272486395464704708456211748690702524956234430504204081170214305668245002747409958468727253188476817953732761487947700535926580065189605893359388340552123022040730560217387107815309409280615482509826031106619732763178222298062754079596124915906080510978918754023925227613674889743132458872351652123831310155587740387660703865852152194120262410332015155405805433742936305906958408477720619031082376666695779338694375669425030059154162948752103229793950050106126124195345546303774071469415717836811129922889522414887859609873957720857786747611498042120518315336102799090162025672904737719348699092879396178926032189472090187287588228195965805249329335604412473896175953033191640944755723768525610759133892453338193915230053475992281447677968652238739514233667481643095191939569527845672192181902397623125129672707305614780788485685314896115350112151448794588518508642811875965415470026131981498535441033461031513261703191883157574964773277157939775002642460405063446756728969667226513037601007262779761287967237007250690139381507296850850340529984483781896499830114703275566832501687886564910850267222542897005744479690455549471725198509801252304711793895713687312711127510967941062867833164366919287484140764600734524965179422501426452034228581887704939906398157377690149942192904162165235830660922866869302501572776752636550552368108455570966866991928988090191856451786778771657187631705370542279967484687406021568065538950582591578537613709891221527535513840091613814444795561166162916907958168471871878616251957716491424930302818798077012798385624718586087694088879828914083649325498669949637815931953280572364319619065462569439235568248878979728979115709824957548477198540003914849024685158963881237680748375788196818070782277108486186339950109684211950778588414531410689344027608713353092960828351592343464101354130388536072177726173389054665555672703817240022245931783996740739321929749394930162416949461889462782530513863635987791283171867133371125958121110885510068497245739970878458118650784376729282228974113173453809778984442130288493531236029084148502475468917191766426103299869811498307802346088904263949502376303457612385035360561942853210812466620284902037203612925195521350122499039398253938184672783271485925385075577190097367292050773398855578126241052605028112843604713036625808511211260925263397508818509961155087156654375658556795673425387580765568082298462222849672244128363730963927664417984587506616628289006685645370640491313870408159888698279953568519261303702804271653863525940736116539287031991604270200765980886232083037345805809096132721548362747348892679047902107164826856705431880886490180876430601451745107293479886616727989500057241834537316196935600757639051680556562439085765787815333953440389516707962650083453241553553618035309082576203678374264189488346171086857406183588247225517955801707940883578620728738101346402193352101596020651308650470655876287576610841593381950282821199251606597313563511343058734999216129979599840025322504514898617728120668468938603646922314538555024717450235369786596271948149374578810364268765293927260932143537332407508607136626806502608122234818042365950790669044585590095718075876173410941712454092937806360663029193245134475766359609568807333171232575660844755200709809669886480891025267285373184807656575109804277509540824497229895506585408155908573702271944167640333430451588054426676946415713828936631061600472381068679591154085168821569020596391915772455426576345271933807326168047290169236727365906902633711308811025625248817399291896298306153598109600697410132112175472201423615307158323352678064435173278896524766352249378724934315752484425960911874567147597888693082240480721272826529288857216020077065071743427820500016000220742773218594403531166755408321081589295218789486525504828632147507737400404913470226007600916781541241296509371171388181660017072018518702021652947270701950081417090097981465365760430958980316671845472774548870506085604222195167445741869459833013233878778364364536972181848905630255153187271282809433517340842407693629694509668382982120140217838467423247951009256138659806190678856208800549602743188942765634433957186635925193015326207799843361728036676040833939613673876820198033517569121872051691216817491485457604333388591298060072194620699763893113228886726527805882044133354189605721251669402859634640967490303461233891620368790841681723156991614385175364971363663359513870137040122112318609531713206297907615272265873268624772305524736386453434627639305391754431596752442247956243419128561572508331059528407086577353616582176984792634886079176426206023145769555091980972422154436175247546706472288101938563741645946134130159617400595649671863536725151916329426220146446340295166382075669966862990585427926202191311837633468609455471952755370714866055480277216096976912043109044575369415593804256269323843761093456240443615619641200692804217710622253856845124207250276743483993636240178278687878924104662384159889454898021448079691442275149077439439055830719140270524523763651805528062100690754032951715396131523018302607299221570627601860430243617080029485374758257263393633251622699594698116236433672501652147461155048680293313800539511549027019535324007936990108344439342585726078115775941154532338058878253565761754381261177322705288009734149469175249934976996534415784951127207205704796188982641704213549808096788834493601148751882105842555056516068898082140199827343761543316844519240097169053862314685575103380482446303333961017628439482209135772950307624746661838817382688476865647005931190778604931268950496756953505717668782124898160268150191018492524603392120064318414464400199636968207833295517043731874285188270333169377618695588574800645120664102727642723975745785303292375081210047043253846867834808655884406590151847835790068810544726632269518234833350368419216547900936250283453944128226809018675826928029345378947600298007900451987210927684643314993863080391045098035803636798958492525103547262848302090753962412631578927617798052589976751266688236268059501487553047421621838238203336274019071880113137797522280581427519499843874331653671527045885366335411824372864721225841027551124109407039965424943912091180236905763996240832730490923672607540965816290154882610149408210836560382734849122654883321700360344636363433614922339053039952644572246913114037600261721981482647732976310478633208653245023097909088036384886069735589070712506288860430738375724359001738455117193686575949690771149472266542262244673929594905778888806330524867804558842919083052885393591684122898449835558976938646065080788020538278072939591338579805425204698522562425368470065629064047700819881094328264349589459777091670916698254725318352674306363833296610522715794684743217459720846443209878880943699133524174093096871527137109711573061641370027114426133349326068992579984857711213567499764937720549909164043845483959410491367955948145655612400602316135303546517764750688157440741602705663327465517843831709779717304101113498925942555665943342202795697063806752878532907595200822361714720656168746981747315956658158009054965824019287886926495789176782565798896326756761200926967236016542238319181873128689029597639602205008202927948229773534359432192949975663318824064590460829058545752723779399104142174770674538293131876984165318161770994810886002047576687959862013321413376479398046088548271695085129253122146147725036351489354362526813695022028875683557421875666524904021459853604844079173516566019268480705632548438375012391943685042167226019392435664519693545189747229200347731055210401739758752290340603608368394883782369793262952286781790154709898245848383922284745674991136063595932266768989473666810471562005944315675723520452962212107394318144599760984140050665731845903987698293858525712784728128465515753497720739390046843823323829056684011787491629701795138384586879580196106351195021438151159906659180296607674174199005457302954160804768752460044574736475362950617577733731420097758685586109756150623307117589796741148638426853110794535540505534127736541551820260832342588306208514588932332171458183789606653629810570420325881716740930410260445627179286813846136268138309043680806915651340669846777485966012748828537614563800800536046705394547895424669712774151346936121850079944121510666499133742224101537194017420376862076699180492490937934233827487144139183514386149328022831592536459072856899871863617471077104667340061468428755735403913241812912884379909785125899560335249809559183440046684833808953243080325655081932503089012941625932845926605211884570078851912426983094595020349828310919811484737500211572585354957086380573883459631850187570741370473166072988138670213209512193573532190255202149869867376548879846854658577020114453623191896232983705475328597031317621093326036276578406825544679259701520831126347530357500637068550970183323828830378099847097728207174973221760470847267739565896199005622657516524694331142540151083376039418252219631851595844155072040857184374047764567103596362423508600858881275245506621742387070802173859033953981055851597428084419111959139934706495684627424266820266405603641408337894330219668213344499852072952814387820157046510215539806476105349173163309360915315840573052332321165234291023531282777902367862165601886474822380792971683272769624331921953755259191277738386604380516106311409444017094021175612049729086399108837595271413066099133600997312474782671146183244168664024711150030487054827813492871468103773652471959286664196206648731139038471838522683353298756195148242473802904420758183229602436709373288502609110243247351192245786586742551980487606339894514770527083549468039625427055156842977184280354786591032843387978042700478111963507881939047651946514901990331746684732003131558719027773153267503001595489717511463308239789918744848924061644319184323114326696705548700922252280716512237546784882344850765333678120777353137730818535334923881373061648529548326197807714427650783303165133607737495305778447083191899051644650565356464928559751578901576892106936030460792993300169581233797549215796555829489163048628204981216103123180170277825652639068582314409211705654301596225362460616974659781877559789676193831140137594000063310494599138038707725438617134930267434638047834810772617194287355598799923219115687161962665517851698238355347100157975221347197749829368685459839756682687414412920723395798361404543905129340268228298620408885946448913118796184376212138494003722008787831123746127485852720121793363960469727901719991510445433383177463430686170251151257447972519863937968192136864864659512076306365930973060891874868968853718096883893721937890412700058389648866522513963516305078419430797122656097739087402540814500835302188984977121516762523004827651937379381502012562356156778020852433048558926673887519649924809460275814859143547708739977780131943057307332101766987451265184414388844166036638724093088252837229556554317772652857257014161740260688246175465572690399325425669704925615446103931033183361202635492545599870945662360985511663684980055046791129007923176575337638905330317600376179682320365695810612043882367785056858107554360403934539501872752931779102081557297106858031517290686599744371451055784797770922232182637076292731581366563455572028429729126563697803863209473343815583922001823108258235823051376664519762398183759496540584091706152762187255989999685428057562795146957031247362202043443917822657724913027942709475982703977019850143036054125221117699925935270095291657039763910424061894345962047749327140593014964291922484321429967603310348894442136614878980229203934955141922478032498710676313025529940057245728650296260040280778040885229915922710791551894829127287957992381702117198730779527350592282246044184999855859376130467838536820169968513023311233989144103735298242617986689265852976557417043081187001945697943740831495005722356105924026841767005599438840265580602943907798483648134069671222655870070539661598368152273391871864092074094736439753785263323892366762579285532788756991595520363634271922930621817458336834890282103072962701532517879158871568760997958539666718656204314320644595095096472225509878798093657499179844605936563618363466777735385426037304067807800233381946765408596842635226669861224322510823295025053822401119086463450403727199534004439427200238623163262624176361617834767961424238863244622456765785117016405913502341966911871234816296290541110777047575562715833512338364738435968378177918527402367114666212884672901796882269960049107421887660624280337530603737872539231075381175042675863102459594496974640927238159464951682139794812089344815613385286982080584530571327901195919285855211032888577212634022477147347657910001319513746000401097192485076933493793556366425043608784651839332031410028042665279421932388080480163066273996982268280674253875100643252463009183994423206490903517245001647389663526820476289902980856880562841835927338837149498294874553436676894505401648571235188646896419609026252329006441746531218999527557496838121514613716259878412847373692985997891996569152635483526925177804083987652668146206522440736579258121754984390360694640630705177607396711416720993751872577681374295099166663944584810357793659654805603939304170809710122014395486300253696763239722245508464673087589044688836922491775140238928020189489199486027858298566245083944003610630184287889920399379075094232885743407907484514729672268028367806494175611262820426320125882550720003060040110825471065395514212953510393803612426899875326268666489499044788197042998895059732778413008356400702903193925560098467941751807201125222249781350326889177726057012860131118590374636235573943776283000742263738263145198295438866464906206248019514284100101344081934679753069358255927436849901749511556115387445494462123925836215678765214355604643315235230918725038693973456348255457169886906747892144075349428962663878707740201257048986046351161562576552747288501384635901376541849453839527940923583815651529934548795237227325184682029416639997634328524181875518485318421316695021039677371701572782729763881354016078659017375376768046622899272066493408968281992120273499329617041338085373038110065219851112335269355075785224141255687138062112331033069299605072116121178612857790864404007970274994743278143396374815581888332881355757763085375186361486189756914941201528337682309484679334951713249428693595578030511923455829011245603880184279377553288504413702477925698402777518263872295751711169515071619239330703785942256482443284233931245666178714691323174557292040293603324811357118409503534839083973302960175511071516069370716030703775854427325551004004186254809268997419105110387460599346796928639206634306451610257690466479108008441598139257850965905282416873384169644059551864975975476812068178298043553009238668541021367938035870833319079195779217954909260379337475842548320223132379339666170469295122615442068853418100364082838797721823074861216737282270280246696628970436912112223714078880837296991070155731617489794984574038701394849145861509899198987080980792103193712693907680241438773520173398601834207246621664171322724930086966613600369176824872632493108314773819161164886772560640066756389275923235553753335067272331584109834015594859900260200233775062465326117870327901383365357007566463380949467452069456632730899110020945827346014756617187564077286765113330201620371004707782532450677217133036073303919242249373050504595218099630048673268125489288809303186222673681754190723673073353918140018667556682041427653289823515072784265201118003511542325783861160644126944952759695042746294605023826882557153580586793284022085728598322443204864279976937222613688375366102430731974786397512085811758977169675410137453047285628617471575874125438744409828249906476706498954439784091998852439421195552872733500170566460256682829118734767209974076229241536165927639425970129384650508219810510100214992286621382024888410365451877770164085451215695558644374660636040338778473060600111073121540124162637870944076001397018881581744417645153340059390989849437819408033192845455394029609245726710209204602483758037878232994310059942567613144426274963035471124652274895793375065614921244862788490703330446018652122671357301290186183866425602365328852009456515751984737570040616016168869868853811375866071648017074007223862754503602971610251771010952626557893291921364595978231252866905529685869811947110216770950510058669914857291192116443355357373936723785053764400036504206002966073694257116007599692777683033240499134415182672138214335960519713557090961210513025276218075501647910479204340125677165363841595315242807275412913600619407918382521458654401037628651893784408559386866384811795101586345370731145129757049789343856839656701667515003111124300250900828777629629235899287917270634037554761175625955795106555694408244492051827117285638747923743299825275907566576086262802755182665715131973450086874134553969070043974356333959236760056461731822720145203872518080859662973904139101983752429021562076757307312618529524815835898986707359830238365908455795008138422188221030412463139093064604032267198245306819955981166661006264372623605569611873986613448424910039398831556072998639301746076200426078805470878830050887574906367925354803285417519079092492106474175481889652281159279078091189618207852444959885253772021077918081424398937098621673546727264389983102292697273785961181695914065670522832845005681439046024196722878356351528337549919704633517924764501845347162280204849654977536171235145687473966521242145781815806559168943136788431388990378661664042174202317614445024243805222890502261119571236683856244653568608527624608959862077081667789830031290690244201470717022473975331423990926972717049836407881895950517639192586217060255048642979382232109682875816178215994868222739912155825672798821159379190098331122914538323784778686177723319108274123496174570927666453003887674267714039228181817973944383015038453658802817979128270621371513817736889308001902158160159175795705797296588674985959014640504832980250899401634207151944086643028147545314936601926294918744805409462194305948140916047821728645997124627498168909525831151984358602478840101153306347907601079444567248054979237081486643929839431216427039610310819012136363605043777175684081246943892871841373735423064595905287755007178596718939989592820316002438252165249962686799839008089679222066797309155133848326564570580548829183096477220267390536141068401081859658340729573049441575484743732152183203190604480353564116048820836989525189139566251067503144359892290286758201983292625066979769751355745715734947628179726997405214524409118301240238055868639331250674450047420036786221249581630599080312154148259066658031899581466122071088541611093138399755070545409453130285465364177255802134982262362865622774909547041479556313602450089510912781185327755127476176741238805532275274517486123960298714227635949264150118327738794825050630263870403393706426565206889677874991043290965097384205043923529899769418506235923878121457587242838328282386271011646689540153600553701377084786815582396389559262737226510129203347319535434245866735797442844163369920188929832879201044379553748380332451974152712160002704133154433937120425600957993226835174215140349538154885103663891592137923921705083488067453300283808372340810632555710844593987335876296668263253940612756950187803400480942064124036880293170734863932827073162873714000390256463617947979738657659863388385046213361138960675646471830458915289206521330090321643821879198062937810996537124568478044516504290921398103655550109742167440937040089655442557896733083680900345887727212356152545539274923475227205514676032015579619718312596691841310367397927339335197661744449454832514079387697816845813312744473336034193758560507928737719251180256805001184928926113001265934939332942425627483585023334965758100950635693848592625021824108733592051555207298722946233923456333106088442466376261039021855012894930194689986438511464976563273141481143673032065093878365991389299555045651904750205706747759265227106398706673675619175876411427144005295864935801384001471280475439962850371502380966110188410742750487213274246464352728061258875833149708362428685038574838724708776133796029401289979096613062366708799045636177467979743026695366689586938398331614273246475659071196288090087156743658476499406796785673179011834415447691824801205321826854108641943165808196186886231936267881047086333676107037831618973993941890061055221042619399276415194515170530985746055196710543911629283955446199330835316721570882515972658191829590170367625953704764173608348832829798853663286004827852455512516711199900275824974680470924433064730232124427265293262985390827799224700432108658646020762933155903149109767148212817823507864723165515806157646657368383435471640916538083007587046951322851306716941837408288553043638678282504792409715030112065925564143157033363623986572758239109235518310196415869990466367912021223171203629790675501443796499537552352882330662469119141620148434366647315752947465303918670121312836356507022021742254629854674482213654710462872957913076778380435054244049128527618749097804199722700272109612183799536496493061459895448209793541487847153078985676520494191780961457205555265250132212794997615923547606196547431174577914515405903903611032648241968344228292189505400375410178089682719023047695815877326328332817889505850303237935321480690707746955815432457977099533219176877405152921109836105170387797766661120371413179488064696583937756685096705799371917263709700257098100014458598058271051492288083687758129573030168602008010905604633673919759687401861521664003524264200206008351421489800059043816169538953546578823703312796504851028284388843472403416535246963172391839650364585011389581200606151154604501839238802768196787715070413630217041256040611988477706766038207726451093926558239396501862409909896481715042686675536486489817138711995926763466347147796125593487581687320418855101978277605585717399609341553834646790133317100186762829234625641589834468379103885552713646723387203481502888096591514011604910348113584798035503467433311424443733726744333977802062272144871409286518396595620243609348498795056110262880852309872933380030115236033289398331220156809573391889021448383899741044096591081454076715474298006885738624401448874060930529248656984690210100497674360251612069002372767263426208328260656726664859892902915909223365680613867834421105136019934514372788486511398103947493725832668461700882192668168438486081244196326736726538590282653245940650087506447218368089162691835736622453899927129297523048628274967240498724733687276742047178253274735394643305606512994321225553254812219962216690932206353067719396975127029481108641780038890857632976677792097976571873967949952163554697984321276828794864048211829303088591619438714293482823326009589519268843649370134779835079109059895757346668088736748665722787753691450512587416717705619314602917279703297917284209405223788514632798867799171710102719460257026961380600924075510997596313859304818144834999823567170553747789051043361196601644792423149352615900450026313360529118303109766974656518190692801450718042225136235476807311603879706967199912332430117495653146915533950654348035154671963004822704529115261078821515476846571580809788064675222084474486803356133003230049944166375133147674714934230522455209618694889580913248452320952452316954331860942895825668074241374193746894982914456723780297470048977703448401798619403318607111309518372897865269441765858964074686784473254392484882136113069060538121299237499446344517208138378094574094728080462892968137242420260792638838203549654738552010673711559503099506357195114590706571980475574160604678967584340513957472998625087794992578505552099668542776409662203188771839519004747364496270023311531404515544629847720874143872061157085626641171472947643379618030061451453731753774412578970397842723088886694215374701680549837751317322186436558493175140744828223815405989865467912088924125678277642584429062490036499998368472423847868529168870948007520716144637356971077961864171688688331248745074420312283620982521445883838675170029723888001071215784962385994970484361930172072129589334432581131473435167717878166429663093434377229025132098273750617390967305754619260952352265675193484850289077870912591794496547646865463444815604066567933421329296878605746005549457543730268358516908860414343759273682770969793719757570286136314466616447086790679021754598918059303150090468396716677977234651928995723197600991856946053396843201057854382803420440060139468322313272508260531166834557696167455692247970668514216464300508760981426926154355119821576356208361052110255177797767046319712045635227861241404198404228316993995545517939057284391309163225394812802782492698871607422507336499722444260363968445408636525528039316457414231779167549749631653589816642391961087475878300500636638380513089838523790484686212935371505681457457741006884518698174549845723863853226694267397887028047491856890048270791616829027145090535233956512508301149193294329672977350463041015868841919967398574330507293604627358501870683843543867838024511307236605700881111979883462471947119388855978119173664027522810724643105701316772368157202378105002570141250833842131190527501693559277554822540219540621980660052896957737765078795235284062883916222429034881586297740920807437305474029042989643366552359934274521763614232539948260508527163355619951665385861367636560746774963686541952225488430975583028785065739376825833608761831896808927361751269266695129288895723636892628723975449062265001451693077697052789161143745238725662167468467600753362297568584713054061152020307501377273347413635886026069282797045098927254476042877266335750421875845359730004748194921679245657538658205384230279179153592317480343210474426815230700994843142367780773954797256011760132724244448448472971023950622390733668429138946741447142862576034311004714909449995950048110881545968980406929139331856315093809175542543134187481736295021157673961535185097430222017771681738482908004372912901853866851133370198950945622176691481063216039321971908937772347013225404629542729042891201632840062280207652515538203362260525376603623478942684089177014301240688272535323545435296588238576050731840229984738825898418368534502747389771900124126943569598161881302848842808942399492039362270562822925877119905665474188829633210424618133227796912698510413418701803845022018526594949887312636955860890936665157705271304993564348271968934192657241739772536268172966253682306312729097323880493241835958270161311753979502352147130920075972308639303233245902027208498519965331292387692506654318040135682687468932847271145070896183067761376815618754680878813294017240805229363998983911334685380743446705246498176612914318104136119599368401172892139015472425980759683896545963011113042044386222367926815447107211733803577967947156713438721868630718825863883627809034319590881461912427666160990392764526840699079711122857651083452525847084644949323152324319497754437121744486790796475543153199125695528966771805661183466745461568719408426657032822713979872800431822421450414238515297316864294579899654309320171854196700910113150880090888767412703369848987200748075442244776638191869103274389871431476694032509631764374830632816511404675015136732878329820226550260570921404301435418181041171131546670950945487182642779049046413752291035467267070402529428707452714857920491580520292433911913182997389139789849256216759167842811531540424255867889698038799251335035819381719127354000007921070015677791686683814936366562086684124674803121252325442084889243257977354882184665104849703702203770557768898063105692357215509031277188802766847407739838755106245467314360153893811918686000378045103699186301704098446240871904233436827501179950964877566456272292258924712461652640450716674415402336275410478934441648038426626673960709295461533939050170084521271753029378100722864335077524655432597574476876241633966118502057833572773179919498741292786483383430278498316008857660188833314362319584990600118580313549062699262017703686604425802805115588742781842647165619685771735005104556238419751572723329611062626387418184039082936256298402254011901662498184175183668120712785383757831576727157938183277401434593226602364509589294021552932154209496636319495813566011945755315898040156847551893222220071133324024380671724212863874881973074403400210819155961424597072479741105590905522548423553785965232187852803989828741613705865991106744592462003673668131931751831583234859196689298755824222482375517991971016131441790377891936377685588672077764853898592362691659523399017574787051601293771597158669835017788941094261906080424101096381023437469415747154702446714247035587989091286854077025929348946565784612337112674747112525234211089027950174736903095956210881804360912849001433385041050739978833296659949624297324367659487748495364925862982122832156705811830939747121431629756138228437858854761096043466501571705404790771119972669035237605175240228107022637608557106070916013916095831007694064429823551346667004686193284462547785202645133303347972789299974290962057205122668900766587873163976302431028028713745385842714676516803545734240954408631126284176671240274857341230973758096871267193892759824833669154329571538209914086328748277219008621844026657585051810938995795981653760421216210876679379059611643825874626337801076463241269955760635918175081565960318559426141356514846507425068635273190831978457653267172174097233094692402586681051298093579442993966878139431293704444835880759364056970184013358102013228308766125900106878609584892275203695021565440910012062188539128790469903455206263728960154260840565509184140576308355786137858857828211007674161890792425164684915842099232667515616281523136864396765616135317926582683030032324571168973397824671114273020430957358267921914736620031809357050004456302395283172264335068056706902526404832230214551582864756958216910158614015139315577013182265314755070300684047084038371021917177688105771971092089852041881783588139771139527002829848874392554989145312293127772079939886738171765191288011052868730292091361967528825637048725053166174754247323052083561403477813614017384135410451350810120112546387479914020206691137572048725235261053766168311769425275996440902656411629337678044641736256669407439606255603439973170737778608948150523031100122761829326317570157654931517135898823061551036664143623976411450614627512822645166523570363134134177756125320942811883121998103999891354632548816000894302726080439398768983992994938329149247993688273655887993168026276539851821656773482563161081629043101214739372186783517946107062174086053777215973360103356815498057909701843768538693606909324455664653052875931730995747779450952395801771070571972017537815828873508140936200519833963268043125246119746443398999823337050071101521163579481318557196157456124021213169787922949516735252311659489243545022655839030083123443445979360436040748327124979990202692096790098642832890612350697548925972288154831806472693148643798509687794006576066858729860015818711553239832221991226978480999308406710131205007125850648543834302740806351921877172125749600511292273661193339100330770984556503957114843876357022030455993740698277243915609300370993150996427582288525271099772110155767413681682136008895687432613766308908194884334004067205299848220683469794875060605131658831879369991363525632466518634828584096766898952093349683508025363023594471250156373391508500061899400024206533168550484625757869023969373460871938930295102241235977398130101792316985575496657128858845814217818686326746823473736678932330733774911938104006702522198045206182337857438980348147882612095988857402187132111396366688038944332608477469089145591294032516809794392231990599042408948333737857266491009880770607025536144055227395414510302579298393265402352950070809582106289114364503774391386165608620045191915471739118150466187484737766687102029295104047544537849451323248391628194299723672060621341259690242428375990224979697176392791493872339156226419480469853123424871997603302662526840330942621825735090099323736669866747827210574137864674621412583412882706324758193183652250324618900904921555358470604505573369415252797998186802894561381129411868420030058439893131577588194630054255267050352128585573063336557078198000407863735217794486519982716271973455871797989880471482848561762260735108140106959127070512390862609367310354801805448598579640391217511335841537845446379623075969310993959566476303433765120765980583994793755331180928675831922151874869804059121493720950082651283619340294819058718405456531003196223886805760053537463503741604930261166340676806510740348477450161642985557227810018158680072457716923816854647372513311725554949206536220211258068842952787654057902919123922722209478525664289257840016603363255242632664128869129765827522400647866018724076572298112544082066870933561357988910229375076815523762103069523188996157315503411533887364548766604384348945580885922374507014307437352106410894077240971468221753812969647784530790891650488070970743947257704695018302871351661328026262337973925238175644796523148349619420180035215784852244774306244200386371810362888346514732589851311288919016593716438241839952467601058701840076511113153739901287825413465931966560815887240906092531644807502575516268868685389616176611947773656217332578776578663455366351952050300593537844998471941489155645227769411750179111188841914427198168256925172367352135551248729627235620279775984472769970584414719737647941518490973830573409782777365269068459402564704793295401971313774159444082657876888240527662542489531953133159753943194378151696632959875367071791665304454335796820036370268304770234067299868010416487541610075418216250045845522807153221387616435658219260617549393676785934631953338959567864874961425331211213681266485185435067409707025248810379934013155417054689258229396458555546178120393557947746799242861024824497918787348519099430771754937312239518927333452312123365469101003819758530218997848976871297497611293320920450052320087796310555581266864913305365775186360608103342324752557098041321721598548288807583414676967860684323011668543959448149325291384059676619196646143129426017990131652253503867353437933560145970663666744804143664158901381437307316301284367151568166975712328753925235979789202249642738173723078764119756323528162739077484180066068980618541199660324076710116134200954664398993581799184989202348832267646154651479239775252803452703651199863762130582368630532025937410851324827330226117003509975691512850816080637266313630342374133244284399258493657411157385752848475260699148343125247909388532065696761915387083397335162270144551892475696362644663008186372884717736693514884868550286995238182501919867216230883987575037465050342640583536660407017177094867792677348165650321620164603792084291538543001268486992567071052823740120343074734192658407164075144244979348419790751001112926743653781114021652651922073553859166148681767138911693111123437970453532416638452317474336155741754748876335978267463402824404175920071183191148843929889983909519290115928917385442711380436426546080241961037014476823082215513914771300060677217041611657426545642088860432044719811905286159788859661388775153887026684331092034520894197809909529202551052030945998595343290073193647003399548222638589533838858904148485841548200385148148520247962562358796813018274693164388849027814338691896249373031655452699428375451808195012162506543046552297208652313544173670195236539664831109998726004029385113454129526079627735438357998619519210105304732837816161093622383928048062129531002792420835534814583949119862468862307985400686947365372086461164990570478522160093848233494863783755595248640378428563501784156096767824346906355905318350262682674345006544930014984840261937419685769014579663361577551911239660777710385577995992347774542552321405082691854350505558700657255671485392498658953680460487715139363930514073753018514115337070207065851554720266796371232157492674147512796859378250173644281027336399592702490258490936260774296643485716708598826706191942614343462425907534798055712598968151069612983576205476733082441982099175832325626063836497040579757923665240449811754127479925734136628169466431153859610373262651938881513558960575798758202273786753607417449006228059741027539631329459993583217564559978380474774186381473493135007732936856806137002473082818496042244902330559557732122875833318906594107557191110789399566345484814931128883609554668226172046264902521003585457774287418774044001867686062390755752367006934150039270557589275095466383293326090256518165995749657517746302432239510028103733673216701999200007773604592095154570584391669489540761848968025963824826303691014180452897186139332636730292112487464872164839691162867315956142823041539688869004213301178996752878380910586409215939995628917980409619661031206720418431856432164048520819583509310479010320739772186557030287307781489548207155071589546750847082165666389689530930985955746679919832595060542864519153408066504918230837986755932168484685942373611894777759735010037197185583118889116144595945463578843632641142875608582394465463234346649797921460051935763187848977274163037598713084960192782597098716957685601434812772555585945108265302823474840894532066146384653329965890549671163231988757140021510245332445084762584363335679282591394169179668325161001975974718396654943233951914859856723403933414767344083032310617097041193994715442403809888864865706571955815511643827220458651043908744724697225448355958024487976259392609770807271084563049473141231701635542019494741753405755971782791734823205403900102284144779697156576936742862399414496560114106391632612993045900868621083356517898419996944310824975896753742157161987079295215711926206764278864855415653467722922285039585069531419574151716712917946461938582805587454014562739719711272287915953810854897288832156576365338598224518284694850569334961124242506459887533439818351664463433677933382866838150204212813977962669765958638615520442487487148288291399972440256983961435182066838556581035492072827017376994653623344882900265091896998921373976520650230945601757728472300731991039336721080874768243511390529892609213726368044885174395433560335782821975791499102908982663957011094815074796423904832619305981609277306968213040785672001574740649040332449655635963883140867371204171881489890062440316575883011184418024823312324187921890626015643992238732368441065032356958825378343196527255383609875535123698163446638773271734527294317376400711699179835838432925882814308745625548603903186741908331236617836142681305315702801043978826398701337189818126961473805313408598514063492098981374236164127980669785349673674843640704211471410965699344655675690549013754130422239821719979171937867140336997747555890186052089047417192444675545492640099698360067922909461677108657273227694118705498550338456563216152341376484265162249374295169741669763522102974865735310529923944083157136204644192456548754594487551861084777824424220756075920449677326205828701264764771454447505733494927772931612990134044884830561869757877244124767250215526472626442891933606984601490630582498798251630474676956457444060332219331696247141853275234910668355021415768508485819329004153086493947424248067087735757268542517631359352141184816809698231354911259730999569293219613389691152332227441672060579645015566329861520676405670258198946670094570768295540824821045166474313264260624296270593076508735713142981584874005166650643196456559789974665463834145030470396839664193382648473680548959425029723585997044356621242781195307405745915630189691023980494403870761661895253138729856563201012161136682099083406762280231924123743655593972734918083322538118011985901135657202566773504421679938363091207353604137501509607832255353808386423276238918499686221010023976586426836302878436330752958436251196856014780457961776803356712557741374329985375193920017913568070746548482247131665693434577599186033341417677687835513062564731450707404075690822828793720355396140047434055050870397984689924664145354902665389501998933624220289536044442973110872950612996483544849524568479093073993879518517451833743141326186444207399879740663079078491646391318622671834472019542752496300431729372391570827591240333058756894333056512547862359303380590210300866167353905921735302776606311937358667228296099968772928810573134636872815829578711371160110066357709528075113529589887326286287240308344578855483449414276288578172317322225250232342148502717205852048159400236830997508583786569854296309894163374633885964220850347598013612153665313712801139025459033183710569109052067356507309273164039015624347743837500814759280352387072332125497920351703314438423958388695994870053760870826795856131274149024508797590978847474511084219411451584114764278004527280166745128577908918262358874993071216691551298559373426247768088106875198351710087982532686798972578896083509315920776350279173520292498295363614482517643509708593015990949124079036409541651109422910383385924621816687955008022628768220044755156207435735172820248064766475449750991323092153624988929987775561641009195998800845413136471569305558375425062476291933985750979918676210521311626796858343850848336509456464577462648416270024732511862595804029480273359913096269463372526197415659480935210608016520212558736791971741886961377363330689144030849585604672308296877267512710867969258774799350607322958854543449479437555275841372796917349754770435755493685281070180900178587502113681586489174341770856976615780808908581034975408422649681522191856640439753895221666796359518907922337030798700327480760685461104147453644718058339865229250442504525896229383591714253372526160703736420249070092863421076495611457317143580517669934633684977850614727852717673147389121103936182626518145957275688539618171946242735371373626433804065659690645883040861107286150128178454780975801889648895798699580165167524941696075602714319686672024124837573771442037045109148884709188542559879471181297945432636191647369824957765154894668263668616028916516025851397434795866159181172050988257296170855385116276687508169189441443687050436916768481773994927309290994487554392124469746381771295356558105783489660533723098782640318654489396743521701865440944115207084096136158944476550513475531711019371829558516791909464320305863172851506214297193418939855261949020302655381690191104356974445203649860950349237640193353609632276848751006325692657350053150816706723685738311287361039611694328410479005174936084009922689389664232112458936068788104455708110507682653669078294363057998400349157802683629580723353170574861170250198222975544131481932357425096538636431028548284792321855649000381346264330611443688754541988125051235125881700122796406981492079402733458116836035150523232530257667981448208119431878766127771761666921068057779716451942765340767840823782783615646528740965683525010146537559858614095012515814655030939703614827141698970997404876158515510928649635204547796453759140712307582568791324363076082015991486567923436691729558055311897734597736112703877379683251806396536468143671502272907966145959578642495629441536788695819310270459484026196583803563147981633676539062627316949488607719515125437777816047370566096350510048557592386626452186812990128709082919058146385934694965502346166078948257391280721026195892956820508060931726778296154618918880505272022192320064078151354513329306249923258313640539994395262923332205704611506154214358086532341436249414410144002168749379554285843434380938941551093337880473812052360164514310393931417954275433548672740264596262018638151079248766001026418089519098429166246128619504011154337362859467150722168098295654631889891431721184956992650304193107643929813050203318302948062187296865471993820342340270836749380986006366329908650450657165341125640144190384137714284935035443587593959648124296885261532038532185493809551968415404573062986875562887301720049037017665889094132219774891740135130390718077910269542069370835058678195102200455419670113998152289739663082872387840466411413495503508942568073020450063833594754303320631717282788546586018056552507555023209077429794495353384682854695849633433346828355586013016553481397158458303314488703928767508570924477251351380845668301210055698266677869292293298946516367692636357885938943440402061280754116235774673227816072034709635341268000009461978988591615274184335380392137982470791507473724368291748636933484683455318276291966367706382473888302091472727958795937176868844491836940495255808469075558470679649719938152661186999182402813765210553046816581482725384328133562865814263602795553889296279581355150541340582726932920599289067085670685361188831636573218727366525505778596234945037141992441188512091591803381240114477916648597534909135072588187216865526877065971810055959208024706336293497625683175377115371035071875862901134565881245022671482341118071556107277689884370424045096841265860531168486431894527103744287185395435325375155959900223423032621837872697662622825586058235876971467426188578068835226760001306583452939009545955870062408103379182724962041378091294626074164324473849663900604902131781293203515525161823634097475330132670221782473489639187854464463252833728646331287883596214283956802254957380119747282453907539138153046015818649959439267752194763762129070442919054487770673288226923602333294741271028483879868025879769684292387573808733802635552947273262354313806811369527686473677868335944710572270170750846635590238791213141181029937257026077108136332634281281954845801255784833084953361256409269101970612881984062520144226150483387422981646719505892130136218554246872254083598544812158636559232670336846549796351152199083637932247497100053014271722566033957632125091554341047346672036246548082933948837015714047845174948824657116482005385491640482815995757488282376154747159941435436828675756281805726005459991817873462347064754980555837979736933054912013292762282422772030873965451149661340968860580361271822769756636861856854081793681580701810893345322855448595170280023823613764821593749615106445177387045199176914158997062230324721611625174924583828540256392367397696464207698531353576342158581795926452507300085896297136705761867284397436756813862596753479046298004701751457399584579401412354312984658583479709159059764344802607130283871560879707421981547684136261007907533860962438535442280419150433313279378228637614384034459367124254826181426262614763048763711199838538896501935565792849504297106673067945005389976473632339380439202298326425194832439969343712734703674874990018435161008768622581817555798913536870837835177110151818407472920080974537376379022075552664263023624143809684340776557358508299055718323824639605255809786906301478778307701252115681136336156096506617711451596299464674266426554749969374387266845258108357886891618438451283163131788567482446064912190286599852654102445357659534730085056836680902867372879179927731928231871519527861974965764080567048520340096251091200202189223372210133969017662434857506905529594385213597043436693083166348600549720409986405908691717027919100320790844822385060674513043865895443407060594204472021773775119740339089281368590479993241752438227806418246403781773406872187393080879355934490517580378517128233391071928971097134769707380766941041325998012137566854456512870754172868615671820409711329484582891159727267083027223587914891588992613531864936645324248345019526891750550310992060883181529568776482769061373455321089271695309915360180778357269572050548833896116662784866591023407977602115010585719407138197840805741948848551634851521915878050289265202794111317097559110608915716207343512442310300307102932683515998937225348021834546496549207998717459136459251577733149136184208819321132281236211062223198365984673794035255002785772957404636867216223425568740225143028959192883234722175310075263554836379506800997357385174099352901344647837842043748731411944861018237928665655149810770999550606804581146465148912361629534341700866133380915315401576259356584284196777670772636264679091217900705652872625567791294001571388847643908126223146665283642197356278338324419218666945299498836131101601645862933983379075601067127868525862379782358240205095421126717725864442580058336890506167507433739180109096382436378609590950427105334634122668962235661277009611503784488507001016799647327524937122757577856870589094844867711410122936387043704865257166335612709282314403778728183380999805440537198975192952949725329755743364508316618377017434015127181779176419711408507891839009462741978755447018129135046506748662371432581770733117360934885900045804209645447441121615136736704484466981586073330477344722493146476933038180282248663136275177468707750922985255338778802761904839684298472648262050013442728290554363203276813075067094868835214449402753638323397765459005976453058980990059532546169218981689000331731226053794741815529379671624721134743093268978574524871364094846055173755277572878458342762632064411029227304737087059154451631921456665756204121004754409844506781053379963518685760518028546013570881279289897482640461099492026116648146975617817099405923051470203598017086271143386355986523873326574006645344314512766542809253201249875606216679165314123435860242539976627045440897408906953920974881589007184703673095970383207765581790204085616724011758314834110119792555802959144048646857476972903438256156340399291201291979343830494060792358115696315286119077335640828429877724297634487045397964191649377404424229225002893404493592477337319941775981633303275855669091055223470122756211551421423926096498793921169036741655472736924962595435764357916826493863578067795323851000241022366544268135604190384654050853264739062173950664689230587417377672353307118183871949249608759449107551415536134975255887358680621764353539183933451351276788446440223367786369469924208546623513519932328368335116887613662575429079860908038874504969081119673470554169157165286261940149596955022540720549070490624242647311097282581515339816552697039827941093287192825138392896752037954979766459673837187896836689412072847527598037075060238069650264859380154228509670433123452401567486926623116453094160410047244495254656462002042202568710785991606305982367251977216875841453068239161288049510940237942952892592369173463599751600547736848202737335090537236340340493623017688158134336904799459812414530233636808868271938897155487318012001203078719407254913502737360707763801030642202405326538484999857840187258173590227075129705660460685734307096015577934973266009187236275808480578100654834610404732881328706204241844529224571786348953714089572930521900488021033488724512867610397635900331714065962535064862036296750563497374868425966474507659934489303805112873568074807458582806627684271107289356168571762205115066052419641306956543989615426141018305761412857173787657792607390892356236839853506879458313342464643857315199820710968285017669834774101946191809576089732024214108560013476340360028950510227079008933458186907112626605534398915126503805759044050459549870164868643804472883623270870336506521516564985404300140726137970694409635907146305757534515306725796167211614615631611698567463599381638031709871338373233862209267802591041155244774629026083014585216958001190998538875556813686199465572768922969283997450773086698822245434168152275982604257720195638728613502039242971919272185792051806549989203382799387510222936362762410183165801068439007399431079291118607732823335647133641274407052769273169962284257051578946411120669096333412754544294987095628681392072601698864008019203417023725233102521101848963349650204343102792526255116329414973295598459982182896946757284539732932476316425358653483709144269308969513971306071754506807945660391457256364643995492841413123452746407622692396372599812010054466880355558855060910989494404740321656664017874394144716751766767315990571130121920314379211443125432212250070513283559108861013954661713527340155405817854313497846953451645395767439155602817723124422738429437274477624325048312360128147362978729878314393053778610099276444523783130625329048147926930067453822013503704742789176358087235546837424459662848793101855149938990597573837861673597098826259364695940725330494726136550410826418461375700088098417550593492546746090585497562458661450948526415075911484578772909895775494854244051195459742598456245345800350594627783739022048381823544842966380018109273626240759333422985923258796789609250101621350402947640303117457754056038362084293842551558915100856409557138278548409274524916013573886367259208486696323067389107235324157286282656476719765945288851836811258120601605021377742094595864522409663598709960994099904531503199486719937281066841072222183039761218769019579607717496184963705402921814160029998144928304493542470832352646238794613836797666696309067097351824610009667562625831183891005945491916512925580013119483276271461401428954855781775663977319053111512246965662743912393747115864389472907020848649859389605089387065911331976916563967997730261286884776507632926189121665949076991538858517579316683210006675012855957946644240078869263250081208915105996321030233180782648972589287538588699863673474458638961325281528513625903092074555498139932192359786438375496486047002822883026050862763577503748250648312640590463834827242554053317388623723860123245158484075072222088212971903078619313313080033123123681232112023938420704292204398987449447631948699253905824802692856148602859692260555564946644940219728474154905897761911299824731757926631326327793354738912588036423712453027596296678563170298277418106340542899374078639703413643482535552290180042496012123306463374518569982383635020086141036323076290323960116209427594254515349928281668959257622515354633063567029030147957250334293784035803567378146311509733507401614768639765903864841236548643982142206234088074804162859164050766300486793217306257411785401093344207323069359494429837469706670229610781704432645192407334930995335235373636162343154460526708251517195489076647973811600986904887868730128294259141131835911384383447415347675256861376079595200444477994709914222768572544981277392211308023266283839109821470562773170560106113677442172673006025072191131375819180093276984792673912818032763954343431983299626063227384463638330761163087785110415780017270125047544945737585238003441452346472484258314755667926060831592242551367448168471064357499578715490202658733127242526556981544396454171278254752336315140162218937099969076842081368164606211984214767398052426301650061790242594174413200155078243884922014618629692209253493852148142781669029855002046418330411951573979980421922445946222967459266555687077076480134852623947013430730610030119489292166271010936395487596210382555676458298182583534788087506052157454665079345982649214637496993049004630367610810335584565560244971842752292432535081904024036854631552049928771402171615500390588705012435573990256002264918154525206432638256435676451354327234402412343361160430753941974882733968513033123887792176595907276929802974940852601998596333330149446269616119982792879743022836714316120728449732450074117635060524544360645418009877969954859691095008088881368711164459652998571289830876399706240471918903004567908753368507179956401728235856282230982716462655485232758269998331941270345415935563982913944360943251295222155474531404086787636404427388245127454193958452357226470431574330270380360060071041836675845844583861557466172612960353379584125555406462731846741260478832507294663472231742349822904452749676056046798619134304033317596068965824236260722163641167919873780257423452946796224975597110848319463818089960150785469512290516563904967676841697985106322007697970666220479220900213690415076943825526639986652031435481539455509459759775452425308700770761989343046023254196904941209802136017311403400768750009466590274876943718362337335862951794180624109245996257461778005338739131513975912042958593424289866361794980268804445283389034481541033797691865987729504841515409638655992967145192264860898622210347562873717490830954079134284962100822344309105371709129542536018924771332065284691090144277880272390681592288433974519168326295220720164646601992456293085792028778249840206741937745075464631622939531596936458838951004048065207222284233418346192729964987851595761413338344150753928573285613897530315857663550426558167734210360678673582109298848926681546541834823250811675626572406337937946615838308084670523955727604614092196774809404100685331983442931711520299316387610851070168191121023216490539080632992553832586614200788843887449236455189069388975921507028774739685762270817025228280897235373568439643526878756078385278839213970544401485197044223092261816667010126827524975890207853104128233659235281406110154422270981832232187800235360007727770579160625252867047777792938746090376452232523751303623580762878353326765675244699065197547539995629416975334443089437317523659741161355720986601822450726314151780685726199294449975939286523054082809011503244435443807599005282528504119535034002232416778288612424368487350227044076067557697247189436884207289743447842424756095651413438350846000573494628559519247974249813872682849460865442965493850042421351731495697319796756993119128072905536643528837454326781275582666058925469836456700956448539112033856074420501420820001639925555648419439535479807322418800176349461547847373272231850719353484917736824380157359200262937174947464276388990425107217886495047290307995595986571565878294746549923963962937683167124666292492263589934888703528570739078908669560302157313976829989929746044625908657292608952811847392516377513113062179707214412143937161023090030260975950491261696911223348874663540074754525729269454928354157782635483704496803692991100280766768378654841630902600189559055421657302584555844577678685191833850277499235061823590443945120310858718991131375351153394972540164448211129290548285291155488927108417521490443782672422159151489072861524898193235454358247780188206509823306033976910337048791371980826143538919086649182275330709440864723726574317727875935514100559098479906366735513531871866058692546538609030068453261047749110742984258886651116055958954551981323170758743157045443089354424842593703799880696237254845766267232406721030163619345783738976254094286842308622209691775201411911020034849062605518625174837080503128810989747675082746239066355853373204420183133993769549035519278865749647041326798432172581733095327509810010413499102748187380842308160993922869163999194662294766240666403402012582996173151825512972686336263080269891372950754642117495742915395702178969701056470086055343130211216213939315180552460489362402227907315328065626061144664146566221575507629308225866636402668079300281186518604040986359381194332724052023975424657498364671208867503217755813595737275864950922377994390896570132603047682232920215094482807902315935511063871229470926185886677191917255639760592997293073376005045499974429008271440981653391113960398269465454561965556471425469381386800394806661815500194971905660915720060574768944663381002912158723390344008434058854744455019135034860052924461778003794089341348806246242597919923219509113096271395002132493279104325809125817605817993463523508592601614326430311289314349364751285405804877926365429236310713041805817879993015527862196569722303008678130040824543293397896260714812926413751376400133337811831720656545403457538321772734825428752852891714580468325907556492026394464342103421337151188464106559525305677949574029959927632404088894307008982313447877743288126210592790241679711147584964512726572503914369996336609196803664856232111291005784583163149930615049655703989224128071868085688518462642759816212236650180869627851818678521025248644534279772437335110967391669190642053707735133573157788045662536032190871839562309370187375124530681887746953462091831648839609738617912302342185698544999202515550555389430111017552029072989799175835493540203483259519004964091709583904186801823819304408203056894675056398704461664042318535971171283979535015438252460594856832706101546722376187073171064371672152082743467990195693700516121152834163405643435280655187151569005814805444183651624613631471775462389423938480095878486119967012400417193487404797977455142628366099531285386248002409905518699758843183021142813133946744422455601156531889616322784112257150342435313076650499234128572969338920220669022388795399560155129646344491413813262322911154819673894492043423805542082343811758732375840820254894038828192010975658384190750429739342003140923616508545595174432127059691329145151145475269517326295905421278322733486222944529615347326253173511613265212963094359294574122766229153248220680481324894565694036669399429574560439372253438102736550498510552345308212540980296063260333443444474695102044702433356802689156804339032121033359643690995615851653166796647461294021602963903513457716319157819546563562163519771357613414957611770055129932158762753928377777212149093197215926218243329810399205878425267686663275315708948305338557010808958239377308269140421574103726355297278130724110307615885305519312826311597362347948378853046419951241723358257782674802531785602445857952280887921237393408691381027202477898050449296182203940266234664347630938067711114236652108937710267592639031554380791917262681114500095586466424365318436644667845961650107555901667087770343254782938338633444191668072813862700925254586638100177811136305861842519643480902783460016085412314839995425146781696188877091967845168390171371072414442572292737047012160238303819590039694088523378639910401165867432947857021614253626591190025504224659477423468095059570425174957379855398691681064520126126935483236434465741220048258279103510956099296038813215648484024070269204416383880726524128573512713013558535184242444905387976522882097770916560311510069472177469714238412753826597429654348424581551251952078330577403708762839405614439071938700919853374808286572908322741321975270005782277302021377414294983339561280673783663139982508688608768837075030539231334506967726074377889802832508121541412362771870563641015637492330997342655366525313729584956959929087318399889625295007380530139799853517103679488319431465089294875409620319075107452304839051396664163043070374354655143220690871912159312857608686721172253428166584344309109022555394786777564765985026803829518848416773458672380142616715723357108363198586746406456927069534189504041212602614792722354509828584938853454696693836860187670780993845671829569682861494660555543075321828887880392792095698350957765683919961244073346094477774130017934839464694668960872076994557264330379297435827145344280940625497859554878983897407838983980603359783729959723603804971206209128620428804543296198678384163483381038853978533927092846269346158712063305675932729357879529935317863529175117623607916851099753450742205591071870596139218561333943348797196205412827753526135233119949636808031309556557511111436071562082642507452211969695780982705213794538851816824062185867663122657582785456014998588234227175556246251733207669777483544429707893679997855356356304586796993581387300041846127856356355868177198039245196590566187200163979371100010118591462212326279540707040222127537933897803362664880856087681825243951822736489130834932286401816401489402235488660001968580044397996505454188214085465049473529932517339172598307164580626335372867871177283687640875854419546506668304558612550436384236221160840357367289722196093100112593907686931873147596882044801318157803490096801612173095106220803469835677822322828458973728864501477336512895709391827285735420095367660297957227902116170521371821596099036132654149949080804602449536681280141797021634171295888957682768231257352031571872696864573317438281321026647875397694456948638294945728751896668328643869994439044197467475736601704610889204782355118661759357654542081520177165494626575676485832842311148685245426252992189661920179286011681057415692519079018884062438003977026774120737780599259842714053403776368428930922927113353456237861874150883176458078937046200878154637004403964601599000520044095077330062521423423271323786299422781308690405392710913264492243714727992533978055395171848527661782534442023492682976154569823122118539014453214854587412883807679734851721345114731582485567346405333012903988438573004213512367224908383079196428421407393768519494519695566405082032919654108055775320821565077249464867752442002051771804003668149118015356008108831023195695524131910220704886528685063270877578352247651655716438945072072309360437934578779117966674127063649138557197975824390958423697571336046791749915992435899861854548940412595000074329097368818234597541373920741032369600156574654741460906848009146717279535115054401825021640514618584103035932457019168010866572260271022658056963073737668003246647481208737002842621783457135074486874180227660685055173989454409919470779667409980290941227393711905771697940909033158116507426717686384574522760602596041766147030478765858593618990707715618923791069016256779768418214243863435803764311687894033526671020898822873480812251467536526607444247522018306735706367797895677403291594686840089416590894539167758837788497726162021822003185922330411197280418443414080511948713870034689186757481900701558198636009467952637888953223555175675694728235228280757132448864752694122117462050281904014844039970103307781210400456835122158156903593662898990085746698870647114480500592093595249137619107833319263905936400152057199789586517322480200621276716738067146783994149487070443069519661701201093387840238280281525146056850756545798158283311822152882981999760292692001515602106506948483167920353918968271707844245776407455258208227535151494885612804953259877195781721298165124658013775372609029353849123729799297658234316736009351916370057614397346024849827029081323511053747726979238814089258968350949863450376033425459603451494629589272648456691302897285402038157220960471677837361245871811610382278960687225437430070695097060744111319243014130454607645615076628844482913202210904576162465292089062821574269028269829158953533680389209826724320695612178550819591909051855816817963884771452695649089054603329471916172352370704912224185155496397901280742806783002807582400197967876837232009653624135146788767771607074788033049881419854679302930289132997123788215739786285853619365828112878404251866690015166953970581898581741615931962237374198171535275167769808942942363067629056130965652503910205710139363891327704749846097451979276751730890504318368789641392300479210667038880883466054414053889813334702791823252813901535408642574832396452482362740275857891584552365654525635458025390308750445457897760081930266676792361832391965442430040439701111678709170030209717195049242665483649390069645745915202900744625944480790776622587996443555619658923050580155849621379097879487121100342734609882784174984692419644262671526441357155779727245751099043320271949603144851044531996711182693018921544305857154359116232596706770680559802598852196883223534151553757222658501652053595412324873134354443268035647039473488123844566800834444312518842651430187688520685728297805451203038509321387346081619786942915819633923177134656438423760129110341361885650969546117160533510503522957559248021099928080426063478044753963863530609585735815867395494420219750890730463729428578135220721034867115400449515226614686905312343464408428538979749588201107599624281818554888293834982812036208078661802522721027029727856845247695300815132558216176013444123580283350792068895233684090604673161446202876777462962727438964593074706512004422735389853709187511930492781834684358086887954983713549509218482306835282722489399410135527159633907587928017910626526199803516763952265869195277815849442110506631370458533913230605227821586185425009528044815356591149637175129250025301299739042279982923990700215506411242683419101510119081771214397800266766906660001138822695639199995302060935154294353432601417717565786330268516346520947313067487418071501560595752899801620236466416653820487670670205645582062578606734995866589690624100477988070045933883353487573026162592884227419007537061480414315658866396537373126638822089870579738546671198174882214517401280978130579835836577948656732153572195605642319780106407362602664232091790870750604048774167945010530454094693580448898444828192260938630935916669466490698865008597742401298846026136559135877216282141020224250972443000996235700024386685509331597068551026339149699640445822201630251317992854145598271756481143462476843970879535217851773619702235696377782780308004538957423348250721308467829991596127226699138241633640589279627475683780034139590688814272673126112420708631786674703131741232663516913295437714118413475786298412427449196506578958427172828978278593735113493756848828432444968779216196255540126926316511516742051596914887121087983472595656799823826719612507158506031233785631646053585542620446175045822265786958766756644945394462032187417137718638000178557286972119520801439765026115651093662426460424330501592394591736220486967462065827980030613651138662283720226814766343305686721040304842968239407580895293397739331876533346144947015784038966045956662714150973162880969760317886429776273912921559639880291401590339876408262750586678485272408384531911200080246017196657015491059679244304244087754489732496644411256202043585182772180009058134329659833512330687365265691151574698003731596412535627396712969853876387803727316751688992826492623300174559067105421565338931271834640943927681686765321606210039984850908895330649906735870321858329994312860163265706700434146700183368503370628468079721988570556443653190995038153903934387752393428282733387627351492020758548022785304656428297633389913760174820394131120616615976694693215801855118568941205192593460587562224713715975514763697303796636106773057246495286667872319570657457370897913956842434142669648215300484529788652547744991172605328813224384648198435124103599369593909808084797793119169310668877114329564607115043060026493822767089252485497804779558151861357138691362775074074723795092377925148344193957283487211849122724402747257449111304862425558147896380902502508475094764467211553256867636317247466658538554173141314562015988720171610523540276644007461610417491446645962659542357002692183449725965488392378105620452845153406817030884176073727234018012148178724314159102287758006032040441944494932731484028372418203165104470527657979715933422658583043436668541372044978572433701495484468870445833561898187876871037117922271758304229232686228168383011595205606306731371147464593150871581472551516196874473738901625774657911694106754306444712515419153774111218122096101870629249109473594669126047838435161930082474713760036995132472680685318410127780219480511087873306026894711602835795621049913181717427936433234425997513377697465404531261673542854496139264979337908605967267484319192095288335130463170885767101685919726692464400396810994595064146960589013987473766079936964358984665917224138312130250747826850322543249103764156208787227448244786030362285539840918108019618860645364054642691045186096188694534571680977306698513858519739617978660391031188860727347839025996241352854207103145586179431013365006573245277596341717454968376134135212169737999123437388262414484329421234834270054518525777938243276936839827001881678508248053434914566131622197523172784143371992612929666794303692826941414269809952506981248921798550089741821485568167388642946940765917867352983144186257800259468474786426795445729855272745879244078567455609336614080247351207236477016239224216908114096032321388872558303505973921750008792194175195228162037264958666911442511875815231285938258491507161294969708186843040155462627003026160097214166507414076941470192496472583493533888594623616123201317287116819801579317587626864215555417710988079115459857809420779022469640113065426580067494295558053539292413986177869568963025686490983203749339709048827790325526743580431926924181376178110128097198812949720427531374874956136403911889572084053435888996785837108417883963882044130048182041344674651721643895543245821424808121118117249749110566567297241547319026042491307855082683034448469244348229857535679985654747115841806546282988119060529497302121299147564286839884006237455643075249538483280100743447257876195066358231495993277600034424111606202407797810193905611151104738397468677791987700548558267602223090387637409629089803646107520964368130655588709078845929552710553749947008585310167930319807755440750828903348429111028619229914912637097670672477379238452082835755282858239491185454216536074035729947747211656806540117816488057287161102564595907175501014534876932439420029953841582248398864599355922041035282649367214846879894493314064782399497924757911396867638518572514193624692249497181997927064614202900659860984490213454534046052594650613897823659807625745064943487751257600163666417334073232746442063749481559228371987897886130531198917770883960977317907357813357551710653900799385232572784460598818174824791981210268201552139145454180519684811085402880341367969402382209691763989178258491253450677631098575440666189879514291022760894099426562086371938676045681017074784228124084361468275238003991788315408843100606196857992813632737384104725258618394958645926188888568629492424586899506893830028775559745737428611256276138229750641882821495985858919985232839065961740573291497856056263863529998979829476303871813628783604517665139293583673066711383393215846713539508063033623273159670550999831660526660491429188780939765494411925416853676988557904777873640087555290005893139257438260460836581676971340501575779644721442258533307844303774315907915720428237978030006493058178169219430398693173582562222257289836423618651303052642906396019134554462760037542907009253857840128863023267557969518046434047521372429199754172066838907994526659499342142051058000281006495558679212056875612631667037845136732721226542091074785495222851239674491296067699877713990995196413160914355973345023431041466233468431459940986248089212061925311949202218776125016109071912480737394042669407783058820435270426403762875073571723583849759854090795083818312053470044380147185876759739122070320210594791866689330530569411197565763867606495223496413313723389930490063290970878012601581418842682465037318945827430798488096208209004145323586854524630803909969404443891609021599199857569778655431707423746984816827702892127916188051284360154539422770044936957188488044684566423949242258804523593863174488278104617241995008958114287102023089002431075802071720313671732884026357413444052081047641650227932531229273142387721212826684514840847220865658341182725741584070700408581170229488618332028310631347698841000391148221908294559209090949115891881932115043004120945547782604846191222432127327971058589610360864292453440385856316838621525102161229844159224950596702889924019190984733794327150640775056045529307180103083930543005430492211415226535063143527676800275309225410931144105473924532690409045846335121212230575849577911791364660362090681738010774628021821888019913712113653439599813442726998794447259106787282910531014434214584415287296920883060685749434472546154307731896373476333374580622276794462536280507216096794083003701336461047971555013118185724177530308874958339887301961579310412213295412316450615920590382866551897720149753521670168638876868039339399920375873970669210160682065215054281889509981248123135824837056675084404036278013490640366888051692188842468557546215247466359008114128786149981437896593368071502980827989913156649977341289311945053353027344735178159269053164924484049544567393831798121450538127351318274852628772433513564386387186830674925991502559793804383070501248406344948525400067178633513432788520677370899828229918857236102574430141172778765001531851558424160726383965103989828967472007031172214544926496292635537299440881490523937890537785082986945341834256143038610864446144489339557526993904438674559700031903402850301744427384715163900722214954881931713467616848369367037148756137301002634914863483859157916613218821970551552924659451875604314083772479137580343439636467748501996807856950341830303935221232197804684265552731182673534116157320167438990058867103463142394722734841706158686504745198853630148789601925872111611650163825981772062407112524356426291480283948737085414910123699724437734315041381485797335685513005223372012877240652702906583668753173605183731696842989756624023357130778303794147243476786102449642555037809414893806271588738831457455329520849996502414094877281449687239645714754202834023303884449131280837161412502459450692400284472131894459851924650753640721078295857020171484006219794468933369749548890773417049727163043847637004009684817757883942477952409084586296081579672096660838372626332572974975336196539018650108684684081888238907145665464825461125472968727704077977560049657341432891050730110625499174726584141076968964432873497253188413514729301609219534863282311779611321395100630395410955221489831531320092813383784262327545065144943470221853699640800847641941836916508050259902851952423582177543889960401400164739628406241821598078838878080152065444005903129155548758348409698459474229291669380586139711274557196348643836138854595213518293857272249908768218828341955926117398176689015347474091141611770633905436537035070029351834011327646395738853088516551857228515747209145483028195396721035468522027434297204844386999196233729467394136213665229870978932893866280972753369129255380072592905454990326566578834356461043599756118664352857665598909852447921662608651036079042246560922688734495114270881634439481923428954300905670530207622852516802771596279741331792327102434948014471850541141665461453015185909481198863561808619242380845532285998496540866507477673553353665229106072860252944928630288884278776007174631108920744281234393094937237974604961904204747093165070388158563638984308457377475326524653673699669203933053400937457446392193499310664377596651302228958460136189010518907842655745613907883584082303719361117764143675669788398696691416835419367300960320247538287953913768517934359485110948161264420410079860772242403092841409468797810199864043130740332443239741503826847171629310029792742295796836591875962509745621025854406766020460287424567995336936191932088070650320366323686591264719358124631631721543306357648938493465320051519697031833997582255063542681451747870984150643641903010270518160437411760322370824368861783187176367571319194007109152718499948777387058141242344705824131539606560966131251444556641643875135542256827654267076924336616501324864382065525180657066456947434045357773679150976067492951695796630429257290894600248585007748767786992701835554254835417643216986052933939331258804396758514881010082601857103166513780523189522742675123641642360725225830184385764188980373306185261630217554789005118622141511562888421486575449606879535908101943196786218518876205825953699948119231600756780347848600631158774409765149763608856193785435405118028649922326940733589947104122116226335207500056153186835454720947440288009311131553117727189215958807536552694590450338738685706884904770159278108288861807185314647039584694909727139794959912951703687519294133035882527125817568914548250841144653858652328849440771598731843872698587037237461547917959227336619518604715404926503207959469168580146976894421423235533524364006868371508940160610946905951777218749247798859417911530884898585862113072170647404101838668152141151254711911400732652037218585341290445848127055173546904960247895036988156825288285049282335078248680213546666741266495434499068410545716592701796134853445763932849543568347223539328075655168069264459145584040493621549581241336330063749615862539696922096619878128983407687445788897326695342993059051919285234459464356512555031568062523747854425245894064128589874160335055578103309614429692077143784807821257991333441471000615966889714643736276659138106631740032141881892653504060417488873352240329615911895503111200366332099713428627673091994324015982352626681516274165033421736362431327099069389799451170353595719850131013613099429853833003569515325938545013990261549116220144558058141653941704582786118808958688709137181483055478819438339757993163833170225436587825138866390962787324241000817963944549123350032273865921908261051882089749495186407254443382096864419258976411860202538929128993407376589403552801482380988521725150698359620026087085683061633705076516970184468837452208209795474703448457458231387548334624634276402199928063397551519718317022062033153298444986931193959741274748805546346252797346614922537060912977251735448661896434851698354413684327794270860903272181418467095290905664771744696373540669305695657957064290371702605731773435348021101167404051581481117215921652944126797965952172766737898810587877340383466779190899947192283925002109816400921958788394256645969736145342991653762034024618260757102637153168889952058792700474962679182957498382710012091308972913923185457320089481806536939397896112595490919149297707477008647300125975761679528732465736642175423333211339017847275427269671349559445583456144722176316504933192089798222822968110909275912207428585093626795170501819236164653256287050167961975957857591633716575662654174900323625255988050676599778533182573532485306136819100449397532702917704673835608695572903959134866141625938923100601463299927994790557576168365289535072707752185605642507149680172356141993733308068453899306009173540548886868043761137310056463876053127089183450208438663020026410082556090002916284058360897260674132438592511332301736659796145761997933999965250200899323041612951171073650930034506413185409160787478082301524551590716619842306114484605200099065650169816547379965932579743061589523311283438825864446182279645291256244984023265898292578392221938055080901652128126197368210682196117818751602273638947170696335051762851972288324709016567554779761245738612713265735236747260081206719311412969665224536496644311841391083295564160781039632336201490018341222463351584666091456080973762282801383366235461674192444411112719412494395848194047603086283703737876712030995990532181008351177217184497409818726262761191553272323222165038521607883658473467081288676408518450831043196623562985618222263160106463286548587077394541648609393821588836945104201511412569460992660447987353021262677050636572348413877884733461464147063532537925782490906539681378141423691213535668892514944654018369344127721685454982937260207619613175322878195967524059098555484702576689616106818259049973878809833494845237363656998291468048232794735905940690553768195824954700707479084059120711139301457599968148793989129300741209965678537755472006772273323175114264485734516658838613234303778351927663327186572175798077033258825073746018920311177798917842366867683287534780471849458856956433650720503211164875861575345365946050033903612162584986931261791880722441393600102512723780875198670377195057669640676458460665442899485372762152208426249629857751247873940254735147767266122975851567438053994054731924732998656072240836717527785994486495685529486005712911511592326150141650630190745410578895002202308058327353142898394955450303238941894792848839459996498942203164978267149311701391590830933985484180231967810040644539059972741502041486641269610144214119097391532324415919209818241048654541153175961529138563770526638116767993159349711768152754525298908090260913847868250624891120217341089431887478373486796931455348481464205813456609339347532365216024416139236556955050421172160851585755714563568670846514645498781232312730357995986457462596046788930997371298745986473462359172880334004692062341470734097407449925249668549246516337083396479080007767671725372435509877105733000460826905363222817695987893665117083176289632594140231868006380423774583713729514249579869848477942093722861779647338600348094711359312870085509151337016138610601569627671816454525447930162771232950493963641104593425717949606727756686912125188956509936476257214306791432185710394740519135116918764056349196252970134233980603290061078877934634192945573354789072776193874340529296349651219418460367046714511011742643016203371071196371358286733951094572184713041747983967922144820194750055222517837418830072093230460264017025780682303471306119216369326927745565308482658014020861173488921810386498100433532298137045467689730553898022151806457991055298343843744286847405726360758988560899808973400371699694932619584635271552406699956796469148727018423913915592934582527528213861328730956412587465171380842712354885819924450447999754063122975764099721055226971414514243270993510393260419428937236173834192333112084886637439839600785973790144652942671760425996814395477351087688930751972915671877615177421391661939233511903341552659884597361779846039513180743630848511592276161531502810222030854589863594200051001412849667914013911471714649489915130952092297246384059615890358040180877988559258833282843270493280983343131211253668027181466455643248101828058768329283468724127088845801308831899667611513294181141440672972635914604584540587722377315836498210682341066050412240914052289022623024914438119367093386905052360038373115468645995259209357294288417182421125919016495664476290681595294022406325022680438359025245618307909178155708558371989878266254612189587533893791944489886437405931574285806642093617921858987431050837100513958286595123983807288661620237372448643753519281250041136409702469439572212170832350112715382876263614151821827951358752312444650342477348451772444956023383424915009008249475752986254997294069841142046785369914718942878656810105502562172840960697673773034488385741391307441770989973047485548450748879989526882750158809696312598991259111818937197775019138359874851127507929410207155151026506890893372658992923506612260409350278173211789220355509901041760399338597578662148760820405375904144285144666709603439570690246754287329145481960524629572862523751210732775644738454143708730413193243305330903991040404433815069478551896712545043954312369930289059854957437659073968578965990823734914549453386585718050319641169265221157692641003840505621281568736838799913775345126631706553508707173091902357331377444834325516072529153527286099352807514233695602313329490241247424676308513016182820773809879687115237139923313037400572299170017120664174688426959132309951124696705446938981665426156455277049267787318381998994234934988945938341649672906129497876653115088820197079006595715150730895068905709017465721833032224032813502678275569432701880283254951421037285562397870223280732639893485665689114090603191259251431349176670366995197827144704668548846172950572579951732186775439590066909152786147402461682466946652701552714918704456492905621724484635462606275675343888367072818058486223078944818144034034749691184989909698049497130522771426979452739557598823164796017713501452656363317702121969275474638091503216956608575488328399241038926604333660432631414520140475173798311403193349130604492842922518081581993654136180441883032038896965590941607342067367881125630989783662915912924152251228060478803911687825493866911926400997256223374463173687664749508940375185330308019205061077536507130876998257264822925461549600244475766008723803254218661939675641912934262229992118245212682063147356691803683928865575954244935523123693270375861774988917506657604928071485193183639989756025421557427716319647399619605179055879584780540376039172466465864187849194571208478687792340481358866023409247337718756467512321984297351893696696250701722285102757973568098135773284815859623036933797814149940801386736647071957352744415251665232113202861460359200890541925564701336439281285475365888900716034700431774831640129533932429744540667162105133623500434474369563396060590156605357080518752495520238709835974354353649976958109955775425500888337734393778196549692757080949897804945931862394334487117005295997031836072743477521538385365252597279524841170655956311208288483371856340714064567243979944816006163402540206481539650185685176710707788938138368830860823751143321987881925560072226844871131646931172198054275903057793184455652771089363609296905690381000990946565823810407933496193844261483674390954747430915856501448376008148700089926503666834197007233836030281524822492040712292511490309603826951714882545338131728925831220736715610867199937787832861590109130437589352939728841663265491508082500385802284467841838908993850701648822643972230107698291104210631314967703281467811845189591000466996664056331602564821647504520178047261281930948207226677023778839003516857630847630767638715589909217590007867404680325773952273214409534188211273341516228816282046580752687950785391294734077152427741845213507514980224488412822242835035467580648087431801544751422491850687731627499062009917898111981472816853750385371131194104503913990636840663218860420799264551432421201587558705750672188202386584596550131277944916831118134004976486513207435068897294585816587440122634369861509655702733207554209964354649151649359938307316518493084757835521731281833153426937642478612835067433355000070666036123059602334905164295122492290966090395197788431288066053163278908039414502475463631896716603727962743353330778984702168715333694642481496645928844437353790896164518994661883022799179631801279415805570417816944379775646923098908301385647047625799533909932866233933589922558974362247789014580506973058571134272198347497964048388452357712498349175306118204412997748623900153198827105846141534474568373331027109249199140158578250866366159882684587467477807335185679699433897638649905617129130233883485606498294605302026822050825027817751207894286793479839260800391857602582041492085222279677649179897204116339040372770733652770162020588470128965250534148598294219676816370183418741781659332354539869387949458506985390175379151510276706541053083871032120679232269585064346119763350397511885088203828553622775402259657820850763834214873740682392128737335321667220996939443192030197703419288496433358688522535417644558612983633542337307618028942994206223999406505421513304024400714062365749459060355194801769598286631212283598853305374702644862419541137389653081263992227777381283242093385328104081730218449361476320040214003280890361928276978945909926170487313799594869966413882294942572241900618438425708813891620936397669395910903658852429008111834605991304604286851159628226697972779112189585596608799073358723752643528773623126387913461937415536165172550962927919811267659102766960021358064924856053691777813329722766592697863784671515670562571801065582018990938187402130813202997778567115725507579839321651677033108242111169917822068190767765729457694666481271336243415188909575839234775038363474562759426374379870241255482846572841503034023929768780505031799879507168136299939554712810659145605959814885237005961033649248411031823366822590187298028125049516276990062825421904976403901666945592366097105206172482649391585030104648271428618493592022777547480285636484533937548040944754976788056889575005282707193752286903145971156415997037403391592612884240193585026655247133951338896015309425375458403566654184323665054430277192759806527438030847696936500164727321159182314514651667730920586910618485302105932638909275400826773517515383675034505732264153175781939926129472277639158185799377032059708203339092937253645921279477002814326757082667139091011977086217699052766173997150524114670900276712035432459335434803298224986308063848033962224693651912212151928676259351299976624909508318490374727071922682689301516338384114105634456291724877640669045631161886598976809380786751292078654728044366483873595781345075166660045119741213610347830601494041078116448924692138236389534278400121284463038954542732583557422987086033703484173688263989507284361157244750834655632320644292835350839134199109955208530372210152088826502013979564663000481288094768849560454325307011721451555864269223565271257279370096179321670847292559014559575916540998650715002918912494615738002403970646090165625622812662077413095316288006623526018774899119699400317571739692727147380597697177878736090523555346506764686019083075815537396011536570951344015584817145330590257601881075099665210167050313298749243434070201261078519925857692251582274116120611560973632952259107004381830016926044359432288165599282473511701137758405438322181619116752309913978413951443665295806133655616097513260392973529450907097013926297087128929825204116073836372387342009652678280742896143436374265477875436196977097367757905219577316841217936162579291224972428326893091677511135913117137120781908714799659043938860071732264556870229076832193552281821858056477623243275938763675745633979915089190033796993788966340191203528051962080248564800334694826396460505288055273751012206478747348170268907171033274124485612429053084814218835742804488450738326060805762810492328807967777520551071764586570157051601399047153254577295812618905679579856269203007693396073012642368095013218854684213380173743929189859798367514643340272000161174408335848770513026413269728744794200800280735165554829129817615282234788887541226735934205283576591178374052169862239671311345332378790479933135103612742469141303355693644954149651600487322890468059519124268664443964129851891169930020929399081378762019293941847286454474976572781644100364568274362728418289886529665373154389270565342408821119299403500747451721393148694057691139152031352737961616941390563506739500836806791083688196522854687443113676173362125190383842933451125678073364054498226794155489192573195418805361323164199637555787778024528346936147233651586752072056867297001638146681217115279801057239130879694055149017748665822744939427399486947000517003817510914309301699883577731684633430008936835298876399732529366492474729141916782647328584703652523183259140567245742609360685563621216682885381651528063893923783363822059019911167909534793583718012750614112284138899546328293803647205104929133605808100483833114687003456028417025856581511161544973647783911072593608690724968993911710014246278731337609769114191013592309695661706981424527554808104947339779881348000695313392146955971250372444623561875802623998113367594759917951265649810409084323490931809572596130222541291688588685988982660612199166235920855327387319662966233080777500526481255407275650262447168560264406858098257684811148729777291789932782791074648572249301242899283693195892948353361022761210323402514805789047780368255179479739077179422257278210002626684685298823381143891172388659796495982261984977017589646540842007147929811636712921380926044704711375904287276160935718988607140829054641493441736953685552250231508244812174799875726128659860318101306384594136209218797218281805128430203412843026361076272118058862829485662092846864289972854354866745826959679476823345661671924133044676750420315362288958669034155194166577030897114530622905205220725856786562002137615527537307506615068681529467891522806354079072275715895669211473890487118507256333937570448599475390653598279984841339982082438955325605890064691979698933309894595116849255040759523988982104435397972339588533059100054470765804718062551106866701275618837325233458513540598670521899905039293797777498139566531560600768777196542492683938959213074978782206770523669254815606998933882930502582360155617177400645310119486959042423764997892878650468253631530678997290925904162959114195171666942958989580732693177931471132061809895439059162006210279557444487480532368353315633290160004538473395571615835738079437288629597427389317521957418775521833233579737159778683624393440209358929779786261665948882038390400937603566227642080999450038181461788088250975071607915660643493293356057990462166006588267479124494345454768086868112312360546487946486174433587682276758658521079381970570934920016402352579044618402915951382283569380939956228600071168686155269627052758728763588069631750651124691734941055545008634499620393666519025122544035321432182053083271294249486135461966569293759839716314441306372474826353622640863925198346427929132691074278031304353697250794756256130874472915443648780078202960710128324818179825588619288111003699841906337120707109346943528652052763499381649759235602872330313393230594885454482531719590618737848740569306084764210244515533424539990971689957662043347059843322747745071527313797462095604345444620912861600148852218897785962096959931671374365888007012905346144700271184348755423593472821688755649077604702788637312996215139505632051904535080742351492137033433336872810712643527371515619767357716012004597502909097302819495408379573245537354366211633441419442760262993352644006214453829766210960971469538868498361223186928065675331568521877984845857319605527169867462903813102572355571896837227904010685608345457365538440050207310249908427542522734601575412065870337318934197537468549321999599650996781206080589241565951323922355935365622263683225734971004964250046108417156945760807279409080728192461674026983541640329933290241007165921775432453601923181636284670025496599655486604758385945696141212421129536290292923388974884712847961168202025779049652919619973400788529913760370284822906222189668620858688555687484637083287143432616539380726817441062070259847429793584414951941274286474415591905652619312941422064267819700318426983092070383435812768229296936820485756793412757763628757186942752949392717719860733249581639485303503927860677039338089017747303497369880985314257618650224560555421067062508161885341430569296416371775115305168328151940813688449172124373378420076713447694052456988590307142205354850275083586452387185992882693905450473007554573598014003114447201182237461789147050312824567100580598674760013105559779204596556854910132067721864547803388322044234313812632250394510148259763527981162258542219089653968783461555458532982440703022032810760927469698044438858101246146282948352364432544396465838896155606920561190844143910296080217711601964463640093298767068982942575329499492896517773302936175126058451361192122644904709739612280850670964147797893431740975206315668430313017285810464083482908447409063519051912041968655132826502629180003146495576937873602442705921552490619878014626609201539298847957723364264438197222740764326587300157515559048798229535457856000822062325740541922469931883071686085794796325072749587872940704714513696758750372765287455060156928954649678331692578186093743492872954004179509862414078816567402783912924418387296060055476844380240814874040554086720313261135228379311962309301394706345260542994529419001660108651363656409184454834416183617208444928090710286879227538069804237473081239912022985842103340990257590667404870981041072339256081954866792434998588743376281689464110618460923815559480278106368089384444363116989558955210372805511987612263593203974788313943541478671067353367416099905147061220467798922026279544072925340253025380216771205416558569311816552751298954363902488051289132122081149309211229468386154842459985699567256068365755103087983618333838825603521288102789741887803412867757509582291830951918031401754837163577525140547563911392242860836409868851985228893387972842184184568009872352067673258750999049426077491948969702927044907802005516422004474993098074052140104294891255836633003930078562675932751493561895085039105263800138143709834614463231010652908931274851407100808838346300638388830912254644191543018354542768356836322607372130738763884941992467091182382151225931343888328010419467683592393632437819911416054694505711005422417732159799083425093418128943809195351313111440068283904742046709986362471278181537865952696691747654687630342245481664055426272028565368283685360025897159704034620788050480686692036637673376705413177011700126406534579194261708608394273711347431373815712894357872721426041172697225292682787016401720467429393533853988832929113129867124295124548483109105481823706659363568265171597346362155057811914844136831748233868809639264235619065265988589047181113111594762358945074308865440869545553633836694758385457316930795039440404184725647972904113740510817649445154108000133308783985724102120090542073070853355977535384439148620787834063968618763299291217398232330061872224392078723709552869121127406113554683421484423104202149551065649536181144988340286674011274240713688577264583879043984578886322791554120649299330606726309184049612903468402597123269036510800675812988671664124967426564254995109461181037913847532058436968080163325892717349721616236634669944298082243599749161535232362691114938248537091984986415598872735210199918129868744193597040091146006461538250433496086543979073457230223262938302481650137766763694483061100398173198552279862490528252000674989385933488271656776501135467669882986133127617437513267659009178550824159738644190069353944694341229415108917625682627544442334295552908052815986047566084669785452984175976015080953137411121261559744418953579011721475288666435821492772860535714385590258113611000049533234561014797592525035856436469691004691251331647203200450443926096814251167369132940294374860760477337662080464552188762374279105134734908200968579330923228707403597334353451850977802958618891847539059416307287385167944047794388490319470249933143795789126704691072791683290896880842941291242567797626034511782931653678854058957242016059315562966931172368140435169029864956409824357070408770181513772094724732771346090742912487523627622906672449860141736951922604644068944553372173506431130286951490405034197253841943852992386581347212312266942745497873183398273979982127428216247580098110720814227325924712948939556567309058369897099058042467804093404946673267987164656770832716397351935216520622260979258012611495688446366267928948488240978823390563737364352993607298687654356292892047512943064411787139782693802037422557934160069065394865718849736703672739120549380097014595088908557516551200783654332051112515799083484466617928240445640316278208566191981996403958579741157110762804988063070843228731837353753994045253621495268625013037094055165138996180557146201139681494222717585544239266089844339974060180603840255786519950287695115106621841535570890661425371819808989955663865113548538333844014761189321218711700568976312374976039590125866960987491925704723737475558374218051575044462728649247189590295003218901819975322388044047355299918043913274104470068632407338997602826068825057538311302299063029864657136963139945366715563810581191845420829250858404218157944031174403917944807707163982539545402373159757786983810331478091473370437365139948161405341806944231953520582872045710652794864108130140921475554787473533392537617756096112292822112949376835395203239100156189914283025201558151272741298995463292993647477216283994515705098786373387537213607543365323050898741165967759702586012254427080019747822603398739722744953809685583684070775713176650427897426234612418635484754390014825255502492926665286968417749085681739860284474602859980677319804915736564862577823914603187061330742792076232828092373247101042322878259473256494078768121978272019016492669831691135818747968529151930516470057402143968401160557248485948459535426695058139288110246409848304333452938114011326141988582376993542439765901025674787662506510500740524740673251602719446109889415889398946313659419539474549313231208634805855089949081273024702846598745309347864012649814632450126866321483386647248656561685136976839092790398802438883474607170822448675232405809515165013212363941523304873141204878449458459850154968094087588646035592473860943181114006193996168265009723616990294871566897641655647558466943441254660607881842623222912244939965809223816360588551945747834735511453021185503133328324887248496549613743443124035068020775152411794077712236485483181712020517851188288400035201563002930888939129057744810731957854452591645817674952984521641428765442371235092945995924083493455086076154316260839157806488653285077988535819220420970617330504772951318688337666643342069691038145332059059787744745465287728603202975190962901542973694602259007576477687247581062372459030760083747922248748413175450078954259011736095303268939874532468360991056995348498060275209124963814148195185792684896325908816307544914206534487327771018866928230465124217657663935125941539489569900991542650207968622373972328440349319985445189467706379215169245258594989745284937663222494004801595390873432293552452036960069161128380218047140999870561753438828782911451164095684543082278832492894012850508218787111269420206164331089441339838646097708300408191648868664140979020667881719587499487976283345452574324069975540996652779934224328736746147738897185042156692212680227127320372099326904053947099280213697060601111188990819998866700348403126564844057781861781712454470261328161600445764701204140275886857229691295617586244547707325445343219953812295944682661772122414547645319958258323771237926347781751706210955030205817035349094230735193255061892664784197044796326882129658583953532749046232568342838143784624947730995264542905139327382015942895416423983547217315157015507831512148542840175539854239455829758892471847443439559954542034853141146465339318002513976957345802495168848004075601243554293298368905393413392482186559587962709895226327647995379076669651906275105420957647938491621154110677535788728248520808991289677716691827458393596879195592159920658345171815920238108325471700992332222828658194132056009324402195735656482256683859576706226870513532860280160421809192641227854440943797816927775736205965954684515898676596155530708330953390475625657236177105079007080533949745804143692522967226811662995470192257202797831133806518343961869674748692529315315696217699378626079484101122728780566249700482489544516139875032079308578122591465992878261877110006735418286248157065150867261038733110488942016526917356870240668903451047597591155805544369548023008350517849637901103490752695602398427934406867662258007775921685350374623108395813917772533592389139681922313435818750351886609418257521658931663319506668641441210527874954261826574318376071705904941362394036601565485064447511067219401913046074146848269771133546012964345760894950973084866206062002096712867462517485043366009003211575008119024964253348046775858878742978234763694130909978233992199180441186500474080532646857692845345101215248526730600078337972757142464046400545726418915184947839856544835355977068240288505400908796623979744943074334417838060876614540929453448901453887018875660640156728752519970832276693256524067749743228722653999774495385244232935416155290961959428644784737351934646470423749476479649011339739478123964446195998586752173890081259407786248998809720932375593703579143509342250440280961779801811766696949818935860123060227926482917068808090785269359791242885805509341784758774463266403783683425115455782781854322407068452228600214540658492569975047484443890733577577159296845929182432307442319120955751067777069536324708226676026821321384974658108668077547740133039591273102882013614990443824837787090451026269610124502843324183117408714436445194693428452615141861347898789811841092764289568655795920404534740847175784944039238033837969787502982131749675438275934218659689207057248058550645771214154189818330133768121728514181527679921069212410952049877629254787902999109567629860074362365510692170468022407474854007492367257241886176972926104692326753257894196678519504045104557265747033189017169424261633031350482949681479587546668311371981882152837324699359907542035690027653288148206214570174590925125195699986130013270608670390493268813514242670540591552182649673251630251956019070417459503426582423258968019889238971280667907669032295865329440024174989201409914910201761222032759210268103660009295622508965766371680952287489569010751909571225510447627887001443416232528249606511647025391818384238431121718698805190626427776927909609740066539525932441824003693913871441173881806240731914904098196524467793914386959759442110445865002968016699875443346738077670113584961176130171067146347409657648802743503008354340773074233166789233370586591916658176524809900550890287976124336661649880078273880074760730594819456201775035580986959583245275750916299535135601795560765414591740465948191708569518270904310387705654852515306866663028429770048990416703339804188547164884986381236176142395524331111578557734529027271393645714562233037491978233639335652838566668414856179832641572005933389433399710465211937213892364292214188619282104117413491059828894435211835733690941150234041443197044871957307340536060156928568421951929445600373431472738091533740887028608444956487736120312326881365912458782119277484285297055701233631749348738674676002490422511060766230604284877981415658666277095932866268154186118415208938456233839814399497643728463050804426325069855140993907195098425243187480797677085940930652910448927993591224912433552431482531941062858202722090082392394052806617290560730955489249791217550052999340514345069763553895713112422075084849006037253747278125041813046518002892591804922600783130312484072443997637994799811874881840603552510128078437228535709989735054202639152397312844083081476672151736208010769177340905981178709728571429514217411246361485562722876495081400584110976164679795943043045649408764380218023048495985184873530181466944278407777469797428742995594949027537226814474660428562397173170067072417349445489341387224141171718925848206071147532566764430970354440955594681025814291159857781737857837814348075266418676810144580015772047810088083122972901539577456729266519211607419770322471719172541267882627409474557903109126441045082981710998289563979746321095233653127298964772566523100125613145124260248444758492712532167886260719987287407699632659853906473262852994190277973732060685191447011268242641612393184079730128378824015356504701425090987167143642136321136006131115375647219030655707212776754132952148834839199011053426433148929824708738209817541888332596753835662093835118573806275161857630189124941019985968553597291955252181912806284721768207848577289240652939659849815727410616414747886358989652873991658804450529208572709605072223223858822262802892827228630907908644576297274568436859184828120872562052862285229343790819821162367189933612870115276643398869078699268556757618084459631593321735239557868441624409618551175110652493724173953384078371350092150951644647392660404912155159767986399285599540502776036889868734805535929064793228751206203331463022692970306000607701055534098445065559580311945949383435039075954106892772140411276848410780269809036106178938278434329861820795612647344740167966835963633699176940022516584604704470063901584901617672199490758655642715302298860285245518927654752904012998139964697625822409059965234527537945550874463435925773428271415572673148376659221756162904226655629191654038370259338455327360646962633176589252427339244762812391308041826798709395328171559414973019642796382723963368202536374380629068983354628060133484425340540695716262857881106601283865270915942948478332820708230696956078698250593270380238508427357278880535860070725441845761156951301523102995622702461299998646128187288510029097369344484916852935910506122622049351979237745592067494571737598059801590013494300617935277640113201980526429412657804724134734425627886661470006742179305539027913063091382400870608362162220073060878511282998837415440137188412475650217138940694597348958913419353894850688101436964728408926854813304913834980163902878511424600195502688417437009445996737787838982013221316040231562540673898856380456038457148884472273588473688179341892440853105847248854549194055490136917981777182257213075723116940387186677566096121191082343535935122244805910632817524766796082474209013077040579806588821359564640084096972938120432216235655533283187640320265751135239518691731962815077256107828373734393096967446297048402320501660972686785476018583148087905011776318769018606565734537943609682807336187068462037876968035315670356133931600841431986857565146048386800086434294352269074498659025419849386661052701885837935444476119929144709547418916999923907268663383860862492165589852829444650025614550457024272938644293504397506357697874306886232806193605352188896458862903453080063851756470047962714316254115195497377143304213289166610295786416383320703260691129858313049242074594760019638486514030869812918720577701720416423474538558977724822988875503356582559542311597603239731896052849530863873010120380177526223947008668592323300773333478800684703550581179668835950966921836583760226039077206538701152708612959681693217880389539830361291940554767770815998723566141566535826248767555801767475782777726035054411651465974898275267835912180270731885870183435480241653938161266222223670559747737623592017071544018657206080011731708762141766725224261189542258180157737327911591487672392057428279816133936228409872883022692461445323745697174836149146768678464266127304553036685307222049258341442559926796858944845525372906274070179868879473422553232600985845791875344350198617196514569672100563773497520160534840785454793122471714307275606929292312424843144346922002877636774541115084601915758028310461536330073520382955991499489901562384868295030345981036910817532594700769529012590370138415189142883505056490956146211613601089947757079709489587220965950494657910851541993727979963701002647797066028757866826177089944487080548758385736698569870954172185964509025062962293840319417453333621588794577896962226575854853860477980061201354887861064694116816905116529183555520344460279379632504420448692911969858389439860969990122216091591395349923937572918753901780928071659515765286462133038355298978433902954487433896071521605284341800643997597318442589922678913977526717525716892684193946128759351154656440892954719854579354067409604351675487059379090385819200402516918377177468123406231774307725314718662564131460624022799903459707147584777194317359206113418707125442759318360323000988314496666802791722914087445543692952454691590387975740719485793907737137909253764493761978126642203663072732229418669008804682670915396875050902257921603726932156949013786119788006688716941945972833080522413481140820166378448722318883016037361303822834200772696285029761184666568516265138431456427059334456993676641432365118792654986707433759203432987322512787970141725952365637009327843706578919829310175568540726907223018441083255109384030991712328433400195217212935422598086437862529030379957479400285310146840074758194376805201054871145331957392022977615807956074877453230415680666238617518776923570362205171060273706671398249543649847833620263005531991831078863258400199203239888625879839494475925478617372919176562590323887766110269003243382870973788827300471968543229024234708896262310017727657484235466804491781444927137108619211601613313183620640900029249790443781689436706841290019492196703280609223766646889185002658976610705273021101697482819103072836172314554668815194251696300003646475730573950939803853086059849566127034750120889929002310626289705336487813908819058909495766691121612356543101003101870052903244097872921734668159082849526908241339165968144558877361355343405477853471538806389946850970514618979883097426393212734695898994519558545949612523825011949392420508306932192756118853899267125540810746515983483769448905932349898764195981545075892588837791585316127173371861625444421592685104671590095399037148297250732170087441766341245761293851301751628562992320483734560974470038613213088212146869639725760559006069537222326144115024395044708878871656210320428148932517257106182637470115330196193328646253485455284428895818315239036488614131087484210979251779206637181062584023646470709036245800744795588763179040166910301958072083599480834238941381696188516205471269638637304371451523385179954515565335511071264703439424966493163918715215789560968906296130701292003817845439823433650650326065953602691381343740737149409458952388982802474090123528722337404315593907050951539547185292716869375188448527461569758087707299079416389540718233434494993153001471379039257950181828709117336349098764747137105086164745352731210790005344522262403806847936398280592516624973684950120022310623641026343055214980244472900629010639642376426544315399226603737553397763917604943967612098469455054486518017019653556849848942074129896770124390517156466271396657847328000706859731276053307297801047327007090163451660812593529713856386507757062195252432299901295251899462154344981013246726878952284612687038986410988441186790815218281001604994880667422523701017479468912259772983783652147822627651327651009276016768046519291259006466217966608152716686946788199740535874557671559779578056319085988095560905237474875118227895093463767403311325867843453544693514998135223783991854550748063333990985195310884408625772141535974709793755896228419237777008407734574453489127643465878256583575121067282785950078649769615427027092961183460232247695486932219759104246463776457420875957067771852770874978108758972931729077505991623636180483955188588557951335473896407141709887027943146265718510334319587454740367865214673882542521220801935732195800196186013163538087628914402220870133133646264366591469756285899864913711752378403996971833397871746598660051251454130566342375619482771963814133327467149548148454580633304413220819084560310857327343481169513854994091759510875648580137274132897193650038653363252744390511871027337557415938277365933247504635660801573168081076792643933261714645050959507492896239500570702612573504287719923118110937387948887934998772161572640522804951466916745088572539661123952049830670175922526704102299460849620408907556952367726011896216756230098535193294876188086080491926760785751813489867641242356315988958314650248177393503540025844330143259973982138389772293199229188827461683093504889999634600016294477830383852719837010189681058837835365980851882374632437368643938535410815732295877849870732676562578602130657205106363183411178941872763895374985833292000579554982053411376719797138652053659907143502269509499269774371700439063625777018778750693250883837404275649550907727402333385748012674157459501363247740604170939376911685353444475395137799006729821036535093327309542334140047200864935593379335434741784048949869477810666331189357189638250090599472739227782068010759365325500037145228765813217612409541496812289477725636713659311725098187903867687927202567687944476147646306276107937251556862125904702079517371659085793621812359421480864962581408757406292925316247492320496802474320325687240266743144575191685567167277621094772216848806678448944712205863446852910057034254996098788884890742526393186053187399963135041480878335927883369416935247767125373489008245952173559479592269097643098054304060176824192477581530374578385897241402275088550321572135390223276882734540091313614853427611393024769622009882014451271473653995375230543358510933324732811465002503260876420576937648260805509812872965257313487014751320538916890629600669002437258572779170241266279540358296436114637969655438754657515494829216403348062212097921870684475248621101340159393354054399225630165595926853071653380250674059593682733590472771254808236998181869598816812425913174930898568009168884853067192484454084271771239532870127903485764236419755744856658727354961815617515838842999154169784699788081069539875380868731476995291289512111509899311491164422827019514460501664642830279874758864126619604390104257361428261125297490908120728672577396981030072417381935115606410256818468607203958802384429775549897133781022686268925753056003508095406201606604114725708598181145489059984412493427172481673247097025182530776808763141951693418979827691871643118897015694927885305973168196295340260443150173487987310940029006017128526589091793619966972187507909158948935633830793862227669219600468430461910814283460042256895797319821394702619871408896887111673743358712296312325866955156191744753315497502488264204956250038049934231944462559892697522382952175888771537353073276085294278794131925576425945689313722834745421095792529680549221961301361694342883920513148880767471898416072249078741455757243547402918756083339409066589772546958498165015857545216854185922260324132032132573037891907688974913493085189116089697468472226020962992093871410341207682303029872132360010890018137232445546562924241189211848930765746187773934596444943852337618599659196696275249396963736096796638946048601731571972386564620760321893972321570841353271569212185972647997893091378990305912768199480032910001983689368925340154819813607239825245751837925963303325937979822096856930680972152471434297198210954173339401010591750279043061191320511059547463300181945232422538226111811815098155817196323865743856148701614569407729329263998221661672125521931241591454884050826539823595386374240755360790733634709532130923614067743663394487574901951471768127162465468540820985937126556566328480770232841161627919007464912870999858704392828848641844842401729622796474226155809826453340560312206457974498234262025139087996465204478234397519161248117376458313123015067909009279667917520850447064369178824006445295497192753503704539194001085171964487017314393117934934042024085163183969432715376483507653233473085935766509626969304753842664810948448294655053997031263145553149009011237651234691899403044230842750025621882082886522733350206374672307619164466451131681158059155311932918117129072033698219525837021719087726052936464986626038264849162456005633291746179178412112268529076434025553735182027426918939959796310304904551468988246734719069241877594313013275396052849351359251383322668104004973671206710869233026126085569776320525502226383698499050787547163542597111635144471357268445958103893310417861144762910128221956008634928693096361301024386514849299164007299943887255884838020787457112587595876528837467363361156137312720237164514997777671698901097922056144573757618716080964001855208442851004447725183998387227805093079448316570566907315111480032269578644004557106891047881796968122945594319810714665242085318626043052652279933332244788819442070511381228769198640061641989541257022421401040318694449202251228141367896922206782382239616653879910973652001326736292129447883833314364716546669404430517034071859356393785417320166345806499539007465372152655269037062210554708053647700949601439477516862851180894892830381609217003454119648595251439793525390282287185670907894061572584017537981406546647737258792879059665528655105515494929414994773278052498037166629796719504983939463219100124970407165266307173450304588087030265960476295171997708815791689101912200138974571213081945313562613226470184224544832921564595864134809748329374698964015147543236558400296619906302803966091508545120930883210356349937398877200636264876908728540694942655312952282580168553139055021953267818056272288929311341686240454183088026892064244568514838915118408217979397604249401737369414955879096344315925908807590957646555762379882027936104331924276880553925980483156015859682730960851668762920259269337147958727690571000017717960383301869438756288267790856304273068743653331203372675938605322116746063478024647644168221885601881656553659524362011973205955134000847764297173692963668852793032500529895382392189642069042818779282955035827502539491990206413520850565860644632586416967678806755389926070271565652778210833865029409703726737592592508126393635620160255305070984135807854282937471662150629823909482874386803714203310233123161575895614553882608569471087927110335451330204060837925896335836845791124966302714998245804537031500271914256277586601929336820316340632317295841664087419544391655690891890001383039723765519419624584394256002458537246540163304852944004405261273037249076186872659756972687380396415350111323739617493762839494581715915804586781982909822755137858261853293932003901374546354160098282187008238024081921658459590859228705050724617402212824882029299912377645295300297540243538368453357096734618997505053194223432948659655341300720572836872620934127877302649246210772416564831609855324363714293597514609575206509003745199543134866388673744814831289443214561273684517322670023879823758640813925436816373639339525891329676747360198302827727674543165877436311818744530135090299561473863678573835919430086723900861599199857104361567278454051443289138565376737761001354442105480733485857683129751642978555149948715094580645820944876923170982786196573249242563598854741231801227350553968735851800578405597887088399721708545181290398908665707207151085512248395894527111812670154485166706231168739302777323587580460766045682803296630082510526652123689177552696389091664850590868746943944152385353388154384188386484560030038714925089488064975190391299335263271012474187432422244631070163551039112484399075350378221173281800075426674665631873168656073634168491507805324977686004505645800457540860330176860816194243671377658987556428026380998227792202764434921896401637840607665426539842663269587400690474808889802833163267481656469014029904516113967506901578200227063754556444659518409079844137797807880179176300362689780392537253853503413902350427251272505863108532414378300711090013730550216164179708313522834707572208909511604736727607401123441414816333669193772789694931389463934567416468198121001678814019585281749861597029837200829439613326209862477937377437767115444709816332519177757539343735506176292787446552848839204640576222577417730472920737339904386997845433059639904371269386410684287988208480491015520972729422671746314717283892069745942247768258742800238106055207677397493570371653557092890278306062692314323156277754261328934402853635766233309619093432731816540347365651476813864663383369782898308978868181836102583694687366886136864389742678572151770893166228769290783483951804848182125554369153467886236271999410790481588465231651248949654755630195840598564570005047531200121419619617404099285580690661166324861926596506748324360517032834974943475997383596844419355298220323225606520023048072197671181270286405072365484277163263804733188878596297724758146339821555509216755321755202201358965762104823349843468745067250553765259896941244035382358423297043871544039836793808699283172911139644358537167626106975374332204327357335340606620710316213440848098641052936917824160943623214595162016401091289444251385055858438317350187886276708185655644984818612490572869625600992508214303713357792506978047389929579653571621940268108127257259910726349484935549188741534626672130896115657987098707165371411016521166858398867275868201890280403705965604437535484808201395950677392698327892917554582731781834962660319086389118199268867803591303032933915902393610496220836182666247407852890918534621254228727745459902583801525300647236599130972856474404413567077322513227625354115039654423369698604057679582638382948268447274809709321364878285637853521898424712180880688893841221157209514422258820846447009324091633736831405798093585188474259121239417716514650049096766446749834672495967947181831595039163729588733968902662733861844711192068736300088618109984814847655649041307457785658572324477440216470333515565463916530462908121874488517564035815558286857836800305975025258877988671666767930221404459206469002255866133754700981243374612896963910399461912172059916605013820926343801441444464068230606567916830932501768164962898108767291877991533806234164985654066230670720227330404401976245177238865841165219471646048357042768248666362979187320836249736865418321087726607760134856617434188533366634848886426983431983967610301846004740123466403756108396581676711592856034661364456484592487796232930872085605208124796900038735359243416312983201399891965112698083357495659100214514893318402161665807312402389381450915205029131270641884215737001588303722856300602149007688202563298279931355225676285764688613097194376502313694131958179070061318495926891702875045570422596052804097208680560895892490549745537208769907638423388215139414645004087682179548753082688163115858603975026607003416326263656494821221145498521623521687535290468086361224466796351351508570006804395176314996190775286854669384388797360405573432652442966596234560413067872413209465460415726417270688372702918446150007171396075045495096219002881831274805545953846226670131343996349898934775788104286584856983620195977331157345321020936104728388971851003553657701016945410319268366469474605109806569795300370950850483078158648010292838965020882183901689728684432558722977930601031831220251417518300974236212677976197110561016320778211363308866849409427891419694855125491144177502160230633683680751158228848891610786676648255021421059513041945011202216001736555959678470366594957375441422868962805439454960855518919326130363722364922260433973535148437841940121693412393654221969221337487732690868349345116450526152801991172362436226894651588938225143888853295309454552864215574671766034884074509295829039268614544377113768439440256999855127163616322867744444231164232544398888654054201977784918099977667087611761145304171924596757195723412651682552120548211671223636507371296328200970220757691153771172578862210745331085420113473098084877714102486877373233960756014519765983927901168116315687409001039122143838072095303103336970396307726710560108820877595070541507104895860542093311066235531417501444796975231804757075504808836643727947380813789487513184072076341866572446039109221341798075789646728045209617296702964776284798435158683819036019458150180265835212412360559010120787602350402895119972340947495479287547462491405105285514420624930129606478065433957931767185888908560643761689769776565028980709469095644425476916952638621183092613433448762308132502507130134465235615804200237237231627368809299697188656793176745644938414199169107224627790350909308506965017931312789056702474035749584718761968271877942453458264065270355458934543030527870261375414229574262345090510418046444873249468046344665857748888923720428096224523297352925856975396345664000364953708355971756818952789620070696023246807432949275361137168043052219742509321693608929451153268906407555712332848429676145210582721083685345511223847955751672753479740766864263558229165547214512108888500804961946114724200308345246222203121672355247139551383047034646821523713826976564789878756183616144078154273623714473504197130360855290618365559423610045518306224774323018243981383571338752168697386712943369172001266047954037889050161151172746680012848770303456877784056134360404776893401822256036209639014154768846720799805354427099537430921516493580854909034361460510421204638232487852035611105738075024991499130243183756509390982524835580318440854041726925671885009670599926845450573829102779675357060518592388288893983508226342239221076088653231306010993867528174542056376500833648645592256437742751780856118744321939288499039525007893018122617781176569199703981900592279194795422970654404909615422684475121796384140065268411498280390356120917735469204691506781217934020005719316709120010859431429001404336918514616093345206756987735514430668738587840786128659427135483521366480088744579964518455765315506133530524505163009143555701258177992901917643449925995732009592524747689509051189627310962401673129184237507478696179228929120272742234760083059970778500997330060294096757240418707123308633099743702458661783864767582729670319186243759972806378403193853550063410930166502094754317212953188751756462449076140425729011931539230750491833458548119010319196341302870436188074369345267748770630053048549618845218538169134268682865969248515336318979159211287678456878502492909722735273847037157850434215992487715672237539607328142641674672201018760956067074106058752363260966807417303957294424894825573138915383498970677536468848242851286994654661140904320538851049213706536147014432026515621206807537421302515518125579775086389144455077407406067129592695915064077980187765609379296153172904880487304972173889626455922277566420658716087719341651180402434449463361420367437038158737213523270240556255085799866914110327151339188744426555465446750909833611988383094804043642662668732504542635098490997852052475837779205671844232298314069631039973721487900949001812664595971524569431882192825284294908172742032261275115725368017197988680782502448405744342323657156254149475843615134838917225474713391590038205701003032895029983132720652415861908385209100981444683367904746746686034056190009633352421158556446346093250524902437125624933874490637100633664973505965703570772942559596229655627568072004012458664102947785663138286190200812174507639824330861005264760218648883872718922792094170826001407638538315032887439505591277111775153560478744232377653167989269203153873528848369545048446195630877159000261390688621130870460372026547628754934293874939055160098584037238776489068876841946792636898347224416440997698500158832380087011349561212103552469810634454415772375765119056403818675366955539493214942528444577511815232592619872704977470229924205721827790691080091243057122255235153549193279046411675973555984744574742866842804939623324594180675549516865893386723277857621844733584821735158960065570341171336619601317468503284344439853449611994164943094166879920742607003053431195242052286864873605509747309411151179348552144593171742831693893237128734792679512923809178590259251136011229535100406905340615393864602635733902686886663816733867263427821604581966648516251064621039350899750994820477944132697828903961537131678826863317750253358821813399254077351171078998040036720991108991778821522985065285168997101763332243118885125444093010317170597374215492116397848738681560234236844937399353735761386456134719577678214103725678616171065757547047793095323947290264638961701335111119473153413999834316177369100633269542011474485712557747074353230625792541279507534765667632600970901995599737188821175124625149328368335110090085727017954221707112095673977454670771563237050342706563805862733723555845264736721949654423614814599963031785272864459235041807969340295791664519495905715675174161287051578749517376981497304288871334476014681518727214278894115410114481498136015655620493148725361886690251627819936492323747015975181329678957087968994134665516998538751165779785484285365535284799999831770254513748165783298984258576278495336965625485996549456597077860886117524607867120075124687929887163412950304016364376456729530576519164123832260374435337352975111980975565466163457588755835483228390373545859834115719298517080679401825183460548522493852102252373077250701983567109726183486612426817618927362229237210271124616816028893138588466964191695634519462580228183448337084844588729683470935803277229264634591083874715489647662025490491700464884673886475253059754878089257241936315711893942813598485930616117707636355484674756068173983092710864792386843401822659333151311437475667038738913781928653642570057018718533176956439231665100209694874557331103917682588966316536815897437201884093931810781582495733815772411702819684881099114409944824241852429893206332582454559019256568590347788249284832503809005781263948505647335994298447705784544679483695431944412393535138494129396696255956670997882708567543428147407515567627243992908748008712066914587896312348705624568272297632443802443497672512989819105085049098996618979085485206313505480185640526241504823276271234735453644009876434074261104456941870091727603457302632561608173436181533563757490305806002177444348065935536576516275183854446971375188495195428054488106087006343955662435210924772729505156045457455977722024848736463975330279295609439731753863124696739369070833902699176177509221416012030419470786420483341210401463592728568606464833753738102290916093420355215802532764942546783124011536379016721232384847206078907528432538566838167191832405516725751843894524011605136552785453595185086901012630006017341836765128980517122687234854862403161607357375349700299487529798593870484376575207220748558808242185396394567906956749759475379639441956637498159525147411590722255485499724122658781435483472083783402810549440099247937654895869531791892147507379574978150813133714502529753777866852563917582520701706000662062854088624842793926161406926225959390233411938046385866363815138946513420529967074819002834882975127696930452273630913480515207190077710129272614299880977631605237606681850282499661549650831798078752122503362457902826607907568340424607426018718774262005223292167208441208147750431700350814972468629901737793295758375059341339957577472390615385225204192764345648574798037190258982701312299559226171557865112637617168497851340792440134266172612029276850017445962458996839934064432503208055633128100716937405069859906598640102944364727336670000892438408615484601373738081658168360744875513478349387125792833892927852130557089343388218038233824524480004823067846811590985162498058330129206134892811894531927966341386529587337485218455038899041810588144255134669640217902742408518501129942376507953750780039715096863467783222891737279959239329170944788182582652837797583740201315388064231683611583835236391885742759907222311823837445779162013865621612424179552401556792192758259250773019351759507178333356749190386906100974322839486727943850068331704821013131147974750256626675970458737577672301093274614815642847086584629619293455368717802024029863310074524320298799950012460587955404926563382911478590331948622659786671658612687715281976543171822123481902892965462743596555925693851583410473842964207830126501205958528410098825862175043633485729766827201882100190112334862259422786236970945292623059745725532619260978306700206786685663032037236877046690056520091127830618051461038042931050883286235898162554454711186536331667828736691617942957549390183982691604329902560618491329962040231053257826425822213218001852575125133404550303947101910728029959928922583170343712342406889264857502610844091156680746372244445889972536517140253185159636579521492930749959086048343844793453212574395990216189268425899938056477103820942300833813770922360882938978391046937669694217817670324575998949991877666148858603095565347043337073608607687487025511807274657085092439229975251252261526456800148745171834710866962470616871977758909863112047828201024641082141645495104911808467375713243087274746879546788394705531695104695501415078037518921178155880683193363331509109718108044435115672005753008433767294835846564153083395114115200917882509862577085158601906605221372294218019905955807052396432782826039820420411607046166474277447952734653738077178823995102482573544305648145500231515188370304339207063482967050908975127663593107778667890921297252391069043879171742311350534076607021085936809856502732829343580473016962221079139604674982660932770466025705028113430637054161376579672102958634414119624637121153207926730257956809263168413158161959626630876160648839071371094182702343665114957326223570211001318837422269956797008750728969335638481989030356036384192680280965729203584154119622641711703507432619831834867232538146081930314384050797918184413806311040615856770506613715762516201892806626167970441464349974132336923751103338358400298448986700625446042426867561932227507285219520331217533708232400663008787556606035762632256365277145122812945036475144403854148513029051475568442070705824563910852617431276828574431837968908473010187016925765904681540613128458433073057579177019534106446767400361624389694850218209826384258757134528609250471708990897761527065917997291502320807738667369188846384529750439571821556307801791839650004946643217936235974554818012096901988028936756580895176632844839570235053147494127712314106293494632855526663231061898862123897634876347040809743558211396641856443669545665605587427351300027110366243762792654439795791645129302539921670046970174707795708861130589062022585777299015327487675094655647847897734390218952633020668726046817664255709554898802574266461750431941891143989641153077913769214048415755208230819300405311581779623736516780688338941334673205535833211742207247270949408596015985177120696478467118016953688501239894555714518343147278413831895444711806728173343903742491152444378495596382111548048046280036471367792507133095442480877630483810969203059717961601722536286051963213813752263669877519738317570578365531520909516846346421463048432987827741342137078318934916411295923091084778628713537175223215505146297473355091725339200667238998205057261793762510583252925349995608100403794056584317185126249470453210419232927304704495095149200478809206607381638446332831799683810622275205130801213698698924285917675103675397824925641509643204336337252658024497490814794257260746543201016900901874694838029676761519150087474735332896929009351404359215801114282938298168710287328730115237753413399291017720230996472193778848843872740069757215605812036397466404404345564156377325133326376366775874577304955885235416143592090520895099320988520809967387425591465724885895384756115534310479336594438531987263517821663624102692338084342561977277824337887923066296803632078990424591836001946223043748001967426453287974418993592196188350066549163265312911739780843509491705505178213836138280430148803030857513435623603576279523885303377522849666063529306852678337996895161519587401349930621937197968092464161917230928630972407696291498645260632919212807814394088810901781535262679939932003289559926312657021135516172034990281847849525112944892277418182638650889243392979771569233306692886923774701080375444261158383705917592523505471830090534475452123623402437708449565269273261644825904883823024401606184600651835516515996520664051413925464949116063738466519861405889610130614270669041752196661185080705585448612926592393626865145002868154321827368685323638105589866702923579761067163590110437348184490868943745926066504008461698722241158709421704019179862987456861065482992436479052770818549517479395842688935069552614458881796135222063111010510745705223262150228594418904039273563714919341032603989821646180784201333670239377800556803421297246261632672887572549376396169135078420692989432884119447005000022594886996567501188018759158084818008316713595006459489860359376848473828793429145729458383346160356249779764156623848671528007378834695538005746839408333718102940091258642583788890742668660313899495025962454039779934914573887421945180195323691646063784320975240442723190121515428236725542385814408578266944248329266133107528408678820113322504148129818386765537688150540368363306074583109184273519254313187893662060548140174107798317546860798385973921377624383753312527277185201358164973619034476305337694929353242132173090406213222888211564518136026078572229404854355515801073756570206421227072801683084300446873202220839113982621357752750400231942688746403533767781027517910028824755396349782830127724920831488253151870627416976833733318818063694285725960269595825680857161315991913497248768910709631383614482000431067532595116699137591699265480433566776812429463125503986428784405110475351678761959351003729403270592371892018258494347081420312516719886063230859289560795828143036032766732417578240791153521647238091905051263049989113236340597753248586473690305278854292683775005432281736490663915127445769419613363809208078268857031371169580437368205483570676190807777521068562658729669380601697912628915282967711079744374929262460892919234200714420449514972104521074030365764323699000449858289314164170094998123224185484775913856324445130180798799506754704790298263462618984529907677707662590249617287968349056070554865448405329690002056580937037722306261054811751820029425486054957365874614989919471703903809149545327935722299570360928171337552827353307262692683779479429080200481836042786566736383738080762165971512344569258611405237472567161901920697427002556819330819978751777218261799425633521131753584250497758035507288986190024361639107471100018379434300787409958129149034213532689544597922133010243144786161517403940970635724333840265621958239807985145523412513210094881938311605175956333227423705457274287682751131479887897059973163824529158359513598711926564091946044269063831676260669744501714734479874070506013943447141811950955142443864586276705538660644782370790402587660404997805577511556660261887771375722570503905544922715278312352204403229895050952117649814015440977711111220911665706307220354200114084810579427958307983719482099513805092867014241337164750250582749604579173892758651382284777088974219151068213399649362079940353558952676450290999860893719784684758677796238094644286527839071392510131083641123745761900094046701706335470769656492966685119649401445985868813711155291489375977367608708210756490732926916770889198159560188249340935230159068068799853180990970544186455852966113444222270580755296226065168078406495448305082458303592578031753744007460693009749575576121974067724082516271268013868998509770456132403995657213140186707207949217798567251531789339131377442340833923099149482690219792866177618285246721295690541076649460830036569077451300109787332388040394238153696225130312588011111418696928853150129160290514575329023439705208820102604086869265953318119203880476756754452671452803521560706685572822842068349978273000464413829119652262661427981479400115483737176626744218181307721082066855541089022136322724155953038593159962364664145363556146297264660130961109374532785740484681657911320718344041295275461017670652610624921653109332560705977293728637731409724097440419010316753635644931660306145963651785915436871044104548178354073945574993911994744238643282875170667213806268234577236339984673075563659458001210645397203983402002626579583726002219259524305306099150894555945432833443372479185605977940797152006473185090383649896348431956317682127300913411040339715678395303080393936243027238302206894185774579148766877706599403377973133708206013005612033867589934511533135248696284810371083869082000535396268265190384695311995598819999202594501203786744253168957831526147708871028811675617403100761374813814495844227979049302682424702365238399375408012516252828479298210783809102298773347087894185030219646080878326814550339357105920833988555300493234135018169526968702563872103161444200118646710751902721057845770083979792670697171008702699754768719625749916766231724511253438336206570971041430198515704810335464024977453426532485986387688560827999183281368818694748325610953802058552828800427300897672408575980195976490872525798449549636736579972622854796912953161003579506479313561322844562843793622177211198485224057771679567854396215167858555821405572654561869042092554856722669927591825088635203495424538176264934924273469803940478374348455031758865423864873405203632337851933871854577439052775580383521770049161632560354408378365746164034605033010026356976919526577770888684337837117280526415135224750663446353780765309340134767804169698715763189894188194743403284619240871592654764671406568387577856007833693046525534104027314365235027523744937667813647240430165693136113298437620552069572317871634749788830808947093943332357132477534816927313183011637602976979203910898588379184701255956698775268799645969088123415900970704109438576882407923955695145244149599895838254135256132765187867988912171173281498956869074830542140567564428846461906356582444732564994537414607642887796822504743568136892746704843161604343569493274215702781692688093869196115014173042317134729375983312184195978683995446831914333684731859731789637908551046751177951992022480333084066695452914458428788812917907574679776067548706378185935933116753441235382791357256591174108830221078374072923444187742813033648128148051426334534842981185777575468299151699852936555670786927867793907071470344989631083155708382412469605952439068396930828059992896493178719874630094504119475692057736290749764374798316652768532225610099941054622793345567215700235792171488071433791169846658775841072453761905790427222245137991330908583046779173293511703536709256638547363111607232220392863802844244846087223211386222840264555302420850986709634775652564067885936561335555626969300957225760490917061452312270551886018486597463876957007530932474832146084166050881809108510971530222262238103434561362600462795740735729809895947318448442999708785354021263126063714283178761886189689134386083580321236118204451948965823145208923921604305947162482369706032514327383471097100052079353834068519191355065419849812071446295236749143342589714196677722412351201528348180444480699350069930547558755873350611408087479671504015167040151490643202580370652446286069358806149248215649329940629120820104647782369590569890119610204455265620074503088694305134328727417014797658470205784688293867068052904824068075439307101465730236023182874498085400230265970627039263327997554828404315783836745113275800647215351752861180102364828987663763499082193759557124140072121640464341557649300807500736240637771291908943672452612044661143330783262172327495121231219034248599990050983622529884446580191608648159318423160602726739985252895189732483061656196882770463450409418036336983359579073007073885661911490013945276523001392928350686485576591962484959975162953841698893100166227374134517090314591426798525546706469345993582170777472750587597432649542623639296941405889103026326603883581007954658783178769337152492763281247323221471619244553899645535822887312568952661416901891276816279695871252605922365074098582066819580633298537411895727322894165254103801190352474189340135150125745411494382870652344437373568877376496993821915445200175722675537069037195662741219839080818179459802944461740823466982457472205765347522256244073415280066942066213986250441463748152365304081124639451332248130504159499825264039993953147382716917627076437120605497960266980055879635213355131448707777744395046881943472219794083375062807159180242777792619895739401685584023768044715709552291081384445525055907527508478386339341184085859784524071114918075932951242546624788785124540016843623428776117057204975185591066654064463025398007619021417373308066443984344648817089985047933600921456662218446209994651835184135833746189764890716536807231151763826067860478697676118618156175630691602853855708045578983446339015147430832589360446972095865730529776495290035504229020391246372917107807553746325974320189109788011943192576418269568359124958313964679712536195115311837339526982974701348426683920089205034729001599076902455670828203765093309383052969400871573130349814719709828822399546935438531863063803556433225376246766969577083418706032124958328176362018631861899477694677031415305727521754380964828255373792669349964570683358129465416488256248322730123525319445672891886277928185715353602180709005035933956102299169670082802761503305558301222798322832906988497852725229451016197892756186790818510695818486748314460732658080318470625610495400624285286970444100709134780958024992638082304814678786290232442295704691148861145795802227481310784872874805692461359411869298091468223117114990666095338214119086685271827584644546044840482457180196377377428723786548748123478181168085064596966034238641104934234662613244069450201009331763931988214681110827703077678407569587245574174022791126493740281125938843916980339512516496342124485134760965266357639689466854798550259863631956700516384830225867408475990489458501292673515691583729745524316766870316950121287575091979243722198604863180501616721477838557624644030524298695797742728929239269436450434414430155440064480533887459175515136853716969546325482995008361774837386473499276240160055891073853759150306755542229812455995608870602343238414414622901631524194505581229988723981527497081839130444141639683966342045433630489261644258834288418169786532467792183860517396292067267987823264832660029362316454119825489516696923783679280034008931207162904640813044401380830952708605261822080273345891224034788244356196122174009279070179717170347032098045435343756189211147157517725343647012929180692208329635577888177181912247573624959615100687216711581808533225907325381836654876741448521300636730712913246997262480095872803482833759433607505232972805727849916004298549540378737810155789938706365106452744159852323493820793554174213751860835451751835843144238014611026520634368830206332359623024711409725009180187107675823818298706202945675589141453532798458161157120307793089920240270642688112909956695818551833501683106653775608690872178300618956032752994178527276042931054249644709180075047461540216903478209821434782745615698336405960848239600171616175970082879969634579941490806716224393967721199374054758731693086177866537350704428036175000084461268627355378000474375078457229548110335550498110762499661226580819847501740634905245295674199168234704488618495493529515448760467260711583240252066380340252364121163134882586360387678449039189377089447131440919776896505944838632346971775772807357073039708723312761227679513264969855115976860392926584207641620854306572605528982816167663000219304015998458890084804976084876844564579432350490587123270531011034856281708641557617653295871526277022259536103883260574449106698521313288746187476826691351880315878797292695953381965423925540035329979441689616369989377137396912883858922391647587952740802771515934748741051543386848449181313675630617316474337639571036165762027090244147329291077718575551168153082770156861202121134055573726267859966835794843410537462081139850648552581710942443981211358426005767989195306365256375894605097615911117708142189757552785972215672528475557581516415156690227714267482039733093929961469610929396937730019045180291989322754377362747940522844529521213037516724483625114976014691969039468048633494898867735358746562412167300601419863718190555106636073058015362187302806256183618604009855471039867091140766845086185448117816475893292536246351308888870977156641709345122625212063071492968737834071228268979190646605174076175206040017341307192689016457751779353336931691290370991873339936608531873700812776575066568536658310004257688459212672994533340107415182616549478359360106273368797346701707405066443324768999307411231159985549310450533470299168738667261382249792377655806925147051904627302788528194014183634769974646086972617742122512674615668268806601931558665918046542178807813896089830913847628664371736627932971085543750443626866263364220700153823492164813674365120992116324747344065861210490274760980690191521920564763720059024050970513634562141467303161835246271538038713641481273872221003611211214748190487136764075423478150964756645233793987788852985740559426370177206614455026072442920031032359873637493606274722532654178174737251195890677268620918533445300040917144250113694949131279186284579511990237986987443572521814495408692759719749462404055393365781022009874088236213721961168812763935249003527806710855782452446772665179888470939958694540371019415273073215304801521822020566319995089017874561600629250871285253687834024445858681174576779048186622273837104670912493379241769410694907156943346351765386445777276807234964515132378918429287232388375703005308516103370304801075129277638172247908522959947901835289893850065114118309828941915702115024641045347766437256928984762418683067290822934979429264654674898643421385052508910094332947647974364179549959052286776705903257382731017603667645381458794495227682742498948050845743359493871085746481638658144364519152294492103622989772745022133477148581340114671889797011472927351789192846169764174230048164842040893350610761475388922943948076194186602092317415199157858476852078201264122100922068706245131480800646052257944989528993008186918086094458122734461809452481546485505142217453844276454820684875535328413490157803889417941514324191987122204334089512975025267900370503621893182952184155307020894677299297204952405362563169433464871467442795057821376971630356927932664128428523755141529104714638721467920704646838207587365526020659804890388294963341810736745386462536776549299250817168730604009053429642177343666669709441220500559167850764053270025948821021968073771940725977155391765307846899256170527530012260879315975121987919182977676997094170254892426255955475232171477366241538214416310706852421391654220035936968901295899603784855317584655733704392188545383573037247430733136464836377688682338255473280131431140925778107898103333565177411282591945250514822076962715561291750923474406113223653245147419034459186619109804801348307980811115106964450064452171890738217502454118081560428969494753622468094951170186178221545563832953209209635184653597064411894532340806071859210362846448041159262807807812117822365459548768193938812951854040623127930889471781717073272208395310151641061591204979407860584564978928109315463064637634271010685909431851510989513490658141436990316475496912328442549171011472280639410326362136272510627418684300252584823036714328895398325556448134065989417927358814461052294843988211582208967067933360164655087537000005447289693905799808947714948909181304715172387539858403852059567020320629505321751235026619480578923163899392984795545590486608204924266265500873395844613857201999782617606541778272168385415781938100834578849011974750796939870842674163823660495027989947966573203156218359439979805837314092939738986721969739788466391457199618603153108629012445305356276328354868126038830767179554367903738039059544437304972383848418594175479498361668616904291896035518781268204314786409382536774773258464129636588586424338983667579571560798448795113110727859215303829951823187755316603209543353184843528375483712074065150498351015090321413698922739728522905567064559560709436656842200964888141877328760210895299583609209685106724655562136025205711758664161308327002393486495465305787624090602921395408192128340033627188082122927456671886702930688421833691848807693039397102630854075312721609438129274127168760033858101167201196128818342007945031123559000824823264009131369184407230305852718638261445668843557294703486129161551645898265201272175629080678292401558878112678939111951363065511868864584703347203073465972462060756394707668710601650096012884577741915195910265742812665744850504557394707375568007064887430986400849914417349614998895527112187480992140800445666081523221321759648616066484835075905964406290907087919380756379131054670286851319423998415864596343986495633230563326452521755019911094118721326276149420257092486746497043804556680392415093573099512269554996022643157380409955994078421934327149510780079226460793785181862929487953438824269069272162627533070843118734751034053499228442871378041679051630892653141769795846479484175439879127719740535841493223703663974001906469210165913959970030826738387557084692914355208141042696000317637544474583090676120106391740801236746967824807409989599713543388372277946882174169969853872874750268559885884736710220345025263788711965005616882467936994810183750546355894055957970090142738285328066078361887518355059530457196338026259514709992299489325239670385037885348772737168711579098840144074184003075826147417918156839365933171095962412105505911144799549834197783087263199320750237322742066104551666965725191403817713050491290229101353303910063165699871773696631878457417654818152884592464235091441532302928936830825089611723983233718733804400647764571599885087042359649037005708693669719242385431113661108743781232402613822885511448137541327512349882159062978802126253071878282170091386495894712476829902345066831833573730599278083677167704178933589879431784645678582831881720700756364664398429369542495784284830719573677223685357984481382123001142779833775647140853460678415932739347375857757009095949448638690458310341483453184783089758800478978358709772508193998687745964403747967376673450795919784812995855122180995898716747053666995385894722066144012027209919330396814700122855614025603007011949810555243338067978054985924269276736310941954846141878775135486603799340624324636854912429863594914706854869488572814078744556861852282700276842299018886163943879874722342086093884653498922785405928986580502506231249083304365735896582032823095653092480377271178263887555796236959677219072703647839907158130755601021125618547609603841475667218113926397881033811667546229476131519707932783381478585178606107002066181843192952074334898545122336276206344957505277775476821075884821981761876914039849108712140654666411559952585852444477953804685353228556569051981855704374955202179011505235033769286233692977789726904315554358173386423395652298131439890455809278517088110956901700809342065114677536001089275213784527962499281005494605420195742352923817382780718669721112636028639141929460507205485427662706489677064601569058509363961565332943302753873534363634678630386474072143466358843745841416058397540433434005791484846427820424005673482135131015433284713808330719361293169505517600878029379434089635210729135952315138724976262281142007544709822419099523142492093277592911490352112383972825704483925407670311583164413705112795952244657184370747060419463363876719950779538650142409697987404047677181339930301333452694616824968350108668058199796508047493301206332108443825664601025585487195801104931412332252198196804006085055001888677265994997950154372279935223032442681305404585853009041824504602263412108735365924908286473003656008746903255424271760137072079389562315808288153518031382193851142373852431730705051825052953772020837899252948663650003633519293798760082832515992749158064080949991560144151787184761948399113479701628746941297332415552631055740372071756170090262885125962074657187077360474013612089508480154762907294073686823007825308050990588349898558135687037876140030714532607917222626236510072552826356393370671637249059840687385763748637025312746348077303993358196430919364108692332458678440408513179397699870134266683045876883459058194986295425416194066439976387115322053381452040335087105269783981106781560330874842326832448272281688345749756855888438983850074262714390457825306398425821307730702002073356254538064034982697418736817730287550836370314556612633574488624680649582518900823504400580155374020855364894384720869558863704432179938365807439159601087377219064341826524174566903054990706439331321508808260518830210386981971881146278565299919920446379536819533041913862116752726118720879035699821187021384784998323818212855637305260376700644915331031724868763844207433598609053599055847401027137529862381310179712455894315743664679659216262793130876665414762137726905815888111187556330685146338156235383460152320161991850898740493528442434598957487988843965358935959329375936293441058344012910846994353526549541912717084342977810709709307182490999937393151797279703117705939320765978303243152341897320275527709121196734778452673425177886817668201673389894869172867884396182007058743575399847874470297781749075351113632649045688438088057128348833555876722473956412853325779888410946268484507138711988780615690597233816650859542877030392649451896162949090671596692606622615692723417714832961647299320654001237900024961286939769816551065289587696097335382069964784824379934574043751336865251365263412915703165771739236665715946581447451775783567605968685146482252970107827344571462731945680652660601959800429639428147057432082003976419303744156916328858868966511920300090204159935202329035905941091037288837581198953170760258868728793829499119561996973580932148448192714288216355432769021254132050869588853482242712192150456611950412271232382896668294907695423546953752585151839695526914578942423434336939282027263094922843624613350682422647859951058842987394958117017285278545581834533405086928523145199489883289970707709708425107737610825352900479914636661675531785834083956496971982533685186248165301907024409155568998112174604566849156740327385845275320500871048267398137626888731472847091510843845027491646576711359758975993912407553068056213056551566060463773588950421735204817368142284244852401101097796975394810998353050649138022088302446158991972818130214872887083525801676156091135657163995365655678213061860797946767296328152065891973078804245496965964479978777439787643655440358957655053818101680613972771600866346403839261813772992436221961603234484208394699207734374549919982460510822533429535728975096077947420588693424973830305712470140003695721565171578453533500073224580418384289076236793630536058477727236711545944220469787322199224470316488537106415427103323140370966160157261399361619662916306176617827230976720648582061957447077523983635671155923500278701091561205058475584198339322512202173344553834784836338315484749911584801946369959722976500039759228238473012134305058949921519574479246682294178574942947077788200393738331750886271616171940878374259144543073587565077542252209144730410600294689826208222462415593957716037751624639134779752539236902283077223736013295852037739555545423023088651642437143620397678562503597669013953909050018925402299089975898758336474664959911488459295448870745911379520287418981971432894826406417796964335089841217565918266692412566126578316208629185847547749585312471486734738934356799006397048211223348299849013052872180125918563577514253965076376175124058046805700815858690346097998367209184378754862409673835888213063815005033105285047189275974648872934462356253122613068960354843758360621921899336510926056167173964683970770693582452460619279072366841438708805312923462555104832132589609037679822886213403589310915470002827061432136405416443390229283142402360326951760107481886100435770867377493159394283847315982081729399671587699313743058510849436406825097617622443103970743178877056589683574218982685844829960199865247494845417694198164524255705525310029480182572272489690164211748286580011651505492669712655703569556937797936045885176538503011740896682071423461350408493846720186042437992268722042248069912828072364808128159938802864290472758707496891968371406009521213511309031560528208888377234224370090665861871446996042923762854047012737049643825609403736692252216206630497005320883809871305820696527620252885093713326828623639223654371299027343867313857666028973243964034761985255382847470503585510587305079003765863868522692413417079350397036133763621794431724993506617943703281178656429955420501908720390466675721415617888784917703033062832772021925282501439727226492232394910269170696256943622636355945256845828416685881302526994062842204407256544649874510117070399442039107089012730324805950907501027558473916914976036651539116482686371650132861162205272279927251764885438977137340045234667356355235523709759001059244703642177871722001653873085342537135435751308717474619583300421009579870963331736590283994912515518519081237764917548514434756685543922412511373770140966466681819604463278063122936719043627579932582730689310557663253644114806454438643505867150130016687818032654424694194759999717645115269225195687099753280100856076149535451126412134459457332721522272333776961662990665416787723968161088660552352533058669530200118747678502884894145775739360987459141520121380894209758494881965176187192866474047623567199134594101817116796202529170664273332748041712216369644788326086788073148181766423857259341421151250093837189484958196186428226291658037492260119256995862452759694081618979241987537993455292970674178657201783006053972012398090553922457102316590763756490710364289405077486413086455952489039747716079741340836272906069535840207009468164007720823595801234118039765743452165047348446370048870939516795698049014198023150597470709446179244758167659284997826135373243427848294004096507938412606704176366961080542731201762180547072288543852546696732369156442466837125622891246956617477923603599072230096275409680261398885689924322376877313115878080496956861646326271183092368809397250080392117498265574815380155396827962514506781081265994381652104595001708113678143931564208348978051668191982269648484838384690015775938076210698615296531943855178728030249871886592772948884068011058277184826942742317988157757126675673791405080014037540267059348009277079026529219706070034089124349853435343844795870687972659389715831048484941659552511381002137899367887675345304893263056357688618247111001491050458419395258975703744850153891934256399361977069284471993541864723123717611433537817700283004599567978696287387961482504197948459574905029351022727651488560180096491139195450122503428283010637358773136381518116276115963496399372220041325089736107977951967290535466963497255392815158912585721705465791720635396146418278861827228032211932092525135314930025487204672820533051910738324971815083603770900015672173529730361870064576100989728499972096686819641993580337307963121070200581945549797824422400535840898567137926924942716218267069547877853511257912465093897821165524414995345711245703019804096496200896676880991985855398012938497731042767608829257937274188788887139693305755112165801954693548838048430573470534715218442004479883207898278522521962107115769631978987492623993424932687785968355083922040621025080779425312010330080532582928849709377218995654167396404948283725013210334988568773521882296649674829874227088783175685022419152909921745014394094769492681120765388352450777175118604203647418732021351627449393560488620870321648874105459312142243425772434218881546771588739017205613092065391933599415867544849301841135609766769614190489453559354288907674688418711651343641006313332107899879070935496565647568153024306901024688610370598025685006517552358365196596607414583362438988539281682482964488940926691297240209612598037148262284326558925637617119389475519268574052120364166910015975249240126704965890582753128426764522069633951718480396110244207706093595349321258858155514225031912172427335368015301433105694968968963335665774000797359181562797660994919099198336527018143338238300077159439589065032171184852828449484967667292507802488461267206279291756406373454715129687505478080054904437337203848320508180433882757273326339246051107320543634156318197415197068646623213276193647727922331477011513154071301555451909806543335631684612805992934321909096081347051854295738373771575995462481502445250972673027644902167353205503163126066878954841827288788478555705347695912772880897462133104842974675382607923762151178767291438330090518935255926341305120101190450921162697143955319895501303985112381053080131250211195636837949528131378337322762343219295977492431061730166061425974394108791317026046756129599770542390656841755208310992116623236793262072493661777418175138835361024086378096188010112312420826206500815719431522934832705186920552657049822474820916085226742963267058271917252690417474738230036172333113410425069988700857486092556236723683974962124395930417756628393397092427061702804379353258135659161721091552032023945054898000753766987021458504251873295666604560701449054096469946302889722422896318416832784150055762336000066347888799043185807383341880379286852846379936158732800269809081542900869824023443128511434568360633552507154108916556758179852955524778419497635389623438658136885480151057929121445013409202250596276520162636700077364079287620293593339058275390315781831985839575017166089593890259226468038431627081725417302284436161118750960529745332838007060033040296316502578815137564149253742956444439480720930390689448805364178922167956945810602577945700669207503090674244880852218181130445865923111512109525030779662781973008797874807315060942135709759409748090303071739612155934426545220783359341141126680293156766848904426817845105620724175066919117674128319016344530295087080123106810026881479094105611239199256821213993677840851242579563792978585221075604193675372126283411123280014317831032492763800672994286249479038684501998289343713726093025302755899096947865056312463374276388926047663216378806671572377108366140197621983095926267718637426428866223362541150661819110810267020715033878780801410502010478821121043071372795378209916353712447898479724120104454572001652546408201457794396849688145669206653638092094548042885284077168304139177901853135411702081344346062529298186470035670653039758227991301733257397657176011488912367522316023104684202539364704689028326081948739295451343668323004496264217571132576208977713584030919519591510003250097034906392664334568280548288058823943849986832043686670885289864828303277273817898156829354268927133326951581147377968140594136277559827897660638762271516222394158339264606766753970879961072505752024894575289053670531081033682869117570563861622809178113685056082994045423871492908957261889342370424872367812046192614905748576911037425900279245918238641860926602131531960497529949181331323323789411327612954625349914188008626471250802356179860973401780825968962257255587757885770273470261946201658051547663387515290505962074153039763056265840345867832937028383915009483476124043468055740697624312672291593049404291098339920977213028994400987588426197928025777852496958135739889495187165838158168986109224728267716349619715384702881998554866978657163295591502672086895085098785951081510098073144292760299002189995515343984091377971906062311815659139040536997712126948220486080874657962215006763048436399093132160187158817431010485492437334341418801892196410082907101138571590830734441101141267571858341989062073880295027552517837305759803615299085778487469667356840703134220901851996414691537951433730521526974011665752253864956733277055068212567241293851798286518433702948370009490805861952783452993931042557075875876400616147627352752869345255594670748122728808097631292726272540361789828664427262065584641445793779153201442248141158274205682524739531152687219677235611669393478603416015937142148485366989255450419096085003390964831974388785124566630679860325339000089855497206471417356378990653880372063533617678369062443940988694491655973944328136408878404939898917462678860093728836238298076044946356422493766385228219595628811143881032274334454112203045585357442050440729236598834046140937072008963980567841344435033545327987365965999418376290318258143507572090035224449047673519678341767721939477955917162421586183355842132345355780310301118874247079532493328336875734884636270879689420390140313166044711172794456318417149803855041958440691233384322691169485284136520573299553716608217091144042078515401626515682161598035336664881728260285044472924132939181770701069310907685632952220768602914952790593786174376812110301046970482898008755297485167271213505420606893209202449937116553794161552827107739945443894774606104409600400534727370931208288266295415466253435824654012910760161655670843431199612598504747266359276664897913330254309742448436807725609237912686562125924686338212911032822401414160480189892666825090006816932946291252777789934165587399960539124642561177754433882344601056958119096725911226404645628114997604267295986311466796894793404461797088502743219849253264355958079048408669874584751142718364099077947486824722960789939302888742260813062899965718181163491093982335882882222682657749294516610029177942361889432719234324285165984554589097197301665374602508382230609083248530213828348421550590600952674728275814615644169699401050565868982504480297686551028221721051607624887065687889879615776900906858557257894227067785626310195719956847487269712941420643955883843708894637778837834688717840440326764418282470514378470784758848883448839411251677702576607530363668219969499884253317400574275611992923488920756530596385650409280077409121498690109074364616035643899526060773579533417506277605484605898210416241390788416298388635758578449175846329318506934005294117178245375234821986266995280093903938676368796002550556389680325408255217235964252273297455506979729380563849027563381505846020886002294452009333187030525759694624316331497616584259091995898038939422713438246001448749336488312886956111295647675214001089625839516201468216409204186416020013436428983520578593783469114899064626055942859933397218706440000191941428948633897757584719445597400074402996221208812365172752525565400882005683811447232647698576241962717199249248272433224242739488231723532047139478736076622582465152204860419062512471624750869898037617439893469716799478018885798677466391810300956341830957149757849098501598978108252451839330624519443864172209857697362417981864669859320471272158405263197878527604447358126034444735585581531765670508066287589509931215064989340840148822881824332231729995957123526097236798835889276451679515097218236697375688341204779220198328388925421017668428291979507167445724429542671546978543991658088553508545940888375889052089367520005277924521338479625951206078017183956196447607154953373423336675972053797538119590981945477701670445863477313793229109620477713830985614505793553146627884236246346266847388275469212594210366356164529601635946649866925554768405641236257370514893824561839700925536898808669091818150170133881429216275230320211749536823266098578612246210535740952902830931237971401365124063447019173974198545001863981504765053132393580345286608562980742264039584496140011958793001137082219420187678557995309375485421704509817644252118498618792951609312696842919305992684338568014735847357648034488798140479840912303390697818398611476285414250817749667040181142818990069905092735166439756776655868562650042492458693436470924886048604298491314858872965907105132985452792523239143681905966816235329374334718068039124488326132355733983335821785357355358900959255998101051170109030608590285871869008060275782326146342332235975605001436455608101510920062065123938960234814889106060577006839138425935007042977373320036547372072160547567868807840227547506465306429689590703120479952403326441241519521946723928505983300899631455179867455804564230382338806014046129317821837870684838512635898380697436834074719063955076155457512447900261615015997891720250538190088738788311637717509945648810717019956714516008458662455467924409537084533614789152237751944425019447636709951236725120005734445225086372045539288230959779382383318263173379626416215913598365303922440341422344708695882441115936656586862315515358429821144036472002445448813244055470397191528755159461961088953888881147724562636009129689958799599220776400761347791848597627683279974629216695866101391266652347682812958232766140241839095616136121827533352955960508460552457612770166496464165305047609228206646926394478769248727520344802570517668523988173086469696821869025053119337600651203576649662697800785131332968304949477120364539912670705285004278720023058802572552548273281435927024870419770950100237557519809548423990869125120722788968548962117980224001412214727520612605465149377147478275085745229509427988375850569843522604476303874251132753855249835935732232570067045729953265251976460472876820991235621527201365840882727276368135129364232833876908298133983612316558605877432072022430993747772672321598277119219493242859533228188057147042457708518483208035404700190464235998727196907382664179867402502326290282279480199901786095566288789876062869038059815719123363627419088313317433701875898461454014583156321514475911342395768945630692505926266008267535183062118896963308358900942913871686092613790847450330160614138042695164279743399921932575906021994776877001322541582458615515956992482249832121739645468589815399948155154937188035065219055606122304078076690595492946758576214856345873371940172830181306994849379959168633319446170807883562892147425544114194353893714769487703658568056921390845781865640005735277233017681620481506551552895134533333815967072111558497802934718211051130604008967399573920041581941809589479726458901382519466314706822480428113331924118128942066928070238841826686371211314852777783392514270385220837625436205965407083941978817141891762720847477402579643302341147771400312684871444852926910160720357197094283432722329895390817043650570538114863883982866285031411665021341789174744283098448422155097240190345548463398035532397233779407036162173696339296048499944062384435531351695945091581211558296527577234470298205613463093467394909033203143346244274244476649144695844750455122196235985271763550949957269955616789399595062608607273372814006789722515805521815517213916441243228256319624438791238872472163815471336908007077999350039207462140273840896868643823179994733190800556967391666897035773392930794458227261675607093352497786179118928533333846887882575772654540567637444739283063319079629913529477300569380578873525876231350000339311367212328463109352636562343978938697952501628844732182722701118320186958338681338026682015757020183822651348177393785401518823752325182326791056014223732517692522171303294858202356141140810277468085976239637450955453902015922038279034325690804390958552307669666069143043054528937150956710054911937122886131675890802506321705919517078611445523571465078749419927456015056584283198966122451776521031054761657781633084394581711069908916820604125550052816567972416196256282829958516653768173490262174231795483980639672768131802037536466035580412579379127576899258172942920448578296891877411445121540360368434124076816254152954006851926626231763222362007641462299395194105175812960798813307530503165221084949946911498345592252898607561621511633467537790311622543554747414267276029158895181026089061185870428028674574376175913956683368272031182127939307161304406755033066431072779672011666945041018328659409847084743583029677802847090460093004607032238014927923614034088867248506062336048613273961975895660232340166403799684764198376582392873974563601441331488661271825329547475018962414617607898150960796809392643857172182270583066072721011427294939285898367440068486859767514830020711628576320875578384987540952177877436927055955112572206985888163156772318280830288952745612141113680237433814049749816263025073296021666826630950831490046019103243983271085920888624236080194565308887595792976824860776772701259060340528164666378105612905845927635066448761419695223480580140771465254380793390196206548243999532186198354370520838072199700358917448249440171961255780418455580679582192618244772595696076513662327376382356972712016956342680569485535755836271685556002756060093810411464391581935551891636875517163800855324744256757006942976651578486584992611223997137695680176746899700586252861141899855728441034878309643308045141653854635011474509226032840708865732606079758506734587919615019250616745442392257435799356758964025923243231030554406622061628690502337209103846855943117503972238477561715610080750619107615565238437702875582825240750258497822568965277539978931227231547564843822319194881436946092581923696920550824967462308420356976405050946724540155706980260895751822938090581387158622537925571607989482685262611986552240336451959365982415401780539390362469007346613995677737536696126104119532879777688709418767717951832803020673818288197668109298503344095237485534134808680839996563698542847210323599762721607124983927624415122659214776478534017916392519090180534405882301070266943293715912373521060948350664693468027359276813988516497664856051088074261217325041214288981889656918452893856810364541835617156957401200730511092867371926748239465363893397709046613526786396675082193585616607230407991266391538461531762452286538963875367280112485934102091932329230550418271285037861839201536852856498041117517154446900812868951364836505245660905595874350416516437433931466257999756381483952708839946708936082126913667991629532146503193321755509281556919954818842312826338139869765974161854358015575731478183613607919823127905688467884163490990958624333573843824934026332408888480208700187945320350984909659490149348956014603935283272552983350460416120728497071434247859845023531346887309743415793837299514525093072311857697682989716453224339423637382361883896430486698852312401249311979088408556544564973416503810441209223936949579125709283351484225074868084316758067121385534571764844009221667275967374413313093038061893104325280213381830815342165362195727914851143147076938423794558779642084077246484881202984306299696851806559827635958443364079387640286471118685823110456901794053139788088419681329575770674090581027005242905145696749101488851986974649965662985668638498476842404928237551998742573363189636828858125566603271338024532723611588245918071501259162152659635807084712238309202420643921508341471767286245648790002344813732462231021017819690719683987504704964260733281346250770209698549296654285607640663714167161450247123882809992503723321825855707369596885075074036212189334765964614614901107704361394868235997112273329264368541536953997939731596647927797302647963786489201063792126107758995501958993222360620434792241943408139034445229990028918822889200382632131863214862649688022506165079917619698835127705192411820472594281371114176364797802279371239853615806406131932126543805802197702027193224166259274528640190401071253203768281934894236809884809760761352536536392113180722508855386072831867893402482758397929799010136825498151539016633669195393666275876945688070495082541906659790417867164009504962533216781180978280396621213758448413779366978167918705598266947934803364703598620130550984094123861904387100878146612701923844671920753074511627639635683238709209189360760496109915575506627328242059728744188799930145017072286141023141917080990398132414759284409789712753951905589113442427074562735057777824988164175677349943096624797901919957951683332645548322022616531692938218343663757181929006249122613337999931771219935737975348802174453522718965757091319586542303882990720776087941929234777832481454023427821863780093001479245398941538154646480642429876795409616892020614260193732856236470009367981070399952503280726383855875281309355387362843272945289387531710339487733859532820093820616623459650233782706630998167567836241205632420117296223780001416041287160157844915149731541299594603898937984510019364814897565199351492491793991267926089884256702423481548891906615946718476198853874314268950533320547846636201836732947666100834996286761278416709846095190863676020840636797564899802332098494841974024278215076029219025173827968253602521140509177937100435325839530693898870484961101168274286284134060472747244334245467577213634342289643780847248448959527866479215629506312477125606261425462156855647580253228911512334087784496834247933045390222735266353846026866551825701721381541313104932858294521626432090095913640090957253588081018552041460116553884281604918254084196114890358316208235581174648233480479168108826354124175551913039960898048751305497208167032174643051966938660607986822947415481494346936950781396958194422900775711312143113107226002299840938534115651688526850963971549961371623337842568605716503764402725658048265985052032096025432234225658608150883277490364372623397507551970709544286608214475251467098095591192211162176916460258518983024263949520573756496818416901788105635342563470425226990459260397205582434945164137647555088090360723450448333163324942074756054388426911473395055669822026912404199976846698188934412196536392401606428062856707804658907959496887613808607985017308748079536412788523623773814324794872715908597657189769290481536483780195581519580430181318231963067313938997923130508306502048868992442842369996812046888679102877490036811887089726003381649453983941757702519645474392714261672281491376348761830849358601028917104964121811936367921406585592188114605728447822233621300185275751408832070936484833270028275318978533349040001110637892249518843979883050011386620149652173819795128809700701202470656822436464498413082540534538222748577886386537444898440034680699897778707307847743886764387060601985689562425381321562405511876134163602711373782250511568625283275610920796486455370675999044615576294036473588227979463580220513601818408606673777404144891972800658987454469852761914202629493422766683347764179515258635793988707477455850337041270162381910502981508177227301310418564137157840264996780146611781706755360334692152729145393285549667908120420904681891866761572716960510833013209632650339343308880376055781005887897232464505976712819471087635986910931845764357909060224227767070811954875886119621838442864937963115269653546187074358927044383296334425985017080375404270453328172511248516636773876976051024623242384562139976627485975368437995588886827875855262134512554392785300077362320903375335085425575308858142265275737961027618227438752813343420884705765070095514051919433311468032070208126187213112615275038531243273193961823509257225195982478238991975208634535569560123603215602731482244945936182605301575196536434183004976934247169989172075006601377266088529514957553243319243874760097251522558134558427324756232194990505466667370649527426354367181397150858110571960029859950633752033348138324840341954833263959221712345653920858315454478943284347017334871100809978939421652984759366447899551675138757314067876971527284710258614664802191148753884910291404813073099010608550282788602601103250695427151144015165314860084597460588844338811514454974867937027644116415999239860160058365317573812403912550260661560445457776493422255615956858714445619222953303495471690494634695045163338191108089037718994162470421943624803117023479971002716385862157471815873652079972514758733569549455321657113864701476309684249985490333523035077227292882959773836607995838113304866452367832722571279722994543171760361363109019230964308325923066814330172709902501686568971804131191650856344847699873515019883763535596123004242454762221496248348304952570989640634418629025911361574941142124777608344792891986459654121122815628265604887639468414624830450507494617775820611107426119124266564336061065825739327121950485463106635430218783943587471081415612388412401425890666687466168597989217089909754843826511420280070167080597722148812079489171560883670268570479528745509647985946501027994705289899389632897551707487941102651044302480051091540316171990657820970452080402191462596738332023449064123305260660709473946866110211493942896821182427775714605434932691358853384350947427013423225791327579627303536363294759808010591686744806362015602880230000623307464098990567191908818836696483237238115796355713226627053778199503950260154953556748744711087956297777636603045802306047280475322931767349009050556669748308725739290278260411077272109925665280567155796502383245470619132679615154720921279766772867674437386262456663864094541209125306521073200955830280374711416826316778691040883144589368095016819125481011092969473243555172688683522300348091070146116338704055428120517922907824389248820531535309610198298412192758186679307174067178796306089610319341261788702667019907014063795711097797569431488633861160091106141121272861254387514775608236723752641985478424636510345491042513205972028998016059317984180774526901314110541890071305907851542793745490977359333169490226102629078297801698778138653761226543125610620958179411232655795045528839536534611420138156867636028821588705409922778183283086987381782087858308054692018016258755942204973222762039311592908295652792680178090901832472191439184548595141033412818054567639324450798286272206973833615193711809523475191480883829971956036217166434260187072666847118433370229433915119152881881347773216707542646847726255108058174014224724220947911722082602850150797680164560659213101335095783039677971552874321464979591980624811852084500487230431260880397692892157009688413914853924480774674223440921019228981952658536951500891713947628659741159632369792243549107146120059688866919112349940023340222746767482548809678855383385045903643124939705329336661836317651090712629335443543483057743861889167916183527893408053369423676153108289488064593168093504084601099332512917655482447891438932397776318632393726636748699911352052210698019151546291653063798545481161898652358098196170443776119042681908692258081290888828351373830534843490419012036256282973162778065295849405859367179334048085329730186591086679376628358946352423086285341838275067767271024394628894012203719031116224042250228977591608858679601028347030559812147349332252213271909952319331843815356026885839878678910214936692376499799787942106612244098180368879503708600859483836865253967932096731674684805152078049463490780145394948482673329161048371200939716062683335872324053053641545159147554812382657381651980574777667703533360909024087853820186055738225884210062344204695813532938934104502692689310566065101915706394019186838338532755581331560734508127831624763886530062923507802270435890374186061930534051768271590484840762903849556145362997972262653605783785094674449497042980437878178361401146688480640070455392006991849432473430451648841370951667646601012056857786054656750604012728753586546210426036158054984227826773368395853147052857312971144504064028573940675429633846389298914232103846753204804427932246803356661732835031572047326495733377154859875136079006769920367531877774610902483347104047164491620100170126385265613518482284769472431770482398284243764651532259110415076130731997800908695776094369437178971904909736601565011645317745391264234565665595462994909892219047673309649410896039529534426773819053798226245643443459760537953292504873763950218036924999398595923504875962726928246527881986655825931380048139453894196509841016801295380351206957699951170847650960213755906547899984388675213611819108001950985209677831496354780381603854604162834723504594643003730498937882197245542039813008423284188433056465273231865231993012183723648859318039039643693187122940571127850305371405067349913793266726191785475514226888919573371618928207682680932594397643839709341681516434296593117118758928751933029113262091116908408140955349825104861622740586469799824020342143690795909078318649649417896456119487703685827244210200121284587175707568321232344597338796293636027843173888328991050987329802248479365655127165010200945287338622123993128564434156446717904409019362704561860692809568726883940567994534694316436086874025849150868016693716625394178952371088358714809689434088484043619515068219074735226393982653521517075953884395944630870643990054363853340011516334645549722167101267453196723379945786359322746266493804773963995045954042418251031436214472044714707442251685102225069333350805842156120104554751007435271372140441204099450984796732457275950555821883929376375864403624450453140765012713383089662688878081707739929535030133258915814106577627030229581994000992935973976427754786638505481211212967659114643943945314972624201411025402327857345737546072907966637846195463184970592168099488145695742522112733658699630112286769862839972588764262163141991287883528187471588328559022243122044170091226712023327731886907896758806766466562608084342200919342692362065692746736745601121025382627775321761089099667900326353445537869726814761543241099015869846513362096138449806418653871039380844067251491685718746622586001291814585065496120463952580273525440337853233885836479785949424112566383899775351443678247342593671204450019922824824153384902090732162642885921658728222767019616162578709394906090022869975600443990564382363605616769795024749641392556088862627446427722290111307213834839675900879438391782733080325357453133952980772421036077706974348872756518599423537739420852604008542714583360407418669605060286575341763229265526448111513204877016609552939143996557865403862801536311132491676645153509455748823071589747258618695808131563369410045484533884889505398023389108057460108063865444747896677343206761273170536415899620199367036356455630246380007678490424209840408589782282578110673716052278955753395129047954766980970505128356523997857972172505189645562219088163789620793038463251672174924127661031545070309785364295502655306539360696499644402749374307613741085104448705921540907153714344419803557881302763533699803611982622811291720048287102728521507923690388800044282351982900347629129955536136282141608663438061534740033030922466749992889185876641544584556956703322393109948949762093205964974890041086602200656692828510330816933391065439732359201278321605416106033526678600654247479936142990580519547652387786793032785850859807373674918713568953455242078022993403167896400079435771816300611567085022372945491975424304248921861539920384759264331870246359775144150729541933181386969543966000780663458779283497682505197134232029411684004593096623165949443039179354016482628158833521805075511030620569277654796403080421057041971023242322458381228822201606567152802993818984048358159966441593192239802944870079648714038806296950758020715597669216821569370112781168297911921060031722288424655957267234136963579350176800663459570047388441515428247727543876007704056728229344400194102862709139791711050402337851067613823152091671636856050155450001298555823107801808644756199947557386120425117770851092656019723878113164435066151118520560144793765415937843898922828174006079276334042204610370769151233478756496951502807554727191885729188370702126135093522506079455541757760665810247206196747488134561885076778759514857476169114849635774803411955519772136900105088588023219993183984541541357106678587771811619708870847179520627279065340881466153084686410560071891724188132815089794944759714754446813993878087435277983264548523354138432730392242251229552946109346625713799693331674426547363775647472668680361050720962728121122237830570140023155431627214900958007639056454100786768280625934090669953557644829560755489541644436400406189658785778811107181742915898019758277211118156415349123178452218964496550817485532762065750552806298337565504835827686040321814661923285637356764157783588267697262218350502293275504801530696444747037378469575844757675840463117195625654853895469795846311189791602742345474962074821826425806426405992363308929003432671688181244065059077005511401176144535619544154790138267438912693134378359067336247443788714356593196254045747704433179092100976844223901227568378540658356768305539894312856843803577790051345583308992756994307369578797330593716699625679728451216532826704547919005039840798571807956954065710626117264487011345113601434979528254890219979453407608095319078618348556314462728577563683941895743493330719432696993720665342523002648678361764278851432640554912542946233690517834385774343078724084864625404099719313633591534449354379284905176138011348320246616034520354074876760634936844874221292843808751859368556949078217613841215141312441828755080020343621350353240034219240165384916306188709443561226336336450908398771760772541182743215282175920357393080450833997170390240013469716572353913140002145921946800660248589249672195123342533629648840748411323480729025135674640205147636610848277670628164748746312391183385853680233742111649897967396304902569675373952189607673389949648057262096483270929882012218759773845780833218907250130928506953478476243142490632988686748981773478743088577114363658062474775452821180140878069132498814034340624943742915054304820907726761666623775655830538639895376644898858789390539002506529864454098097638736501863494654375506171390521924186161069514315970102003154635990830821508569801851078918360949174616591848398017293726581695570480661333208638752332521940212871669871746331458846105946964841800005114770898417670597435771605251934806584147144372810322261428245334751494325478323302473445289504729003470514825747451254661805732363291494697041527943934014277743139547444493150664744119603722167539809736427273461840480972070657270612211845907913961997781163555449794763776300018198255474427748476328160878239431420702168987009310919397434066223735563972538157733897851637488888435401755900537100824517721701652744164736292674958433445826935466151188539189028361026658920399358420697298310968185644618447892107383316158430022794758748967468581957516061858126344723421622627802640347123875712580968722411935149651399124515521256754523447689033630229255114794499573987195722295516118249617829109457195653335545228564082375226984229305262721954644811218906027588178482563257638141526240862434491940759016550838993967026013199893479329878589213167886841371551393340033046886328667285526780165840455129602944991028905384500264012460348728343277925045512356129584917925420065767878333081289217563229992581905641927808403016307763246365166604356223161434239802767053529300758348101141632855656699617300886972236291987438139593287620927977903801404105202843168082551025880764566973494098151973678962977437011441772182576844355449120169620654267245150614816078659975787972497672481066387042292035572483990377486319920784203490962540408910502684723272432698394652474681436484016916933536357745509166835638848759777834880836784263148664987224708532216538913293670666974668031252354490022083750282970657367687287829072572155471984239875040197968936599310441779318308177983573698968118046294357048836878720305297162602809659168746190790392727445755196354435269542653036770346581419230787006085394015886776716111881155962975844642239339381209235999352447309754275601829519000490092005464334685864427350148738754167819601491333332577969184199833172403634494789884945123066708500254919721254995153333899194635444567870667362926241506747715847243974539860742480536334387455737855929476107837781160754069081651037512618365555932665750850109522279915971953508651074760576762625497104653644378753270750054039299418247737566404926358950362422122135026162747277540262791389551059580807579929888238106866403174884277651184036226368164659272160310728823732914062261336977885458418006523917187692407576368250736070702021238716383857618786871943229807764340345045173738700931041894972067998457274971354208182143798920011261687857426931926427633433210605467715506472480695908563044396637044804799614012177713959081532836504824713220764160372010032091147256045640511122857458214467666923114288057667355778448658183607286987599701113805050893989094679319016320693200726768622888708603155067289686444670445106254548218992430807796106386941608947294244117596534904812667358566562811748448303945698483996041743646932965618632694489589324128054016043619246463661370780809768456360476847090047155604233336458661672426689308461068537158203738798711997547373647567762462289864223457692955245816960297275150837186814095587208305968823265212117575666025057794215305217949906571348216050843224095417709242296137037204756707008830163947186633747738413139794423638673879926726721867677881333310434449121255206078938698367770560893811556942365188697122485842835630008589652352100190545442864282079542341849244377062273518250005113653605074155046755288958033634438580706607585974055987790416882544422506340120308124424174578452349984216039444412189559659994514115235942521776260629910155878508179752056953439832840805488193783402805603681401722261979519226769274661279130034639385293242011239885193629596424618055981392831818185758615736033608694298441324336536203082096989251490888479557733804907833471197532072131808717002131187325347693020481286917950683702046773254136029208566422217287778568300951695365624742911497359520931115240921252706373591601992248720651138473316645650910981363109055250476669523133171591853936112678930896996280048906899354498379631192136251689323504515317077470938711736304714794186434066440781883456718686430473828608286325137116079644120709433641700613954848294073620963704065482105502894137895545689017994344101612312274751868840662333326537307128668980518633593201902732162290144630784446537537182482511684062670066821583245214753052582036127637167963954906657064677332619126669188821465789768547591062579000478724227630169670852908243022202385158447058529972870740187420681513044114808341821597382741154105905832271710895431964506771386052841482108801702727142673735254213402784558272483735516877369719003409080325007366645631747916889610870743998468674698257965732615052097572758319522481716684327509502913293880127796792139697951382759618837633416510080715370768068127464598768024531653902340228623936229541214826123966827650330326835573141080613989685516454513365562386982956724087141891768831627648214655248565650092231789459213813771457052039884511567916501568244401073247029669460067269889420627064235773050222796405512418051973430241946740746362568769646065769114839513251067477703397295347625839883214964884623788609771617996344163797737753369023593506493880957337078111350237622192466025516199658680556775255940491063713255975694856785548242690394917431522731661021975033401093314799052014721912932008918011464401604669239473794794964811554935674266464464190428168634312634479573094452322841827429612289831912783710837380118114829170045954433698164259151903018005305675591813894760881495637850390495012341088244950924563175428032392394782983331874551147184549508686867223838474270237554536580773033774186906838386466490393450714071206845136424182712345282019725191079447564547594695230191007693588477000083268000631260514093542745141549865130153628975175632432740079861371803032418941823778050484103921013299320747695664729486065418672502260823960173285698530637686651930087680889422719255502565496401907849703518158354194668251922297152822321447291651412886626885526282834641801208024674260483001892382775838187767702201104881639049403378615584992109558216996154203805003522346871235486401086993223358406316505876811151708466060785430180684814001397882579808867156348997818541901963877136686550366723375282067674642941465728183840431262953325823199712915138233411848999712099546623573894928255789244793499129205383334323615640781706525941569015353112283499849016786979479303731221512116051221093521517474065853958634704801936293621855977649106977298206593592738239707328371080782233185586510732217832574958045363166099722371247519925680671125701836513905564992308105154819900893404108860938163671318654130683050075757007494156912624303859224769790103352984996916527893420122579250926546095004190019851016447435498548520230428759505365316069835886250547803130879868317498135375534870757386036212638993947925419664876139345558906041012230984140252030684771080502896081506768698449001380843094896844872853272381162191782774630877876344252471015072676531228019979710219169734603735509213987238758566836235266266719710035843853583565553788204736757795350291221230687583755900488795187400869274475120219608103672949126203869169735859212689045703400212941043083890808364115742385851686573565308590136473124069406692116718897972758259480165937280641105396871018482107422802650831564624493143645126598917612049363907996938118877738498293835659797454831834711006450140167033351800234186323644979115488950546001891580958131149618882076303015225418831967962305931976446298350792688011395310705976214757409343092841635876479219227823100566111193298082403491710766826908119573304591683174455567952663435534310874142937970396938402134638368677658696717560461378006323654835924156845107798254850716909168600276626673761787208463040958895444714308574947596337862191045679118861542672181608867455008445377349562246209637595418771793889936029280269180741255953853722205386052287009244014722616889653210589439909930047143791560357819744776987256339309203002314060694488790471195125092670557200201230762120570086958614664094743058301946881890478151271709762620674318079844258863970131294030321499129059113563192151333519562508399005121821562116755418825279068950036821454746861311776290378261684612686608446229368387999818457460064349942976456540528255805824519374911252729223121566929593927526129071987274909258947775477360662293487121091314621209597995836351861583512740231841258130526642837013586723761887957756424803849276779898281314974441830303744868995792337471415090748686633823755515634579474346641505856936163560424481116408344550226533439498887835095122235363092046482897005514554166196537629525171731530186608431997888218113485683195324031673635909127515407531469527788626965834985165201286431328950850634983475499873915567897735462154825852278776695481565616791735480621327754719620912179383965760383623518892113670645238920549884315754313798997597209466992300940465115115518039290056686122369726934170631050445306157647337262059690803811946880636092123423710207327954557778972794298465386844567526970840884157699989116313324904313686103792579391470896623072620853775255654679764863109379375958119034677655428845697303102399828991995610367152938786772160650122329703052270442553890819690923215714808152960312883000191789614547521776300993516292077040317941434158591985089201616593733631297094344325171937115142109162056020826150101646537512228825632637424689235799159114166572247176178094944591302376145814646271252897744225590742614916862317271864105733059746053467363902503034960853958512924184259196027274927830718044978610346261657184213043760207345266567960221468433006335031498311664597294952155344224722256160488000570327348779811758644743488768965619946241085212274112843867145700923405170593176262222917800352823592601721980359968239569557112103921981421342659473540651138696283670778500893866763446663072091349470606077098971684945520852590740752907975686095897209923836681801710244592290695191043668284267400833847281173638466398908376750783111535342556946074225671914815281560479451021893970865004619836141987548873061955539643785986079675344790730403228243496425333366206121757022060193355529255993055095985744713321865153811502401834514953173666565621755832518171230557474557568521100712442337415261621715652783023571958042784384023359373149462103660354474850205971596520922197106316877477271456188897924427655575855986944548299454158494407261705924965852859748924976493015604976954856530329191433889760312363807256282381459051352578933327774726647552508994560498283219056081087948162018082095501674683224569880109170092150786157319986415738800065197648326048103501843334201518610793660700520068344020110357654325547512485864564233350162486061798413072195683049547959945099632135452049831583967531162817873109598677727515916884502729416063204603270523327714913462648042124029551477813641445627928019332773220451529704889401064871327851388899321011933335382520515261819366739775668655118350697733480331610111985172059541730287165424045649185895812934879867807040938691676596776496309343376489138609315936434673472223670457244739726487365095153946673653112928988167408339119461578794977539458667406862451931867007011227628045816640546060862324442716652721678675199572838462854423931909692048098848298697471516715393045382130356640660966963391808789617527482847280955720425945294417955006934476465241209525090190092779676857663886699005534515838239058148263454752977923585072651938619340969513369811256416222727592696841101734514874105869955987194201499684148348831189621096371803624308378678875570206205592067634338858380999077525176274531524825327646777047017167959762423024713530755386236661297736133479706456700215351028442317209935777118566148786063181301415514972149431636959612975875591431964798208788989341300641734088394441597957214032192824569178392651147790706715286854845246538744913133233838287922974376030786623231142523396984259660012720188365074533201167242224603457864107769349933362585595755491752385687097365200878256281673384984490479859452346434672997139610614068230468926705573460907029070652460852817738108636333718046038426533994159888785473906851969431417722966730625930789693654844615831870343321306344026162182875934376175098145708635705186089546978675567251518655728267547519037278129815904929094277386163843879140168682478404287139205981141362747550971598175466203123109244562130655504787842334226648837897814787289615453147350654789417991115072405813514678336212018257057753817366829790666517944110068548287026557062752723680475059209584094062383890747316265960412169711191856413829097139938237493647690967221277650942032196086231547318198196914923197071610230575044610177435270357163401296764618333001849441611751672775909455612946636794490429583418036857064193563125884196772621222755720243371755194747265120912244302817640582861339942027067582798594775350892406167602885957806199033467784970191690418698938884510518257311280235530762008760788681119614031263387112408043317456196726263084535344048764893637988596949212472867099133795444786431214853057769439072218847489198066109551601100035563341486783497143273464674414830373749349624860671061051723952829627207383892332797221720275114492589925073174480521595984280824499764771618666401583294249646814438372296685619626654309528428557873006993852833223187425519123530811874392952210654101096501260024428470623735521616781658691147650271610957783747598038788204877488610507061299512600781356728336165135391735802845528437174958500323588643095678256307394799595155777148519444507932515651333819954155599965683429160917551834302364650507858750279962869207689258481383986668333527012979898458258334962842784423544711503455571941329015632058963877300870232371846837610675917448839122942694725951542765276566075180617752366329444715185680803987352101736558227030429089829143258906332480414198468907897804018796692923076447767237444405355343185363787688673579591137943684018747475576047221208628539701940084850069095078408031818808319988699200328252271057890838252205893712758186976825332158684711004246221289021606869228288337287729994137301509105001045963878706621031431821478338865605885778232132626704380344300735480216190072942252369907842513859719540130833422065587844729438102233730380975718087760460459175536244696606697391809135942467085039117259357908372489391609515415353568436484761827547268078714421662713321564517604229816829196540469434648557724916110250998632845736135227517815040044535398150113034986534629364197753569558254225286259616484389492943800315424832143513912321921280401282935391292872373913107004025961174494715410298250300637523038695800049638599683111174080744201508740932483611904246265989152602591077794367822869660140853688342310824457744962860963698029092321160698473447588872203810297077996914965272247944353874562238009857689279775169192417878444365012371591310036742136469315294779697611989373537235492429170027976602169060233898133870547309479954042172576409755357098140598720508993291697585320052024066152990541806667076497034204485222784351611646286667225568669326354877332557429399442691780366957412349023356984875302280098207645633274519999758888517190828756538849860462847880650500584983381857622591487184552940637633612935155964781392574682372944938489161955703222553711155090587929722756396324635804662510873429525860733674487094277913946249384515683507303027807019566944639727305007873830921553683696882826285153757131212719397986223507248018710020229763599289161745676283946961117640722978542158264753415717263805307453861049205914932368143392093811330922756268633638235337074416226189899909533682284187727764041829012540097768698684131280662254316032030909861794944424207139930487577173335795306225610233089230726324764693814618848390490359354906808773083750109097401642955893569047412657043714552664483107757883484603882111721600837513693407992240830463375068683053402532339004183671385855029679677785583517560576641965126233480677847681072401195482641471662601925077132856825529485231343253892808332668844104506240005199917844385166814933388236395522092384481607576082936173869028281784348744648299118678255615005886224560479785546999707684885440431848390160469530035969305491107148935809696424961903234675542477945883314149641581593847958460707769018256405025946659104974563576668675604220388128125512257934168792453463647223535126425723872637734069650120683306339436622456590011255930004298605382731979115334347939797988503869880646787251170744228907751977732336882646573071569544594180052896420828569641739347307903226332603620299511216077730200096221516573012248513194822307807688545442182403685314007656319680351180315136264578256657408639720203628224282290052199333811169994841270088632028812037998783515832390893705680320545568511065925301184660791630557564950518008132853802585471178592348601262578018351196576740778456081139904723179259526797897052803077189404962790387025519367285741356909564830519130976771666916427240655297355054859738556493393950504636208142817651021236164273011426870385684895445186946473754872655950849696497628702441178005358052678960545183339009477259664962153687690264940117116921592228501765172836210131312763161925311383860244712979560849130870002618569733582957564211565160214536535857577734118371401216658877734882057645060810014241038033239124368791839105726875335841556967237320881269894450121009395432784194056160696742669476993637961189056045990051909940158738533677682325183039987651866650018975492030068606605634910740539937425679484495294270963064632821721093841527376207175772052935303262871127727296130158358848354089547722337969513005049729120858121816755960373573026543166478103246486692305367832646971728358397292177127872052811645232640659719956053785001525086849632833642865105206990012192138003247889248540511942533763202337794762110324901349539186313197667628258430362414151988344750283327828683975022472956102185634625512271295557898631598938900793162455444690425584546054564284934505890775755747745077064140410201880155719284490960139271245793655910821423613046190506890003763244920934816298120911439820611399862240809470394352043891738917891412153031518299531759716124918375658492383009398591466477076721250774396136868896194817061687765521044833893432591752804220363350224275526048379382091271085353778422155323978334583843694409662645972688332782122902780929123791463506262271270917399902534415162446100069993678475352486553633177171187896226529569652367461713394837545982520884671325183924448823313053925817697738873844723072224056590884808861527375414949485620648791098685255030007154762169635528790148608301583911349908958335356794156676531297589238358223485791646247069245637078883265715910757128438932095864599619045248120249276290599215645830003549428311876534476110658011060884111298082082178281031139909805823482284939056269659925390056216605672780700804274074020339778544107684735390945587368443758487761667625241867470328102132272533423163446029200767636916481692160539619800245425803945722725303360878678997992666719442580629027645155543757293567870451710674965560892842062264931782091280913033950624519926192114905340647998539650105902320712054746264046860385290838683739546076114867184344663407483606797038223089283189496251381199114887354765638682115085814440219992115135326323900868713985983027730294665155847444143287894115408013997053043191595429910845136076841763380419082692909048124987942080278628661253030214545097662754421243583206852709531270854738891471951313595433641989949893801403504409246144857215493529417674691111507249078936965036173548138905976361871642649070815271787058043247071987992567424766818362710976037398208839707599397760404614059855555086430535970781733829081699308353373678305346723295326665219784995526328258811309226324747426984202333789929868465900256170751323465885763000847346152740617583218695478995516589504253422198110493409852819289457040416024189895903774504046628775058951454119656052432758308360054964650539313582710178657449634126488005428942251307762450723244664397808616419293346722706294676139804662286353209330108540601050239613706412257793514157724445067569637527934783701940183075330026836042187970452730955168608601593587407197576857072307307208234118195115762595997646933663059449838562847960846472942975612436316395261309287399330379040600229900609292020618650894047551863698143487419249956804297003263437064174190396925112794684561987505579761745020117767920505834910991959198324276678867782074434253122983536391652391195859872959211038543739044767506530823694784841659346404944969246485627523320361209862307987823118608280881847158559301875222876662703298320525066928241248513684973131586316334798633369194909268629746541072629367903919172870629217630818295064096596090281377781209700095497439686357672172084700887082918159207588314056097786250392647398863207585129805143920778397119124398052433005638234179689231285957834207305617301926360985855026919808145968049077994694384796257096995314120794363358804060113725378449290218930351936932189394854273568293058181642248113103215862541022863233630268930487671122282441887049289262346267383061886915608314033823983100829670608307388849750932179733556840563460084417550867618113404813025699173032124739654622494136206328525762407426175701065664055865733538007713973515809949390587189782550078268314520354940141407917735896820561925535482070795694809403382172751156338061942957362324088367838805929444720260028226736428739879444287625936837415288163865523302984968263793943664369515720465491674240438283428648509955167223132564560034558988472577723139235841374513409189174207526747043745435323390852005393770453363725342091153612576428441972864757984223746511301309646074411800027357809397381624631559380136616269599871129592195042986310384175577441780826460531182457569192376052037877684117121672825671459750593020804979162719472437445960748000427137659733038580153233037288584794703367373864087149356810795983527650833589726856933747513291350642895773685552193470282262583719798962263977034400132112679051489722685027936762136452606270250428749669623970666887641743446251586044205364017943361292024262848344270116965373777892845695900077182158484686120956092641767514910696992247627444581686215710180778566241454469377487381044303197037573757812102241672703431019449306750972906740899778759401235649080976049703352130918740938259441138613725874544399167090682449777127449431104049863778907104109605313281874067688899006251504104032528146048576983310941130637507280856504249642230238523450332988971097721891014981947839161697416742932695975055340385500358879468406908494731895826400620637889282280274645705652265013190638353428640014325392286173281649763415634135589337629822771455359797634547290134241277810715646236372510235083663122310205009592071480860543473398011736639656816923896825782240310850334597283636867069825145258909289445041628852760282954422931737482000935649702523331334518333442728243798332988416530825414087370652772662108800512104841313034611800259524752951715945844533715558106235068674328180523651419058479289627694687482188190901432297443420872742245401124557209888925644286428767123062103085617710451412224079275582234727610012567029491866469556744354632767817951459498473237386630219208479882370091577481824327718116600911613176226349988650325784653972796533280288871826517959105808352549206490044884037711761781840816594500547264372459128800590006537219857311732612569316744479776039480725343668562632661372528482548660926023333491897448972567706641453396868154365232238008309139677327280434818102144425448558936444893108602227877368288517681532472792507599548434348571646929899745380560117165321707461448518896970148757393010654155954953673519856288070402880808593141349237962796108168845509797314745316214672801853636929010576108696092244679150054187812230793655977541527176466031712698839353929423548801848236726077713791426229376301491673035517391696446339166678925600657580207850006091831060389333054052451541677634740755596773328056812917122999388270000913619759692420823616715189144706739912761931153401398703524441549087397120211179747594182715426053086007969664242155186991953963834708843088212063113066330016449740916147015483802243606495440917310028546961899665972503951085440450065003693721818612695479581269878390340176474349600253509748440668676201386549522857174932160271666252482967336648563057129681632516396116808891904330203356997938878459984454943912294551713169285526125723293917384122349079667027050511599570842666980975698286577810847841131770751760470343873192704738881084251286678530846797008221099625770933835866185782876286532946578313274418342855463325028697129770473579698431770050739632232120183168644270069007879075614981360940184127573417643121186204567808927211616478867146456346055040690773078030655500062218179235980962097949096090997387768289083668248568130719101717190463753864124230225429790099145445129578292261074687782271228621581881053900188204104611091895564847221475411021130770178429705507730850931759749177493711568664748109600420447303490919605127638699820436797657437039258661095544980378757374172187013994326621382274491440045754101338226621277207091951625356266383617887151722633015364135817079075254795458237044810201829542730951153608568739791731967636730016178374017481219374276425327217531583319478079753812745715076192069134628839391272463290399656776267438211429260848991915120482268387105673852837458386543848710779665680241369634999373017094300909468276940522663962403055079348917523504155291238624152160549548709716890067121597047890040098339336348990085288004020787783111745263444250498533465012753916241727460427836823023383140900613686426413790722215640317208121955431903290908510268538489063942481195104385349345142717472792830674355413889999490824548972340845191857527353755095546975456390624099937954873696563967825662515213483286211987587611111199021992621709982392694976258703973929268579274724956779986166482307173412104747224809031090461525301969285298567044478579707709373061972746984363259330435809639574708670894222283762459558950163590094866883124814168335963563290301720718043282396812812955968760906130743291858912693171490240012559847594969569031692522149294715317828353648047348584645308713427582995360016927735606644924933657344412144944348130297518570899586564503067749746389402233186904236340025909017505441270648968695462863772399187317663845290716457447160683391346295432419828479377987850470125584051684423109812578649060225672909054726470162086919329843696200833279108863047229469509769187385521853305458956803898792224484928037520118755095365859074573198418035518381130910828669523667173903933206330780257608031090490476728691312735709968373242064001472163512289666750002761200255984851290505825400182667469507815388110486034617913513539348890488305210919035856212156468123865576610653606216209847594536546604106949282891990996619249118600893418121933027362074242555935226664457359731945908150114426005093439693331586453677401979841190937738579262471323780283225100815850249912281909872090211178239285922676774505552605105807449547298080287836428135410402922003631219282614404418931319310855296879281288957755167114984303455505525528908798725053936793670011185510725284293802118524979539148523759016149009080672784884839181663496080393716164921390143727012983062687753205134913195951071385038700187382357459455438771447398832330627693791578412496901663658471399344384969883101271433473346567734503366837023465135341133990328281418344614594080672644110122696027110426139416765105362136973430733612330255768075398502940175531256794960785417058692728199487678027201110412115273857435387691965827885713166479004334255732832441739346353384119285865291500415936034522185142111334767957210559646609561046504429652647024880662440851699288809926751974608482144282171630876490176711939436962558388549150614236364113558881607148404139137929778121147847037228933282116380633431714776517214793232192182579592937307598575497920118668091776942697255366803954491228911293325690069663809256348054271945711834395457004592420282533649940633396147704094446158173511218936795850905701693555496099694299907909041799949501813185457107377373719814323816470419317275793588370199655293797882144791032880435258776187314251678999299938613246825845283091483815336354316662852237860112738453143711737540200394056078912370573952051418967259146180038288590594588547525757476908620887638133003815777739041656192091237193383861983068482899587998758353832645182383917537333015317706376413319925020646436121671903667812675833335458304972303015161019488555283565762049305029643110887751483821284133647883252768856617516634753300548252038368321716342688019131975630772113894622169369545090653827367577877917387916414934733010878224789349287083660742556815931740943510757802581428060109876524350034425266500197476320942392869913440544643450858352412118571610069050226226607278426305875712101349422147189579472945989842884242897513373040170523086987921571492416965120513339363286458267444677614547247340004622855587485805558156601257283223770397988623829460693744865230088382273922536566318079686260990250116621408909013767363495246476387639273856476640948307343832362807694053672679834259121055262431570078986217242809834135826485300261569423739165007087015013246335102189692096978813275626892949187777818210251396507637965246187583177970269635030621349251137453020877645160290001979655705332802526415106046118944127552594759317369980963987673197360500582327562221664670643221295177525667017017820042203135999856811956099371817092684221979384897367987384117914371644204074461267775931880286113505944485482265743447845259424308373841673763540607434036337953312338338987961769158663761300502374748296215225166892416287706330168966553306128228123873390607471893189617392935004728769720668098680821773076664226621770631574551659459253830726408914702613643256620831395349161661906816677331026376902939438217671469111298094179132422221490196997191886715052788065840001824577088566037816931462816079049725872236990760292624844229883921885281097769905100525462705861494349103406500720829513085768445908968219076556623526281470741711283871070745897995699080298883173755557472301178197810236315786353295264789844595012213327373015579071924860353754336518139644932825391024872387920612220459478291626136997346418481785713487085588603252013819975701361594271422030987409010804104024089207558251423677085407089900329542815466558636636398357427038834321424925743220348288013242689791512998642927868419854308113701725284683540419934659896094343704094503824542878050156846076023639328968328673484886893326611131360467231788062414928782917304973943699405342636014807725123745458432607285877362154226396479455447600674435592043157127900175372327397699115299570567472313803231286406605381695570782273999939511924974145422782545124904913981460960354050391325441087875207242477951062916853336545500632799679940991812048234874475666054285105331206008085115578874833186916425443160299740068518642983850236962819142852216436658852071163587315196606249194059566712175778793786498758814793553037891932750115124083361666659278829331678450145030391314151137414797967032407376384047145489012335457109232167218477208468602101755263257502707358772868962638945826766601810161156955652062264475170414003463274612680039325542341028393775704456005740005372942624391664282004426544198283388778576292197545163047055201209958563083538692559261260155071327925165789918420578850915553025208062630912366754575193294840364376920818252203930148256450494003756067063509153625617178384244047088668017924159436161951414586130972054562777324421828172550428437173575723690342838929889517830141035630653910560134725933767297464574559198590299367851349849334509572988029803557777359507205255934121391802124871817747029415973326101878125633975290450485088544478246346830801142028053426283194719017606171610742366731445382751607706102239919257057607868287588516591009346338723585520636251630155328114129162671377190911892701399888927013214835589175214512740505640236491850792373524094507721679990085242168223014111220822414124785732691731065319430426968074679328096807176635688235116119894655374147946580223769466327904136093831531107769476111915052877632304950983041580996403186657987965731594011728784380487562635473984266590085221575488874319522850088703511470002310185746298393718093949421308742066518558247698032620022334376033979761287640134911642122689701192848650268219405398950484180155322703923574563275299159668733953382893037818704417506731170193881188117288756261347010433448461636083921883755524418674914565378548943986568735087130931237129495775003402819064832258033577552341968215730220139781231747606163858821254832365766602960774325949580622039404599176380219340573736002403685426803016137528415527553338599757200538366534222584033098542124220570790584700515177203704158550089984216651579638125050260356798008846583438460963889513846472312711148846205971411451674208613504079610310641584030603245254542895335668102446246562648840194187580593926217396025679465512208534644855918451767266965381764414700773536109685699466483766114804474634461036420920733454529442629559276222844919908910698705945271337463001109631791897883203673419896620108364781185154206561892020507611727513296352419316092059386062086237642754331560080032302515811320439751619669033902967456875664126422760451282997749886882425923638015998849022006760082767914895056674813056795407750083395077604721608302760983473500676523634089190855358322183611499794954295560105049593389068664066298802261917387133058527200617349178892254714737848113659460887906395380213366983142402719261783813736164305564594501654077678808137593944672485881980373255472669193098015447857952157508076350897453855908163133974839073457871429139124719461978295289619440206219569475383121552157590573881255872314034447648767272274135625445744228918556399198412993946732160196660676327959137295409529136128791659485662857637701776281525948012488485690732628029496756112006924820285960116287323938533180018931247377748440379506912705106560876177394917549238860695225122022701516302082976882302356121243189959491409488015676423881005489969531121309296843591367551366763014472385176708731152332668131835649266729486762651950417128160336507192971211581558279340140310358985445133837666924097386993318946925121563418520569650830419810314151007776966481143149915222636714210063736563637404091592034894617467460088272048301387973236118682182597807942442886624833660179996761090223926256936075488705583429146504028804236733998619661746337475041863925179681587020245125802279599522596560110791828572627183412211076477595376450584905222842083010489665963655009086203996184711776442515337052709329486248255307478215678586282321332371685327871079838259999944627274160119922297935507127129999083576439850583520813674132626887892081059205216579267878152607862698718599293886147720438961509853688466411924001919077549933550556739369000701317349403739680916859621969574717061650572713032193990464680364885668737475862891557636660597802998059854576404338909696890961884905416807593279061263815892046693294073504900030122376782562408320508858292906409288420878683546216595090243800834617014928676897512416680796255475365262077609520964255763846825927409535881730526708254803634145346457705355822284511259207540021547467415680464649772613914362992600131240598595980563704921424255792116221656452049021669650698120227880534737780287538881574409559717795713148115559422471636952563511499697022413085884576598529384648075221381650565013672763505211382690930962568488310667102415088058809282878201464737306589068332359061179029551685168815208649332592164950268914652241292422944082482785009504056983497423133028743211100851593247265983140153375213832626118669148649235355363113380923468257040184324899830671835154533646238437495910245651867560326562472334266327906925623036748058324962792114898346812874566351619849607547836472043650323082283724620195931159089945431507970973685417256730090919984392755299363351516809515605913977126107321759945853542029849325147950588112849707324302956744748287459140540103860793504380834045424171752055518171833859439262284998909617603404979139856432525718101136541375083314308408889548928203052152338195549631379682299123222267802153096779707373124419085898258849426625093494076128436587496674922061272569438539047799338542524756565245989085412079105267966823451425987717303238528954988526120655701893304448024309882566832160157982024207005415319656313893137918670425704201165828052269072961480182132385723822804067617213472917296818649245144406705240027322071225437893696265870883386631350785167605190649173626890682302245621153336899883571123855027007086492241536301756411543321432988866745571300257722345108337099782128619713434653539577507320528211784234770687064396613200478151615141963739463281728203458917731198247743612214155552599719317657239353102604046223023288554489498863448242832980026409301248867629405833919453539551517508719236188407463231881276654454256266111770842030050155284340589238025225300816549626207416865003551115890075418864919138736550316065021261952462262406844163674094311845301013516241000939728227076320664328849802452998694456794303726990908609743416226020421404929231881899372698428087351597574779608999314540962519169385358791326296653507536015035095864855124459990564329052619821981368390760930350917586276000962702311334593212640564002534268356531582397669638195216354189077361028933568529168341757296258867787028913005229507250688803794636407877463826838710675881960399315321814632366771027838214338928964468364293270854668525612638239134993980466124178708378945862728411402108600556657471584942953895110254879709608359501816909878805921408074244245612292497103774739435632967123441474410155213344410370673775222401247551705114525085754772140507849646788844462466220430075214680210183625037199466780357043782240846559222133159756837871267111717262976930389004227537328646571823601401202451581641128358014813682757152710752526690659882425142324484550356535817937303752885950502179615362126298486882231097218890498138188017418569923993729245197508548550077911887683060082998045952284448633652908379112643130397351484265135332435069973683613436557821527179976065726818053450069986078859485742112066121039945277947090472512030134213888596399024648241513589201799519437248366814184709903599813220501732602618840754053317995089242958117828066423956536580268421372796716342212642899091945957230355475158253008068319981617108000966278355385752292438062543582759097706946327046545224048044541766920692066358532247502355148588082853967642927574003353708132044753961568316646233504609858076445721988235342709112098929176357691095817426914887018819524416426717179113268286792106113248195315493274009010102585748068984093893189746968335875694172822748625313340924237452911383880244689473287396312122385916948386419892341413206018297547949081403984410200720210671691727666640706295899080724557253352031368625465079195931593769151543960202666612071677345397616112489396620345883901854068362122832633198445082192290361229784873620891828548310424920742063309123134919233395072537275615434035321182304377841061253486868391676075118438554223713126034987871143712471847524986092127729401735227126782757109001148214734531343429586973436981177246589573079173866796365967042486614161106274315726119368221157882940982971890927138914965887415090546967166772886517605121146577238278062788263382020853383665366729323209041142993281242903677111480077362171730609026252298687742680254835689252640951591885461247487517369521557687761940061921163036109573019136866906701250465061648300215461440567412340790672845783436642004170084646391602875130819054059368522091066992612444583437249164015623839912419567810802941848688843255525280886977010504789056528734682388577602433838714175951047021937405936349465056119785356288294902749382463832070393972879768107700378268655526160117741491529432734099479193315581791460861932674939775479020337735182632254705108324779331631616596828002846779344944856563603287803397683903600188651741411388233423409115323977703856340497790711302420198568851474726457888318813042376833393178791144414871436164408622954633469442153232119438655386245091866374589370276056692054880109416815146834791269332862223196383677603928638422184524059334778027085128078796628465431357846654262724523394790510618794804184557565596481102460282022562736614216203333705365011808550735506281173649885801063786712410167118526957875337400782141464114470509445931530949465296030420400973362096849722351864205645201084207368984679734569875763304034773149377361640984882686038998891263807568778498547234014957590749962233666879445216592797551841542973698747553262216789416482349286934936440470750191971627103244449987150650341899703335385541432428790960879734397819951636640925384055873474629291031261246400585904243876012385191490772681732954896316525730322876341533185035178440273942256484360094916023140335604745781861712896048776179640548553172906828030553799943341072995306799318286689202223978701156214967021518555225279379852706608859279643409404683535435717891260118104083535395149009747798470571826572419887195985566994742015031334230594558083044428976212303607529470488236392544357231342299851011404677952744538889758927087063722275201076864143176261015986914723704202086681050179560094090348485737087217750819883616948300073538795048315530238209298627608032195881869871555328649200387298987324142635873952274877623548883677303764651345759409793384362798376186884923533912519717959920590578897103045841473250354807308084313597704709233340793419699774849785802601459085559400760229168332587567450315761998925532041697981426573928637496090712372796388977884786080368384996956614190698138105143968157139096387776559555937821271115778674595695670344680718594646909187724177040382342498350985649127381636637802101980157344148933877531683844020917555039538270690643362580330550922980194734367022204522201535262359043838344050544563074447486325320975346796565835781908311613324033060201368068042838998752893013269365339602011458711167458254633078769521096828147540559697371385971414947795340913575360260333171630543566512256513712637853483276895173076224977562006378404415201777245756896539676851896654172273898006213923527174241570231786287389639764648152204625351752049434027512492768412698267163429426331720005637739250192543994146062023581577197827310211447482270319854066041656603510959518797817298311687386880571470052003795965745161056013884392598896054021387061516353491942099054274793002141342123336225646060653521962800274865492478031413789379812741869097450967020349484311182556419624300416679448981873411487354796545291809773941932879418737124542516576965014919052328154650223863245970551999023753829271600810146477684229136542358243392828242195080883721135669505068526989772530160824063980555391178189146832130718858969633119297056111951156167337470111247428832252998689975929622260141840812644539419592066147812445508958598534904149564300409438275765832846562872270198446256813524104006092163361852736590112092532791826866928838676935894640653189190984792857204101926213557727566240655562812467844755320417580958453283652421667603202840331320048520806174724787646620410000976179309609579203822629621625637287994305110927278635918945918872560746085882800375315172984875683460343535636931797611889505164674197408849483388204681051290129852334919530395970142842789533154263268544497484984606171396535270152333432499300104973196890520354486012603825525783948929040354080455643709119182440451149263405798028547129709769563622491432132584025787634342076486658830324343592914689051790369943026328603181224703431485153963271888678475385808211880466871377156882775930264864319147420847042386540541692067332381644016625533713804370077060794178390456854625717240643208700970591298712306226251801151667272190138359547819155045052835498487581483825001605370441484510300212466864897833528261498370815094965439952125035056596343942157931544736521764691477198938377289868464794398325973375714813354948234774398599736380436069093627029679310588009461909326406769187467489323261860321616304639636778242133378560853781404653484470368893963360964057627387543663167029916614195518233590961311628563447568664846497600275415442920559063315491477459176659575677352787570860670827774565794821073278686554822461190422743145499465073681007421191741660540135441737915065976531598351548448059944744490264292953046831703767428038340404642787676440551771036594171356082072957558543213933957195175163776159214462423880354328518337245185958656040351956030384149154682429145623466945760834913075776990300812485053986818182612879835393084734088714497313076803161969788567291715104996257644882139680399632406501679419789541027602792585124260600197236430415777261888337558993674395267877156440634899708986292476960729787657984056402486022780958239988560343064349578972462560221396849761937364885635268125551971169513794309740315277936962072597783768849600771239954018572740172374950697080298215522474893524155478035831646839593599859126676217875945174073197745005935700102698608235365599065209798681102127118914908089220873624093439096538017539719717605675361619101909398793973844960240972445288746852299478586119481055777472941941972516596835447688774961378855782733377821402520902286101404540931776961177437418912405612019256956449768059790843102021405544805725078973326480910870357830925030393546799429003471623403412904344338775895027068077827720815790153477998772734465773710836427299413048560960790826129420125867271895442757009376827857966420945093175521839862775408347143865806018355936357260648106414678150195671840284084734777009500692622424372495927335030126874344835276317509681340540664900163538248556315623206852052273121876956489095025948846492252369797999098072330340805011455749796432383029087102925706664650548056289656767659253024091578971809013202618221315703911394311700474566069900602207823644499535848803356729255692177385030782562904421837400454031861215501474291448857443455937973029396594007988380331568861819055393586931967454043574810495190602084683617681051392020397598786102124030619270129894202494396755024977622058592270581861327020792652756022284816258996150475152502367589922195290071793395487865042295836977902534425141655349193199840041969622522789467201038844364581240668850188248316082797728782313136637001042022314833409318182239535377901075416970090757841540851536174856342940201360465624103325996848506704845490215691550520991165013260426349050060103255938395653405759894439944629300277450718734684149057887196357353390233103396635402285266617783897181343662030237103152188909533580863593108589242790571812799723449331824172328550423167662411471304428681160629521305616197854597585260186599239161854227953500595911253276634278155421963896161130676355243555583068365884595325417085853749711205057749548884794001729129103405942164386715590506477747149114553015991211155992555989913338325268492380590704633892112313362952774850005436338457719426814486171089756879774148118747619091616115197844458866485784076415818580134314414208834521294972164047586151824256438133781063137438593273651187825736921298375760862907899274127147479894570888393531994619157262965523814066554627006442678807951895936263639281615478391380583133596710244482823806862618798327179397654343458038492044499898608825629048498727214669449917434680413864544168647164628596893340151239667514315158052226060973717562129678252394897052966992100840265761745538358635356077968609037370242246702319340447557341057556315772768762722066126692972178809363465317317529304814496102023375916918260940466119120255820436396238565933010354452521894365740931523144814556239223061157690691898295405467309789254978275358888613127305574825931247076247962586217834907813076782946288000810870976907493603376668679303874010638095344140498412798897764087546509281550746186801489117672061075960037512817544917068083637103932751370187796782022219627019504318682890368712783171344578043095615604742512657168815034642572496783642336918699877873779511396116177958704144835548191907969696275050963073549887087154438663708012350958799302609520550372445161366727626217424716200209503910893708460916311613464073550655513234322806824153658381833683334040273987373236407439625957211067445674108097789857612281595639634326572782520338507206320987616715524465526812202947149820597764500449519778794436232893104025682315817331415508217144941510344432331700990211188748219861511787569139278757554568628177835986943974928372699625200056224671222103525635911629519821828300970345558663791312855941037702569525765377040502308851730102201153581493123435631578029478161153514185039754625724608379422149748475901975145754305900482455997383636016524748714649307564624994399906389976633183733938940557068230640836373346376703565461924742850576951533749334422687952621461883325981715591985446864335491741807799367690878874148773406132026000133344079536562428887513403236358337590301449978940748860313491509381572452063326232217400434282406573204225031779942868014074372923301310456967911065634643438890656650052809922339754224792006574402573292166528268310433793106444501701488187625670291958817579607961738356835393692309389578618800053331256307948561539095752502950597613077844995802275606265673459008029719893427316352456876353440410695479236870189238081942313007189219936130034680269464223677962610483489544318856346148769001305346285660611844554029752111827938060171773146251426008167504772393440649996375905565665164879937542202833934312258447317107449974782678738094997012344233943161453392855001093546104989816118847712533548933215547227021550869484115864010419073567634536625392576529213388455570260473988540572468619093588003222099706954696728570196550445423839513101738522545907317605040410545365608158992138335474878379228294453435077540109754437309303086001219840831619566837327962205542404145559454165271408308469957937790547289088836848170015765493796399338443973020255535119514636938554196768031365069392619736310883611468967358037703492723291790667980998981927887446195720009272442989967780275784647232642140702883516711282636513108916419723010882146344489874865384003800714708172842485628596200042569076056976329751672058977207648011304248153892382666355613428456460440916273395451432672971973388941180435093645256238468950670347622169264400979480973974795529207067572692894619786586387895500062646429528559543375214838972768975993961542102068021993368345081225855345264018835373538765422654947422947904328463947412076716766571754881325352314953421573540361244379655070611209889438538609755882771875589636631731789025338435138240597720930696758563734709483705805584906383788166457655664813880397048838471487268808178987902958508175527337052575956230104351830819424032267547837813191357257759743941528544116878057917540672266953756180002668325441047151379416680373102015623056673697961214716720846775782618019519851311430488911455493731511252654510241868453297305773196171285977969603565362715724063216922570579669037339587871517605117612570676263301447391941938620871996605996485276524438580615450370445989948058152243534584418962995070355491276493321473531216193178081390328993032197797751211477237466643251844584908983837422021041654951007420995515766363959871274870853468764839474182443371092257073351123230520729620576604283591299757784906150909509253990507012034286476009573324743584467422762144634962892849666611733916742470643381633243003786423715510220225693958013022686394703652574042729021810946776818435965520713552937922467507959022188163990914352304299651780169877883702775188962016346779682153088022200762893002724708036531443348098774210550143496768440006111172839181904157452152413365756757026519391033116928345623677438520854990389850164572875631999172743040509647290753925640024021718669772423138170584822758869863932876310029512011004546103773060564902790005333148972902632264082919863339917605529432969481465023796049099655842756293428772746158581923651639711877414584471379987040475246047250504975205621587967941758006765803761731222398438436048354669439826038095182091890054274695663782705026083574639544247225107649979814064937667504144341171465416645255297269913573907536876950584031491765538277654263006149468676440155549087839600237104729157478559113525732001228849006639850994389462136153102295683132524948840494219276364589132800252854965166022743654580005158754363556289140852204596477609217318147921685089260976438587538364001986051931470582661246360822783822311744940716559605170712900794646154259132965919256192399283782442307315191380161705263680641485585010508073982498234131011832808521783288049150022648458165492668330538342142629452274780351647680919189524144490671592379049216502506641497659025770098573336486247901974661279819134942911560559892855069286287404426763644517264942669491423865042477489370612812145827030860590321790105213295372869200806122346167926019405673506369078252055264296501042390188173661449163445989232853178103425631915557230775620452601762372731018035592889770911660672904354390281144608734208758629705652441588274678979325836269223939033028999105534097144766361425324692749278445681918015266613879882012143677339297627886823950470704850742871003454809135637759913975788929408689538339372939700060956275407257285743640698661328556368719460647154611193703758674176176708718024846037537540367338297738442667840303183560034115411186104151252892475304018488687505089502798679794896828470592832003530994288832507976278602892510755829070400203975648268402981586598146958431577846224510834582915510087201865607673789470560203860279610359490594630409286838503116739938768536554262190929656802077062645164394710620539496278394493941145515372793900860787532680686783448673545107709694642949610329594125102255106627793667288034760174560661194413643566324584246361334101761090562060045870468525593433059406081987597242127255822298360349061786235132414682798262447381655956951159703530748069768505199284082027805874539204897577983016642633898929189144112600035234364158682629962883097907275221539891517294079028804953350552952534430465383653113276967220775815064847876247808282697395447139192968632600701644510054539663382787871343700386473527637427551556355780217541039746596110141122646677924613876472628575564688118346370255903043549512833286908725093561785287411605532095114149223755056236737932238368105423194466368237348689078537042547639934760513761075093326746866674144127731515906990939971440150687774206019056056577051656627405021151754959599962919105916838430025578505661018191161716905121069068007437748471730962380867044166636010997375619631787997922332030592751478062521993926566133459903666250531869907707850427779656574571618349105150927940726266176891361822487212880248183538484862754007236990874558233929215542812680357034789989725215597650736241309220556633368639992107207354155910085056726919672444025596897695174325169559408211652155664165424778805521048753260387142481830107316357127916239070153468561092019450099639770363770907039469209631077159420416648770043050586936054205628728850410395339733661449214030608795168767186483819931538307503981128938419840775033590806956850923831291562050950281411022585703449255893390556486489744942834891698469013872412836342183035654494964279805476113663713187513038009542625513181814611853749993610733964837727012721758634297582149116758627063700060623633952473530918893184451895419031742762856119221977269398475373082819060589031493923416404491596545919104976755631712395787600114958780072071767334077447738782589578660011980720274110591851769348729886999164313912830223801254738285409890011999221814610902688932824819745977500286801477177769443501000451503289035839427935517959426187421998816930728137903835033278307796206140640421454013440676827494645604626904198102072268567107555397520561510672254004056445198553939150939986172423729700877386646186930424843140106038305361852247602174771855477322220753001047426890640361308880780145502288831811974492757724445610428883581688937511027991636167872824055298068787991150202447239329545936967842367078289645263907259896220336294703534307702587600718679712621871394269055680961049088092903879749732283129219042912744690251902515139112632426349394300195709973802598790155697012461763147944848370052347661523942287390626259946645765165411825302711954452625011580154468166345518901420605135176757111711147075572043718231519477720830771372770458054075313117743651838296343705401494293166943382813221159365112036866882325360552651491071837130697939628641319109635708267799672299797486668069355238140623387334186432332416594978432844587581152769648134946724570397636748174075840479570476258117536683538921227478581254310833473217791015031839161601019886909643028805640135297908563136627738104851439977949578451293038121544492391124851189981287722309712066465209064496462009604375834547817692605658320103067225866162154537570704163121587942051285552296377304385853680596808200351300604744096401922611934807920808230549181211541387181989831336018539746299607828929252208122503525738681167170286974056388700985930293049499454721863296033195453489594175114378369286503663112906830382413009783222890055844010963866192848004568030896742351819708575067131067975316515138963219894695347707541338990098026178626863102286173397293716444495964976074441546743070629553702743025982267392363406620237552381716073841105258900225545097018566097320192385986165453422147349514677518527707041902376946352145600817057276836495088497774111099475688150482346727773177626817100495609302297076489584241348669013029304788027422839954099504675080936148619869875542388880746037825230104155526179753022506527661104634312254438843524391438977343350452033050395188071907725887740651461249492494495506721251710800182728555374959707563518107777043049576407082633304336976391844498781135417063026068643490274218628640236886938020529291459183651043339034135292356486693389181321900330067161842703455493828918427619866848649052298803578002098433266499726033743471002779909056946710168706439527977255271266979539439931736896273597559893372222278252502427516785168243744311587071644173696363073129639162057848071702595658543449201688023450344526256204442577811981492094891983763352691261503209390708151654044292194611887898378189481262747554774725049429955896794059283698256368350517767469611489980396541035078971296092613589197076077446338779005503543110745077193600594939832719107301004259343159599530500072191342388039940933499467443006655114467480303948998330807055064279724040923507541383512809169513753780133348481373710599569441077834423607505856695710250362717980581299352482797659287695306588988352075325878897497007713641155647621345799579821720353527629976361579246539685123458940757661825150254611886260101109248782088906154158458982708798312847554125478402306613711287049119646891575939303484891232118502679600481192233165045016065349469918522601933428962538454731767573274049709594863488441693352668598122005780235099489187323385600966421746411715572929517290107811363661425725752110347753830346365845995667500252368201248618627347015908381000384451264148116623266016316877103481981838996729097613748576022740368984250224552383646043172169991858758826620686404813888580424974392155674772140544807951876421976378986070777304776106728385742687607098715629338891471458799628582570372589183121192685667567229977417852518254800921720690482084981399315122886139523371086082467581915474188029418648257011591416892556225863359281127885679966373425878402027760756866210236262345687075091048584056056948734657036032779664426250556305643283778174783059039964629079458860241012632952285851694344861053557724059201167709253170403930134730543509269555758440335427478735270774792917895785924304343361913154264222620192865596627086798667384063205352285843078928944196007985570040907953459082601144494911571248223463858477222950026858675770530218836582700069318513033822604924926421786232273591668580744715135842876388587264832544095129566862189843628368078163362184207813350617906619275634407281465585161149776081268210811438800088611233675497884032689729159026622304995943757203059389132195641869074780945676274086289322372509047186003775788710348454289303697413553973427824152706303441615211106791840551203475567322801409199588271753398119833788570976737870864705164708002660563005275057397235969278008506883345359845251531083459286838840180197987357976911454681784117282111042653328349826018988968240413070620124609616934977361189559137850612094039625681537597999234852895929204541056056750635853827143085915716899212529737525241001029749758091842540847525229706438160260832656975202362540908713395016798910103352593776209456601489980374788920158820523034452592433533434587961925079181817636615050524834791214478646963645028989302181250066373034367561512848280670302274142616903522488465091154705695343218993069069025728956221206967348026568620026998456127655872628071285189828466859611150678917385779016263192694033483406495502387127766260927195988790849114775919271941212999107401327947545355201410355981892238606681954732899703452322185824024705725768377098487423939680133819664316793423787939504627732562823609108667236217063127197599123426171023630926565243856683901345208578269146806124969387671950910757621862913504608685605088971294601210906283009638909956503239815035043397459566067637793257614207825123160816675721840102159000060233363395370412593902300894844392061239130747300002724506887376905587050236964746184783480031733142277243546532462644436949687123544977256523412494974387086344983978855638181028815298756850375854485044051858310988817955212740391945072612920272569038532056659453816148986833164104503532210735446817674442315226013836237401247109534549490425600995452507080137447716677309740636074586772215652139383013593463452341747533133186858259986901001958013379466240578823086645492985403129138478649913124623219749817713757564309880696026100979575961361573422328390853658683280012159750295666531585843981790507685522890224523708812966637111367646545236415111930645135728016440700060911365873111676012672468196254479995786128332597984639846062009639168359301626419135560491675479637697891405041197452473101293437642831259257594503638945972996957146887192449746697592761194213346770659449296567266867470995932079829301202600322830609849509174963706347324062229513551018313185725135208007867318023277728996778169652733715830554863627790029077729216280414174149113139717084094717117023059255629109672445333645157599926675290333436377916602584711121456946763840894331195131898339718993681842981983499367244660897282114152377609977701657511710660701048393778135529276720035569275801840758878364278184675430902875400099535666600317200318918689828533122028108537066445420279364581853411743072661977699415296465994981014882965747029635639409800792847786148703344595828715371426773323237264397241561140439938894091752299411235015531831194746711240019451455235124546632837371284706460803672804055337195145084366939104627842895933158223439089989199695333031196490979116894513052607151277519569074755664805218203105565246666864321943504046179733481678282482721350958024135550335328227445324909767120021324726677840340749227172488474916431853712450247042521554213543676771924198580119883328582125975004116681328315494490979435527082428421873554325225427523490642679900726923117809960297705560950891530584620422922157120134320033648842806330833274678098430235960631801285880774560259048035858109596070281997911898629015458736581325966730828650605795008047548548577176226751272339972360978116452063248358531277267044295070494919931874778830400175617298447034374384845122866914481486892577341112220351858391872456072876568589519284656671540817095494429806169160078867310992258524679915957889682059450686868963964122304017331054386902216453521516307061534261669243450441634023720649036974657693070918779713637950650523102488272991622712237188255880317841761044787601993724770115423595944430088163622621973626665600592350857367242886108504204826340784150777429658184367081997356406469160343025602199562438637209017811620555672783292373376653007676253885741188649584118286624718920168611033162625171821128970335914045156274757250918965969947778163690157183456084819203512192315706684895639605076399449997888098575878752865143379056668770286814946127802542351044518595319736575381896179949913986101412348992721318283404703822964576951221129468019447223070108253083798048585878653160694981422019342550768364874853656065484897246082125104771936073285207505616474286273216981946141545387399719542058056769625411367628528024996922567070182158505727526349580993152918168350485268860332752051437455739633050809428382545914586567532143612210014368882378460899340963937124920387853601774639220816187094995089779191964852398710323921952866742617070709911781254746914361724490984370513508118648954401151597361701197392691451503530252455193038759957190243144672446950085118226171826499195013017092573706532966547734926143421204167159453882838377112316378926554529680417377790984790123947181204514320286913736685321241128017168154742199868537666913081203507699639406210888727338358098394351590135935286618918375331258632814102945178164997513594790423972198778211407421760989875299104973315660075591440056486418575984573725545380946500300374958985137350155467861155011773244703381456971234519173901029433945314198087096492536633850643919888250320612579449596070755336615980717864105995379552657332978206394253385461850083383356449188686147461024434919597343911992650008836361423564986980991858516248851775331914122121340914544931913790206567646967138449816924832033318760789028755808385352938379412760994673762910027729943298942853050780375070208303790056440979681170154748363007794827689614543045051373176967711663733726810568934906999444413553408736149743625959191589414328246882442491755936774360929869682044791065162900667573813005241574855379557379340238543483705801139580799358262604668132560073244578978858846113133818632398310721457404400116898017802062896698310161211816427514107263793108404153577982311317576719698185492408993589725708699297894249234700010814062488857882091295095784333442767528025794072525288578803911261784614136707846851324351095788843832864181731084390589294485778126811731536385938489238226615358417485676751220285221371790647304828165187667858197328165110798666475356973554015671468522374649754639916394388785240120103511864471390002569132734308714481104130909676029685104538660193455340323913675181734716042535106674698217905191183997389747613956686686494512171043929184583119490085606131599814983990859551700810552836731491230689836517275395569951047083631316478036888725731995083372090747607624091052427737951127241007202127285764379870331492036157644965167510559013498519079313356392510527977963671601097328168533689256078757528199682473119425587981403207127859155547430121753494193848591276459487395785008718446300447106049807757851304169925850071147890818147869571633733426174758183880496674855682809051951418471782143215874082862601415300423326312591027149533941171373855755328652378941079645336329443405562490150825053445400129849035564584572936615906602370365299887482077944460480364653307913582117849849509411607602050411616088071622888582046086124886210615470367191093284532749506616921767491416441825386775690886535848110605248872570733355082835359617318009399016993087825999393968245967146178733651682996940367991554084895641238960419361606469667715413470910218593388651665084443316837466171329499161221531933792069360809318904935223354139491966038510890349787704097211728012809257561250464362555278841898579374056085390826283792182945101177931208747394832320118844584496234069813249032410111546906271694965740855135797466081079538955110540655024176289976220223856606969967600481983133426998100023040899645102321344862338343459992731803603829020100193206011902026100838948719955619145263727400049636940667458286373773131598165284447294855388195786163125463544122153983511066252456741463079134512040636145890957343792491797117202428671099785177953687673108948425083196114142202814270157286981400668485374647124257007671421862127925585330707762709306626431474710771495528644459112434691618892100561398250301690291147855802953412564650463024489929482825422657125948648117314111009041304595811518066577838910974915272952792037193452828720314109113183110644746631990963421374618637196436589391548756173489171721507671964946363829574917296688178503487255163410104748902860832852471078212626544617765998796113900008403619608699875557427601147932712011388323697071377557360959602541602306505958865535983345142254211836633508123548732004017916296030824807463837537958236394520139071711284436641975077500922937396585425383168875136877888935685695503746164313734231987205060209449737679904312568726281800734910487426677896455315279181456105951982216547501807160444304265901015266434330025979784128224194092337254631769680697844836233995284741072402653392525181593349614591528568771411001480147406110955691157198859114339310281506275488464248376440320448962566196867334143635051988590255412275156412854569862327800098700367177306130960773497634258280814912612207702648089815522767966496583713943011644493413244221978428497331338169780262054487205207296615958785335056761781929019504001845613856641564755940363137342505522264265940013112061046747347978916356198888740135370663293431153628060686384526405270270853933941741460385320192746130188499982255955581094380068756317670832126502944943396792854764136127491610101833100626192769136235397251555133900566629453071573715092534165211024184890495645216893214185891757083425961612945921303738681083513937249104148423516455524107409614686249049493350034989966852076896699547869448696185068890605595659202868903422790903980214154911070379426164456391582820943126217361139958131725104633735305621920784284580655263579547949511878741851692548447175714432468075513817967633452638423853595736756655335142095902222901653154662416012210473834509695039675373330956151101262733306837059297209816497637308107362448869423906285242310925332533081745940771246985851784929734028657105841960374111433611186834732105375774324303051292907281690161071747761442908051828173481209727377750979755687222653234594270475658091494953352777713727739671508290426848460266241234382570180310286543596468100839018989715161777230593061809606109493734716273404724920879329260833500045136379555197975401574176903711273099555004311092615126865166153753781433326799940637513396567949181088100767295920710918756722805250257161972637437886559664683103745685117019372618767260814182918403908357275287059469356582964642320812424478533786414732559345609671589240997119043160043262611788957638743974123479918028930776880145882385292983653055184623508428577348334539043331036915362825875256070554434919124341722890878572725825944543676050847754789551519785077803916122368211691301719270778511735214400390696136099478587442416714002354862022712519984953258636011622951543483329707219971588622826603807046055237776957821310224117816158684121707968008262259528042839051673881235290430294747697121284683140152583959724728221823927563068250805912352286166319076805307480491629360077637510458694642915237385032813894680173156051381775007703787268057178469822320850967434299554293855921364034076030197724133512269468166360121245692456959886175288692966728466938130536367306761369029796333764916806219343370071167181359077791777187733067498470028542013764221320667583760038194056459744787041284960871984381028798879984434558322930703177985579378236202027749985202317296231736221302694858083790155300084286438263792383862028057181174834109770445472332584614905140223964702897465291150289142908676950036263330099502230272848516193367373036542104174830794026103442904875476294141567182728317257421914134476148708430598274074315297776736298922330240868732741752971886844301404253266812868075552431750684913504782273892737355267978167060101218913119332328524405070126338194631062406495702847712596877318829437921502464830150273351575735761577680261047047746624707802262183331357193868585567451740431695569124361523196467105013266461439577139427374848948554558031006616400740983911377229905865504918226161500327410388066463528312369087098333305710026561056173324666190466578837834127221045484810075800573969467748722277136928458653904210590676671761599079248478297744061023948303293801805463903769653788996260985468997408507802792034360980557143622540773011232815773252587465165209098192039881118926777746262579097271061768336183131260778839234772880026848150805732510048279942928044427601067770819912236618323273048431309819908918257348275048351345289194692135487926888421474294969332453767091030392521002008930887083938598134878675274636783401697979990830888134953202726701217249871574681830593818308219417527782366571858389923983096003788471093409772324023180898227830790271304619204324075347382336177929531603800889203446459140812574886697556233573879137038175669883962191276333551797094058747450939776159421210241914066379682712520260362597299084305248103967219785077695966833030223421158301529682838488186380325866387660803670667660475570804305135539489177605787202004307162377995448832422114318042221233498928101369266081095680007302510644785659383850023642477362601587645475768811543064615996897396560333071366656009010851437897454128671744209360818290848078137586445972744441656930478053499526951588044211816513937087126297821028458578541066963476544564522097669788844188056705297393420676437667598243762327654360968743358488892046581489748237989856551037046587963241657774300941343382897308454024053972755203160714268947422582210756494571882690462526375536248641681827449593480927165540272627181505747207797856844568084573389403995486595681447345087084462152916260149904072098702032624400906736183677946565093963897249385005356851586076505976868009595674932817141884455477422164382055900169274802141747559633385155582241672424343074222162586844273827119148037382170279349665610209245403324472996872582914830160843688668358879917177064370067700889577292144635063488830948723244052584104496243217530714392822581821419750757964077948312384595073691423962329844130994064463684160587350653405256860348998259427588040242403311109923512910848070449372560365572568096877640564384671955100263542229801068996950745830793199191757679792667413433912677908812723996574340337276958698746750047861569514131518116039957996951439039086177387072910425760900113589115204045042969511723323618410777202880623912075212586661760116019168512762184354393133896199272616991583940045817417756953548392668544715196977030575750063758389782159120153968047754367019679135044016818361975365997629586478520176491487840320035777834180633751992110887255332928778501561373528427846145684532681608252751903007397410566265675402979302268278994236355115584385563408399190177661590438629044445672467824079458605448993667481895319825031324665692327023721814710494172443151010278243407377778988820556451188147738839273286841652867783527058125938857156807239803365176283506482207331375392719878418834356317875433148082305711098129086951120522791852522723009069398433884050514681810455997172887220257432484541649573816032630320610932936262495274028411492799065528455292827818861336451830725084042200119236402707169525496646604771158635214100841243989477568348987184427846015609669701128992624494289676274079898134952271002000132709539293981925896280289954773003216169903974894313066174916937936648777587889843590224649725974022532812274349383705172807189882417373973017578940318063573368640035426911164579813323932295129005046588473770594223194044182282263865961032117122475523782947739906228128093475614258356225034139732831854823274292557617860957263364206220960126525023129627327939514577267663810008316166031547473428348677173623654569052854828611201931628495180355444206688266289261673469329433380476826754986616662945495300695192108831957936045503198526891608813237927323328244186457647830418312430752939557677966078224626977015986420380933044313646941334903894796934987985493876896636304680085104472961703068157345918205755103893904109122088331560088213552679814927754511637723070663891380068223256960149131242961346051117065642587589110702584891756524175116718785931830369112964231478165902381004073316201810475914547409893136152095835593021983913361537993462008535474940620552834033099392700174379315518518715829008724078881876611038527801191055538560358620995397909814393942607759080082507445105910715326172917114123276076380174814341109653441664011987070539361517490588431193383867124729498371425856747862684385137692192640547078996997545156449273490773576908975791344572451874327198770195876812027071434438888928159538475189650301267135305050526395111966226986950179035656958030467230590489165179206272936336162423445358563915222733915013647514455161837795408560819920530072998946116627021719996293459211083066783220003845047201106751647660481731809927277467537411034024718967629152338729362307269734134493704426428120885266686474280328962316590312026498731656242688914869367521541111092043849415570479084530201965764203059754041995946351149918760916093919467335197745342753436618140196390269824798835664785111548905068878412647937827761809306624940878261683832097529378945894980571080798826968376492016837109366328542324103270597485706594769850617273789075826340071462564413989216944925085357932570524243994863886792157986154184600093276035714350728164762521606119894045311015959330507765563876288756530420074636021942052540570446603317834103307815921433768598835881463296835708618924821229226412677846886599515949044063801888405017344174785031162528562713722414719587096487891443959243559466022604245021743184245765876920475185521450018923043004702382696919240815117056275635065200174219028256883409713274836386224870566057769324736270940105604509572253009637725930823197928566617926071168887291858747804969647914304606613981413395467573937267083717543018657580653134470108759416974462762532789454931797513860995712353225521694518040311298564074781921128917971354814628190629664708848516263257939672541883549922013134256282570314110776583243867422808491987099060826715124176129618949105331353954654189690542887523555364113870779235649541018868876739907404739631335295628891608482878042240154236843348869077110546786308530021483470362399869041665588250611305696951095243934112598560049887258703616770592572589533966501652079994173104865608009243246848022374009404565453761453607647351116707071143272385421622805591056804688123529076691222852877267266978516704297601607185424230075513310375052309036567820529487648874786710367467554709252822779299509386314334822468853482420112709385885988433139849175813109591610540473939515852093316032286058305558846081351420090383955562868491943364248290028623007992089540940943677918244099764392812492282182405414392756201493280856188373721942949617491064616657450363583824130245497737395016384463124635517732049969233656463665290666155637754800250260825378371857008540954691744541883451036849348101808650635931322330078994031914315161067064200356263970859682506592885145148893403679251584001557330377166283233806239038229005398545496984570105512279544851288884177314555446909026163849564073988128948492366431449324383742979104076747756816402702392008408145087146259434702875029688093577976999007994909876590809309910544579140518980681956712854909367400265102232371463783600378406191158558759339933115314511128777197429321937409852857265261349569782275346537179587931362051546693814252664953854640175895671639060222509880865301568315924628008666281552500657235367100214280116634607526040323474475854613253845531087088389289042966763470209296273272151003839004765062887445821714078828831664818464177609271761604992697873306166354523895076784982357497188410263195513306432806383375028169758206938146643913625362709585536005787383497179432827126167630264949062534123022791287631954634972594519825646721057051132507332327537550843755760220308499230164505507823948073121441684693524753648960377179855502487084352213688552271982440021581093119311272323249915765389966123807995055802643962209195708015251695993400149778754876625819972816697535299071355603688541914654088240745322208462061357721137656997483979708102098711860721392563741691050386563282241270563344730848808679609176932937443218444354365133757254223790435590843876768293281065666358986143822491892343257280885147990517506411196000604192256202885616397215992343286024696219584645394971474893919034840386265601378210928912468009977440878171678566670836770422343534777510269543680515734494532497862884879404175268916074051653546592473429833336611261622167246840880734774747879094302906522522528685896283324821031637511623824670241418812341919701997531722213640865999689191339949856726255335210522298803489879597410748110681909447889362164044045885332284163275950723888189248171335956623481642743237863182660480710194029584675302698589197115426075506998596540107875057195073818846632302189251101723687442924170519606881433162862832510901982393078091187049373074961810176537778703171343734483616818494259983964453694973814723676972803785564007376916267417675952238492630041246984243278144764920671988291267817411422858834112196347779009563958403467914332099069015352647375143470016451492337051416021923319667306068577881123284711165536801967083561594113409997949401260633862612086574628065770779552386684185949595109146124579522472308541379256176621281664426456763857228867997772050711580198214350530260884508381694421056873720023308883214205960073431895965809835232321418746096789996141662219230438742880676501060837058343307121186024859806957636780365227031500106329374218266192843713304897719184223878609105272349106749765973704180776551847797439322311607057659431448297033823389679736384969521741675375542927965887974653903990305593790620806377027141844695953517467205292567911735854470724640766354041555509289851797060844781053582563537372898942748389686681687288907003105996266517988767906116100475101871994866610779586301740308223471167875910312024100641472691194581445284772213850865200006255788337674325596486873547651710942587304082787556919454577839630977099372169325041351643622570529929015850500756104560626872820564899612650436561095464127012433450390384687720015812088649670421318408920980323726280904236465322678044275798672264863564569116993849342687812411637463175903753783505581840103578306384868624134043017648205867181879236680308101820562623910319334806527430110311031352453754298379800319004567849453769820089859172047510772802633824050045696813749147794894757283082081380215831700366680266857662000864612518066256190123809893755959661472801789421917552737176382713593046120313244787028461638189703008247178045385429411154464484125612273595149512534272924603249679040056331658610942347937708026428429115975294929016110007039957306838382138280915312287333274089384046857071801004787019317256498361174436242406606848617149369855164044964726491371352236836145359266197932225744966650853806067775336022989453093541058244185312752986586595409366605888416396027369125967666431574924913448013250594002756639743580537070400138838789799299523880241630125709978584075830678874535627237096458792514017434804807773688342497381281468726642045648564535157032338322369004700426085568161076776477353330419005824110337779418335250010136246913484439924642886818153381232236776614647148436551237774843107072751002181295954058977298683117565031674542217577179079776423883111957553382077707760269779995716216808485121543321702048669926747139610463241196201887466146757866951709955847524336746282423397902779227540420147081008638897472944839242297086913825047377110793233867019010522607838394330534619786562817717053188268409810040201671896321252645881654407432400042052744563995550877660860286894763096321519716010647806190438328764265896382664649409295729581477286196818299108585052903558059343055463979748460239729457493568327841807237172245706580313206145512005374604582417466228575770183226943067905843223611394018832673638970562985088076448431346649841768375591020027805017297997895815339663680942111762042193816792858312300270997493843510860756220270134080781739426258251231224536677686574113171564832568139706384851690682909914034296944026973673666291707050125468813708777002580022948399727499012560008933321699816063657203324819411232021751387884418322381467791193594189771749555492271002107123366680385691969954943013765051758003484344497396051047781816960229767485410224259753467524937154860539680015397937130812360996261813391804237012928830387273882861101842641751867937373863856505274499939256446804335626909735141812893156882555900280768099186297158470230507111455447269411144523042517119187191278888586022722970124511039529551917884804626266463449329731515671042272040494621401248776186561821665756339464444317984108016138875033819185448463760446466147855802038701719840944882506111891033278612591501181718722328867755277302685308920705563589359944388285174000479959838923328136154593245198056884278640740651623413572896598837894437064584787872226120371533518402695195990313690977799460958344187193876577636235914812469700959436366862811658226754055648289035500454412031274468117670352823390863854813611815717803079137837623932005295449605668519791083536889938927038478846522022718081851184430226740896066262862485914329718128085349756916897629247043503390177085874746290380107447305189871269472657007586388627067178580966408859832688367657290732414967285913821326834925584367375961481789930279464767895249890972635944181966698466468176395428791679825033268302474653849857868639584197402080707107690909357160489267486604239222394531151726612036461481074042422459653444312425386316819739622856956583197182435212215303947185963642892034678168108857742462643261136661343369367055225267007990171781445609730565514547213210248916963542421005280567590332508093630067684228411870674647908500817985492691447411701782082834002198233187044178458100204482019355123854746618159558820773038326401852080122179505750138023311644573667973942494400384935408342888774939697696710627589147312475018540594622006312106948709422062765190067324050696745352322766937931472965618869654796838842898948163512337625690086365353544416422852416070924864055746511255532061382213953400038955527004263762649414808673667107257559012325176512647314912610482634472119232808082597528955725290746533459192577875940599387939775265759316570425969324513287088439331072204684541534712348308753163044522776761391330944874653859453449609131140709432280541574642189610240510851066417497930725912440950350427251900713185101226187995391016372157321376124747661637661785541132162616830037158400056977062222239847062220691375513468408555532580067918729155332436932422147714531631972702192682583614802240216595084426447225093117245225187641219758134906033821638762831308487028307021446885234388372573309651826072395134004423348971841000974174878362633658181807728958786763456981034044361350657488331322408336189301582111441695901203343932591733282727450229697568565636753135242365926992393527531996050612901134222200255879429087379900432055578548119077520220984654311883758138913267600097581473742273475923404429170951728390918550869299133699425980340147989642985819040267398049420398432001333439394977348327208423795866413650433583425753845564148777561753112797846647267264123190057480628090275820821227324321760588106402281094154144841296049275466654643565928974554113556070095362232622928813324211239162830032158307759048473428345345636288488361238089252348458018193129038706946211510019499721890863770643571881874385822033410305456732904609022884394865841255791622510004959866425208551521249446132976250473566530061617816625512516761742389114051176125181883530287185690628978881397427329139191526520365323252850552160763891136539590856372434438232023219817981897041520713065919327491947511117685079942074271733656948616494989652240234948414212307183658235485715579610037077703059794835194613626696540742043691086108581085450072865804378080389112843123109078955280294107562056894284211202155577786191101019416393497497603231340189515290415890785299007249317826843962529104820645805605085431227197861247452842312779887969939015777991133035564435452773784187350647874213250517061084787403513188357834248819108551321946278592073441855518903148520549883888240436634255160711289985094372695532461720438345725666505545142140883193971324138836790991806149534267175454755743976104833514591149436621186024002953330424709032166186601267463605870930559022587059555305706893636172849029042330615491632444958389362847124867050065788290274244284906149596556272842604689448612002616968359333372619207756835844656656372799679500175164620795530955829684941805305233456104767900748755743109732932037022333434313105547903687287759057312743407857233304290821060272363000000857313933948818301006646265133021246269247872608391250849389971947745247114595848918184690543928358864380517263972046102316649211733176031022250029431462746766357975594021901171677830090245190468984974169800110645420501877449762368091364633371039219336079751362574008415201831155850069140124904889606230652896578987673704732237743238373647538566517614350927943865535047973915954828855653764945156922840580799668437388646430099600695866554005483808828874585568627811986960394742493228396892749392046114362627784734492509981429892856960076087653938597181150443231835385245591040906720716161756544808875271136697965593474706966414516022724164269077674541259950895677406265302092976611498011856549914933002437524562428343158814713355965408541682154754553222206374771516692379674556155012360985815558583965106366550086231210668383869286008765273338263447345234186475247683943563885571769425811419033211212049385706583819444423512404530122468878647254732553760537856160375635338273069568871492238670871873553350066346789761347422412378338912734553175756626151164403877418450061562927852033144679557537006644423307767843869556671858648067271168951646499429475598106358466373503568494732307095211621003667025867184599595456193933952846753015973763067900727542434769602684345058646501634895448632556081313115229486217913352269375619887641871879034678752987834328609807670401130722744817589806337914904482686710967431843834695361470536826266148776513304955166108724910771326993383112129049559224059605101487177623636592006550332184308851357681083026776576733411474301146166047934758723389923115967480893988705210334622772888985007765826094367831935360735203995095970624648713976951187849781007891510681230349540580876065706142246460599733328994448324640823625303208540330794484512512497340314927664820637533385720462142787016717625877323190532458989900119142511285050504226926193994546662412948729388968211300000693178636380022709017405890691522524535379935427717482432990820420742728653912932583226770968606950006419648453062156759238415502506688198267409494168690062955502628526982153588111908487562464785792462156218706024706347671468395815445385882270031334296268097461002310596129598459021593725305840305006857540791110636111402062551792948216581904054998922598120537204715569660261606562947746557526951946305965678116959892384913872596398778570656221394037062176356165132834042093127153570226779787054299423485904395483608662678822145958316819214610226895489917561441459978771148747437148740568637827566962726349623077590049502985425791337696795997006381132468039836121942380253178858050519145900377202827264645743133600302307040086575975583934561829376497470617429497061452873458807557108156083940230425353527313232989856439916094861116043533401303239325339766274867844742145563201466335909213656888270469772125720548181411259279634749048282958942232316394523688421960264622224780105303017278418941185618508125801715273973754313675550848497679307466808035678734983035140447433638076754793046506741280104759504380413480408330069011122284967522624321452594682906596840729860919036291150323764562152028660500503981950845003095679987859233988886807265596059959022437039381612785578275893718216743268587109983036180124729656358756469960999133974841664708791412108613794692862119982471718176777927765678368178846969133446720306388125651008416586610406010969820548282303425022366147392509202641739427856867637016416173565918285939747780343244165114983327829223012832591144881608005593209418191720512637797171471329750256528272723648573481649169995556086011125847321620661184157958012626417310021281046563961094421967107126190446610409521796437640229445428633153454012584879584597431774230749246773237154895531999016071066388000113707848697364833318945684589613724658062131272509001053580584082159491787282626469937836145568999110315527676387212878184572228613820633029965072405350740881346139801132590759460191344632306359757716286201517500516066903405052820395953154201274368970832530774168736098112108941513808584237674614935874881876962909148894102789350269775682828639366408120422769517131102119624059759773428709184852866874442028537439246090830392519782879963727128251785196392546351624147418380115771985433973338216028570984391194348086875669541013011403605406814705225643679364197848563147142577096001218785195366397857126947680333348568539446468762244277298893661538837304306382781084572118157250446677879492294530808914531553377578693727156280694724691249473947292209075229459888670344716584008716939176683750775919870206598746787765913023789193952516581759763142547157930685961020220685245851703146629646347093960324181253896459366436046618774456309456055316554782619371566205996412230279665481406002875923098708764045740639179461283167197291657380108796897566592712916822059059854415801239805269909876561698505564886536932673229070283489593452948950815409025399292663381799316523310974112388653390138796307689170964596750604784526735973480368460716206788285760784160754405147870933669892044844799810620208959591640502925020635584718801838649017335121621620190852603929177142948703807750765882557352299669140734573449060889910205611802855231561608474292259433269720590092681430446199533254415824366154607433074903649514481316833941422926949490511133033224494486119469963077298746815639491857115941508396785757366199049976088204703729387254106068433442671183918716545150396041837064409114354104121220632578638619558062483553335474382902426271110096307927586103152146603190069234377250844145700310723584194223934704984211125281018261986661774439455736511580815721406794253291025993666088176137079297711672931272263780407457163486310448667324228559390611195386190786168376189488919401268171591841315069626382261656969674636443754138465175714994509326295952158268653224019740965812365471209793625639083035785185544916205373299800423264137627603699767334002305072696419067442926062340203039296936888817227814136174887200244141534130157700653071271420142789780359846593876348193042248478034327753631321047868869557090963780441673215194028437777659896096556363120354324969993010320670521785036867399035798684555914782878013538161163913642938290717620899561233357272303927323417256063046611547838144828897360657330020391862976786209194967491326449354101655381643366578308556892910640334620627552152602484192633235564552231961038973041730542506542010181920488266552924282013342413302767025026038493516628576983155928954695976642348785734114346235363794184057836117195786590308881790257183939726360819820488848768888815885285891109178771403672126949692310523599713981726119094298006442247059303526170754695881241977609426390017319606653987203916416344952403817859062827849854753135992638307376828423166928691431258874568915258804265679196902275657942395261411230755917206299772082889689101886466859503041194517183639353724631275494749429875533549054963760111455406178409787601857525957589814782188717952673869491387274654827330367775694559128381824937981139933368099048290946709289395085774340568378969507151061885143049188966309581227612372716580118106638005213667746021341803819375926448290732882074966597189906129981952859786859630521483653115313679265631597932794797040515431019466314090860259575876168345543206205628511549034327649252944565123277731058743164107283049968814612608645470202759869341438517300210054253871504264296564188662176304860227496881833315407430118708756951937000811971387418884368183360825757063986966536522094967278749228078837893999626296728577112559801346801359481008831567693858119729780385658093493059650589554217403549477032649476174268694217007030981850493025225208846274254283975254939112781832444054714276287768071944531315604530591625098094476799141783724209592028988854506370567044647859924241500115816740789632535481022713620314258325582736704129724517334494391396034920712258489657361654878068834921966688669052939888634122417888398064592079627795854207772154164451091147155819763931539368187595379001557338216972542239190006928076652331010117376077052217809507277691740698854981711902848964929743855843924064240668187704158802071508788325886986111305096313401177709575136757002482230112596209030711313450152935927051728327123296191690139960790870591742188704690467196684782528587526930248632049182086473804889873044725719634267950279432192864913807577356033198415979976263027874375973282653765687170153029103026472910367538975058919583220072911540443260863117059110906505056275064960215889144629926511761357494126014015684303292813852995474724665170036213196325997030355455397669457028112851643637108597220581003601313809628575142846365066806688972531241610278302548753484166230708509938167080249750338049125271000902940459325688547024413360106884163022417204367099948235781365617623633335448255527925333390435802364449243986399567622811020320648133428871749951060536741784362339532224663976012986599500042735216004503370352688748792562183746602709604376116469319277883206185184246206099200068128780859086160327346725067078203849053586754495375930129896354296844878803236588989897070316555727259723366870960777040305271664952139090588666119318915609185283239549447550509333370775715604216821865830126469032145077347712965538151062652635041478153268951217324358489449261222981410673643610310347111357424451620964237875266591726055211179946470775644262720534596720406733565425531368991422400252783650105425990885963445109432782322949581170957313909644360355978625493826466572173716295839955196558128548302310700571412851797886350772273399444309373634488552100464617561615298609020823454892781096677328396979416302090247838381696745168421317261073852258737048552901709454349359348312945056454346950466916004709872069184414716618907272310548397896328508854332297624854865834822961050797532221529417428132914797353045766800423747100385016179474434951611216425886379348737113737372266385322907036325894880567662956982651312580847874400155743982151682737316089100743487526340343365987121403229040647702742630147089525335721892126417543683407300140908691926423708779974488921410518288305437192280859847648942685652399795760675092145229530020801965468869989959282682928380519139116657393904640523908890768404986061121023672710758832056424027061057777122557322069523949942952245372627532838685440215550459249331221786546143402804427723451630169957795157784717620762530166740587962442842543241761880024486020213577887034158292145138341951090320211741162143980547133241199107105915930400159573298498045981835657810268394047853010393152222756232342248454569855858685615637912777629721704214515744526006478115072217654690157567585231402035734231841462029324773947002280351766331070250768635416107814714289350314963480207276237975163643785602183164015629124094508455483518012794968871458836870740370270803251898939423236399264458272478772176344938468451753183200270932916504904172044883025450943452382026229583323097980464845779040682848958574558229744728936335759746275245462889826969540629714405283580631069973882543797800505223267345765589299515090138513405705820766730523265321303037752462055711506997784001250523102927601667765344640230652359519855614495309613149306134920166852279358397153441632794478971912561269436475481773155025932735928214376506867225553724733871393934751947404389456636845103656430586325940500681084582932621581975214686671565414437037505559936117820340169247407188183794326135306014228528513457344200208819349240434012720178483299927774933013023795462330705145360378573243127251299905012283077247228616870488164683300699061347678438822372058309588922407848096612184736846061417163417299861168049944077873049986884614005029317271070255361980965029983785509065300748305530687335219988216171787781781045292441603547391970855771963575553543033334779919423895661811860810987956138404650901831953822264137613012485105358392969024486223911568939580109893769320963308873819176488105256650273047968848038226431037329327731294674258093809955824625036465262603355975543878906080242350668560609512602640404680245523202499387774163089547732698587765268385065884206497329549436007120843840026218825212172827407236361140397419691391346744586449459240219301410575381328458857776386257573864839097795190280846314096465990237485655873352575670451815553500046798204522970038126299938477606515341059855092215575654908209139904946024953918348987179131953048522353646374979484919680161752061526443285660052067701222098136034712402014991826160945353713673713281431076659525521167517226436854661137833443735197169968040241862235009288293721247495445343047098577124255907735355945086311610981678785649732333373782280695254989945352674464020375363320960997994267582631741899034878719362418597472266962095306210867305340329826441258120253771996148536765700669153861395900804723105197903843416602530913331176324868440973996074513274869873264912875672274083684043271184333653910541717101177105504383102011128678303235161631727405922584667275293059153201400842302233996756440612554579581489290114185249588737201965697900425639908136012650614021217390652932725002600027084327287613829836534854356035393788073099868021382135680921379958977369082005498635956354133526363775218098011196004042993653170265758472188239502750525223342618828712083783386442152839719161568790095986043420533317208634351428369195748628793196796452894118861676373845140941598276622729803607312973407590490007394636671311703110831414135039048772360104678847404791841139223664265524751537640860944468727963504499877304894668529108866922200986576321813357095993169766786723240237243985567086216520049634986996341047298776874058014478792827974550630792474845521684823765428403409927594806778042949832086758229829472007821918089840362063117690557939987391535269668158473372904459383514559281402257813327019140087876624676183777451412841069001084166430398213251174497723772698935492547113074768530065428802509919911333614861484320677026663975421217414410452882011761296975454672208110919485086354530163467581582012111780322722094199418851138878269884512260549462922362762552502367483114816245226386018414684048079946878731189014943090679270677841234776738958619806687631701802322363182530578016524555642066360556434100778428222531280573492737836606151171099388325433723791253439431901947150692232680867390460383062828879653020253295556413057116930094026653543376950459664604511388557113357461896238323797399863446446456184468853940983572716971040992267959042799919655273692312302247311084491774267419904112168568507198427233464502039601406329730514947806913639865593079692023731571542539673759582673565922288748864579935627431574722659779565065066338034560484252387094656480455044039550345302375959274646179013766244743192167995011215837171657183266157489289926181213273378709502386754660999824017612706829182996203314720441780400458270004025503029800329194415761776349961207683099337171281936227265839283745074085820603788998147520542782821216752389713421984235242999052010633156960307415175228631234653161996106665051578381772294978821793182631653174980282766453939439425520989513288607127562466732000937917601575340852285202538041069066380633512396148859715079628291866086683121343121787153551589519331331161190682351230729481169754716831291335368823471921907458435302999279215988159765775393350762851716164834619542020946957571922434614110883176866434964529168939666962308246380890691220286010864530675517030901413254783123181853628292732141309615551058092375589675987335818883042047236342866743131760371564062496733035426286901237246625052301620498562077857049608775333378687277161771432829034817697451181961716306552248929510223188890629666663688763493726711004126761055638714364239981040913495274077105096491266861635834984640406731797954829321738743916779278664565250933706973195212596996164342941216978828799567114224513512823103533541566403883724360448904037676216102898084904350209246437760218686155697513637825420465390013011533253079199117389978645202043042108244033519831102373578743732752837751018833023195949575779492662481984834588149161545291911030419501610126876443032862315579137584745019757050881813478426532616238746703444590229371554285163760570081571750950533147775825827177458492098969578496576731171843388693137749925394913305547091667551051260929513121600104254058230304891242686072343774806152537270136228316827141367742661424854576968834620853698915062868961486930848561209132313062065934752418199128788088959087226851337288258146039167479985919618309737786329425601455232000046132855210051000969518656203467151432136209795845453289521088222797876715210106959451376924829027395282083365291750293794176760224333328546987354093488284160829402494721706343931407617518442786295444752204319933663609389967775123136468391639740173601383941302084814729649280293497233161802258291685090097789447015233049374953373843163250786165432337306583795884473422977933181218251368612522644329728285715007687533912676878980428284406513324370116906278496495857252521215884037663493031081034848170880491577873044093998231035030317088191483590381009797178576921469568398124062098307306813598490686645028228223989114284313309213585059043498443072148229953748157592544272200904483761906435037255091408067271905207730002243037544572075330815067292665244536814414622306257619165298077609506285534593617900292466215453151872452150852783847689667054948060031551963160581973122277503149277598414503324064414701261103456604393251748506269276790824241629732228860406744399578344470049870967043568786305821081664398161171361609101978407817478666759199977858135312219000732963557490865792183089205698318090117669634953447603989357392373767925013159502024929672566857089923682788272990318286034915159130335847713347545757671545130765366397627451150489871365591378628131458050463499142493425833663499380184145219841932709556975842950195189569796737704220343949597793572901525314337417449644413809124095776077628676777140519285681024231416866128032254409380296259740373985369182985818493261925385699312365031767360163577757094064604968816211193632728631844937616537942574768562699359302474329888290193571888437377132617443252719510248034423557141885634360182380267115953659749532329873157294637231531031774421700479265840774173598007351240872270196944610435887164460084237212610748034378718976893005949365800988991054599445220843815227827296791341894005957634423800296667460752654325187522300162617657089014617729407453223675638360896922948066737235291055620863145473032763247745506290921862301724243755219540923809173290351451559912188464489321072803073980247963529441419179883468882472500792545852495023005966757988605457306470061923522581552542386577575947982312289808004815696282098382774841353466514260790113510214709340660491476514433579386313094915637386442245245056498231575457647898071098819166602136928706544179484452188317445078049152518145216674492728328258539442828280800269154353557417144304012219807926513711907414189277989627494971217759314423738621089052571227441184943996454370939974858288178850419754036619676543015238565376671634317846305091802712493479979825939003432034006996108608084806534491746764048915897708593665157213194025458779763849144701019628755033694905600796530458531732417221903703399341173555068920312451285436060711344536325989595171364614059857509676449616040006079833303486625165748014513550781067530441224396826021796080995980860808531967002242319302320087192410819996029029005588105183947063373430086293839823756638729536820708100884541253369930936418492135752055335783223739207090926533572696935318827318800913873158304898662676808202319013980656968158587888975310413494388579963515759950195221223981543926680614589598554134376557358053988417582173057962138401159479082860426890744401965893676938954268697813701933192380925940938252231739560745146120342291332229451923632083996037113806094317513603723768439124977788496726652504533599345558051638320964548849929269902241178919570365323553883004023547305288287369588617509198654115252570525244978288459941692739825876612304046451680261579902232747071665262451960226283328416685784952605986284940836510473919670085528191001407859986520199268061455155735107607209298024979840190894426529896628515141338052665681879089622814565491723679773935618544050048219424852426061585437771740473229942255372360665366690296074144223222024113750841098875523606893677261577954477163175627236448186698782868383580458737782500995052889518139683461219104723019108356520893141814575143547554266399988811651114806485142507295599153186078510551161883977742314269015723934730479499188294268434505990623966827850929311221373432159227950076975590268816177063134998834259784416123693534766758552918014648659163316790018621504416737894768563042452526841607321558729240626169195535821019218128270653419360295250643860413037387986837566230337236548481156445353627263768684931578909026018828826908002687157972711752335735400341023848872213291832004383350648713500859414933960552359681120694114592400572748332876342434282881379012503953585807036967354882565435616909670507618028179183038953932485839526026312897936733304961457944673129219022291882876389642183259934288279010178513439687584710994224452671123978295540323447391363081281245565097973587681606728355239080429269908672143321052778846799545623778987049260794160373566315596409290284028437954970081254856173920113286922198156656681511192827336068272930131523263945805181553476046083718636978106358465233847799277979540895957324310411774252413449228944355647219567715295219236069407734348390404449478018041785900729177249500365277997028140773252669569667682251386763057727997818895144023338024989792293416458370534168576968436867712302942572286837760551310704089693197243292124911067225089983822956063583223899565370090735423497352634366896922309861610113113995695776272394643527641243732188921045642633345799198520025111777036761299306614970151187401847416011496193337256105764512657477795774824059815445138959029047060129608945732909598265696324517919635672367148108230821731313470479510778815909628238554994344600760460211878012929774748195876664117255594606507589260443138528389117291617486445227157250113743168298900451276250842197031036925731089018378648148955527710891035401781533574937012833298479598666450370625064238437264450392134110076166987761072284247825840395610923760645285867382216408847620222978520768630645653035968884966838530257880879488018790307177717210513539452359008344238867674447916885499681091544499921425762730239526122280765960119706568022122965227612202769078403875286958442109178549970170477656152095446452109280707762127082011318782347939183057512427140092497998273505604791616061827856439608026562215237470830015576694429973410955332231960525962502203214971769138658617157461025830210573080096686438952828480263512660488962341983481211894502809521055117694999456266059667400820599150549281019813946102174306197869958428042918715829963089323767346598787295737322698009136532745750865336137381957995025501150609341831537400653053924941363106416490081141486225194650341162991739055966055557457778927041565322984304561260260398351466888863659752778618731733042865730541489880055505882815746900735178683489248287965444191775408132631101291351513642133859105836225452653115559816742528500632320362877251946460949790744608590286323633880152033520179643012147986295226679989470161826863924726168694462155952751595160328927012379402513216107837814863145211152517243964719493952683520507921550409263272466393500782238712349910870717602180869971441468522241224330279873750859818673947830005228182636639986107158680708095185308394034862452118007076152519892544009455208616639431577265448803229967435630206153103219368296801698024295418683039776005472028258443558638565276097330775739398336605745110098636718179673137948152019376602587360043590060226779828251041197246190056880644874151202271060901141936730435475447946539071715352189550956755877102363248129362310049451726604975021642082872795199412474039481552970633428860514709328745727173060555669240468334291749382549543974260651316447724385189777448998178037186556888643624494099705239098765104684180722306654184692577458642959037083719175910686181771195567665452126837080653139949098713354045420501460202803726261362873686397243496093815407489870664072848306285223097273939902857676967592287694768622700962798334576951838238493500030783564976880454955277651767765744501054187839494263030487455116671726121445503161318682497888073247522489734755236827034819015903564249432860236588997926806216645668605873479968631268137774967625509957749060678816238622638027298097451758649907458811314136728649842833771975192344123272656103356963377049989059107680969267237246455391139862027236117272654548054799319939853035938924759669382585211143059535480853494103207633918424471180082367707091867544363261217143197150474235160269744172157087057910325437243098081599607648759292859918557596363021407646861858586331807216440386739318202620801847090001420160738633262285322509497729136222028624575264015132658879307527288890393710436863132779432160329602522486529987827939726922248864693849543239294767089367206788725072163465644690032545913555984886679856555954763331946343868585797031490224952454683777465552849834354924155706463938834946414516870064773665573063913669662601843869367131839222483823943103852579833906620953627237438425891186584683889824758559885340353995358747387607879123748886015701678013882949424434523666396181109306965235048956320021853574544424343268296419226983454521500750576956971816665930333995286677400438865672337822915765936787381128789616886512578884962476527312852687411847986842545999540682349133650893396529472717984664328950326467850772159557228140014176304141737376630682331412106760015588948032664926251434217711799886952465698262361851087708422254381945620717232395063978697847927728788164087801884968302476975391849187432275539980118312415270991649186334880513234794860419226545325114656337953813301921929110049641762859749248738005455094072660255141870542480654255328515397100118268516594461340392617714261897215497512093471764820919849546124059524686492254801345044335022525496824474193800818428544850121820357747242590428065124417155333557071093611900167330476526337001357361133098771144358476359722104220140303486863193268826258270518717949132529962834835890066543418114832918729703858975765176092142646689105523774979780457961009964286598822699384246808615985125467539968130662829202255840932715537050477091532557708578605694902782981267345050320865725062883668405360994784905103833615632200887700250430345718172384564299848043407113991653923959202969874272385562194290616627235254748632551070349806830926711199877740959299381528128218332171465428698860221229663566158283946054082771936550591943968017289218844575731916600324525034616266888184742350146325727178890713341622347505870591908829385115808186548997105406077891361867115571944399218400459100014846069003406268331644501018169000331168404296209974646300732288346497710599493819372349759247390896094755061781182128885105878102119677074841427835788035747663066625025010627523197653116745256111313600308620085290198181382825471506572432017673057447493414935800687902023091381490104030263903107593068044589826897948912240662275169256843655464022642010137793833035339216329851871603091147193287882509966719386421378970776386435569187899314122854108437297566277268511386797055707381389425986223620445113285364200149271289057116906841759397716194955793265181389583979875739895050240737439072432144635277093062992222090233256092125442140964450650757393495881846433039706212201342676775243128303092312933397575369335075912580256629896454126211104827709856676437196776016038447891256410674075820289844887977617340431034898449001790420311627756087570027385100413396223295758133023170142272326138577481355977372122557072037031335604210333632962758513298397408041369221733236371222439597399734760324660995698475033562611782024621357096549033605115152422068979853564826811612639642855510318852195107969656630383273982788810884587661319219442465804372523397030681775418591279182565458023441609302055221860211749509624300974033823751519105855982755550774055936750224421075230465172935294035469051527484915145569456761242708904227649510681649508150864561506676728381711036588732750788236881758309950688490192722430479525805973344631353056402300512452564837545725467680734856971551268564108460324032601161123162796014516184677263642243536120868936072785900981241540858570936949539037769427355518590247619953100747598468429464907343752125495672152782010299862723996574743402676433372487323998623902147981381524748195442895332539039803774612701575389424588527348565777311806370220576445490202517399112705812744922674094551561723730434076377971806268950948790398135399448973934911190496709524389075653962047608055746070635589444671680938589744186322859725892972747701011578609303067180781048567856270387926457140390736274718381968525239822875850431890521349281231416528341452410274500509967446456010465562248743260701885255174238706736279457263900847020762070285285453644237711944844788824257435635697064833580568577383803731241247466615433818276466463027422826442839035861798937002582190612656593818771171492802246484026095552268917648483710329635932938059908303116596043635930191744005683819868569067710205643430759676059305024064638968044302323681479775222886723254636183710873155939511648478870353736944864066067767037990390685465670883990434287974442533438471357896419237914372222112713099654033826336925154849420048070652561608206102953570235035576648464263403431161156519198014710006956588949872265643269364384256639779465813383033661920856043348829467645248714156881747392943625023882186490130183419072878957367524573790091583715520705700658184268937869196098207670426920856426062314643905809010462745158454644263627224528150460578583338565855895600709339475097605793439497684777736066572656488730647821337423675195419474120791274417495637643727481785649776126858053056027086439470971405877384399742513086621177504018449023600466195699440779597790450027046750833789297738756644388003318640195517426082743379582025984339424111704782626303248564916303395552941645552150012771751586690150329715054048270231089396905456996736483395494233633289101267511228551599183083371575303454352023773537066882953606644166999663171232434647901580749608205337572233491626230311068498391331124182839144274013066360648055622705102109259022116562733476782305834799863645286764557782402214671286188369085998833503027646521139166776049441010048657225931206061177136767116094238498984845809572195203542272644039109404134459598097317633637127022101488076876254136215799298058326864723363953858066430252193026523187115988110649149297661572949774823748638648507569642306574693139833437213569371546650328811388422707950808308945740626436753454465561448594814723451125114881723169507872333211804276484820015324771630050120789229412859645001423422358991607249722693229795485501979735474107709009197354478678753797436853688358726667725566543182565879727647793760550562413470888376703496137710437555602033910838157646907656648833482062044753200655752109353866291407819362902635782800630681374423801259381007194156805582761716042654003829474432092375918151911828312492515549710763706268062210357440406349879055163904381646474880391958995403709797503370643205855378187469677682814757698403134166171260766221149371336070674442549160792566606132118175119035135740869976465890249949687436156699834753807298574256268234013835012315950748403557289388396094544761193179125926956237287542213932573596437779823661063786449900976834914544091704034414773932452070435699661606625046452485582175602027915143468009529691506821489021577810812596367065425910926757347799848503968729993165920200868667348589762299212569749991826800778376375777895606307996708303464688775316704471637798718869186371005834217466591034654030731588392053900056406010902245960435995454715745825701894280875527324600389803418568701444647832893830550146505798477901043123435963316183730257075729899893174347411052403513926074859543626053436584369447728387347774102180095585468633741412269543149953183933612512753595306745546951643737947903643920488474417781908032738207205841237532923691719502877434549517501222265144506120891290100347360620198532000105715712421800534572842427915835955890463482836832763367889246092463085903019092435399696748583867105665023132267592355837460148978067811511935993048905444488492787842930556812895812092846424795298259043189451472822973692536962580906050454943613497986203092503068470111552895477058899712847468886297770027349812944095889469371225800512887450907576534539697392235407407287507679583727885688620840536909494309713825898068789552796749857348084961414079438658521803438146948586948762558296512383733582501739156869293611065793613575328592917581979930002169623279022003115597998164565862777211675307757246354360301223078785928292611268190168927902557633485994737506450997337390235897091825119819530262633794824097926136547222282581640080125627075267853673868037474221931231784418911969860326088590044004055139121956745909238262817355065170777308862160317510977006703425831049808882916425584354761622544979874104238796769429389466839994929319367470703388429987851782920002144713098009932001451758285893718525573591045016346348262744433546413353443660994424369716691288339096142244733403562198521966566245488150059231012525107619467581022040580314332814013481189814123915432578685092331624362394123611876226512978029496396979986326350524673690926278946910120305029916686213485774798061484706987174238314931952421971324235016886683160286604021666344967695545418489957165595222529468806694761794817943337190027273912963143043432319971709583889629065286662676103950375846566258103387892085229086140988212763459457715895703612739658260204322664034064914948779090341928184773846473554364622572023214318882920609702132448253379546350342634403225342236889430599048675805541502653010526954907091441916625449009492939679232614466856139182954395614181026575480814027700318317021244207686783462923872983412724080734966056922650750419861220219765791030070699157845455493445449456523064965378724672395100300371606180342839392724480272523923905834746982505175077993582974175116911355700344364504633626344481144002820025439701476679873901161345791333123686072228875525064324653050945281923436584008256236544207254847234348222231225722112735475700980082572605882514051486638713829065723496488494181424822578634236892573841414588617208765824263906858481420016348825391440697205190244389500390061057307419737041153551488091252880581702255678237197939199953565189503592259987705822731039904600978332910360258874499099470557034327580119978385756140275350619769406597535903489759584523983686715716801435679266032423639501976214719507326845148973062543171048464914474456038539042498472206688765305455037371875759835200283245431872100553219622889563874691504313394905827397652945672653573976570821989169288383742361062828619805164753180060938658024522729617076761993172693594346879923591249262039276548194647623934055620137407070368490250189939631786951153340443103488856355195619761638412126498343892045980649775592170327818914520757034640212473285908749038970655981779427361572447700541259390946587006159082237992337450186746332059249095231186394731730661916518678205869944469601610826438302346246046535940855394743755124212748221737404868620882984499347210835778933696189298540410664359023853905332755451656026099681819485068281015587373058812854732839055750214040151099604024842503407865934307527726645270889300477546794731016983407438212149542748960225335111560983793993395441357888965593092920311720224941290183788894382263257277338456172212407876126021041953671647127943555589414748549025584925857338820081883956691877137305262653220154778659642260585279936709182900551077298287684661213444315657945922906530300471464008557723868170136157420982899397239561262990803624650251377238588325095850064559039386467095548476412856051477288795984493150309765108691008649290077430291403757803582578967210574131569990713793701753385086090174372061359496654712178783644606288955589757346419458386109712479286425959513408619473265802914184689257119538541516421769357120268467972202676025844082864882079468913435032702844103793478468262551331302843971943287900076763321217541666723821228293210309564108939452385198448324187122594416026752200727755572029897571756769898423108525565926091572763213144716853558498685430536527931065671820416550461824845451506614787175289621546278361080425283174264368066122800260005086691843064389864244875294682142007219135630745494692483022009721261602251391789712941800698449891500254855278235000665813024340758167752779865679180087876836887456545832507265286107136877703745192794581236254833272242770008343558969765881613315558622873906644438376130153980767426276160109150440538720560785350312841472881244549169953556567488079730770011750155795120171950805127878792592313620678908609466177284403771122456940228014015759598382813830901104401851006823971077717634168472478388006923854094782675145993133215178876695494858924746932722354112803285861642167778309163338406013113203129485362953927971206463437638952027983600581301965721951882383364318629897126103215821095993142731120862482189619257919987563395581224346799539640719807577244601453896645827991091931620595440700190066866139806347881423099984890007804020468462906361882876577178904798400211232690936744472829888045489301207831887049759277593648705380718177880017134682504296350426816128018093193150728107548489261492397423896639920573568306679921659479470805791894732796471211936912439912227839160781690852097342853821410533409910552721927704201444001070934513216345575192902048498413640061246515408006622413150036722453090015632915330704051872432344192507714978528004851995903312489965715020797916652372609115025715108891839808439519439350560469914409747798201983778152849338977875401101209550550635567994216105458755558862838765161686807184958635942255427081219211187270793233133270546631168240119381848503363792687254419182963957557930497919113043428349877216057176761431056291450344648798624225511685136893575798533696673579431956517937138409431105664229548927391363136243864728404915988920400549095529082003581050025351294164388777440603236352270815590444250278680496399709532008162198284523973018644641070426579337339721428787120604851845758664800128722754067720826109846497317546052241905921108436663694024309703278927298957847138528205528523690268082758174667818295390433294428876818166534892030795425855417804949750110285320778903697912642882945884236566574791403438913614876805989108139693129062456216453103913809282857426486331100715937482107016049384415220034663572199929591698526994451096108566699811393838875415608834964570911266722128653678170041155453005044767030486068893112718824200346159898097420861630799267137256775896162385491734797652227730882538217006122525264549239297426039388469380052215161808415449799374728227948494926110598894530434203311284839717029761545531240777325776191160731551293831072566392608109917679006294728930637005024620195814241119212007890472890542812325793417520257401076342819316216413087637052626463675524891032052959609903878884046112997147240477030114016016721457978557388733338890714572908239937870530308841805368322117510818601976842617670210826729826220892695666009098566786350090882119519109297870546879201553854031827249573851221309340552702142782878558570242914397221479734367668907916983469932478379452131718444802247901264303845297321550183966828503449787052611083458559545008607023728732051635371687302185143401487341282694202317832296437031091471729853115475724140932498382184895011124658500863350851246775077981733241302079120365757636032908772080146208325128145351157397296079082208117015528750582040670039855531484967642853102563653562300404524585163707599627927301747329528375100219040985880699824857343726286755304812140332848937491739594462793615123032062263298234134875968673110780910250579856872465607006633402134869883059539426734690448385410139821152078059980926299024706291064790667161576028610957969705192383637776175602199442214061636180076228029215166583135731719963424599090681734741652676204162109917251462159165710493249024997686973555335075258877705922763986178037363922339162779798535339239516239721446191054140019089239426225910692638350761672089374264314562445010197122978568537189773098374019758466541469235212174191602304081277790909511195537007549426710233833624948318448747958674136378976019756274234564049530393693362545638852726217169874299922557495794324542608232642213745331942870378929528932727622690424270620136018205124548745197056180907532822744140195636522318447200244523541504143196496057891009215835151050422004025220285454472818064805221754135124523791058688319445599307176307519661113095870781743618665587575905751972667216420479919606409122338899926029397864610190898250850460408265481413406965682869151308066728573196084540683712137247433418673839563162745444171708108775059484975575661593807299811008370382184980520270836388329501803690909156603779607128468931582767974864122269266588847758170555021536359904650376997194553200047274271502581062970740488492767799612932481285489360092910072064913283664047903315367910850550261312095822414818020741532206474547362937792930197053208446841999611762408970263423706514180741113087523157763521234078440842680614441218836991947218433100686286333683697414834706605357899412101610196591568020026131823758622358737915640404570100756155264569053685857812375622078480101897874093300904820843414818556962430223975465223882623217152681288423243660314491420184862594684606696061347269259359754930135248319104936431779955270630036118601827706785761334090651919905296272358004361420789489130394128897763879031703396405441276408972534108676045038729121413467043683610829960574456895217410916692810627005538283691433485565158701554116066525310009788396165029031662001976886940088442404693711069651416056582052298748135314578702391659447963896400010114868245070964349288689637143660500876930907224307406360703990271706701752301663559482996206136092711103925442933440634600992439298864587326517260802216264137254384190084952192718799681413362797124821522693822029689297447467494280766783807500973985632837736231718001861490021621127507190623735508339472811983166678926442761155187248774725982717835999802572298120829877966408018485412049450560997188699588480130800624735808132548095180588331967499800720730787132271194454532099332240705175319185305129654304837815733087126914946979184870662367378953065153428091154847455888198526231748693807092094947395140230835697619679963138872748388174293372620281708847051980370213210665540765893787035590204062769778688258460432567661890032982179371611548429981020864636143936486555177887020938430935341046363349617370613330873573912866871887893219915557020453816911753502411662711474690356808432998389980002146860991231304444721025866219933221559366450286151655939122451359843798522331450904830582438850405236017634887811996325017252075679762305365216030139461941465020125508624170942008511273131530491551139649649889464986466414494415564881327801685620314755032892820500697564257144838797839583438544848754924608817697872776890380336720395053506891768467473030941055061432088966971289153092138912566305296473180873078937441245172887697459852637182864724734391823540084926623387380252640437765806859705945115052311504741321410922324956403470851573330673227601169068224399731908003825814065488391360702065238647807910472434777335779840023597252641728282526566911858545897362625275602728986094707791757880032840768929798012572714265519506602515724747249527028483970366634876724699630730593003437665223413784997782293927189111940962276619737487354870333072177641950552009105161625224516100875043425872130130899204355936449565108394120749817334226888864151661221129297323181142429956182985853934851547739693137388716600532739083716764461249720134305133174610307458776936798672529328586406985435336968426288974353822991648204453821620094760567003107053912056466648328829541936025170713884699318286631755076163866258824053360622957217906943698564229701059602832333611684654656385150842433884753759810775944181028209333049506612366775580435530274363855991565148879541478858242217776689824575055227416923035465631258734768594350450820111904942948850125481673750455933457643141959395918069712865406206800401719122614208150316678542697628735939601348736943674700858569158812436764342829897486824857434342074524078091740920631861796079378146471532272559279814902686646902887604724690976848867193122358594971546433732029638728821284785907724471165501016514856077015307643253660117292202471938508378707956729630652381775787235393578305868819400585391168884597984777730114008799970901657063601750495108270580251447660676610748910570160777527939005318725982867161506980346009656294093584462637303147800106786593771071308137729878312809941393178256895911772773328443506656223539259947388606841834446237824070365552166166005531134461737409146732077411273383378612025101632017972454532029608978086173182003110156897502972849733004202550419953115108217767587009128867298306771336189896892962483769322695594673730031192155873652110631259193782426039283495477741199183071322405251702997848910102181514565689056627561111714290313785960389848744227449690257508055367827989271503560930619891754223178530631685971192897327786769490327896996853028392347253862658665095763581387524393290448757292198207750914334829180778575599990216703168410217468799220443014362706192191446758225484563381215689602894572189434773602309545706679758402415155619026460635478824314835858733718501346506943198514330049240113769931012197591405542962514769004496423397027430054355321784680128193569935230419137587958628061907631188567823609372371290238489526191487683275676876975312809040139871532037572408507971361747139603253598456452150688739288886677011953894831605900038504114990437991529354905475252909641942599756955126578084104175393870547469500477337742641196271564896821489464246572972702346512652700216860082284139977977008265801001342778139519131498796540479849575797959188826356728317296055699754092862714609365708496152184558539739498602615742937885954154399157558195441722236899825770961498612050022980204415886349909345774010742240103434339047223281484488973954640829323608320898577816101528381644294573429190425280859644219298305923586632430494281166558076807196503341345837236760241122479467823609866692037607212335599213500739906553164488267543771298804984189203122885456263336439825228538218209368865865747504971904761007671846859374130556107572924667040805534064061831822359073234600468016637503608849430984945382417569300643981358552896184655260464156561863493653297988384199387646305865038674138161874701313708378109693498613465642889691867245975034548129041942186580489279760894152493776773450341350186111752951716768706856233940511695882976505670530204093765534829404033487084051459688090091012024340606124257239839326447201022665644950566562005677012600124369266291609789803810220269029946689020524881052934121270384388154796659025452242101405116023470280932091806733461626618314210867319507790392368277043051104722609711463062653995026670716966058466411230241344153023082834029420187982721706118363352307148841060175798175822992979316402398789246264743249235917880065621431949285027458049272479966638269296089217320327472779157258282590590113929074920568475090002834899260549880287920470270778488905832415689776527696902689098629578671819554698188153722044081158560326685062041667119445129483734401819599125174695037240254744145603916765413293292490849298223254920748914899478533897899021284753330420494928617869731700476644880324083217766484820778520520575627829113621097006870101126577546079639911437963633779747419775720891527558286040144705420656835372933713467980062717806482545373844346731531229540157110632038032873706490192454361915424656706500813749971582840745395993901000692880637438047774438396054081336353079511149146239779520576879710101088202015028042713023939012825597388696516910047917648067865043999892220180869424546155272600330994235503593238864969051247509784488190626095711981920240491105876133303439257178007715118017797631673426278699658865972401158636934683096900922141554612338772504175446321437611023929504245221620446979426051931809183134209485572500530984781673860473029844683497149061038430136117243424300659833552653812394822449371858123031922874776227321966097747460768741111419714744899597790547013634093776902724959911274818876607433515129576797927040207239188500021889324167897459323777725814549724541053908977312350998881226483671507149604494139086686675130214821687547451072349985585473526437108146720837316722498257241615877859640411841743205777545685550346061594914237141463399656279188703582077516020982263920094227593893032001556911458414519469085225285986940463036588679825399094969703706996805806035017806887013868904903078098205628157741830172734403442897625910507112058856192887247623044414601793877026936956733578503264924479566515831775086171497392774404846925004111942116392027048386415144122550929563597224522850822949203072563336610161085833591862522179430863221331440331604351602425773120651330568825832218678158927899557918275275304137339480569884009471018630484284981950231946728961584325630134503560918301094940994975104622552732716860982226714374160591643943791239505358157763075316391578101374826705060069568843811567096926001094957744077347487779601800727346249159217134753990742679202013234652934119801011947113601067109154484906878421713667533177562148725341638317479421910061741034033080863354731076943652428990348445875137793815546826909854077464145531947637747396528934329555728641119267605192086816187938108132416585398461839699539215841722596263438260704779597043880835810277027523196988544087799457122492409022079771166945872651441511651048436946860870191240105419544117084868023363632891890334325570174455892617637818929433697306015253271597366175996227457401361226249140958873236068931360863786421401567892898604981999979649045879568533447521872118861238277010917630169311930756134661305303620852400655530173083577924154760520998879416343564525898968642786084905169982436076020308168292488094156668673289959099005866094451783467092941278459046051925481848357603676060795628236011658955151312296159831681989804147124043931511484362609266182855618479352389047456227332110055491057105585070693910236945243741591959195196653817857297819062869723565828860565236728680531983045175182604485344187234506826178193669641671254523135707885866281145045491304480516184423703254345793662069024753539295206098493344855304851144934564906842386988918900918907718103427058167748131896335497732991535019895610994281073491195760619487418591258449535420839195546714737318530365749885492321246211184541125344230359537418188374273471080456161607634874890472606347452939121524098548172236398316354044401691954303521066799282322006809356981759965023351592368307840968010229691272173088677051895566491178804491240566007915398136244142284854246480595541682383080661678035019522485184388657688261111841845750204709387849110753749931014997978839649183883638694019901708728822133688146862962964058311894219612839163802579902589500917226981198012978332140154943218366519136053187320088041399311506328115557189786470194337195697474774677274640490937902034891445995699726665993972870779651201290880437742550203873026466205593617022972443397809010753993306210837012232379234479497115748544513729134175986138501025294407699612016585676977238930798612489362639243594500476485331886041065069709640619373912615732564535131545673739720372028781037881323313202406666633643036987768002992588727253976317332551872905885296212905132957260256950708145263930137747489236696862784164342404124811950478770128338080114854714039111656768044296301511974032980047026489171052592311003443332575905339902937357660563780504904097058494528278160607937067244776413916596154386884026245475015514489581362546334820617742011040920217360902008018566352047524082526850055080171906670300352631525317569185562016874008137486774450978707179749649371353907090230393361021717438246880465094041764909771130700215035896636816404120355323094576273469060309729283425100484156837107841495174618349233518713523944517216908213662592724799536670657139902201835023937639899607875790510711079493222143053453176307301491602230457343939247256917427960584684471783628347807702710137671313295870303645484500827908064464395156407532264609315044507068564594698443956445384710529775834672230188340097112633592159516368966958595215179678159488565057048880963743348383513688630356618270448384602666759234536793916439272654615846757415069144176763167987027968775676651409430064731391974842157579292479891813915918563852912415070512434395957150967463706851979520310765979616571084095153613248860430835810815118957684827290953109580243288082730622316592721950704771150339597467065339623188500699483143944396338406141554708267774300987231894156054377400171622921303512958982154263633032265773209218690001492472901276686225970784428524139062813632340008584793712056396571125593771271043059610923029849747777824439984557239759989850983239358493346888406433652158821420984339684060044171665364492125899399145375978332012699587870101730616273091870569433983193563274329094230382184871680588460550049200061939836017496305815547519819545476409750006865871036519065909067613529619091537645618073400364711182293811517411442979508048859663101498616995001343520897943805313438287806530674519023120999217394508438719760642437543344778181719514610864635706057896538475327318417426023906388604622311818760178743972770833864534840874523066679238418843490340122446852429768002751883575823405579112881447025633709586750048820516880016620028640653095572017794599787252738549286130275733781914926416197149911735752282254337798907456277721516732488923508595059187701700862560987243734678692207900291207755716813686824146306005093391042574403314209296971655056615994151330943174388108178033152528504022512017252985560065035994672861747850423541986223227430467498021241450430021981197770805385851500248546813819133806406751944948798624161037131539634274789391053682248741386637512369020066115261739107977075375085125615272246043717090534819218538470073582775541131189703293007809800197687843307712612635094469740035570093839192918951328031289047026967844395756817147885768326822867567434991531223433520471313736292509377224066638860816358551542703509720415377205276128648872745806995781119655311227138396211626671815269397359953433766721836240778586561796043626275279226912785987562149103682183063218539485151407807010663297427708331717987842564703640127715577594061005232577282617534745613356223403770444049256049262294555647908808286685350893293284206744627967530414653949978321113530985642880404959160226561674021522033879324733275377720172700475263850775907699288382587770230703655589857197256848220929011001013195881917676056513352750550842072017143193682656294091024449689858188115492225568906229764869569314307874688088055714093864367216158473641465587713916017142891313459131762682023470061733674036455136265984686656933052399168981747402814922996079427904059101820108836223738555392305828073108419799036912963067004176819094918359643429937735659188941072310224095969762533075163686821771081328051155670098704993934641812141316403221881771471728864267187640993411798878548237927956502675287776794118292985619995399338203117256868871313754565373784979002223909536259454413681972643945389328629176455562634707939474992746739907953217086320058335790584395299065574610716143947725732509554545755850128719905688822378182305467727954617280791268332386422527844756352206034392004070608561187726128643020347860751528960253062027548701360519057192557675926325860359933917276999420178205579442616114545287124475640215804906739657514260699899081149726925441640157914749613035647360354436887611502082324950853555187504591016714907526648189971411092475404068500969514461681306551885007861027516915211336322065564895493423557981231706662752308835501167229001762219610591127151507753263793973720383880284068080361238207382408745968864711122446589508743000835318103873046079187954529240541486307902140516711658728554851745128041265119006953408582149940586497177025024346776407224211603262256793503475172646282393722202737562914353504269853313724525739396944213447423439803840799307371304879078787728712445425701835892361076150220305899870622423203690771219642092691628376718368607913939622113313488584656002911386000295421694862538179516748887649588998105386461707640458201908605481846551839262061061843213064982227784084492738625864915807366365302022236713415323889005571523361940071508416944976696350961787603246763260771933207721718830508992298906296666664325097918276318448626695571624944580803944479137705277323379403107992998964071496356932456944046021907563104544867764926864252870501318048414189876966630615884701960351861438558035597253342647707287223193737732000171430664583524253285605539996120683256784022223739336938214840465289824043256024159881924788901773170180855459545915903426053946012802827889721686494345096080638085912572106674338856196936152312321065464559568132226986785185347997396575274465026642397611838381395016874929268500440176745240160255894912840536242748966756994604092149730191109535026345705601505993272538187651229328634645114856159908269821571383733527243228825173216576243879993570190116486766547792037124085722614063262000894130751892278778228123569428659674780104404071552729996597960547500081014350097565696088829632192481936769956557556214307844053731825003704642452338789345773931660047622593235858392218280190277417199879749166278329088316523669772603564144661972247609836769094175044070145187751311693011017789138572679811741164329868160060510520499165165018244086139163819045785710985544059569017832444529656350961974144205630234000057202687931305449412774316519842287449818865667621435737792860855585101128949783761859793761222952671593333588764508746261209212074466066221587686934880693280586197820963036345030862172047876624049046767420760799575279284602773939000354435561229402337607493155741082976256786233081945662190497287628821225532495108311012983011238248913648874439405557549155066453662226878360454475406378068126397061541527584145867550335399271240035380803137133183795501469577255277688228826214120945881259234851803185530868103525386407562378512960910297018858924439835405221258899481251594055412314466107828507891510170129851448263318540771301100011330088524616355520709157615467703023011824703074120253643853887268593996289630833093344498892206829494748195770072837986201880602998903018341722614761773882930935577974307764723539513444496118719399995057335063388148070381179029736624174367024929874963559702243605580291560587835340938663577982546729459189622741805200899556913172832151260142707049541243761921669117646139916051724020839890072534988230509478769143547454205272387943439826465320682962875350054907776039086452569401313998256629643487514074645221873733347929443283563154896456291420879254838750212570744487279143987699229334098538068974476969123687081000185995218821552688023369282903032253062162387948297761677827549095325788275005668643963332338572026752359068292985064270012461052534998625438011069369354306003553316288734105741775169531299595401224236917766065092079564449653184079133725625907659380704948725066828596457792294557651802426684386630728962625042050221026011226225002771088801910251985521211331284392515107464206722645425160508023620656223348839133705265724027903435848273554698445281516481514919636021579129080909024301780055340257715485530026686725742076448666458811766096389199281957995045316267906957614004828610421598387646602702381737660353509249282865943719485200703632157059556391429830137583418852441591732779821135750479657436095502045148845787055921149476926316360841891448394386413250338462774533590928482702010256429604599655457355195284338917623897509344010664940251221132090462604886867538178156646317288804622996160222161620601450759483826705420063856438055323409413947992131693250544647038945094644309857546141374405077607633267897369344463747706870219737055298595069037736929199670378006009574509521517752415802381940940810838716191977602251559365907525128345179758655004407285433793435785059846143101842330514620904209919662165723901212086167632444009453369312717445804760885922568447100717736890880667717351985662679172717035545051616482939279636936979840067953717346128859385599683910981606542912603622476982615557478903935494655788587025467659321673697390852956918222556389210835103107034202318043551507789477419976183711419456405442070781771888077704086787192314437142832133883022019924994284915097235462156795698543783114664807244379329176867319731198155528872453599796621891569473359982821502322902861998858337892509152698706024135307822047194483453166309498416343194184448799719466409959276302529062072285765164740694646921009216040514966460295116468246596497930397148987028827764975068406335419459760265447449545971828510191006126335846953286079012832276141251384306894333407194763172141585743425676849831956018669536361962153943065632247836895199405172389419238887013106172648891644304194201668695310467075428865526668923991216190893027662599900050504901620977284770498114885156908248986438586872602849753463668513914194803480599082723463356131394989621790220674380476358716000031147194798163355162708093892482509895518787991144768163977592257349355634756913527967565958392021404099710067454889618688518662103898597030262545919940228488583490750408306118456184507241858967591525770030946200660607736673193375000239511997661663884379379459075168461629006283940542333534747326350237495764325331028995953999801711291053011955758948690967042001372554002029260675129106032248853384526880439752073292784861387472054444582677554092338141254922236013196661664130127420020287936438213714446180756951349088201579948862987344083170952659064039689609484262952179574033545697520912403197905782979932301880280573768887451137898713812443542060747098813503405772022147835153856169670995264271683245895389106637372630456598082291807911132407702389336815204930468210769941406325616910803593718267933094392000563532594993062041968969336930399196925627453900228904459350997199204126375569905798639117612990100067828221994963346014913237837476642423825750484989304775154582232429201426661279729795636455693237663444159992377566783156133701149442681805156662606090469075977569612881060095626205875667122250735250075947874073542796971629649783286174033054869209299021693677935003501001134033888363517269864528612570509939011141392134396214156141687689395469272490404317808354456586781490592803778375518740121582664033636720038112221170419927534152373471044914084047769305531403246067855380567829055551229116749188617089042038741582159842498318028514928281078843801597364569608210392374957186401632804263400688507646490801003685339126587387242083387118283485583583062906970782004133003286907305396895885781571392412699453537414275989441510784352510642096344745038099690421196224517772374832548579602733276059246488941454853482985096999151139271221199908782650564952331643587783203613777870991355817630103409180524314586100777740328667989303109525158085417765764211235241602779933158122963870199435314058859043527714654942618185899323320964568372204389138512424028311929721112199298721257269948925447095141163583683014803354576546120036849490488316930107840556814680441683044289956282486945124952533271446785781786645676425585096570869150294613178358203719822475403744968673411164710905307495365084307865786749951458435646634134330653916061555724176807597756626627111540618017201129146362064594077698185981840376218798261609880758385593628838364899286920604163498628794951050541051238334236998654638167367251606386430926083948756978127357889710174808557111688072149023301679265074396515995671722710382695262846122026918097855394716269642230443787455518014521546984736287003257032016873851180415568964989291622297610864209325937131735397400545878655548420102674815928408919880441624018580583800022200028393289903363468762105382737869350228421150740210159177492216971381539264896702716424806366963998089981050655385632271263820760672002686046212163963420562222927062708006706693682265190775670250167568437149417528703498778607383364919044875061653397358643675438770920860639452128385298343012116644086030178737146042843718979501265216420715032554960809321002418319757062331731050778701635885434101855953326851161634248646491800039421686932085199078330306040119141077793823449963544443419869968234315802210316106444639799822129623551363744540502716211276561168314643426791728643461488630505370344688018542109714196405548043478015128004231995836699911940863263394761780183095432541534796603876767100325856733880091796472338651680157487390715829907132310108997471463641593993004869196959460020126672552346036888746360453856133807548731181930599141504982366340390600593952882267672703418651193095776409349283631460609882485522171242809787592522469754161520226088875410143419295569963589386953248967636006456021222418460460410042693515611014422910898244486888445479122138730511756807174412429140621110469336111848639319803979913356090301512328198889737855460226697487917179008796146232541561029702617368724321033428609516623201133984068913892581432733890957199999844684377037411833567617011692060809521034516750208840418484299496478241636223503869158630181761890675622001992987934716707264733237159488780940810433234767150552388424354471623735480908720601429606372413030258107089530875667950207638149118301328151479873845594241567984500487327056529277406637025855230018875274919541889578264987337136096413325182855886509858459411678784035463263107948731814868841593548908543979680580379268857102364982263461917449995839130352769284261971306319785028672935572762559611093721543669817206326908097334850125863071432255375301920213740589188521611082123662874697958209044210287925745854810169022709361317997363828888010301003568487914195277849476484099646755871107189796561169839228863858726478362590968994335600524042338158922770452824871580947647344208520305044020712233169401764919002318332210128317852357683425601952202969039627655120135899793547248867184301376394742696238070618468495840983933469945475654771263251135788095104969100654692808240677379432026352750555248952593675623776662222332318920291072729748717628883155810879828988114493969245925947318673312232591282066379125793390147521290461546922428920700758896410785230144908015496461289140620221185987308151880846044889453735278283178501085972898296105714641424034258864943267485925146536614344614345272893534518079571056253413768354079125198868774356479433978942205879405206727460026638011539041070348318602923008198889630122042686869539771699159263325567121455967992920737496379695472491737220464684476283761113748996721870198295457968963830469869029748844647617285645405453819339752681846918130940293296582021607433498109999014429387435254916166071770706899922070309565715702542834052606139693537023733176296911956820446430937074829932126170505114956382711694306720362090745512646600968879012102289760103177333743901337890358706334360897030348675309415345703108846665170831941643686649535732807299182047954429016652514533436699921864247152612907991359800727047067230509824265997408739595289245950616886308183566925619902158809000677333329473921748794615019351727747812001289152650578998473066991314325214592520549727456155915009971312827877294378353364862529050231643214289488609448160357341367459186998187777567430051795848523811511437755656695789534003077131468956998576909585637659220461234385590443725028931011936296097032559474090539826187113730312587351849778489905451520639607768846922448789620263584014900097952320299599494596749057321280971661508335515321498717544778816283175071173333111415683996044757879934461592870095688145685999789473853334822221776931162618031988757098380759134067890762755857586596450454142292602326240846075853188861316091696256535330876656847250682326117176293180041921915752591091187347468726388632661652583760539609748772454592107783783234460748800072364238152785849145936667260669029462949482592002788471181910946752088256333137278460448728812409907053705146249642544702051228716939819861543874634193436574322813346956758402006014997958432001909201132449213972161478649182691123301170929923671059826851428033817016184909133497775811689584066352625229185972853057937588589646591032159753860790514233418288857046205118795558748807306457727188608686358294364997021962689843888835523073050621922655320044307775627939704300957413314762271906690353627879796874690944722925915966038489887220382799365067351803111962283838703769184391721826476528992276418444898182996647606934895580876627959183360871013622727707465101012339884459864392852343407190129389547195198904418203932034674060751443137224284861426275665116782472690676972925842456301041183676718751084154120287917417091239225243021535414640176264761627133200874566372743423401740748240847274104300123840616149388635217215163770460372234099147757550094185480004044098370792351557863582012603169008440996306004487780544093467061308453076785065699011267435795935318149254938923987758130464261255898865665799711095994843532993280183526732970475265164879466832291324339053873889251813839466582785051425704929722408495617908684062101613657003407771554385490568289607365019949072391175054879618254686634448886380524168737701112229846680461759015060385230289404908127821569438863198788384209855800051952097125142742163530246270481228829125871628966332174173555192792418655134693909886239123603966113658757099247941061522937744915284303257081562818257326746305835129252590120116724849273112476544671680009832565403671403664844327153707357531335923114006922506639392454694035898827608386863971145264628744558190672371816754363726532233150427373695786990239150757323661226824817500649136502711785906940933088406298585106303000474633909400294300099869243251236133089666181173152935048231397269479627722059690051773698292010631041628237234743924154552630786994312334595625826011240021554568996008925203306314557566176669206251117045403060750495097938782148797615739915619050765229412546138318459338131313911747799007911517289706094935426053256850772486782695470568351898716195811508713838655240310017552201575725923466948690350648820187633276509825365862645328870288398590549557688878827102389136315950856247850570166432319234199794473476095176492234719312458023921275036881298702301158145465057311079534277593428731091312014146318011041141643605199177814789726044540332523325299119767860428458756643343451386435582190839615496020521400934283195431167840038018291401277468651877944390331884664637411228028077765639761574574200879606733686433931897840296915064194827765788393468992727599412167786561120469807809686410017516783725266990089758622244607478960292399524318139452315360218685492395067999431020405253586928250837195933014126377598947243752080190095396989580830422142708379122866279722988628424494304776562203683739755169698223050083324642707485582933443238998436224479539374455376767283586594642843744346258835537145819487366067306686366156570000454031153106113316949219240563028560656203989582087386832299047337851329709657249661996780261857460457656265172108980947340070118443882545589473307095778915866461855165576549579644207129820295599769660164036982322614610850378820781811365086862144197844057257153647428981931265091582050201680990161196475563172367106762476364501797855117750050591573599070483637983504245808633771615000340761866712389434404440308372175890817494886306115628244579549886961261951949670066712816676983315398318179240449011199536112471661424026297408784690497169075160171339451013759214911123575862099879910834577427487457358158131854492758887467762491728163365777315172403772063537010033270338238200661322988298079869820101774013332968864103233356411971896877989135118240092341305728459110392970857089355957636193913181700561325716650902866387479112914263612870728497689958742299718336867448359290814928403831469955517958602647562048143783572610712716314779863890194212380111586018551386417083867283766010100806540701348454776036398214793710442417258041861181554869775549667155242116937349940911721833948416408454211715913187369587999455097115785999723056437942118110515203017761849280949591244862055164450757904527394020656011785379655574301624315779900570926445554115004370278841247748593959410201663500202393181217888980844097652455024603074232448322824926517929383373372787338865292894603683890730495902045400157126362382944818999147748113708966153154027335477196754688996626686819699362033980382369143689156590817927885071693488598631007252827762903797456048119029149322939824750820311738123274535747381039565883994699803555427112309430817157472416958398202948483406009113793952756595637566154873771418234593161632169542781103208499937303795332394479108640840410759777115171648048156607029413931229682067187818163344893729209850453243218958773426921757983828419115927569593297444903546094912687737028171281001246760374232804182862484231229015230432580377381205818260910741861700316918741580844970690081155773915633638860365650764267657551397211406139920137007280061653700569215118067956743785266325668484579927510479583660209105866707515150576361960224324951104487961777056027640515884595183206557878766464884284141355644920562335443144461788189751253943797590885601895115971009492574172310769582834142353521191030103495441159089643301802319386360619860185060829253331991735539899563341506635139925060763822378286609977451844140679579590492026752521656767668340156997702581018161664308824591021076632416604483643778284041548823823283532256777103794775693837672568638400876197435592286647209878438785077360117860392152696433604139461637037933523845978131891408597498628019758637734808184004138370041110281963267133022516680525852911885539369191153739446503382019274140633947078204060355133100369406683878321968257068856123002419715511497239677525670564016493771482298839815388779579927350273227808213604716471660550301114937775077190485292326798932557360721402895775921865197256333661500340500340199489804365012626734643762127418269022377306349718675320259484176448082507937063502596825176899924607482669773422724132927811862622665399577667752931700022573629390191105296556844314513881320531348713644896602862884051116234164359065417157370752697661935066531881192656669518917145975292123946645395645818643662810913565501247728531358589848075568225500239883747617953331207391566138559583221222789698385094163266955352558407244733022690980006674318340854832582438583195266238752920944147042139106108702114605689720166063848114968677464009356844728840087178195458934036637649283538692963380495715275513630677541569124365854051451282898864107678797240369594349046101562435622776406652502740785482366494833018884982854187913284442662659770299856205783085205259821660051055069022413158217648064140925447590761765907880657756640374808001513785736540369522752536425885905443130769065378347005806174509325550807115511686362954917200922393920843270211108313883054386262030984088307665490862288510035241226665276124806109342518200010110979005780244731593095107912758815960845761678014996076155387560092063190740388907801100405458761375395528725542248826067961289409326962509967055164607646616831957590273447967389381687935487617715796051061133475516502979246297847123306821526938791955176594311433415345826698023492697362891858866537345412271485646352977858005382384091214955652470598719811789326071782729320275191529682726288432411157124176065535560419093887815629159442381060747978928398135396756383899151327632050332327101350976950503558001528601719879334292920948945030105943778364193785608628991044569651371316837391348611727034238862244952355813036205275369355082081278670355634217983474592059181850563223232421223945903414355739025032078666516947221088379463953759793047535782864494954806810290585285688604216991967851294496309293309148443511064752584106304999896008791464389625234065437695487400233921803938088801478867981944108731083216450050391567251499714942281014187104355235405914727137281670323206534818420572866850594137156879482482902717157042989472919706034903354237474114565188773173319083862619282229199146156677523603403599092935720750969409417062190707014287811041286315862507915467515610291031865098476967136836260218738149638089892091133913491843238595980918251189821698031698887120331644505383818912275951394893914166420495951274368916303520431305241553533402855155795644161642921610407269691714728938248484822310964499017943531355626576216935846147147603175366626543081507361737694046740094266514945081300986746735489069692965345178217029047018026920092240349797538189067759275698559877336291895516296375858140117886124668587747922347609475395961102445628839354155107833912504253065640659101139487555541735785846583347100903763880260699326445335321709799082885948768153858341524548122410650581116212020367634115450810054420940257711673628139019597182042310989901809797850932846385165977355250346802008904218884755589309613022794797991785886533622340146137460272647577550265279214846542517466722778684575080778462590315045475210869711160185549325146431356642370596973955226285694693885220222197875969891547663444703268967908045099614601363696200269818797364074416843323862710031830551656680307619952713003612307088309547317567390940617201843215521782114008898032595096086036029923943391794559152047960364098951955381699106360789624606894196490694693328605294019865473569806323247670211384950268873896947205785138660024909138284387987650124053250522551769076150009729549779140410200777237839578153676637417462971909060724872184908865660394537754919084373607975542743960224759844015098241676263971354872908939468113991973008680889422185612938325784310077413272513980167688948830932530866004649866165752885701423849501024843800319309587946725971156791153261827678154095096873508817613980771821536668972210999761144144365883731591206606981180291480952107013564849750161776545007694500218033949257875997616377509703437392049862904398054419844689716486959626955839550245921497891517441052290477474478181519903386206482776220049037800202562226458475952588976343906262946419414326626214952744232036199796031304516377705913661289779136692377409528452456586377395681199199388797096596134650804184200535370298869758911444567928124454826345761200233106457014211064692003348550709290365007578523098639978789784111562624239953991520407035520952522101549308270153187294563619877768425824819889663891699902635874176206655985127683357743786578485582930966918992263518110000313759095934221247353643830917882821370990981262570597857151374873578262197827712893116456663891001994631695203252558001066024097889640788327446755272569357522504428735679150942728801945443227547790097980910886531768170610051027655546622691934898468122332609555815513544075426635480722351317954391886419850355277005284510259123943751879434874878371112473840246405616916194876693734508037952172672542077764172760074136936226678496993444086656085169929428933879241294540973082102309815981437259221902209535613545999502728271452123660613957609098173188439915552938133324816999771786683868967049138841108108823104298163538064672078137220438414348480807885229140657627805556343493958145188642083754820481960470374376880774779537898403202951487255925444939712806593265558510521421668577652872218599330047233155211503848213716785289535394107628128673873245876285942005592302504945911821808406587109864212564539351593714773469035963423919556576305874529045134797945359462073264553345902672387241023517709912654274563708959868858715095889411915957184658859669056635941083492365593871222802809206693873274255468741685779558883043061618011275650692944547231296397099827966016213760328069335522863015941729777408826738319844207248245661939518237197350084888782988166187034767740121262771558113808060899563003063179083627395763792476806868436430516704665307922085004060310331919657145223692361985773483483394407491122717505491602909880400621436369475322535333204679114859830714467788914873360930996762723714223167764915356261603531804096673772962519953545288425634922198579477781040160028969900423150777367280484678761075564967034538336211629605255026434881133805139378154717645886601403401343835551203867633806368026923025628805640896494767353358697347689387641628414275552372374949395917410379118039351381371539009537543350846616397823513344242246829243077539457292194516290252952932687641518479759976415734977979283268231259802129265310251878636860207190266828664521338709489918382387185364062875647417733447950025263342733481400549652768100486237337024989079013837733118437157776141402394041719177960550174952160129792734095345727839051855783659758110624113820365990587148754182693725136305970770867082033710167109981897577241225841886571228898965741860271100305538034062265123334308060888115259767431996876939071917630751051007257534828496931756031958045748829243081004315754305530936723636684509877354509528967584451558338853571278088404880769862408693892500331158679291611399039973459595687045775382835653456598716356325257205312288796886697583870510027450466322788400605042705768146075395043326412841967326829001536417743206859423228041606509223353032313988114197679312022886649925995280446229205816367444470868230193001862110885821604665788410119857074598597145834717575503710614396755944142726827415535381249530760706367706829437541633340909188149601728972856820436405233459102819973205424088571266707000952750160735317306069239722414873369293080872918514833679967036428202715284252533416431781016764002059326721001330922752421391828738015557380379307367384684957980853981336419201195873121303248334257683646811810799433782786244681059135488958930507483993503231137010888105127557398415371474367747680031723612690191580274804915175945247353892584371944848189534845372186488529491006495915842428037517858492662126095765058220851058559942752403465814338598777308541192393998831777820955035980901341885227989185933967476776054916666864200087632721876501789515210999053191165998270984358361777388366098576289195429482309715010194533458122924430549585106407650681251428775103431408783595856536414561120195924417079729801380787998221147880220293715489457862131084677622407694899662046593223661921522081077967278100181946078661444537877795212985582734933605498020344933913326365573043411240518981082114331971732845866710300592420160889778617083701702353843307938389332402800971430931542514964283455801189174187321792490341887257561928017318715131644851474005996667355782929776029488342422747395691470790557664368025785626876210362034592209772638622587952293948274162418606429276935948715526008254287730889214589879041835647603409970935626998444342837676533131074452680474848117353199685834584699805328628092972330348495480942627435549604454857674133550224114596418410792030149701408450074545562502177678738923113378857058927091104266775349663436977297470250244202798227327905229607576511193202546936710543952943440404767660737643285588658273388541936605690254230654493443949241432864840461119720198696335511513406026958553539571577742060899820988387445461249214228217969723344814860698609150004596387714173156812200416746764049977913452833261539724681353269598959697651231049171880240465646991211373068173400413520730706835274195448401721805669899739081267147761372468712117390508844383699112806672772485573093364760052785900341892189477023144071621670197187079029072263528307610652253922322720692586486081176840191688843696342254576494854574905730745763741249627246153021384993564923893658051417166033029139613796251848367439235288043763488759783260448402285291354351076065040459209393119683531299139034995741990400643807481891557464641997849674537609886973996073668297910449118822481026476620352630936023525880258988262898501308389563436697521410480197683519367769486392002474679893063250786978162677506026769138288442333745152055099739340860763397200169823260151244602605368177895878015427161227822326516309458793772767522276361808796724911361363483498663066679064877011548875840607894579006076592495375069743626512903646805325835605537831071337093861039343741038888204852064715350871036907771080135598856527607852018883962898283066627076749437109360031535116425456883434458628415711266114022323881306852720952211133446389685563835933272209185787973831812246109986010039869737188110849831764613677569612506084121214431535209316328660809029511825352638707307449624187516303671579277261620388358943451702181754023408693491299523992945340577559381949379738927738472032749618559006275214773983319107144337888327209698617751572474983620560053150002283758013893410895034656554546206893817065716061204211633516481449660218366030249344518204424001476838307577377134055711899059403928298253506239790775930683826368195197839345908843256650562352282125082429268988421836691993101878840334998642221488204717656288273843039051027822503684211274048773942967187985684609457376664622716692128845088670031891789016230273469364761422558851604248032889191367229955666944669783296238881852650851006160158474165351426936019556740907178563572439080934036013915629925013608349178845501989748972267418480976488479683800001909846249228438694559569639006558507385707638434395887253796457316230725941105828022357516985529872064165813206236171083792010643342824279098297599851861708051152773241405509819660949827192009659835455894361890380251931713280867966140579483944159023352865802806487040159491334268991662176101465451314859364004835313512421202293612025155359152629493021671518064182410609972799317654709067529068921380729676129281884318712567915843842357234395492458959280295668330964715900677200754647173941115431209514661608644638740411183421237275440399828500971179433925401873301224319095163882897262912001414709957201888163201372078274623608380981361953591809771846145140845152932049721671126410394816664003663859676596651425109018303748744643827986900557699615337944218124579869037160330351257375453638512614632600600165441457257494377102130696996805752718784218568347317245004569276139417986276494826060347090938620152026013058631836599598848186344159849896395138590364327987507522791607122431028911221402077130530420937210341933884875899871398516315969680410290449238371544993544540566488148446326282846319518866608314014713164482818940652166619041799762995614345636623619440412493824369795427071899151712586944076688016989582796054662056939652125499613388205978364807311114099049891566043875099243698077418178198296728281258685165353762799520617637857805238204294150965116678016763487381070598933926399237042771961105848018910610021636604816472079973165512941664211870255148945712922925162263480940065513128992464359714789127815298805870115248371665741619816329492292785680229208557183854649837708487398362783470544954986113922536572592897503667940531719276912973973058326678311905163320375965381170525468161992402604090967933407442769109853030476797534070567059524855304183504534218482565379049558588009633644133265711093631110403740684952334404587168543318512756960173593534398015335654206848612247645598452821177714748450130005920971218179439214904546313453267974850131161810200581366706538245704903380675897995537428133561547114555930882682882429514195743407017266313316199000982866753062121651310958517135242122409299375471274825470409958324685890091736177873755019601372244628145752017626008701129596197282331705888605877046727802751157809619353867076260713096741910439582791955203592326926120027896773938596340533261369140221528173725833314644696486643572042933821649815232571470217774594555573170457949875259260174234743191840439232948025905835772442293959883568724300467438372865768259161612300352835340827029714296656681590512947896300182051316951723568934733933557480168288217383273493244077848596742918190532978707479505781976073930006127198766695261258919880417593878027690512779289133519926209600698012450488379163076671431679256672284985623807697889327657826523358108377736481291235134757891343533555856226450585667317640919206549022661606084792916028721965209109744393901985804531860689249850024319083564866163570099783909887335892889002057732900315594791452647566583054743578921993382783127202706242938336106373422471935086485039887636285362675633004256206753892166592736692666556657460082475720268815827773845947299634904018609306355918447350424829883210522299186090084451446311952866519922827017709831534115619924858937573602456125151419702882661136015201280362026551841877863814851455104674218844645201456143623057541965693533044451506439765492605733594252659419171674357441874003879147105481923114581780787033563682800886521552730818615526827233001043976302977586740379009686419415198001720370793122725141560986708265576717972713520940224010299989387821519850622190250601495907439431688237770099379232640265708128699008604595279977340437156146646154606872082732619370523792035187340978016621179791816534663694603958275604083556584629722749158013422885421239461011145462024905183899461752639628662699269509629263227427938749921640794935855086259285243994662383766012835298205141018036591028689910155805846824894336711171411149810378719713494636630232568891812507580320603539734613319147600077745366736344949507433285219144771439812499308424444038839254660797386877353162437167095771348571611052628580337361988472116823610336043435890940621621937805260411917186534332612234163691992392401147062917489678805443209443469741931238380152365333480504329868002669716994084481260553105008698548056568838845013023377728760484357149220992399007002646298882909962488371357105270371175281613712944855573852766975284341614135792873553352196165184126421163971182093327706006361782265167921073650241921473350314336231985936623124923645952215446677049046528074067848769548671892990785631707527854142831958601021711308326118304047930118232382023299640339755839766716411807126281735591979717346577727596636867694083034277780311663574425024713485656330024780319559379034015293739267856908164321069499552727664640252475900755176657377843770410687238515713204283710214344282720068989317267881406719302126913728736797224922462928469595738180390806270509007865188619339719807072727442692823957647211530543088420167681288587129716449908417992340608107292667290596724010492100040758325738040488380095272672625426167028891327541486624550970145552754144543026103452407840581623969982634448133711778297737675140172622770744078938447074070360072986208063179669728744581381940562696820975499690962318990270193102093690069190245933704108627340845636897277979098759609825324611500469287950653709059929609205828311287321427525303415574018017224816960233280831736110541384888860056154825865657609459809862620241304038600132629017712207522006352315187252252662525009177864845206034196767010204737919108383959049597707963889456451906142876926409531644379651327488471277156627966101569468294818409254861185582862031696218634565472634134863562284514666225027081749844574273632058548122312171714668233523301422960288590875862202168625384109345309428134916730791853974256350904419658340292704100161225023671228956566208791703474588312254657663995276647740178048870771860970522763788033063594795978934479558141051719174850988121552353521800030273955922520987999501836676795042507571514881309684124840622316085357259724941892329293472962723777497610702998174407908891965945394569908321990566158062195464704735859368676391186726001482327805280410883986885746291571016097813963307152202723560034880384998041510497038620121629057340167018803610963486126799759946131854509307871318527271002466999985488282339034159171058020570664655060918333505677227866104289735633665713790795109453620211794991989776135417209540629174274290994275023039759003359349085472348528633190514105224194396357332714576404565404034779606831666067545409633502867316380280329909253858513338659275387094525354459954798252149245729972299624031465951015700317188316231442161091694471852699986819093528767910024033916180272859690811887275339739646779132350096688703499288247788908458006833578555143434788386741906623341892008072804122690500900102031737878710694811322159548884515730918453765664720221450147517086245120267546780712011864573525001321557204697383881541720355953209244030719446999014240330923596264768455979311599022652603679653049985545291900943311580127589878657202728979124812776351953607662868103258288781418633681947392269303537427174555561889921379643501966094064156269032978586687965625017694120964535005280771596966984289756358884951315523151776237729276215605645674390208175385149760705862677504418237070283013079806524511367142643022150363755473765935575842917622279762991041949279952441810083795137350915327113377962447470978895154183811674331032963903816374320571567471016402758444207466271880884096522408803792473105158351810588037860822106938599718688561597120145876362430968632627798353548336942192337833584677832197790049389100651112704772480642121927767394478512847059905122004005712106273870864124903582592786342037305808316100150436818052694364887335495906508618880034974676217402257236045520984725654425813098275774216731630413787048949240293271399735981021989027991772291609550513260778481558331636463855034843085756462094406546977341785642053184223055638731580134656036088666452174848816934656341318986127430995486059901376269485564119728857848946288683975016202640683468947311041927233439256913770331175116451490664545666581062302517366680947528452407295956424541209182062126466593101178922318272068153622173587210027983880226540022718010073289351991416814732690581815537849238280648481028906875556466040365381761090738563913122487015168370004870462314013268328954757114487423611504798292433517573214707772024137616981421874256637599427557427370436218848487490873643622040420031933911094339994193337247696935093169743048173538679949663130622499724302732445744001411997397003436373611133716945180376617670542100120522512555174930261594753997263448283927956965454507683396554769973823614726696406963044663885289792197134347902920715834817537211834247254961442413269476746995448768544258532383978330818939454903665139447598035991936381029357497641742163913273889944231021052459679924568724657948190286782170436644750425323066211964890613338769286141074761459883854270654535276218680960243774120356325912160129403903271555800258003917713337699362306439906389135376097820283638931557222042993373017186964529237397110136791975564236355946399761295195843608685186957413578172095299975217398101095621330370491142679791178078554036689043615213205400332348815192666355901071262560403310029592399238277312861625990130176839681940561295612959343987291412793237285225873325428972639115800909467808834890893242106442883712160676158847136828963191546322088696162481998231866060301451941083586305860103981363812980443627237631395119623708608180827770151195977292971986669883421733310332620703916383905242019832814676500684492815677569778085149671524029745822082067758944032508068829169043437131938117088943384898751864565312721572154452336533413013854713077259334897210159987629041972479195919603148696767751827248314973682505463677807767947952823400979841578493829952335202431658090111650350478147822414692450031430051529335836970390771772410551320829848981498708032330831490135199874501366965612686283972524461669074713036293154969879599280541210858302091264402761506523165585605388448030790294801024399359056475325758860934864648788520589471512183376740181095265557734519610385921530510358688668778472731799753619645987079002447508926553585884309419134527778414472886138134128235356620456593253090808244328519203875055300568321294555809443126638037933578497128073202809180433202385620632055833903159386778536827661210494422943248526428963169853298245074553018871499880572386629682692366807891730778023005718325198654678890627977093669626721052002760862208948912803057054286603051483453431156144665555285564817362018244058074878504704165869597299884355138258170149109213585365494450671665845713402085974236498435741588324749774015742199752198771667920529824495239803690214152590617738412029567884902612822638889097934746426110165337601169224604590479618105579493981841119530618976306360962890407180335709822432119020483534858261510629761115353075009266382186603395967014147378252678254340478090559033851122199793225349984307146375204736590360780137116385044097912930837590421106699207700445014552927072373290777411275112060160823017412119906164062454357536903090958809984432257258150590632934353735774150149798121543821015415666913891445357972527499785253095491413467919183238624076347739487239732160826883120138071710730167649450883652434868515357736926948631234797746624292863132955292858425361204356887576929113549411805357284285845614257442168277974123186648061531696260020314450528444867223946086396337756332569905365789130170124014104797629322896680398737244743408340252262089050999150954565990381709717362551845122273103357867665050260380779120537018323332626799879536243783282349734546888664009928028684629609072785793931604296427283943250062039166716265744395336853394963298069993750255730792619809090042850018657957126731768570638352519635578384042376076269715723142302651139828659932447817286610130023335023246256564850332393558239483597511463131521358750006189368649169496729825169360162780529596648275219869327496971377963782743218140219553749657879701868342839022605017190403132613304805538087252649167352604150265238699928684030641497387290110555472539844004578519660556958448749177508124958828177915461891717954243116368230716504118435858330460344644538370602560374756703513749872534260839813607985757302300748274950625972367954782984483886692783063443639995223617164443779166627904883162985635368452798740989759319100701114035776268911170769414609513982617743108331880483178635114605939858620607632145249535164381747525598676276527372309538439074448205191808232003867807140733047128383497983514068249606658238428588367788642551840246441975648473016074103851662019300997347742565877619683165395251757502296454710988242638278314029504272965641018450925925377209929254891399162364586689109577432224289862928328293336129865109521371866353678830078593488612137047144086992036227690513064265610221970084702577265361707927020717506332822461790372150383286944339937617465449319439909516312308633651045559665626928236752436335611234372994047654511958435686460273285500574231701097137403929271387680864565007487251393167701833702304876061329661389644538446139915202662910280310818021087557432286364679097004839376176627353751825085271757852028979643809248178563498103799519826868742795199376124043908816068255403920753700776806341258044336540505897379722524373123278373571806643162915103737557928840724941911354190938688195066527149873790722632967590773981474201150540610808645723584983650995870852046618184897691016194905096814911427068785167979193537259147662383828337299562563698701524657734068276695081967301203575222519121466426035817333987326176884293562860674321824476784967456490234579299833542979970055532659841355567984820044796989259407045513570003030678849629662232275311438930023389297951269468221277789797490217386253373485063213250692797394253446823217577150678784209263409016211248906549885423952249505191451392827203755586811341962308279535229874688295982045146205907176850257472138933041097098829037694015024947660767764101901028026412071441767378354581147421875372732560247817782038733077747751031089547205287790615205439566082170409071809111040574160282766035285513010254705441049794595848698673617784066350111609416790939688308029420473824431576854833988752439758150256010427201711110371905854383401315525855737207049722229819037931549824494323782200520249783724398247827011346589279904542695908402338190530874610008808201618559082280504948784666919486435125808463031604023075118902967638137949244412924050812495318552838830427223693074115707269408685158026350443482581792406186992481287780323133892828732318749118333447403296643382310825875335441863148448389475747393199110461265845596343935782102263083179124745094143363631896743154026331435383202696872221168481641618040947221893154322523457211652490547228137216390307278177781408872024261910057041902842585587788503157289403005564260123782737062147561889815193854279140473496036963384082555298671674617193381607559732493388979844048982911034640899293380991781705307188053986210194937857726919220096202305744993169089158740839514890557486604060229313233290752100070220653353579061098079503396479702579077322935123084474049096105875764779608525590797960781271512024484415298233052263079863478235314374252064516167622665000449137680447208871011637653141638139498588396865244822135441547347892131117007388391649399340832840735047629725838415553046183521621945077398091387819951943827572325721700566854476013263686719481129784764545535980894307068561571891901952114562132509362488478003190658493097147085228028110592705834130272782388087267969247998167457938005842367303743883151644358128270390538344338584140839180825178697640434296849923902109433493562472417782056485617471475698083413472337525516696522836302367228554327913999038132044824217702972096853403154155508202206518651390502264280900541957038890268106644213242948019020710348580136449974593193223849409684145908150459450059887729201699654972358300078586748212760675341595158815930972144357497539128592856373428923391540886976645814227872661627391183763236936304158372597254864163203491488855052270439657058557338980604485197839998143298589359595119638704958779579159620222778730874527630778006668067785643257314290777552883453571764462977245735378082789963516368481590185179394038819672169969415476885217923442363503092196635775758440372239323341090637500559837408978375325681310750088077802443569734256400952165007872957055574860915450646011206812925481072027984143107160474100803402299507800891065830678572394016204491951710701307827934774645119289767819245355401406162927656555268671963410678470638489381589518566343809539915410858618277209944979817782840407897530925492994360949834921223029552579972028579291844646070118665583305021161528280069171242236675254028424797300263089854567169411979512662258514028212650998343042382255432646219752882642426685545363238161866897679983597576525622963033738608355201541208148080820782924121143695262327838155598311325902101645883289465124494069321069631696139901161603069514320187759959774843824557629257799945593901722249617657425556472386115800652198219991315062257978454133492236190829368333442241354868514420345250110463100880404701997488508275443681976405612864429258537133641218954413759515608598641087548146678504163730433931468167236937136671445248627251498032794513763130823224799189988845439062016956036753554562162280116150222262064554291580636031997779693097475398841549891664672791415157615935096790690745057772489041154409140422247550972384651113546991117213172364794471973334387547307040315522363056227981111418354350806791494825288068344671263280842476462589575256746383784056240376657959974965398986110734053833620760089891538124929795685342901920880237486130110955299945278527347123708781893799626783258393707045257107118688891122143044750278237407604123172774142499375526119182251149444357296887066287656261078975841008817730360699938606646073571737620776627856626502834899620213529168287366974021243548244188439500002298225398773628160273370586061619554552945432550222104042371940941019671346290116070739172085392964765914815995528659746359459450856338262836646464984060741521196862322463381625177182194073650356426725035792822680520463616075073093287141830634932388077372625215553819678474317504372676117512604589991290037264066948921082289180737571825500932621211772260887227428363917056126199892023282348430970394845630011371785096510250686816007448706980781694668281327084655427409980487093134694853897610363630603616997127255597056915328438175263173319827339942829166495445378111898933644874212001436686541800503158181066213070868430172023464780182803160029447123709887979630172734370094224103504238968248496761923587619186502034349186509311499067181082808649948925301773082196092555094796439452769338793154112816089222255452767880145120844353701724356881633256384080573485740216004362980425156453009882976042740814089351406077634756628998801100991684043173078386396242686530376927757230118703249472423293284758006674777007660747361787574857999505293526416879477149057707815941646738588076509106026731609569069617846528162590693426069118181999454629434259934802907063575818632855792217166556135768675930981580038791294344795976775858296096223913274799579486343690810385315601879730217231712093214339904579275996984385892443861377121878234415241660931486714483499940051165641107678520880655164710666852809032833516684587307432732245253656326451665547166330499978022732515463673822866064226733658723446484520245020756421180878803839470664303314837341654322184737782234201479422971289538788647649073068471547180698916644638837110133089369601224229358623246827751958324700734711474714278025503718632917267399998274053125628235908708704056805918076019623106731938702071014971804523879916914384473930455960430139740555235770801987873665093723622997177036357464831071926927169549483771390825553133616388577900009754136540831374333881628388564917117387773098185720817466300039965741428665110802363248070268832876739726774777336631259733400757163347742944663417179239496091792623214132639533633256381800983678984515682144862849733345171866594364089554314534624258625363371391914047156657021813003267462106959103945950501497968661263463791927450621942334467518296163309145224539384164356851683343179524589485064215273953278453922336845033718440662862683638857346751355284741171592904782818766233834080031534658890859678374600177354035677982111200313503782476247495725342188883696743355442481362914119668311236571614600175028578648377467209699109123386725306315006738318969975566474635951813205370856206055103292580081890208557628683769264366768531270534074013485843537896121785146514221994559405530832512687263858481506711071565652502893234453339081514454853672833145302943534395210400750804738378759808207810354494291023601599028495033141660551988423799134525094771728256987737012535071878453062467389173316684994029740280418235694134798559117803833246142229813022698309918247412479633734413088828394085121339847094367778154386542917364729472913261875503110387315821419889794333380728572877575456946785641641555995635049519106245447537491010039696885721400574098501023038983301422828626381652333290343015088243770847314441635084609616302624143834215388608500567640012697995090844861186851246036048783911468617814097858926265172534673381163451011084141530542591420376291164251650245935963538736118690169145439706771930201600569411700598782548391750354219194533491276761108451173716601761126387809102736054415101494411183120495007775926208391224512943880344950865024943471428451737040144651990832163625674495572237203183994469102371250482609878517373426121442797462780866757349357971730975232313459909737859081092823016301349175358147398947293205868697702109390102303624553362734850414550661534781267535435603479238536395089979941864821253218720542601402261380675141075156566619306341980491182037994238586499346985056822539263783931434574534430400316318570616590382527602579390001141690860358021996886161113760777957945627684576109993172309999736776215623845479778273947221038268695639708817521375173853624686692257973123661729509161835922391283260048057466267933403101238794416078406553141522525878318387018021984510200128314271561169031476746617050156406795348660388610447001354484301901570346152172509068776798806586817757344368313057459865488738503714083422198240773933374700273440912577744857960095586926147158003539594347916447221565242232279232248018609362543162380120196419232058399376479428600391138181402441932687260312905083009966396432809788613532424827173091667664292826679098371217929411682808268087041479500612322520572589201059508765811228655176006299526121926777150314316943165306013470067346143709647509707474656808446538926716531184288578310844680124741092970833610880782471719960731384571537582165172562641480656202001530438274930101706284718313975626410185660451258292750471575959431986558561017588608963820569754490608668377543455753495847322991793326021563359858401871066085589718783466364358236950338457256786750759386103848657554689264536764032741130769434041312761503961229521697431655463784386170300389286596484589552969624480241692862774565099863837321708804860789748937970163021191292399176427301978976292134488804376438301823474619367496640128251415249278624570460622715727760371460960914844606807554140705490688871502291493124600952385268618484783871454628542836772474601133119565054227218325387011834281419522825813205857654332952557501756557660894749845431503921657590639750879878961088426987310350742702905945481244254944416762992180808429671937472918629285178313873822925982370166097362676962942274673592469232662135569162917348701147303848604012398822128882012149328122481192144574613885337812728601849824321301598392118680847074747703063429490147329079560484540166249296374418947021099233689392538880396104375503644809922786229671313864252196470078289268726025449421567025081931995762231534638476173091301301485809839120597952155159074311890858954065545699038091545315954336704480364554891853780814825964312223765524389387212341561845484903784351755860738371723786589822836520025280278739724452989791825062563183007595067707373392099185539185429232077154162774350370997175409598598814502434329937589157835861865838444683532821176987442153879503909472567027269843221730009214353326746374003667454269853693160325872673938887000613267822580139853967496097947120084140858402798860731009163290800785960426043623465711658422969731215153810567376773372683846550220702055111007380098906067570495438069515136543080916549273041837481403418678995821989370731689302345261189977779709914713405383280282845258351586962683044606198190193655815020509234593119150291357895519144758622152240918386464395058283834978440283425514418393774364292887778726662300856824227795195836962487117746934141139272150752306144242768466699073945091658791523413147067100848578412661625259714443884164520543795717517264989257298477744759109892661663773157770289988426340501975808922887340607855245894834265203867312945159577502780824422502079992903325042548153544493437761579669209744563771032024922668119883128944772074866772385198275931882608596353879194021043197954816418515486904195642582428932266120631121330094790034265942760432942653556991092024218992457549310446071211429009234645251323704142656513781930975029204340009845773332359378844744917775046783610228294698946557048744853044898427270635744635640679598984169898570034328159298223202204010114715881160162054732227092342673159534342235985248373483457767936756673075401094569022772851508773972323133950306684210522651001488589651861096656491264958369872810253690687165480425222269115904067961050974898416262368291384432675103791794220263869019415086991878090229171292470888459116204242082400799705751128435692839538431405803458320870196826857786567640598058031408415317090871294697165095779987770018785160887915548797887624742237477776485946187706794018125025526776891775470794497658961273495778225643000942187531549253111877740692469923479023980236945769394045384230507379581239068797312620691025062044802788189664140815251665425874447814236834939124077085222083087444232660143995317467047337669132975779167726670845683386362147725368842172071900782291736254617939273645799916196049202491689178316188470723271873269770341561510526311493389397586967280507208537546930732669841360915452544263900073202884273586298154273249790691822595708303291786808505860635297635864194046467149291531550534743726670634005255978625266641757474250918541664236312741742158366630328663230768368967053190783277363667338325798432208055895942866824844563596018474747534458692032002506534340914896699316543977848704012686885860440204865694458323788054050888798374202554018018328776350979668473807656125192778376325513317999145682151724978337025095205017684542843466866120795454878426936361516520261298900056921762100261904572771819424285531181538423176711611601659034286210746387658202221185170466011812953344349755055399576989111601531648893019136865506459639116980554555002991425109047137107350170031096251173401363941913495612595497454768781056599539911569229535495059414070699334410583899376089527879930417944105296275579858408483392487622742027343599222553247146634375366675875386246050201728128098926892266242097733450543192788530161980780209782490298877370082331201782922988105496735882254773090275528545422064918914200798357045435096477951312909983652903856168014314393628711357822013799897720386953266729380743016593764792843268388689168565397167971670886232954326379347226331075337629947224848966418126870731300897252434213845371334457061065521900316300620826485761862992515698462512044153138402056388694489430160787730126778730773406617652797231931532587070652620267053539930276208893657739909850588564997310709118574353347640730830127807533882961297993726110511422609189643113212756024843891602039506824708655093887860148968763882214768502341113053104705862924979137746903971990592215501746395048374625312972642936362014918212759134870936975382555238776013044987803801034856646833352894092347134547720933880000858922890677392236039295970960654914983258781739929910754656139782336271335605251402056519751957821107673651248582600341789389388494966273271278446175211581378949282825557782699688552104097390636163230779983528632050172208498679978044273826258480072393577459027437179969540643154532427093665663823844735552482974727796221295579500881258804308095807608233690071994750948954216032134599524052622756241952595933009469036583445459415623116973593852907564937899602216074694016171273230968247920979799384914549905816705621842636641851129276028628517078485097844025875557782674545068777920843604216981694087374766842002125607405507807117653059519021411668867115141267072835350207643690156489478934608344157292469239686761965147714358083406057052941531026268336498476602104096135368217631324780988763816279930266701792186652589668249561212599416647096092399779627411405993967676245277435503869755333134309423796315322701617240347073311166998161855031049993059153087967133804060088294630836443270396273680430267723430777315161415032201387277451311288938558792903197401495614538444229211250277170288471029023174634686436431179621523777787960205229986713760555644845499262277927367759536982048587227874798394041453096726640870780374510455750420113832261247841178443734493437747139799965127351086327563286280392943220853638433979792127649478925387780880849931224103616148151666955031276479732540638116570541630537383045673332242461636359543709614418150066734982785038627690414690507821137212991236065666763763980292759961829946778238434517993229309363126316091445158324340160931093073466611263117715038842929112400822121898028179028581929999851310519041809980010332022424261592857113344763577253569979917079200459818617686559202343457566032145953643352573293492692228687631509658395506928463724800965443550275658780228830526533569236640649360844552718555738288880743717316002706220855556291571407980901693141394725161582049374578639857912615789971856547861763094731369894420035317223052927998908518282765245915856888033413162451605476996270589945433109200560825298595083176367320488233342562827348830426929711487482459853372902955679590746769595786280468315007483330988596347870800921781298020883122336759633173280678782757696855806520901010170904938385698143652732410055285878480046623581340083584120553607731535312731903268328608056125013475053655272530033993389046306160423182396049580939609669179384228077226219205870263077596630621666454119377679602264759848266148339225992151729028270767673395103702369390119783772001472312932033738519885797255122719571378690080581913283420101555509880453019521170883776800094346799963739454475350874692251610829913538756493492570052124543686355427443341655918375719763154482106579678903514302984435659349365801705837267692799477920168536090878845417612451510682944106447279758091340158255760562156767705197022554350213848522788097429250900266621384702618411651487161163512479427672742677162180561242377687714566914068380545704465379010621436852833243958572514385641387349710318724719217570377215777824166822402489248657230050866832212899349160697932549864336357129919067524330199853830754091624373664180113428018390141569596280945238368060966263559039638369474531189577988798279177483359493585740741178296442939824930659791548556071617045467848523294133140665803978269719230586963643788460731998402335847600661132395379080038213758235776032017340750181372545348536075695101407842408297239903008397161511360616976089036678886412205295451329841794027643813885339749446698255453368741142622194071778285738420406320982137551819524376594795147945719747224919965612079766795537600232285675408641361915890590371184855872229765948255178837508152799679085048631340382898318498380940275152278775150556085348267136947704994400832406481272731517097201644484538845096916071175755077001215042558562521311988039637786724865689911448050709045365098668654896526732052761394863717450328076397915104071944178714128598418773462942958156149924434535029477457165728755494984465115293117953368019029159959334150245111572177157045409605014690887604977106888237899184969268382222561853733781737466236666594596306698374694555214993080342446747456793947270082718320237964188743154729675027205967583723435974829714603220461453045804463145836677220350530387975073508441024921542605818297064682784162251710748711834721981383842589983784090071281608848391478188080648164028504841277575964252700792749665603695238179738158278151589264017225195281641856155209349492926347262347521728103615689621798412136149411308053862994221951891710094854838422101218201441247883339675501833304229638935271931532707485658289173079849009102094617061990722180296367759730871914522806565713546766537031920707441804702770389182251661126518982975464872990520995429472148691203902311794156001231603499260684612948699257825872670516974781589474587031634252863220828337378498114499650994370196305720443140524389038193545023605134156354755985605771412494312447776309138374961738192226507816901777210171729965157470614413287457671676331226899242360547955970655774898787585645391909340781513786209388974547458264062825861632400483916354327842734344256415622378841602638594284786750325317220475156400857089175791848214372409845093847117226719658171687597998226307415381831453839209901966084794862622913913926588552504391076545498055626315740291654854966126526687197053101867226815231173606185835381023890433177029852043922268345245815660548672151449208148140505715279137022444983340072093305176934146765485651748740214224057619583865559933729295625813041458582789816687714648985880073502208009368441653681101018181504668543893061978606713684541730287459461151301523888494775747224240267712914664130594114023239326111640300428597569273832276813129489132152540889002569926190642756511830627286761402284904208688035692875660349941172306021535743915728262903080548672185025603246818228605574515069999082387491028373226617686798273728497218914549284363214975068623772525358927834726744715284935289946711166126583583477068419445108525332992737570340320904823938405909732036044595437036865652713477816447758829428815469804805130193450861215478357915720464557346336631511463184795771606719190131996840334988133005856302759590303889255268714007945882119835797408551959806326571281310991865031401191894281294277861632506344841339837173938068969265204390990853103364217867752472442570939197365048601179835252227754522680617537318372128645937122082178809655831207810182583598075285063901097646467495033848561071086916413704329211967462453302933400644629711417254835954468501302423340442895005306145377820340694217443279582926916839603725553186231428835751298544930476871499468983388351069680483101175397491759279453704833011087467713871270282419501417304644677653901080226298846144033989473023723306859630489666855315215534732284097392811969924206207026858285810089643487180366461615268834781506547460444667286380231975162420794296855316213479382917862976424743615847296580874399876027882193215853074646297522530041097032140042604888115722287457841978074041436664614331456803750537431914841462530099199401869393498813945590830206698348969658833664129880862607701609259685677474550381117611440875773360017877149949148068710971397725365113407057577203753434847515953054587588935514949882384020755762076205291478709630975297593936660452331983979056301135248764685260336373565917296257219821946321064237605105507972018341271267779099551054519132519900396475644969648651637372285807656300484537287787448277290865134038512199540615271662423833798399752959884452792831319737833426733171868221114693863214283800404588213958414448595463181339383072351799222911270871879902518602584445193819494708244422368067167352502768291604507622714482559082818073806800946969118340498055067694496856001706825131332863246933829919877762979767904708454603371576978455620266376036547053317408367212455074691978175999733400807915515763507882547835623415097933969859175031040954407975055782176587125829638533603584204072208682527824573338793002451580513258314353777788880094696454040465308055889730127677373705416211713568780866939909295532149166135416281001422458791224385006573108825931987358762678231348655858067332760405868258866076477899485448396781673218411455302972561301895694914517424530787447030184355091433699035290144089508920581762019025945167333420991101107130720949529958543591116163797795952928881589533699729939663807028099330511044364887625177810725298821710170713166819681858951519394081927875379194182889794967555651192103671424923607447725855145327657782584045322362208782960355044941429222537203875592040578379237888955400403680299463783497536799248661053765691445190813113466887902615307569733719576146911915691193350438925080692348261817927685227327777360792166657617662657387055024487331058225774273676646735640061499005618347253748413819077368118271963722538776548666244335709537513742594652685326547643334441394141242047754751056863354259941965869619416027223394481688400210275100558404277742276751820843194262760985878058099318442838912160665330785709782800185491011684609797024087087993043213252125251557968296639966705043973285321561320547857704747372213032391078941699380480378052457519914329916650089042999409942039403060990862064071328471645166145397390935310604359281330100302447526113035689003940105025727844861041106869263722526519950845945600039831215203413292676481729934444080235326809251873962818702254731922252994926246759913993839700146933903127353483038318587808435232150349302367200202770389260449003310103779005531693452790818870615612213598109181706428735361933638134756609164014061446515937766795408575440434902738719271638424566481771603565833782987563889620800150015470826558126293013333175571896085316166005185117411662568605965436211337695930792687596056188131312446496937892010173039991850257965624748702858469306267851901636176670757784220680833592261425027730314856757680324790584412478225724394061550732982052926142450340706963241696588420260195530419438225118173928233508654278137039813090503409272668895896040549464787992984288763138113237460704610131693170794852351530403517371744385722476828540251963955032853928703974626920327371940368809280207352571247923334551752211810980418042473734999438156414584474903873087402432242467070920926869380732506381850695694578034904173797074341698646603151797292970176038428295840827238463033834173490150957700953816854919194361777990339400665535808492452306209926916352033501911365344278012614590102019859085215096746147929188340882428010530777186411773939050328513441704201160649070384634899363005355821444605509876999620022918188132981080360090642206457152447203355363568177311638837867909701614855195750950492798495206932830731119012602646884288723688247195955611300424818877414959694872481537647924833748704898052864549703859675228183637611138217593051527561704480830370817749739240855994695072060268076607588323909302355204826488935806587312499279931806802254289146715072871152122031833419641459813603268237289791265307990107743752978506508490082411164911683558906388076638069084898740528761663336239885466241781806703067498810005446362976602187837000005524358855826570896742518569536661796145166378150173550251968018643505567665272752440236059234063674264874028235894321157776412648436195614409892592387730569152260959854769231965357933358836550622401434942576315635672961242214597474590582013456928474723474943267041450082485080088026162808220134753887611542119960843162799583015309257389446312253960418694929948422952911831774555351685175301784879900034507460220543181993285124239082415375360522476515326301371755986187857807482714492966677080986764888939926963994435613273098998293412078350749087099544615207876038073648427812880532653127081403801457461804624240477536166573475707021244735445563459188289922041250639926835743344829589392051089412301233560879305554858795522482024751567613107629377061721416689289432968922049930541429690302865098003971683156306325428255391583663336612772100368534599396101668296286113473534617002515740633455887609338081318057886096824517764617100818966146920323756473453167445853129850728000118574096348474064759542206783185900141048483251144752862669632763788707838675371230476344953674303329887319607164135062208458552904118091437343589803848990542144103432859828608374042578964617510283088485803284892952772638509877423863444563469914996954069707400462028622122187906897547310127265372383982617228223866872185611577970168826519727604585016431860141039466683276041791302552979059583888188593045731701032599479041316712816734568271587659614988602545046447715262736129771557331202908248902032861432915128886167063014890336704548477176134991203797033544410040760072643147065885046622238885074508230014284698857696101064098185823173335700270881733104645245175598770677188852321610163168628566371654559230563534148969989431160112515973948968750233572613260149477071031219303539581261322895002443418002667406764849993297795376494340075164621917762098219178869042717559521339146832459339273942801286801792801089993696672963792668793239878878759374756026838651088876093448422741261938817628140994785051778895880691434499982704789822750616673281816978881296724749005340026193651129720033971102843683425072568929054462021508296722947923417937748941503570009747711640829669833141375836414192197731590220319582797048480320816465525794384848981407757492990561312945449332213027757472234987570188399796580572757011751630739264651894026116576698350547202002725958526598706616650437066284443394657108867344414501450640196927315699109987762786894185259767921597526497914994878643140748746799729736798091200828012058770642805674939064718527293804367867488063649575113058093157498789291566505636347066879942252450065211933871521629034598248674741989134651132333609294343931391412940672958902277672801058000760456897220514885955599502560179800069175400112534880121246631243458072769422170223745488501544410353628846635495637993467472829500033037747905299060080245472367822447353150072368743940102810783800814863128826164866278449220957708995734727724578435191462784075033805811617436174426531694252396491956404267769845183188973576999326180847832304162074448363750648405624736039286446481682513834855864020680232697059101983194843981587717118903787253449968444691754068432458933314416402917771917311609181819818385976186993315594643466192423393291442180421537747888412748067973650402733057531607282626007745621391437468904573896767424183442455106056651374140748402767682050520899126929553253069570268082664530593233907491616962597902321860988673265765087499359948302039229749901001955822260066728107577816161205152560525756245645015156859480393759393020215151688363451933579099970477042380462262888195246428960380531580687792153676111943996494065101080659845186203947375786825296942271087564062424273119604911368956048671675401892104733043039490200031869887268575525150418961652261192986190206036971454472182417857863227404245669377335130816607089422285220612038934830320614461062760580144056226430965716463295718604714485506236723291700005499686527762098280442407908365658307759749955551270996699599798174825908738157935597980743082124506229081205764713205369998518719802952094772739511247756382454670039492924537728170079882095953319878451237083352345693177657846489749823803657404547587476139964041409649656911030168414580554364137193329686841250256785379482450379529512312305511147638735306267654460361720010731633989119624188059395694672170925315706740618058284596657173844166812193570494758464135897943255165652672685160968361555206177374850209253416578931863745179101815169443321165863553999478971103943013124197769435881447233956174682255868648895581484833854846227127737668982830788650641667722991390264789769038613049252016879740039334780289790149632506146183907019631331738479961595698838503185926600933853123682959512267377788258531950722631639333425148310179618731709645811857265166412771909064397971786202575195478978738271740035869611154915674110023051356135404152684060157651789508831455689469745125921292602781306953690904839404554865811734868077721775463434107217353047937894393609408984971137484789965106023443529600735970591886908835371033896393677727186770827838204722659360283998858027649047172236142097614184983495340761573866120727136193696170055654670455498936230664071739631387680582193606518101729367600696725408465352051981410177980632091105355683707829825773158156800861544736497720045052001877413371138036623031390689074461114468506831983682648360046994728845384721060675607828472692121463969413756716808198097987583572633452708417886203127757937948609866142204192510762545597010269524058559495565876939405151043363008583933960969828671974668681830054730770306697538829739542904784440957290896729999887874630497274096701393416780999985870773313427768111410622342869401422059026790051009659839670779047814360940987665515770641800554376860059593519419342901374008876936169656259089412912647752898059542977501635703765437219469538604477317071871818565683228241032032370707341494454042487361524065909546273204888824370480350035967393945004824107858955441893908857058348191455278158264803018034645331122303374706674919010928695796472646308849379315660496540795248152873427532391334973379461430146695539109171095287425909515616934163678799102496335921284951553699119637228773586730680456097723877902126662262595991479175719024922164720229074071333131498887586758387813687062145837000069942388802823460667767491884583794469899101363667947495956153276800499494327553554638412358615051306549131299720466536095622084825185176320523941503120868748688613724546690086337772604548649144748328761540572903514633803517525799905559808647366160115840154430273717293362797561833450393392980997170240797920539684275999628315055288179172119954039923433813924657054374184832762705217756437542275533892228704212381022066176946099309945387022612236606678984205094721095095001697656198564655455806138005066665923384325546130758280898951285678926559251771020730160570776489695263296411606250109447723708193875107671331310686714777628046123182129254050446256706074609401303084094024633343465001336602273465842340885321938882080712297995167786803925643292600875531658158043423841261068865524559627202183917536112096364847737164724710903297644121945690200773754452285624358629193047927123632524852046268560361060916974314587397189552764501748298204975800041609394976393727361821889725894009248567223502151647899185903728995065048118652905224716343334262895917182518957307556332116408495526017373934634359633414732235964864867508491862856129074885832169569565520600942275965287607940877924209909974205490100241538344373708548138170191140675812921211820131893968978596121836921799704890226507995215765050936912465675947535148887688163713284412850089268658681494145123043757953011807344056762743069461441123716858234383677162823734031491962632264143220661182910868967589913741107216952941052235184452549643688025955339087235061896317511525289160929303705442390861222366561738600278083400583038235968336151805214408827272593392188148884525789352000248381923038539065115032998705006472136284339673729780754100557569571124353915515396886311112164843896026954913182062310526964581292133708325023108436033658169660504554162926485530941766260582741246824464430723637643445618813804114051067924790150058330257501047477212538775707780412405098261213118498409669139982216716408166135638543385752999237490503212824263130299930459753307632855416196944288368631021657747862640915691446729060945892611750618331850962498576351924653218909745733453270081961952170710722915606842773024907014416885683434463837100325534942031177608863235582949688658701093312372252379444433586899052432330804625022805549185794263913590091077635992563870266332891268525820809191686938514923900544076089180487590273279687436266177683810495006449387860235174556072208937764643452267136126248992528683839052572530447278042713452619304681624939201922882371439866971543045866768172860064059723952922269814251236938491140529331384100280336635337612837043561830567957301859547975530317384598942590964680288804518974909311981913706107435633811870968811628914893911957359201469394979638256716716332756808361135218920623407172750349084186907025891522488938294124050791562495386582419275322781110702251603813119904483755614184906562746244407688834792728111925495801674290480487536144094357672124222702736857183057519922028934030821617814548797877687368289256922920907103542901786830245285043135151868922103573734739886108923903642517391358159689928988701862011337983034220387104588206772890561809643136228789017142311692410466947312727961219674813087584960209213104024964342055053584101017649504980327519432660289771037839172339620051475861089114334823565383506101700258029820602277946314422685302144390452804112040475085037330795835558888036902067174949490952885692880705070945485218120937477157389785884998222617487856189809465543639689825983825175777775739986100397560642195327913356118116316996646897213355135752636534832385685615434547757637388427083158465069644658209212244306066122884988108777125997555315010161961964412574854175192164719636239700638130404330505746561112098668429937980133407667285173997088562764087552599161159226970112906599305456092596427801024481309547570431056848690795033547837794871942332195843514933276078801255155275776961963836287324883419195076953271917465244836753483880652731174466755194148791533620182607811253415549049220407454906316670852409944155085544969091615760314158846297458972909491908936614611323814213728660836535644846887868151260902012757075410425322102083129719100030181220147154778155970399723001394434734760763915474688900565306039338717749396031243444399771881646827776860676636453089490962428421757602212158064680456293258389963849892343568747937455513076983255022605549423834693996735549230319026672149010388205719347971285267755726280879779089129842119284730664937659806101597658190626023133006227282135664259227885857495060413134833341317962653940344230152977748004095323784140245999935134897889933338512855742275516255858307509512439549289959205572785562939705118898881146401109414225030214653944315833057691985013635976120344938565155417721526236051104521102360618001542613047442089838371702655242459454435814259627075688220007258724078092092873208800795450789729290181211058635356105824798049492980264598449432126055137343317277420779207439880835645056743868129237831316597195761976899827846290036267825117655141856229709297286304071083833668847570199286767235157953185156256592061037085688557260892251653446051353209348697079669068833092279897971565339321151111933910568995360089975943215441385120590357791907781205048340265287121504531607638590448790062939584585465692639522554153604348958917658582071309353263272821509149867003277367350676705638033199253842249498995085974852050136778160426778288563760643859950744247530585074563257702505370936125074491031090040755762967951656343792935659770031925012075476572626667870839405579989821334055422443616769935723664825645446772139946718112309884786284102672384549192941638074496687329203019880514111233295612473165694138357070664026509198035650246158558207545862145234321835549779369355322851045634462365480111137577586886222263840987721834366419657128114027754377565506702653517866097457392803958541409408029976064465822279485400130948770621937922642041873622348361762555249357998189421547150735598507383331000512703624344612520328174363731007480309317283776156442534276051149552443009510039661689963101142654547919646758624957247341077217299135361433287071763137151491037136178247345133714238605405059670316177784858041366695867591001511741411390596464351667288996858239912645093847831616454870551942526924455014443657178513491504636355291879098234300716654973792931041747267576820167708825593243917654264216376289106389681965510929541175983632422467462026779090800629846713545934595670406546885616829560424879019950764775599024446264344763364214089190977930327514282286076805542016481657405606905931345168854737968986249916202312343273010665241123803380177671842405791013354385250584019430765228598255355711045430028976279682092982932434411453527811837301981343945885230505889323148472564660085126485032777811274084473541829717502281088541132345037771288028843431767597454682123508783810548414233178599372447991796693221094343704899090525725246899800248766421606354143595906008257558385938877567855344438588524239309306004803967066700538923785459651835130303541078179462761332392708666772763607128182083637581097916055646473606781268136984813811377602830249935290521066624061660977921332734679014060172674861170187472643787039088227200154041231551100916455671717117877375069938937411202375494602567599502932147463701847035106471755569172234847874529877917040911653091357390437011116949542749382540675946830330453180300304364443429300840405039547083919537466984673705889378889778332687106405742626003397165185944561096284462427252084937703409113985719569169168045765971009009453631599071796360473148733373440642201913149743345870513962950456668412136892610583087184622650257945717494147307429122490682082580124538212463250256234852017919254495378884659073768683573195338192665042772570770996960840983225478489751933275372421805730719094387507225534315563210224234599082872810896052684243692316388976038904400631607845452588968352215104984568782621269631143012647786354071189514984198827941233460123093241786642041872065202871716251921382260846361298430297036819179054484161488616491756567960353354828850908533391984534949304539951667485148349804496544764256319495779424485940079563170180260967201950815564569060078471755715068022793725236321982214594299809042055152278017909864077637050057054020073960424436806108360633008903198074611450023256919652814445830332408907536772623247477372094283245258629337190722787149816584082415913373184238477650362899519224333499854865895712585664231911833360560990415308610097648768178509335286276084320620960508721223275732517928755596938481634992750973375249279415065380181712151891059262647255199834517014048269708343890881835737860882539348751086168922919401105324778400388292961734093382748714618086080621158224276626232387489891246709924509186998717169963725796562030069669609530346954572514036501887054185449997072862329315160581816547072492617525603214043197895375571504265175952311782518010847675182900609653821985668398652583951055268336480146065036297865866693217342767193090611185601409088452910490997452509581158649914781280178765919709966365859220736395857161075100003235508943826057758543366338648644578170639180675129155716326534345819555383040032983060165381281064825330322983113401438171419191853244651497298470333882513783037537790765751326918432118455420488248864986831206505946121064840838343566495778529654823002425348056827520935385935671096149983259795667961115748541108775321700525630741648460143314811125540136977093490676969093007813711706971077325399800185933018686129933071435882429882482902711391925161063490306526978982280629146143990314878449771395750096558919064080002990216744881385961726148393878209535714893482257408680672650674248050897043847918052389222046158050243003184913695792817625112422649166425069913609705141096715489624347828023295290667500227032721086043547354893298154324762858072306648778734664956087116498649839149868085037416295763139881041687172795815164209619769666483516940591158849950839724108472850154070887102969147485540877816513144694176436141351741249498729588639750723730246666099495773167375927490737478873146076940494481329785479780364084234121637569995515472994902975837026629836741337217326695514684278270680762310378743177805017868021403034924767216010401577842206430451564277201638138693881148121942301953538619585794679739926653492105076641194490949682327407946372571732786715618643574135377447546610248192538492437143685548049660607050181105985669030744578334463085812758435372336393751185762169781271178478615637444308051871596675930109308608941153195594695223257685105230997534089706036125995076155109223377808151271284996310962186072338338135722284492704450823659520268746400327288782672406120705027524638951729613919277426496636924161614640822163531154271970829416208491941050766949136515157740648746090493118968500603626596739109267083500134666138200613993262046714054801945904969278051832534634484120544977966478672387267982717964857708146136621616681989608615549827293489248436647607653916076117402642477337247292953336770314258814478468868654474542216596118392426598566386348055377009298030755262741530056410400277254164950581262803012605414196953391787347803886863407030103308416902417107848848756408235662928302454383177111218654014959514610152175149426929258640094052571487257716349822674350734480109152613506100814824277196836666375683839995099312066411907530556603820638129070656510152944512857966466789046820387806688755639676612140336974561723567577404633056319309798822111703442233786882440435583621513693125785406819594198954303112369926144897662275594189650263531708634483887238180613083635198887943257093301593705048659090563246055517699868499864474552688395023023066673303927808379071759658311026802137623778911746385953928750939902242380228771833394023768180251753245788193330563604661941193763128937538732561648893891420441842699358700326801479423868321913425883535118162592875313871386085104471011231648189434362656523545368670892383565279075996056592698641570982774539839558574289998479714293707787131889306091168017778392926484562444777993163750400182085775370926882767839439189515345742899338331813109381342520572532656915155023843741666925533913456311112045145630753948439570279873216233612969926433734912364072384557456722902083623902167187083340118978940986331569391036738751166828991791973463964239198481281979183427862916096855434095874131980144876993974164645549291824267635946430446147426504850304666621178861501307627414836462561797499672739438605255332768610477503362204028274090899952257597682456604266603485235076584161879070214779136869219464962633160991241585303682804839968992538581573844111709556342732476650020121006979043013038853082747065393876897247425548551301828962156756542192583734552225924698861029700888353727092185297823051441830721171461720782982383658033151197742918463388162905231368472417720123593067819678653299876420631922763703493303817555272408625548907716695651090685565539219004622257194069413258010900341707149485488535070226697135209257057342329920195245807854723769305686631183726432441904058396870306707302210233537508512582655187468487146895430924539589345529969211625259009146672419651472173082834351400718927157583363433137926481390332918700683656551146228797986717372089493254573057737591097389323286539969871260636200852829493226173505784036771494661660716041043389898060159241479678790338161193625902065767538448747188183117633959111077885146008971668053960471119736252058043536192123641956647053237034573652570369039351479565119632195273553237081077875676725258283325275357183138257761095929806655148198832291084974909973303163112875571964984488362698441298660713415882000810429616118524291370078541724618205397092821477691092334834318839236835536463727747209574778524513088519794109014599351136433024983532904694092427640727091157455808503115779170702202250357981291084982444193125203606225631203415753825864587590641779002070383230712407504782330401523221050248722476394340414212030332644874734046430654729121715873122843719832164497592899482619708155104149861320639951296446969987945581355735819122404182809198949878904822364712490357759289616137201266927546687411911211068183239867791543028951928557549268082791973729537198876033391230981242956404940529674925689067002747512407811623241466701384770362117756097529905740455241312089308022720697912347060834990172017950645786429514741096719852776962302058649016998140011104420015772404554554853716636090194829759141531035222687464178888868909835084559885635215916520293508611022989785448467676001088058965020332080623217836474318960568720181659888671680570719211316277507480736361524278060862984867825956550379567258451534805953914759226669955101106826425094851804012808407082504876673639110369584899649071093121416262514623393260830933830499704285976004731859546741241371703434373608759552285118724703953950812466181519724830236240122445656252381587326871457976645394647490252545898016300049708079015253090611408528240101371385597899966578786180119964486808792755157239471566282298807413057719056131093157467200142861399237935725247889196469659267925182004555470184568658356969101372750442799436604415350953772116944756331838410435808446434803812557258331582875454383884999856577786001696636326221564364807233785782554737206927172648475871686566127602773975337449318950931281308102081163746024385905462963718151951099806764015413782064719221762464397909030588670558464324384883308163623812800039873296285538827366551355337284853414053532710044930619936462844952392394962814460190330970116878905681046738915798740567581071493766950946355923366773680959289218403764757923944292151103690487419584090413175137495951355455769868613764970792016394616569663356249253366295178531294485332203389987881286822219753339226721074788452934496801527085862606426245183124933739767076164294017246103363983093094735611582620897266072143061587482355167987655848870104345620088884445745441244946630100873810454590780404452725400847258676450056837047450616138070552001482592614378565475281763353372381812158093600368046646559420777253887073880833456212408841461916657000991704059493383059273722164269849375286374555481813037670762672206599834245502640919889287264642508208188896858012924963385664880786646310448332149802510163712619866992477189089798243998222182336833181721489805657371763887667718809032685362645883775590335416735506743646452827402237412948496418789232951597007981169395971688447113249813893072803975924814614003715774323003750769173494676919895654158555789861168456658654322843019022203754117153555596575387101811174031912481290364333912313829470603188740939766669056963793138292091709613503667098893955550440686510909596719278579955946588765879694362511655587386780706076085767536817897753739788624522698781776594127718655819933192933411621298959987027065247320349534605489685720409122383934835796272927455330916916945201035139164550010107636239650525850844448395571315551046711712602884208954534288926269838258286010664274867420740481790646994902755035186849388745625203948246237902684839240759868715585989349919007337269951932898048096325131227065102734191928040924369932054263931770155251043512185350332896399402942394033222212181416755610717691517630226903653064127746964169341688350359563609097119295669985890733490265190002445169095626742498519935762119054159539525914605085498188317592103629384790251463998426687154842570406250887541157655358425668968331700276675754773620225503242434851565032514534342244247403496949456975349184993212512179245915594417799006166791776710143851230372092299403391751214769053052233599396669531049686481879138857559141110340210219228930899154163003879914099650195190253820996812474140378725407918669057618586352289931176212008029612726764040950104434292149704485020437483659731725796621936671892715914159183356573792585683608339943468971771370250886383711937729061504950914489033798711147201271244826580283745840383063921525520568707487483190179714527385897620020077662769238335385590734605295659786220379820275035214187882686606643317705867903700530919706847481848210999629877564149646168334126543642496254405836884173123257511382993282473845801913213484008522762187499540544244589893125834854052133140176845135510276838874358417053309358654193371134523396355860600912745503043413181222833580044021874595618298934331962972166344106774443545301429052049176117408364261811196570218512669189725677407197964058369483301795780051168295189965822275541565077171424193085309235313683326650568679482753696452563726708770265794816727519546960770915664592680551917221197440434299032285802823077619890708982704302982866911814299059290956826659470844096937342004376290787813037081673801556176213560267958217878693870917021404670713155496485471368159897297445501076921233870809243507456252382204060878681134437086430328520753987570876565448411246846106243322703850928493241678906754023971466945163898184888185453549017757059243866941889088213199883056405651702792555385634437343292155662281738826145382757323289145184796143650590730259513796352099407584082064894884447839591424760251460824960936505346824133937650620757824173279717899050487516202182261571889081703268137462459019704998908725785143918127902842214536910767985129190077353777079845242368741982718421319344086086472556040895931456684949968486057234245320054904501037278168344287799052453936996353749247082809047316457073526643048732384931229574440483557358103069272821462703836717766227921092142320288906927507699329797842555570251932950379344079853436827422171396273792891936690621446627750295385249877459670397710118111985978035614441617968409635686253566227324897169209495678124957063243068751834178404323587908379214134801288045776106642874267598957386583246016718788415328304092333422408947923481709765416819040592359813688585774991238094565141727604265300743751097031209662923617546731580725667231283916782596747195628264637025669274769119141165217544586519475891038180423919710055664510949435733618901285283782492655230699154721293392382680638675973636163731330354389618688834776485824410406551363817840488569300924274076529364707852626195094831199400305350330470615431487399482142602412329775273442375595484734288286032845186801956761867141178760605138660567990707534672185623157556302648495540631423061577046297184685148689302471499374558584343728235765219182656147422410560893760607142624946546483735870294831582883262023509623189746424420770379119602290669205990564153310674500515541067024175435978290240311919453983505968607824999605817295694181522435652744127199413103987639570583951250511923095988256066949323340743341410032728248103502072591668415948502728443739168930150516235759208646821579839218750113550845893408915872550404698685454441852524348401957823962710043477850122265516160848823390943556939447624116209879541594830194026657959848209385232633722101032961751591523383332311598288291233119947661471145732478711678428041277273502153492026742418773627345277260623304617042279663555884642958136335434246216644059915882863654080941633039744415187713189852723226026324198924443667423744738522103796420705822509074810399664047776745684037370049132059472693375043717329778070796392912792366675086352153980492037161818166663791783545948525967558419178052664943278683392422027599443150127138420136153355660485664415974015437372339509167412471962461297756549804615063923268350576708919526267429097809157403370999523409311401040240640430120036022368840919315078946739223755720078800842628609050232937431932349919752408739104976264477630446074029653815475683897737622434136887295541850351210561309732782587572962119420819197897496655527193739694351425248189189485609624231877521454269674293536707084881559397697449282502196054605206150245673555261932633534116321065538135228677379724894727814927949605393901540696303230727300699988338444812365893120679190732484833343238637048700346024061518633189081280456296164741067003487188776016237349067692587570263181471416288657600258175149342606096402823339315042245341809074873059173340598745624158617628553435689761633814404668967606572432796279487745694651342766676242503002865257481132467753334439667428179474518377243580107041031886434733619863714075341953412714026217535940295655863679150247060024111408351393487911870013624917219917228794426977389691362498790552579403797420160318518295516161565355321507360218835947243403959284855426061636701963048137754121671456874962687406323641164656925772973980086958035102209388154689239686443267050176217746013195578653135087004478079091588508174990261990161376491162555834477799092550727273812946560440282366554402421791253092070331866081222737405750993625396623590194087426648230593060337721891557449261205466818120807223081297366239619084356305531713905574434106020218444483702719849953075958822037897392908456456955009191964974605590330107843265337980510601027886580631485382513886551700370979934884778644996021966885749921902227188953701747486496683421531129093117956549782362999001302879040697602638043411587201739930440429905670154936859150733536037275998981631030229880835604728800770433336925905934368833084691961142027094143331764611466272084588354797752390325498835204930038377219697159512095357546657377253314760032874867422409963180245429330747001660784045232855829292898753612034522606934480287793579146183785326260300548338222685938806827057050125463999449158022123990734198267246306374256885501830448420884425316146500849167615278118448363633598403082250663362288689520648562065869485910797512029645488804426822311070270362772853294856024176253087016199540021925511130581886982549599331449292167385751559161803650416320413608012510284224814784354055077046963312249917058342747013914863054358710547863746179697629863968309946062888595353117382473532035126589457185408227928203030641992361833045781295044070655705953135492226156104430045380255476022964386902154270419605409044059166606279877417532116546468956690740552063780317783587841991476616995583903284995978305491066574667534361075937846101637543566677836807843101440468001380793945388653158180300100827809866683053879230153155547082418405848292982828974343572503638002311997300263258305962399935439067617615883441310172221948677816975303708863524787868532360537282031546315695283672018078492025486234374822693540691724456356417323730328633269525017577052454986996715279667030377925759632187501109678658435845385559828017195338965701631235312257091424711634649358219433379470961808952199751381565098861109503719862914375701019030137501950412096980273971723871577587324516282760140923597116165637154216574894929367887570113907022476736524679334548430740735671661704908266895083038765298135128698577076391287444825622889445290654317736303565516042426455459226274777996209402453839417887133615203748752405338192279945404986130214255985021691848652341806712202115919542981165449780306757995285819578634698977881622335107381006968120897530577889209090532659652017795366041323907275667316241437998703226249504063345107418175581251961400693988424785269383342435167780282094546648871111301085232339860866568330279073520157916689828111001588993625519143153051396051194726831505359077194446310499326677723311274203461173525531679972806384543059664175106930681648312271224110952026800188862488123949128403550284175400250812906431028936503411497607724695649188868232397297756454426062947772598871243493228427221818440449860039580541609394115125101197079528530550450616545058395580824699100098355340555978765213618419522406928578770231604522299633917905818585377600302974551243921271134097251404835315252695505754268723123181941233334303497962068705301222288223614691493697540431930774627055829670674889566948504285175273637043137540750012947657101367203613848631038664761740849380259568603306192060996573455490413959630437950385357459064182940746097883482805233937668288739746996919304961127448496140735745256525047714491916044390866689201130379890491530044407309725215615626365447964303906574200756410583499534062791772747428135851078855518426730772850331972308548906812195929552068389056438701339782236437116649986861585005598744742098678392769209969308997239780815353652201730256102543426461225722634638304287444815260113702683612807060847356141088745272617697218397753476728286894704204710535862780824344192965252193325560282618199082184077044236440047969453400696636244079274048103748890208251344973589014692986288122733054056089340218241887337494457917789179737104415212524734230210996163453583351066075995429464373226352850686822514807925016750305832395984247015994874080299154060853801621088652755649177415285735098120846421196204518707189117219421921770691847200611171072348825652280638683237823881232715918829105042655586544392530975740112288589288757632459948153876131388357861899692869505709610560299736877174774528884330447505132353505049572211449827166412349691251981573243922764185063500229698460940325568148874369986460271193059709148547839438910547230706298478477400934769173780839321200325738143589152980965041922625179007165289837515011878261982598949900022718894428690452087369222248427736534269308005972003344229531776276055644065534382416078125611879821091732278771874570805929914546035777934790297018266566070026646454154409565541057861013679740987402126581723384323434646736939447582916549650142423754662261330834763472580241928797276210376623340539961697066206863367861586885376082698695918725390969565538747829956613573713581307313681934253886358478003674778190025810282517770681150653617865770635002532330090396698326448860478585831178540781061272733630951345122263670765694616826306875054069878822759114305210501944873727766251539924102865613710249300550513211462319845466488668779756047180103714388834484325700395704971358069593516182667572915676908743006016893198894716808373699820124502632165617651183782856211224813364151294461568274970002423333390623622151732113174549911697320443473060764409161967796009175216113442290784933126830935274875537087562130029411395432052805828350533364615658304725122618461949016406213705129595589768293014437887594946152167804688681255026420937195255274354276132319905975844697824647998987892079504981239403143611486693914322388616687387649134542663812427738976357237734795181315317072846731739492357388470685393339162943807617364312840531016459157801394449432763631423299525019292239383986664313381001350196519571394047696953957164723657961766047759065613699576081097893060729275949406315837740098179620981649762581886762669817639923562287861413927699074061544356426688582406706638953729968605619787280764599506546469333113600610084415786421096310994875554648300603967670768533805206291315218668658622095323740229322247964150932006183729902223154913381802785436605314423797829414254252766744730773385417623044287022728286175124600951801640031825392156452000384827182875667810571398720172294149645483444399212210008020327202878635054137679541140705193942969155111257384264479969940046765164933957626682365364125692460565491570363038212506789737367616021390555649034072936537456336194844355261561706579913170764943414930174476319281893287216967721863017644207214721789448784303323633516983147826481871136053162666543228298605642001937840663667167465253183538786043207213556088924711730061393331873288883732715443275650028899789303140694110242406878991284863689502471168931106823469715260621871647560447500278294777993171250962579638080609984553311898457676285724961813987564895839578254534131182114752364059936121659964256775090754545421409621807279709397873791028356826096080349839484848139859715836471571294051801722091678651900591866131218828527547181382112685593930509012124243299549847459347000226260371824607820477978613791904266373875340771940626509871662795059917901580783221361254047014083549108759596074130528093911090561794231120289142429915570921425339432093103575507132806579581884978730244508669428849508007068470238156892788944890362348293198426539342714511250182475433954624783874740459144153398619210235492079582562416921883296164665148960578171649669201073912259455815424813819115694845088989099469680251611860281573997349606572333038864625526760758903288054507113548792375726109832135113206424068159747517952811559968161117750694090498654047146025769648716592487732146250825218085354615003503004490487849009733205641246682848906708575519580448806597328005782334086003158882148603794366884371288659481315879474350978483738428393593481350645425053400589639972501773296996569598345399508819593424353228979896504388728960697826999385780145496818962820429018080910886672778534637194643593980425875905106802038526226967651511646463541846082300478324438854729584286012393710217134576223848047115288692753518508658305851343800418254903133840033732174581774793830037045613099866038375073290959243974127452808659061393519322265021536542759560969531956252000146376722526634677959540853813735670319201682619951322317297596783505406602806197267812718236048068036494452580506807764599152404510738882159548443249052156393939438849119673717666722303479220486163135257970828348484436937953283676469118003211354941640133557816837757366568597164844750914780693496338681109597307970944626429055344263064922046905576737514103632354312091136983089566609470339762780419316578734836445742779789524961568543161117890648820836831204219535499175428276321841079106130591222441086607202043655991261580784757314094604089371130606243436752395824572494855114773929948712058950544374777047655607980022177613157578740060595481719900921330242769273705175001835131718684186137246167213972325636036804688604537969657771996355603225460750052914343897536374569295233004610837714468779120321024223660112424707460827341805623935167781039633712485826869416524409539753790291607118266391131055438917076848561891619678674034993962580638245411988821122873737197244122730074725885506248821090567462207995259859586678574839337240872265564534702107743406129538588256908875459590346867146990499940496566430931663226422763323852172773103852607130955182096917545747989591026917613774242608207127738071185464654562164327279815993496480849064360513015475020371358404719542203631369560368261184086130930895857488107893802837810643092008020091858928600234137719911269047217916678906891035499704415298722865987432342831832809073799609859918059847734886061586580035331753992266992936046362606065479957016961630774640309268490337750831340370284460758121787244146427479302102146997097941508088100485438340709619215254393448612205069314359089094099748388671136919610272454942269307961368047532148772261504763678238239240238109978836989952799334421397244394198909739911360120371848138943661219681091348063471917673557989359041161302277724491126965929825234884156799152192261335139572170616704365020534938850404645321252642497607976643780389442832787051997236707742861540754240890958163720496914294892742073816269185734196683182513397860895006371263727530134341034006858438381394074995180666690314677634431839381817655399965170602758037535790793406326829930472230131344129718618628283188352916857756375859681352733845749595833014020601809048305136177113332902880660495648331539131470406083100715009679808321275691373519891449482874398819255352822525331362494760859398258603846781571731871714176842616425907758230026461293907389498755109232827222017540667596014273764917736152640360040919116912487438960198091027468193479268733070230161771669003081117799582138233539208064235324919476861505838150502203699955670880566018395407669259011116735429146935152422380277981797377314963482589781856607193505124742047458255861494774115804173837592156017091705239575051710550181532048955427544543011183682364858058183694233203475584479012090503314041749684388057044932306528858163852757554347565654448111503459315062141013990884555460526437112985573668951404929196116501559140269912376355314556428912033079052070769917132389239430322791926589144561865365590296975701576528319694948258319709444882113028570183528085919717774649888201484265869529837546532794368282298560134923543023531416938362967017548754777518875298300770546140926116939250182506226057517651392953413465134270362283365543715495238797353236582436596850945067261835469658638058297142299917419013155365902030875153713727407145524535529396956000780167707596379932448527901488496509321622442717020428438026755307916070475744300549844959722174074061326842216239825317208982319511069595907218628194906428109070266983450469986059991293484685720410313308615807471157594404744891697489320537307239915684865916524037929200325014170034433067518845958167573219196285188926704733724796187494526956791676526067250002953692418547077197810298768251852036538372234814211395062551259271972680284328488182713103969622399503382212431123167051820250021405488872043434525478533123609730023729053845088977279887375484404624089790738848290676153649953289246347393837377903275364897675806221504056833193548676693556631594111842937653006154590255183108864697695437032420261683471467459696824814549488062254043493260537114530769929570457838550710619833652787576402593919082339437978436676135456249961421244620457107134991981105796675967575088897556268568554860351665524564071495996238405033500774618787453029444615607086164958943989565817669451188465099649235725538261326717117773865229021499508049515049439908142426054133717020579094141885583602004380056539112419852134858238861066781240906275836357501466066287041075644513669865382295015093031172252157060940033382190553841720626165751320807780053170740805785241676944909165484379507452338263058608951941109233355420626961617117172143074024694865229918668057248657434353861945560709502563862640830060697305213301817929273550444804008409056013867415256098744640201669007000995941900434696427461034877125575531059910112556024320097032231894401570953560250337336948496421651487268850061386802639771992485504176498015965909461153391896509841774031309312985430707950918632285348082372550256159758413685201246037307121134201280730435059074686221057583147060349995892135881729981170063362713834066464389611035885991059658468723486842045607336342948168564014817093298102808346068568041091794783907784128279120595208908530981024282382447268354774034208123587287797003467377035756816345674543145586766342353311116556033580493324286596118569130879260582793703432299615233557896203390654068643507122593025095796992735015029842956340727753648201737328105786522883846037744937643234867052272227232649039246802399954308271235635451456218016198869613032908349208566783368530154874174218350728052710048341085599975988838091507727426556616957874012728750596918583702991034363417243843734272025294973555154831371179285464020344798274683096144312586568168953905105028822138851392675165811716933045415873219525376995249568223236532059325465903616778570343967904338040989113094579473250537572790981932625712485044390128092692713876946483182094352355134314388968897539156379578020704994053830665909175690577186419238117728642168054639811405801524142157609803213300417491178471491768853906813304523779531651866020426728356285171902566153081095492495712872969167362724556196260571140045130711189790184989522328572328332496143561647642725046586487516113507561559434654276984625739288332159884754179941100674147424131912195040589237423509711103858998202324171546528050980153797863547132602836605831453581428706256851344311413262935083547347386098797221742356978475821000000750908936143586478675413818862134868161898266409317407728349930039189368951588073615826895366655667496645261185961082426435410732025914029416541533599850554802958426944131018108492416076324261877838177886147321708345996028145171652232630144577663038875519210713715181010508416838455733883444920324803323350646503151480858212629557412884147269174792599591619591435274835880907176758292122615980493904770549715183461016421645903407975634587000309551018051980366936810600264145182147874251441873955777078083311453656862696538304104302648214505507833645169705446513540319367780987889908079168808152781441347657582301353340459381653812816277761291018711514169730666706591824411757977106195395518450183588963791651370482264628528393952230201451732549714136162289767226367767609190004208165698073584735025116514535862678960512872288827885732544592723953473116829753575134904666381365535913385630690949413888457857990667002503623517924789946901264646896234745177907005415552010865253131403427025205223906586670406776581715886202036431981429565034259499349425047598882013094959506710891745582835366355531426384332434999135472316722799522897254951234329682186802458699791385312329576031617136195285041197464052457078441030117267570323448720978729895796260620566353216435266663587157889090813798928332817421655054909019288904748460718998869534272076507366639249230308576776805748126756562279240128795066708074123173208485885800728759637813637192326644018476885919899541449338077602905627115341359968613875616872068876317714825835779392594107023310909157366275377389991711399839847340482004610761090415127365027119759154822796393677089965415271901376759571059055486484959008623489681676918786758845273463680824396682177749759798775274089225073193302032944082029276921723313938631685040793559236305848494679237440544800149746299767352721501732343646448014234856942009366278915675156973982720078608738312626611762802955369930535464271804792595601002599418451142435080890318728954819550481725812397280344759750550779909154584493323272527483607661509048643461804249040574275177435071487019307583625757865860415853315223623893648369278598852782670376116097283728080786242927336365672521601149727688511598273152258868951279307295084238134007187027236774757153399109225520538167948408717372412238810346174249014173126670598001578703585624999651906945496362909303249896347931895071428839794159094230067151850469053728509656416325833798689604717008498911563523607173076189898914690460001500812810915438475726226946932765073282659848613581276485095568603841019521296094200835735217332894852795043308816051480034137971331290359286679963993928690259106883482979437792537443731352956631150114889832949213162167923442648687473104844946040904276689858330761545213967034597702911881411191530066073700741292676886628726853018632325717297676193595741559799554087538269496508454289337620696714413179755256539071318276144303755940783181932328221002951800336540977090424674033483674087676463939488619358846793562746811702874618984720272903660374796316366598635757036554481027136255701205543618194499272014046511927128451673643842571958010818093286084018286545043601583655014039023766154076165505971556692531342783134660574517022398343624681581144291390104385251620413870718018574758712764939454191012419945003580150993103987476526566582543504416897586279179609140919325717806302720019767667338324806077052928412695773165281377473240447153076758236628073378170795735170877588617684964366063217194137713532923834597614109069106208428341325192053628242184426908712515219399956311285188621629768228116861048980789521668809995089123027532625077688204627365420278737096817090206960780976658617365817552334995434821425171932841421224393771418954528502544930096362590266467179151030313962141881945499000512273370050045042417712348942830513366861662873549396230394437964876430263925152755192422390160578164255415025699117549585623572993132084589367515795045480886583575014154469926656733264218896403100695601921126307731357135104581272447883060413625251292541883819642894214539969856714459420996958710568281583512655129663356520524944595021273583859677218008364137203367893652463314412135395887922692122253952352862230037000545319303933492840703808746822217528069689474951589831673365962710203864905582811719377875136533131793043872305745513658579514662280245345559360760253443276662186034878911079158817649726862802715489555124210171188512244286323108990247274449851091967578346484204488054430061943969511796930378296740679188633683702371465129139115385692667053405143024069230279100318443733596996740560871388751698224276327732275487132281385284285843080553074097452485271353126253640698949588060791324774245489092639212302218799562253511443477139157236875872065627260764497690388366712817684428669697217714583098420678838538731896333021465776497267794770117516646963931806708793907691602776147846751784309692383364290533004416687147135081399688633701630234694340283068413692319317166271206865834064711946033201448795274740486992758512179356235096916229713095927594046048422796399005489251742737119502506345854372343655824426079886275413418488159378821713554798639594331569128952041524360736612087656824959766832012347525475710261529625148973142357511923232351699247367852524543462672621826665481239683298467613491014843338765080091256293822537754758340218691584032389211246678785194542799263306805932783608681890063240291689748658415597539089625683061692717096350363367526104498942386053414809760357768136645300148767240389167399687798408401175062087942300385680010264020618609115125973280158191670723785489169175910582744437230892056760236833201507352867874015370594228639892266980331985031971055055287980799529569802552134617469267497684321621371951619134045656210230452124389561335093735063576090986709031634487287546598160897049123122255615485323924885352102627415242821869892650502398372624499251381487919751924970644617333441626288934078613141352142886833377408646617807215338134298561434455193017888338968921586540448991962128696441859848683739094276868403526846260204817292511162978040710851102913360603165293011457883923910316776293740550647160412426011231775944654166446530906229093804495505645827595883094120361050865862068885772751525304528692837125967025057232138766625254969702546330949745890850246226546654183041279356296202849492313333180366607961950427265575074226997205409017840545542818897009256281846748071608033073258350890917670831785457611470831152785714420175847182426102750210063868787241770375328958651631328028407006191307022357161050472840780970598323686731333533380358338190575353869158101692340383963798690367994794795404053951681572347727819769519715973338129673389311342817048497548805051465483959797491387847351076541573669322813219474464144239508496219944893280488577451973255870251816816167200599407239430431888595697253531890310778571041853814001588259180942422770866426919256795741623392104953284078174935827915586121989001514771488426420728377716835520025024820408930050111369781091436910425644910512619198701721844980446280504892633938507065680706609784265503496557691132309197374166433879212172984516957262752646572369574227154889912416058804713806624045391684931687378719303113556606700505553484825453185848451250108481412588759584613097738431545772623988957205164409361736218148459853444452838995360897180549236181581811166988076879295019162053351759999475443932266825786274665244842315256256886362451985439693744323346856982132347730950452647126779224575862855851284076055117663032732816646418108381548366158525591089517361673601517118563190959158082874801337970452958356159368338632200880849342435094876849419091773460619000747497488283903914334895830262912371408801468420075028552028985869559246775098382731237566086855726989521152970555461633935112442447286815749738670493072563527358528816079033416564491721527565832217781692090417866416714385377639553328555144319170681174909878434826134191870356566113899050136301106914273756293080193760610384241924228206374900183562124931358473666592227252838753532938445795649752177417921765247712231214665991456844671796198993292547151693285119609300056176992498452417903552463305953751378358188901934119044667210686801355212929888385646742461280034396124156073546076347279526013043294891262427523090695519648844195648738244611994000804094220869201115611313567943941366733929265096668511068835511235074912951484440680609154289240885878033156511321582109618837255103587979254135981506903199612111721129003001578958404200415334483926980491071529637776115727679172413095669439255789376326525696333264995932342611614180776270494015704245848747511904074241338324390753746825853033586712581076183328955285621834064856136275527066957479591273422665623470753328475398966535318531662280375103115540384398025189491030771779836732849899987458189327536972642328869958038598863830995896761002057873470388106193008595812290077358856338285066560900107185907389071485430996104406215669516086484952256362573059661662564221517269877274279392720428835659472595029958631605939925835701648274281704199970647459780568783692851367006733520807064089657405965236984518522566148031046933936947321208445817157441367075630691393531985037801464878876592387175584213933637544149595402864245805517605479821496050645484538606014994074549939978248555246503725321349912173649912837190606016262320618277807153235496226194611488221649714606294427921328227748341279097231828088118129984320631859443781972978526170510070290946214872319573571982623218439425880617236403551196067541512699114518615770229474318618758997701854080108804962576233207230080614963516398893775109342895447956310059144403015182420004767253664367906110000668600423536781910501617044786591577672843711250010931850961534402847457067444110353978747065787671401310658715583284491240495310611562432082144373012850265542872645689300063813767914176734414260638123913167631275691948283157891406344770096766348457337802678737157542736380831704723298882701982589705755755171337399629317456273745959424884280528427897463348102040740801851252964438028907270345877368418122314132860594986084758787301895826637507031773400150668941292995245729313831114164289302993519808419819549739624394568786952149870151291877324384625494685337049242352430407122612333589762875267960358451640502526434817365177508099656580171737560924609171422318465192246409131212622765447388613894408580158144545208661056006482365626644914553236516445539382989656793336841244910973938815932657765712434733517496906565132684684063206381233669081437140411523658949877843238879619778569291711285129973893311238848355048484004935905602492845221886181707027479523733661613725275396075672467943438799161910975565319225613164336528495219815859395888483475929563095992362929770076125323324528188677475992543418789546864245930642692259176931944409587555513634607608352291908836081369241280548205722545521757489362179703105058801017337833229070750409345056384244272913656203212687020420888444888063812433363292461228757903333656483717167888121016116020426041727156107748439377187394245399518482664880942356112012773911459747479509664625223747358808682277840505647824582237678391482674182664402784663738219633386246897245899784865236325245710215699751222379653101329716446769603706164339412689864745892986216281386975283892469227757300401249837607308383767421150828773689714282864742383219907784046675134309816082834100174142930496905393096187276520066598729049824139651615736126752162173525756230464061902362425596065374303412867486435976852985017421194689116118324329547042457172671878482895779237743956083098469077275411459608353548198635007586079851479300909043207913052786418757183848057239836762302604291596285392536627458461465026779288410717087711699092366003128809268192959635264646570246851980003238112418886710159889291920987376523339487821373875311910419753965310426248125725218680234930248281862468679530560065610344257532239582354774773922216141951634053850836985140071500077624256703073145602605508231363098568419410192139227672598535091646755527936668417424571795682909994745887961659391268602191767386520406025373787045252383050587531577225996366565886491841445320945294633725892542277063680775375295946142253351888141963318708557466732004005607165856266186349175419916098404248822885366063154287698052804267761943426750308806076238280047570603096392341656585774792656243402552452604385010436390466987873536406757665828665869441103670833791315197731777223644028377366755329546826005740266092123354927325468386407463995422348210126291650692740209209230533136874798338345475101795582083610278964113476307673526488125080169251485439561451847048121342706189938680436656046789591881328578976177963982196045617720951448446089520393767410789421067716528639565308225609703491839953318284648979790495878042953705347718989749756058519622964946699980710103329216365084531290729446264788368713151271958223547070356162528864541561456376834766083665227721971373095690917452607620832732117015475935114603920106770355190075522640358514365298910203790465375599626333234833609255211162144027441684862110438371297010416253410209006236946210726455492560397967288645927358190157919907323158295662749468637595740427464830113748773107685606582810914327891900582004419218387595292472507264847629228925590448258174905977076832381998673153296247502311016539311590208662304543006988534083509247087708415577501095094915514961247702581666714455210809712074762328599052198639655489743561359439496920325250610950002532142484743669892452573652432253238554143895839116127288145940741244820524102211618842883956214237617672999289939958404080562155007082418638041015014307526774290264945762758524489617046749675649705280994937124970114300725570604871658513248080511708368128499069133268886769788603455183616229403554286135874800832259744069989561657507273648690899621089156018332138776945290101656765460505301405486828945751378511416585713421674092750439436481453475562886606036673484110722326850753100664434669494623001142697031441251654747930622012865236500990521678111203508476114606410293017757186667793427717632252338934023200544921456642465631646358504510363839660814678835330713339415800758815179788093011937213980838063371617282243621930883623276530809458891574143273412888040408831312529917825472050541519434610130926006500518036888881758215626684773306914029801763931684678342833677522968113213664155005300598671870204749815433370128603375401742157715339155687172512105749133885362489937054143344519175736487913895832851139430557249731203705536871624633202569220960715069364666838575925630636938576002319984343147062782324840033995680928549873986677877783585291272939291269914050110278067702816632139109584037305421663421783221392423441898684303270866406115697304675198702173303072200694231233551535712700438543596111223571208304604811456159600304155434089608457760980071429634703311516625217118375863143023844342939373965240176103239468551967239640686564147584518035546698868911894619606659720317631885264496201998704377629460597341613929511440168810989858564468047430469996304332874790452114620164952424439148252635626514077350603094835372835847468407391394645231451239893439500933099104722129299907909764143741251980331812737645451483141109198176093336446786586070934797433092202278458198849430722477090378623243938857477854430731362220545402944479698467342884128691525353126429253920270409204779475381433069176622542500997240145280776892460393128040800549725643883272465985848045712202136873669028273695157967603040877422016384170062137016460186777375070345781702429193639795227863939137291511295145808297094444092684103898136573912266067237364759364922265069879752635125362983613250145686570782730208590540064851017314969869074752389506420107723948719400013961976515973815526578587071306239957219250301397087841314641921570043204027658651821418602987595701892096595039712902972016941863064478685701950352094937040729559505177261550412043543172661203078578252253297742019718745959411813499571675464433629947022202721020544931679102776688021003876931510043253132248526869049952629720005420085384892651057676067657681139251562912289235468528406749246062882253176687418383325018255522658864448299117463986395639770173985844894904560060498749832140491358019077003039596662909923523253920300767621797817792581314907345559980050022427749450964461298450623167316587202356244440638540888809985874059758286449670338581408967920118063547528028609438041805197566981230898191533705929683289110836564481617810569426559034197667876672526741038546211179481875123490886040313423313906588747377417761563197244341924305893548798369759569455844957457185112222282460685254331022836103909886890088638929099912677892895853721742251827361293373716879152006879652710733484158975509268339214415994015321453587746520700108065205089557257024781469463401079484976828271967900364330519510130731400887154104401234772350812988271377747773588086818237720422579592017339457573432270924116864138288120799457069550195907949994910033285575989209246431620721873637423436790910880820601676566627111050341741800691670215943464731709297093226592176455954838132995180677783765080759199470642264715545605546356309199524980095758648822805188165696285224248970815981076760545807504135453255217838604967886828373150086785184641262962753011690969690120892286022087919234056499661328842351806268171385714438647756840809789070258745289329526860307798217024192334885015537804493561146808787763478152065893152546806116035723729874592005042400452184071959267449212797801914685918021923859351042063592564616682304050470816462159076520636756305979634299868481060513244252939309466234296691093545828257265803898898561379151244706531210135496474649521192476147068765790764331376911104682420447528598679628135745293958017887894337870136130844889702547382028473087208122963398760295892214382573887506627319687399778974194819696350669798546159329026742130540629768919895247826422498755120840596571727334114311337126144162451855612279131059764485307847244809475783933935450182977991944968064448575444255727135239696480526030880064531028030482291705589482528924776896280505455859384408520027379914638104426503469639968951097963520106565991163939043980779278450275594897020071160103977515565463402744741100141629128154370358680666412372934530646032419144013942557744410221587020054432353801438137649104874203196501616791840868959291774039381674536190604712370871513059634386559604896339823511209486595975764932286349015706089214417333531424628931150271939540728066645658686337202817259189439372790182022968899579132035656695680162983338362569183978679844028498749680143511947444542446580531288496358312605561074319696635246633196677533008356685356296098151265221775956381594668514738550130584450968836249584426965928079948465789845482040456948987669015790196194764648237685976826686227859775230554210155879315316582891946326310953322245503606333627403478638515322176394653135585376670009927572221160881548344596837613678331694999721353527767058185892460934255289433690137117812172169571359291371807377562074568013485347276240329319200767964974621635490613129232994117331763419674295170892183404324028280962043023443957728234341219433716429671761859897366906963255814747743235644668259935776765601192706922154044699678930294818618762224523663629857951390159605101831385541558550705484116149007616307764082156516779372339928317803880669832150894118027938748908766033675208284599734107273831212040504199070361517476773894097645857456239461701126385623678842501868547805267654037195009067527350755721815099302745387993352980634493720455212727491125964165771525040571811635929397105982269159143187503581267629204865649985093323176888236522750110573680376353274971290780252154640362415977373889751479472798879052292742984938962422093163010679873811119805671993016528647684545697534308045017701954139500857577993309649794079324183363886321631336087825773074930445043089889500825525666929490866221025671898872036934093315554697487564846082594659331764296635778346728325101353297822624506953358838538290090409170230515366908769464934402159518738260519306682282797553716408717634715952969418195597394977843506211076128868727121885050049657126365487139131869602389583454649624178362101506352450956633871385625464324044058672367253257487707976991979298733180731970983078633092759523948072462115968571733153019013094940724163442382600080993337850180699671353887073738418837256727204457858691061151720434061345249953462673208964827086487150374243506625636010163843407570620252274817649256809750226859607380579502718733955762045446697368087560368223673061247905383357265395273286412800172969419581364500747452517405700985458058002245407461264188766121991158789795955979370325098155585080561026173285886810469616275513077769393324002964638345815432407459353286109582415575785162829252853047048973116533832839411781297862173361434118864935153488496442540157791408520286499321705353481062324999050462620045490505399963221121071225656765085306668863822512937939693674267452045116224384527089875014281571667105903212771210514554078040590223677494979420774065785187984973490446598341203214558246136012763258437311419037258323860275370864017396621490296754587887467472205426219191989026699041689774040295370411886069721174789259138208886482757471079581055097362458732756923176829108697670196154320463993394491519060292913077456289180514772096406791957426055062240699944819636626890323984463989382573698525907331680327183592513222013063509850561662577940730595007247656090972133100721888100145805900182370807588589519270946338626904108678913726846806281159937812224061730860254088227332085026522540455477432994749286351398428270270263968314617046648198782116903744304615840780937936783555538445930718915662773495773589786985851908251916084181146273951452264740644067201252918301643586098871799756008241804023286203153128890157719421916192284705152052515139208103652025619720120441423467643514534514945264670078189765237047178981197964873289829959574854827507974296536072898644583705564365607904129607739557934453589952334145158561162607437397940141511853083021369617889520991357826341308960663915427776968122224255442162860333705932954161735666658889274298371054435345058909797651069723747220358775097914408324630985683798754542747982980264499021363174404817299586935590029223975843921327435119446017370289022513772185431376783398851398659510757649049946470107043620744308692902540837490963044417310951940618046303249371251273732067721091751509357917070540853060549220399716633516117553485508519268936759599090704523518129768592158210577658281042048649138256029283675925958461402811698567645436488971751000456916873217805119451241677778178992191279113621472589543820431337202752252257823399552405320257110540465606028119928148313598692597424970989437571021732848764784893434234428130432476360148567639382002309660169082576310438054655726205934666633775896681256820810780085893736021919857681932113165651499597188720846535821324330835278416671039223844195433613580344759266528258143110995644163956637449811675604713136567531034511503293805283065553839604934307861986545356836185236445397127220531168813670730443467095678067392085486853279061799197517217159256095329052636665782558024949999853356670335219939058193406895924476817048062315521508956146764925840582212016269076867542891981133886210757564483913836599932965280501504458259283939280073497603335099051387051487445072649874767643496299495740005276935877605287077120620597440256256158911676851700978652684904447925846532134321178972380528168324403936243909639387463277817983708819921993712365983395210256479238071596047416235888639080081281125439285654838021932987001981718962150816896023426928858776763564283630295439247547137363026480283032393316640188635435018646734026486935363471598159180334818268745611691366032861310845348007193966207367084894103722171948667866704579329605362694080411636894733454467337924547346396776058810415046430887841749433801260729768052329071671372699686089103014006455708702597335247217140091898517295305494152343797658426699493833645527961205439208438788862235958489427205596764427141964727383804552030305179168608644811844296675024368867384183177462924969499990210826250943188702678810706234151401312374177411198541919989932880156281257951450393694669127090720489722867620142026625974790310921715361253379131162262928962869210163392960431399813541916220391632656536482551165341258275181806811012929737980144798214843579906569100521219576175353871839723206278486234280355563593153193331965937479204953608237184728121112877374612078695013127108598771611534575920454946072287965550103044345670107484003588414428383676728147131554574030615256307466299963719872826918387910856460248594202319022450180083356572419801445213065435870475918587032237903731962112436324880486021914545188432569043373638067544668525508317252948569196507108225525934940212363553421117785172178141108677895747634986285614884138075481013806667513631800865443428047890059078542770870077038750671834980020637902936261153470947029969288963122337675973739019194605744906761801411638306169243909893238616818066305551814470344059631882900605841298744144827325461777813575049269256564863953780506882108313690432617913450508581907856087902934817002705142674431968343151217646256058703140929028662154720679156521347621788848338164940990947020236487525559975435785066279758553706977679125245813834207212496032976509849351062906887361897235962750524746038569870797419884270466792177635714505823135397153850778721339179351610060199955646004180613583158504330264544506236862319618022519425752829609289993794127322769162808566298205139944848698353272194332642994100032447664065357541625790758314520044579665256171102859492259179390637109301382826179678852715810462685367847309337647248579188753648883983870664771759272408564280798957565012092934099866070125520317972886970329083001560677934485117922900796689764151805501709712934818118918788465777505287347673039292536452023631235026931042181311734147843901564764206682932098535992941246107710101922773525332484205188427331506253024587707051801766433685484965986675846027860035143698070084470520777153498123805606551666370329794722181147327985445160066521041176524938352082043160711405720209643872408851925947526891995857565811874208557719928555117961279729744951256002455379795146998631524493620478753672030664353852151990962937696772355989723165910122781116473563513170265523399742215687581957472498495872404582021630583323282187180823167050745040595807836428056114378333833655110098631787616042193692335870611039578360178127035130771102387656442604622356091530419739131927150925903497489674000853334462664676381874718744218158315637158986253327650903346361788106669232823755126429851274374611895985874375589148875496212876463342691126437408357371502318825105676001196792758528158190266438020417161579068585959665365276580068130090316348634422789217022785101636130484374980653818322818138231478161256601955457036342774953328701495150373555540161819062698808195032630192057639554686028304900139396302938123080880500556741199633365519439499134505003776640174500757961143174028977439058251846875710479316028691627380109358649487724148275556343741722375586407734975883768834803293605219570693983183504492228843685192522687304936942032003738078780098086298093333995892957537744557623493439398223786954373549915576969014556146952940799146062916177900146069467502406134039953109565415415641021759277731426571090035245096666124985690541233155887810608645458544249571558042083351387050449669126813763009827060101204793031252643822116463947635975280429272242235364481034954234288632207633488507551303317873027039561331916375839156590948903575364564726371668591313503760501931649296829196944007369804236032387470171740998294849644995931149319443160338907030039027822889376724468278571078132459594964955840177853972130559918971335083678285846828346783710509729079748897861045305323525524671192121223544901828967788402228020426090219490115624186687012140651493057338205867133746334785160761998601332414438237451168855502041923812570114465791196989319798575652519462721810412724789081893587105001229779238247424313182532129890433203961633559706072764510935523328345859119616730540366362237286596549504845967513723254692883509407756275834660852974114266917914884006643697291352514320332179516613619652599352467866501457532203897524551138917378928822661815440904858679816349981723451179207886302405880029243861120466181831637987064984366004210965165930615548600690416960159376106605318710376955288413947542671087515110818253877463311245733883124456411432595029894317090083642890654014526113657698930342449528177401078845923667867964605397374078244133979112932473747144155808663307438062261576512600935537131880264553327720870460089956318838054888271869062215419326935759764805911897097516070597592425910853215421887233406621532914371381435508608754983430359382711964679906351268271524266960570121881325957570780097099772189907218549595665685684169071566425867592436626645667866298971411564640807623782893289623403469582309198190125029355727415012013546491930889713296602147601888295211186078481583262638972388151680992152280341198874677352668586623868523291308438436009469560743429206998307777656706801624791533915969239353617919655576649420274776959748219238826914429099777946572316036006209074162665334662229729357044216354499521580202374450906331631373300731288371297318393368385680431961608382270225026885269292195035432705628615839383970165348398112482385598380781915410361081225544356530312368619874941814111960038437185453798392796347513412546604129062158208676648367296433595175375612005543919857904006123278608969054536510800792315615638099469217381022627975839356513628637429144897394527757684842615620976498471819488811876508304932236909101304975977836105868444035993455590254884771498091447698918763257080152507194259950864179989128382019972663150327405011176560208246369693327346247826427911093159730793675240623104977957105706033019631403710254908371171777419268500591218482487777543354317031395399514099688232159043065458785909694138588196761672606658715860513323064365709408128012751678972761659466102518838858097645372386980513094966571529052151255931920950184562671409252139514491157959479832002397178435805862647430922299584063058858726064478157999938615664640158588616745523336073665812620076827216963432844583561769816451784737075828579932566112962025182096856000140932897451879808479571531765000133196405473386333738335755358369868710909231277896093714239778100664521520644252744495707747710518614726617127807846260464771891429982505912742527040352399191425749569429293017573242047769685519288229689858740785272004809628234430119617722719000501470921066233783989648489397586505258681664186659329554250368137606685152150226941250877039569956452969748565137453909021878270674483127375955695286011139227250066692534191648830718479521387542667272215298015401202332138047068646603936956419239840666129286038332845201072418230699350532325747447308921144120531397963059001451307671680898597260330184284915653523526557447052459317386872908132584580993288609160101650601771021554467094638618003692933183213027945158886837795030873624780250114728555679933564066643694174359470420924010277862220153285091920439164092987677831689872900226134923718472552355204878612730539567406335326125471181552392349956402101691162837410121178083711400968516485380310136401028230423281454078792244678690367258928255224121742223941525987479729654798878558122653041939766585424911622393783667124601305344658402407761161063230851120752265823551178756647743338423338894867074643366522803896227253763380686649147486791450039191931872444911819264671573766692991025196670870090512951468366750120104644674136697395414011981803719665928544214859789079924909652795077098971088891944523898991558782916877492740866743469866026925659884676369689336792430806268147164436132903651545383954123668133277008777875460862478906864528562558730902140381225208413435271533122288302560821146585063525450322451181787520005870262961790998290592553951152165441755434434456010360285338908626792668419625260095286009930403484143349771052092641280933126501033473290853588731922314740025442880160252530849396114888607719415617018431789577768431557293708130600792176889437759066161029275010911435731618251284773253653810114032553635149399364729621208723775863102422137134202586870979336959511514305950450293731509232649517085760043045802293368742046944849460869994623701802209475291923145825240859298354952382774773718141108330725541561802939773986529015740739869539569641003622056864478601193890577799309651847932125749372655616489792118418882782907650421726876490577618289089061057313803644183373805774509702747508231827156449317656031506541114247796119966764132151543574909599775912547733266929979179161440846402857263710736102843196542955769543965759239438143941870621268275934694524198832107896515782391421770735857613045248496306148137057829841756793153261113740431097450075925805992391792083567095437955466249815850072718338219262818385303148296938371088534815788851470055095841267735787709171540158896859331653674965103891176131620578911445242940655255936727766534367568266022385378407598337806868384493634526422763174022928097193927447028970439191749585251870693848879254034978504139312641123403700523947665447033803389507309832364344260520315661106110267782648653516185696794183838689746027672964726515257401387457236605340292827353953476905700641103907712711772784488201624583762986575358564764595175069157282604593391390163641690258948640059147061018174766689347193150754180471958117218330897544048385425197553507964462769330185401106879014193836897372200388212661367676916900681764356900947707416091230150319358329411563427325988582977332860979352866049239178994786715668388617120601846844151309215235064900202241794752519933409118924417339985733001288726876353256421379214972159278871135921167403589671154676034054712482673443406763400656141164846656452636139651215353454535992923977589401118713566622789866973411787841658027670088298581148333919033140486523874723757520564462712193211435434090529170950595078274272807877132640558575050096203299467727331422294570847474688607394993502604736513650060331844476576073513685385212656686986334702538840937030608153348206089206774164246981159593326970329450301227888164104871967270014361869200149841950419991109779394317662311601723832460357410964441827480292682047525863154636672919306036911548700017252038514986731534252964963161928696721007224400919250267930754272560581578993305498014220293678694095653265262345054442970590958685541976380363219612468742672381409710988317986533500078284077623339327687065903901673942166589416030342931084794621162327566756408216305205108443831384525153964783358071303570137330452831065149744013658687090397367140357305665234973089908741257826848197766978182473100030313400973847395050579435013700404737500968877229355962965272437107770404193191129692088309293876468585453963045342614886006413574879953594526463501869171582454164292109732308604846880720303366654394783156337233974595079583202522818418123103790542573492271975109968689670268752222720126611859955894656479261478005966286722199381208507932560803545904715621968386973990363121807356128253049630866117058154257283252078934169485712040720146672556731250951620763836736554333465272173866426147678962267926139433896762559079497218049322007179477961324282941851226864018904185981127274602020527397864748310828494105146927084449030106462095266524651217503899518859432186164900053706488063269477713890313703227082016982351436793195007298113309722475240415425647469644565384709403918516040214250355370351330018262681524091168367223974091073491794905929349789343226224469695207156983912210689000552531545820157506308154456572057941899801547702848387280006694435887980418116815601925904937175617397350652035550693588624575214890419296327830720629704876193415200132777591409083124938410720944534043498654864551203750191795045243632719734308703769227384111401994942080472828735373830401110917955985184431158306434819961457951049416452982128123544066508749342746625123018874802584867967800221444537351560019683805765831540565019956236784588282990143430392039165265412419677797733719468338776690037487254472522554231016763603228015486363350033662745476823307745852739654386185699549055057750792361529042538706125182271738221420375415419494045511332012893485879148825668139819010813700399671059188326274943577764869609129266502281702957226616887137182693006159659622208305581873904324236116889160131128414499393036787887801024961455551423271377618699393131389738165760056484271088059101014601663826094382153581916542817937546785386527286637943808063580398186327498241614727696593991201050722038167629491196382801791806219342417000507574395424325869798113342663785023535956058930313159239693545909422844341009747345831786077080863665169817527808652763641366388900539733941902275024159179014942955796097250562769708271811265344066211179814875059044308507639432103677363074534898416227804708134605578644470756802523907982743343865154545136131289155188271861241342226449325288324961087600675209403297075134614812501219043657459250379493145868007827729872543045705093618478371149797885134097438716182974406903215333814304914578032066798567517347595025572834355133404114633890339576498340751142578610278816789638771204813943130233834805206251899533453609343277492226601506341342703561701688094906351182169154091848014461548759326140538850082966212771731139555218815843950199800268168619777012890797820574684960012012500957876223057828133007497630162560724821631308933797781178165375987917528738422349279325943340454643479010183235250254467461501584093743275983853633805116693121784835639644683938067576401925128367425900195527331280597230546758122389257813067179648108139548149603700295444397642239447613233258732888097572543502336283230862017976242553314818518658937223629921257807648341037259336957762643967061934184157938221165666469953856112958177264302056919996015163784451822426497180439936937405762799455390944339249551060679097949841356244403205664631935577032616899892056607147941126571816379797671918684932937864212550806324098120955177526321691880043662368413927042330613999398811821699475979462900793152647034992332908157646384026109449893263789174411489230801019125031248429043590786248065965245427614800279298157877660185909354753295056679196216505077711163836898122251727489992399017461455530884589615200392018136139794941535021767366127719644928843361972129617966541609376675251143219487390872883364977461180197918995808144963695906306075054838693156603908318896985812649627785393837710738052281909480921290924973201705859402067395232957106797687158584414500279597300397465219331777884908864068675700514932105876148187418684959413091489901377977878527175897473967319867921504746679221048542693494802671037248784046417022492049285270022481967227292787117115917723864518857335909852367042772377884723334340959445925293750440268004458520917723399176114620989830734810105323455059165433888370184804006247649382359468161579514775225312693868754937231259350938606685312149623788924022593789367773647763204961760809785631941742931072924908008664108796302952156191082932314106017970723800526115012093080238832672483296952008222739353112901150096109676054844302499599182329861976340291471058125492287123515792425068639238738099507488157400759008157313625857275021712857602394906701759428286382726808469878261390887182909932621352801120127464057543351407754225595686135835666239073450163306779223701934452536272248014540325348669697415746396187309067588589401594057795933840118389361514648969715788816684301249447361746755798417778448830608759318714850036066348684090831662891721475262502991435669166160650257588130420066547143944379654958674713877611020244103215436278043267619921148666814965568872953132112576401403889892134838886765604598429406496357490301864815595332220989266114057078245992515315576656575557826309067553091996602289472519864244637129511015994230871195405461110533852773485696510857247568582559859741758966521987359132954248442695902561398102798720002986497475590455479370182712298777168658992953865196834638759373270852992755065277062838670763986707270299301365561419406214806831943602279562810196257748054042828042469307908492819216029121916337490097618860086687292593321624863603739866817654108963290091258153813419321192758926830861037321409504132278104769077712923618988701574521159980329928346302128095831587116007831241337269164776741980447067928568518809117020172140541287635185055164284984145086054319644838473252974964956058942761752112386115723619018903797257118759951717636655723518612452040614079192288153835300758429269717289382117254798953953173570162669535657019428714729443969294605347076575688247393999158555775039036235979214489825691790029886562773599397213033664330121915972482824925473931490968209078697193174484461813080432601860629959802401862995436746357211225788686518995217878896152661101882903203902860191267872741816778154429684242930651508854244351275066524742745969818320528767750957121414920136296062110194942994903382098902144610134758338076866776754924086553553638785317495776168179325313440388184077819814877972715004477414121066743432636537034922133448297454442641286751402957152857299489645188402621138610118895742489833257249430041973278355845880397666977995646047600714970722620072147253291962493950196993066055185158046175270410689117370755072776979168870772555974123681032743671524435016659708271573849480971596620861250040060857847780443202732110965298675538312436370182892028978559489250730630242454500629422689369095374750143111298956549100373032300398800043063173305823636480340241534488597503235795885764868370924621870305370728083717182706266799712748217374091373708390563375311308686795483840150961830293245820977492265496506020190379356334095964649213049955157732420955177133373653994154811489103162577675348890987575890057938314722283330358151332609449686684408435431275125698789149886149229204590763604590885442472649591042264730210054395111342358509131229098101531478823588255120463324941125173433289811385182213880593403809755832302180655977548824721994755590627757217197890314213059285239584949486262303840505036398564181715146468172496935031609237355972375714568742687808374804146572933438420337916135328472633818678518320643251845716708040490407975293624656694874262872110857306216304115229496988544705037881700945971793887896466178159435884699630317061004324482254973664528964655289120621156159287677536228636156357765083596423213152239313413883483576699693480119643472468585305743649673587850668256403959874396021627593552909007364513426978722082460534466983074081609125830969758163064051215671267222140797924848519586387112065221149314413031177641252529792801025497925105154037648121789931233828044000142171910302336471894132568046739546230774434618952733313585188922579606393856898221956638661066252474917321690723977000374783676821250925926413769318457588534215649025464304454442127163043370616716167436331739282025669182555323363867581881098735757215298786191697670397759581940140762038083619767468701663809046470560232672161954870268879372229111169315306872093271718929934322314772102194609935558553502541985951408597052307002769875781590460146021138326821481932489651822790838246935869776182942208833218452532147442467238134290170063472628845812590310702901499854675640387269249411500838433923828948157419324420938250498666294966985110113736115864132968043887725175808227251083920127730550904467025051003421521031051851130089126249324915959616117640913262739054864666882262290122169131773042838734886319276565141111179877929939468478856762711500111127536134399146182892675009080004039642598373808885321426253214520842962753266999627111541073735622416521165756592121922090721639758435839313738566419351540649907971503212477855385036493449833696844707538724011545800044432109659961803554818455556932946805716280348526305990534365374386955709036424908986394139165200775586723977969138232057872298897698032182538189327978482446895328350097099297295862804112432350782726066295654559185297639556773845149566325608244189401623602060625731073820489630017889197895505639498521263934946648444069907737605194273586731053104765718866374125960178210590714480954936289769068199134833011598085764771017186671098974613610332586413752195530573594299537569948442891834526691056369168590787587132413282613976571632538006875054707605330549186334662630496804362472550124537311096110070673396239991068922416279421802641419740775745599604373851448533408643095383726571078837361047831332134166429516065512453393812078257489071126365336817345513649341188627259948310172352771595867814553242130944928805447344971003868660458912219065087468577561176848537774818185818920106735147395686698002017638437815234740060345009023087751128030856544889917363399205514768075939685929672781273523198962113685419035478195791631826817973430137781202716328815177131458148946920479243290725794214466407417920382186102325927457512658159070025776942816069147075984233944695129788321813804048535842764832984525140753177536017954252113221170461989313038982425217857647624302791724691257124025957560336597221295904344256803461118900923715228141977275015141924403936473932794493560100393617390217420801499754077130178026517256713308105292410507529628108251290388880684500540004546011496771396326145433530757826903425665236640606838929809405203333385342759163114592471987815127182195879748989363730740420912669054706388397629697613983544927213878888926214459862462637687120977438087869981253736263377110164033252640555875172696731794622361109767631810104867190500447613939898641789307489117958606494082841276120140598441584140155529236141638228421522364431753413891646758330981161403954207487882029949370564358630922034173607898458638011748714652279003275424938832807860798639325997288842910514781343439820402967248619590017646196854070863563422503279478023431185087911507617771261682296897707521906176368293433923308064609379204734303929360848627817009248748847511321217975015094078829893428911363902771424308769112962880673727452177390088202525513062537310064309636464691397154962227018879654679781983079962883353241952713103482157134126137600285335798887774889247745650655130398641334012378943746732973020662199933822857078531206815284876119766867154536276917374151653790997971326116063315972064778940402746913164614808605543312519063838317632297849309136381711858116052175366345552037169663123655223109010191554396558653019387285228340773273044875625415911048400301356554831432567803385024366751873032905933014738933744584642786876874859116908122038300929692319097583034918850962733090676760379415113596264436613952091008599892184325200701280691528508259348535417985666326771829648961756839286644654777073962501674891939286817204749407761016569801444035053511960057818964858335282132462348482059659866375151875958118409441081411032864886721976263299686629562535088678913396499487821914837945291024738450152216075614430142280389387421072948459693218611989793356276027323466783056308916535875260445015714828384723909029572890750044602262275407741245233342153470625980432240016882005495288127929579549476791068989286214731161603540377435261099560745766162987755497083345669861270577349193963196716130320749705396073494184537226739999642562067960564743136740148765349803522296909219653930217879017147192044286626656231623406309521847971514712597305896314102498058976658625047367064695081322874579870300169485590134513376079450847550452962599730026033735128635711950868104272451392360157430322897294607042450753012342460966555665520504245166471804954033968619815609664574585578274377130171383027106246514011182250756375672932909858166812936560415518889254560489937996257134916546059618186919456529177078654173049275703438424334822451535755181678163112859875928693720843786138715242131487566605440643177727070111506624148176173372586493656020438717361597962933598231873961424128653095708962576267578006638699565954150718662887543886488270368877408334212178048915004424996814833109286706358640792159874759895160106701840212179343321050404205558541460262339991330655151695462918927890687999450089664314549411740699147200713752452883617672422511644392852940217682031411903092845957567152512226068600493426464839332998796761727410300954777078270412534969435920604030777524416861491144777554636412740949080589327856380018181658457683130145769591504462162198553950725215740069301745276500069038130473563814423840017355323195613698313086359799130655237553344360984887526161821350179173627225728299665160999039649136048721857876379482801888658314342630506560399311420524654491296136764402146165659263456223733612125892871137303716107831411148892804645655630336152315221247071259063668042095566756412869033902017008905921612804205708564184632984779604484964455469687138857232576076742670086478087767952941872248513785593974031515434870131599126393093660247833905674693536154786541157446470551038326399139977930820676996598380914114317298251534960112261588360449265885446632539995166185543173823719208151982585536727172432848957307929834751101441991347354369556961585153418345233812137174683228834929009716470497353873249732041254701743544074966128493666129203758312187794986674719237770874762000335286043443561649355000236669201743512184483344351820300945059542472207868624891541806688805591055938761631961248472332372812635777752373849346126706669660685063639611159327541704802503126152098096677895860143882144972090685830006989931056690817958248456121890541958422591351027785884320526335596069382697348160333072928255114880985902835121888499264533252815165888995470729281373502311339344162462938448321768134057403038125376500382106032599501327716470271658959530540226257540877001099807308780884533584413558817630549875979569978342603842223893668220477030831216387249782722031622334454046364346272844207652522773713894161536493431848782167987552351170495061176334631026729369179922942065380587568902823622940973717098525048177557304425764243518271035553471105926367397505838227970296213699219346914088071333492238589341299075150268149320832801172419951186352815534101802175516176382646418099422113387527322639041024554807842705571811814709809422875344363686013868927347398035025338608942805883187612044132293793079576153063072971507111314559905139189360123712134974755383831380477090840125078235922443438066786547586073997859944618555982229973429905490214128796471317211842707056584547516684193196800999231284304909927545975381736695819191259431430117923962316759851226639686030562983907571724952629751755839255605198811689776001229248486610512867434976236865961986618380875580343285298863399203523864862168065952865965276797019510501061413569922276869380530853542296874878417396203625648871710673112660920691503895852084545850692142158242007335723946776103037851624615009576380373150815318231682097045381848807798346552586267911776682461346904535542195465909860403441609187706084244331277646917300987415922045336597501319927109663932089287428613145922380712146971970874585466222365857939532195150829224894605589415323188097464912598437819359048121862842563648381539738272502393011338803966297572698353287951968665693818715305700673861224857093912010521420776420582032540602921915930482723651647494864835970932898591906955663739855310216676141582513897486521742300240170599476609249363375618465546093978200041368579738776920261797751066352440672412128156382387588868944254462919509004086857127834889406879660338790974847934507933341789907204449624711237992986729560668086737076440725411541467911644584510591475330494323977343060228165075058643929534670698837414517957031715220169569373754616487712174548344680181396825000011244051737732285733541452517629769373801641478583795366564338915857842282404929806548687329716729430044212108755425200883741228050617623225826481396190825817245481922223654436248964997192885879814274695809419394760633152622196363234888218918691828894257132173882385081078866212646497069740326868477588216763716486829467225577085827803265063327314892692502216366229378490885589298007019823909124336435806116174544404852305255704654528180245861820033795446746786844951060341727817625671229117490755886025925253610556001867582652374063492043172082270706804998509505203458945075598753538361714954017677103788715230072051937425297881330444302486758247438804583776127721259636470219990926643129036397278588112803433548407712766799485998017035467476015344086715936831050537813906377112313934106811761492035588247474124221200114735673160613687622297048433136538892531771324065087886728306424319743082114920795515781878767057159358380109124130591864300379693126943154849556210008445270924358628793805252855392968214308087415944975215932131782310516087982358641569071415685434440688139634217343284102812785255053096376002237078117265290390648701573621104533114858309836759698082155433402884843474634633985440403413384418198130496439769634179300423673167730779389624930863843163516015175691774886421116224376083047080679021088392901136337148659856535106774637481357526864771154261069170085837055945172649513802848094950371961673428219512188407302286036145535606949065643054949241237336137777236577093588740350444652379234512489867138860912932063957804146215797120278045257328506648586697410282827186694122105745249713891543378610060650239767448152699010254051566078529556959262151244758839887317547786391915877369768061869749674280478095766657944626262744159905594153131259270115007667984337421567594203673396893317777623564587120150677605162530319665977686966085162340703024222343300611405835985964324940855773074493399120385130616902317976280691564951860789461298088523334368629964358049225853326590924393091760243302873500819706925330729321137774298601552345423989992212567184694540630180424796780545784807223266859093565155573176970830288722421560609614363201174242339710444106752360341896234631981982975073709987210688915851624887054997234601862500501449354198129552956136235375585311980358645074818792072472504097954575836348642928491153710645417922977788396805236088014888479706861253076440019286036650004209508216096565808647786283718648725684378968062408492220950953382162193301084332876925109256563244883982152101999017514081731308160344166825428196921166039272998419834942066275010560815705024185513168508818334591640397357143883488577655998279964785781954337101105633168451726975168849618679423922607402329216254556279106538677951822531746555486722052832921610548301894387877554246347510476868685243743477489622124815781224968098096486291608579741397038901153749642727144384525071744481087871896763117301738304557993929604646157403143749771531756882665880285316205003591936017554303679270134065467764056415338326197485588078634267710260428662148570642374460040478385173558745995528906372167823926519752746238098970958985836264218680627697130481201754287510722439573892728647853518426091428117143539699280462396420305611830847425552859450458476641285362000555194744340923755551281723013617425344465201012563735300825750926120770085574843210159315395868008443010578181393008467643922348635480894986845945359711406480239007570824832553010388767003482616930283805221285073362735298486044640728957955542690899195144670056836082219722601609556682499743065983013544334154530217680457215596699760239449516779874501511718887848293900540162920585931291455597651744337183490705725079913143939852881198293818806533045356280896494273573175062867585596939328216124190621762263221407547281109983257229442344922175096119489109136350384870449256968436832127697615152591046757697599016479606361727599352086850200978405617005414160878716774910796010923110904678911145579128179572492212268538124776615893904279512733053454440263553326470885426313339509008761510615313892871794872538902528947148888148846750190151838369194521391029640201266811826999657694845698804212673918858256676021594547872352785526130917112566745129854931499291204160066910723943366055164101112918296361137255252948795710421269300927986492943795863526568771088961497668547373608954327874362328567287731125704657948410225936673547228890344291511339510747044867995924308475002808734294423928580510378866277085167956754256386983079677255486978533524209551458680314409482454598745592212084661016683441433615031877158886382165524173283100059857082941712772799251820943364152320985722953292780405774738638978814323847315256405155301358544271702204666012200884189279268645723845442327553190714523378902749871427524006244519880388103585895972979737283463374540374406856259274538711463669644234731832665641212374614361195928333602965230905226207505112314738724740156991194377224754086829664863873033430231958455957600224484047616169104495050394092420469565815392225512587889499788002181388429629321014958387904318572056103521475234721562665600384026102660811651984044030969282279012399623499865349397071352892799748143204347560874700948675782290789918901494660039135571229890137357101381625248642503803807220881166692139251240466078857937936702887537678517622359985015003315092289920700083540554415358128506846225243791843741255798507762681195596304302066926997755702290466028557764790098544526698095967140399852039477846436431945468459678999846852151480145655251987106353068329222136486879305081767238857168993884834659911380355564164325079516073175561111021527154649530667181194478262411527502544012126103423087213945998390461291796457214306371171133835608703491657736500207324792867539292622498601511977902714785571717460192385119882788857199294845050152375744806600816041172264279459775655933248008721509940166134402857462102953241355688888078130019014974844957429288230050129026871166952235735190317160389929322908691926185637287465727988163141653847209816702725720835382935900441082544035886935342970897640011848262013689218215120360097308889259417150416707517996291435047340014290552273319035985288469084312150190895510053068943057621237275045826757007785645663485766609603486901403889147109693816009298109937396963443478077402662930101080108397562381025281528983687869087242196855069713074763786588497327232070381190028840414127698919027304297907780258856667786953650423095241248588256578447608682177192697422067541587007545121509095185045259666969128565121605040721972839368654193991599928117187194334690800419152245318542612785365755048890525838936564771959897561028162769661814941934587772057612010126830369380143067660352473071449434384286723685711245000929975828558750246826787784659267509982879370637840629910780119286100047811879699064774458748144226265423979199602231251611437514449165678252818344544877178157667223643292953568606307012035392621801648822880607380552649434743183392350298775471583281349827515624584355844815621914351091773908263240618702421589182853428416202780847673623544586920648062090953433339139506917202988095844887518223518849186131796349751152577903734260807071081578128451608724441750548910012532834705817193242487655358823355676773701089228723421369941201049921964997575343067883341978116709947331878890144037538121947755917004282629417463520740608449352517660109169974669077601084302265215982557462024210549991838563077275932034229746606436292235700390785475569364274100272941215075250954274136208765981327356112364032238569541915397549456533050340775738268016270346068035974661529146112192010524059913719968671662921494381280361865947955927630713213770742468102393997699820737692681411856378019463623237230055849444848097724483473576649873852387691456346262723733353270421386018444356281257122143087398771266311713260554931484115432192192533857737349759520934903331598490668051062459702959268527322708345327225061402239019637217037069457517694618596218537309302745044394890212354068312798072397500555207045091118446632778133212598742337969419081781328738089953425501739668107166270192602104534540688946043522319579729722731050911996082987179484451063586329530533198827896776265935823619103497616056622415501037736485194540182552333137362029253425325313160211519152591429042364364627093435239546008193208503615176798237058798562283257492116668819233808992600930497287672212270952992636816030082151766345623407972833542261182057874322840960869640675931392992499439266146778809942029018393406831729412445180480274578973020048980952822158305166087866195074720143266255479091459185746804645438149906826391510234726380080826295910530380168478370819470634488681615843627602079025053547823841049183074879155773886005114853395332186620754823959100004980332788087573442288197990330260771100569745889110520260606791058711347927395156753749125920460799004699107989248821870496187091694735762381033438798880149298952518231893895480733459270585325375271963137153853942882573612835285919515998319996576014122970754273558890405931018524302178723578881490857831115595161467954442561041391689416746554984142841346416913727052841651596634803079113791426207498654126609390615792804331900557566568998464919397782944998099492126425485702101017814391631973015960056409058634028229897534994588679522629865904194512114349918100079816770287059149165434887857939166798051542656277410721567349274979189352238703137282061128520317747510498830181846902437248641639795577820744213195827026873915659928193915156373003020098116757854509136428425452041908385203818539564859637764623240462609250730561219722861460029075536971776612517424917033448965259975488307466138639016705771716984426725619978589638223984707360545913246042131475212392585127843749900993553360907786689314456962586308000100365764427866738865942339170175576570871350012651353270607438516972107646856941077709522777097327435489922008765206735633377087772616018729037369216118988961387553067091719445703331704299555706524793664501853941801641399236898167846782719170856951431967722459886313299558632970565374556542275154767059615814267533481619686265836983191251433366856120031840007815456497967499944797190831174249611948443947265480510885961739328125526830732193816898542320038598526880613635934994227921915966906402706655805469541770892128452641064609451101644046856775741019191547221973514395648423455917799177591592332818143572434917227976580712529381891370414504812043969850384601519553539617864421419382042450344557124865657506659726875998828828219017542134488176488248085167748320693630233198620099815231680050116093071082677373217868554348278692171752943146118686970318869817251298218750342170095403643572689106790458377401038851810735857651446619573317755699006221760953593958971185275890915407473300635814978192606243485720115619310922181878862825427131793192606395884726353369958148474625806890432913870135586775322079414376280248344322906694750088663743613354826622299609107231330305804770508930197649878037267201649625046441630451304513483173712023142901661693206431816799316842567416832458072172477035458914139193781636433977667999557262008751020606805094532406742697641578649421331505887049172255638413476495666441210735301621332490932741104133246352691829392314746679508947712625499387728558998035788825273461102096644528089639340781536221957047314097467829781433191381286339184673065416721013063848607353246453415712036634760149744367630918952242746572961244001103478449332809060210068487410028392642443701899666657809202560716461048357064149927594003651347058566476305382195378407101056963586793190998255256305225992233800226547300209472949886445407009938733072010870526760649104814776172571161373140240124712077090065433281539347320497190146104118665544994867083842192293629908914752231545371756779837046255199026271615473923251465162959917928298818016532524704724700537088390172098710889315068938697429289871371260436203137466530166227954197405209165212793157714690371859442477438508946948907879708825225989632961103212195544755755547649287341523175951443352143876206108223171731921094479653798969839670517598046285180950875389623692737119378943319791630246228689650408318477383009738109425579097962100740018305329015083960090495385638745571490786107766872509371057241314257723672853427072577390160834075987995773020641514185728898555550270357209033567578804386210199255584764150476989429442104251218619397534322243785252040415440669406196138997767163824855057179772968763224999756966068973642647556816130872831110440725338464875607997130508557697960382277031007717098638990433211083910453770198706802950252122605938791996434717117571811524419366125348215488819268828947809569439731228536946608611659756425356848996991540830218993263438582009660569332710138722895377472721900224487377565341687498609749931450358445177333138770638794630148549734688340105599530786676761998517990035492073967070679966895791481082249627978379501914897027597053479400603277302672270038444601400566074309216988136604442019706610102294232349808262591777184709201692921065771519259937314863878637113531166036218107601972632184631214285481055067054225130732663436928183247098348973092389893973555221909032085228790322117371313637587284448476231076852733790978073509180564861105225726243856811314076930550704486988408348251391722710172872620460669783953042839510795627280722209998576712093080540579963841499688277325921489275505096679950111762280476860879360920231753460467091069042822822266200300079576786937134686028164140132169735553072687676031352035726812836205039832124184643291821251314150590819014028326056532341386873874477648532529958312000107615402908623534919872633531035455794627972918471131017904809472176496750758752659250129390523014753769319030467696219110209595941167083758515870549853816085838301171982562557889342435378276795992451361220139122364031894454606793859860637197960265646630081486456434389064844221789792321332834551252276470294584736302237007004119659302890098468598926220742559046667625902312283688342828511816195018510326407379327913489212537143698326826478923110437232796935959298256890653260597738571694317976841701446776523017065705373283115498002135031514726147517300997680444169482081361362166100354326743744486012638254384891143368406343640395440199206541846725621112485076742839869084300043196397248265703682648643388228046256778000407719728560279753623683530543501281113512513563262309283100613529689866014954631000280156660436366203974060996186165270327742216289404916689393525438236036730673585762896808647068748546983113351142625082968776189073515925835860932356051900041987764843544896983880278535666875698222476523597211955664930216537692345810162133339813417718826322836749040992372099861337589274498219082475122618838115978704556695838287815902685685023329503151652815014994534143168447448245385932617592975929844801696171099178058794803734049376304502730744444458104213151056040509577157964501866068174496893499672312936489787427368057188929479679065794388298462387194578604346455031999538281829018802060473592121332717240349719554470887312661877946748809004211786052407658522913000476895206534435958588667941716496833985800558247579408844655905473177302053253658540173625673339313011603837356529356501176224023600268270416033628764268940580585340429014339419336050189049040260691142033446990509660562954435010281025380685449891472207600403721388924815813691261766332596664956785443482022090942652027202877567348581728211448695156540999646533915384830275274740626976334203338386617944280174186748815087042668244947234086958326756371809071670512607182998564918611898397143293270306719188309580503450322876233109292250245075726025937814744564119039233523813507036015493857416027279094753431524328859433079357914348854607444609606982357388124323673138588861850185938235533227828548372241964287012587071914581884873409153737289217053851025374233021952601882196241890550344906361984953564443558822955871227522452780627389547693673307748831065661945607451286206350025967823576842855845173532271067265725553646616245833847411464301641842310608980191871482798669579831544144522009419845941209055751016114206077219542438154814401414037664443005442241838164097480810608282324869747356401672857881181702654694561740662683724924330904276110368280304877096747144787237547468127423739503650353374490092739944874634030084962033709600427020302815587870378526797481298289402840357016066576246328705693163780715103625654269420447615122357175140327202531686768316539337120045181413607309045110562844969890894582123181490155366164784104991123032519532071210071348686825692759852358263808387659936943704151114692683054172034611050262916601916058502150228956902911708524801583846748828729900069968837869487740327627640781256963659405271157648875094789914315853955233738928411399205228907560587453601211015512860550076184366567649528480971723436196650321868795204456748824579762472235838054827664805002353727316310161287701179048214418558538105716557953423072465516698332877631527494149532418607604908521393771107550954113823975440064156752047823501037521380142139946543316833364011981149352468454131684992995427769074375820473591765056725072781222026731163869981919575954289886115714837935159231318844948175512897402270929374810821178462822388833115525206694230749334600692484478544482436987516619237251610327466107145600115224752303808430439078136308366148133098831999404882574319952214051782188429743212812648691297053063190471984248180056429169389380414862343901165421784988154783873599203504384957542407614889870594944975618429321948617023310122044493035660263824208725317715781351894417219875950568173716135980764704876418972205184780801177269367209951149800777081127304098557231718704119572619595964438932387922057647317078818593995671851945143601921298895421057057803458496916255337506673034998169750204339112714544855193348197523949890586625138507400828648936085418330034758495772857658509653081578503267107660948334204094746728804009380510024473843713613130109475341162809023251427576992128416646275460128915120467692027975166489553481802868690803830872117477919026402771249127060477039554811828970823502238398924652842113954364913908837843873074894445371329273223229839997142072834935498614505070723560068991371673149646280237224458986092010618374728669968813740862140744967298094776491468109128768221251858546666195457924041157206799693251412304883603445827182685006390583935646218330243157003247079961450063772302548957241929372929205196866048012479445035682018645523784801979908295694027856626321706016510297790654400713048799084427550122420688422082607756173514597132228368814558060943015779575767236813055693437613644693324483692417122183616217098170431778835281284999020604219836913548319666574089924322536977392159204935559514138083618203250978482966739498167167892710322314213461089019620686859511008379314330249753300147235738421646785363219106686692806593493865404664296008232002020628393591164333027396020044104573800978472582221372387171165732722951125727144830784410482307063424084432949949985812330403817828297403443375004544120941723953843674040951010695405635646005157936828460194757240537118308861444531482211875855534395305981150926223773591316568802322308746937057567069595162108377809741309792038317908780124924046335364310664147589034427282037756449898612100678306862990904794146452657742383917638137992841200277913818987139843782241601462313242771570993549112843480444704255362819724169807655678265640264213098116773732441954947962365299921945665355873973665753434515262829828399306839929602385629800999758946234148531362608138928268988557115091765998821126307033671751683555718402772038838363144986546321300707561789628539113274426878502745192565347657217944453922055211021691154995414821101152831129823160099723986076581696018984097585104902688682264978301666392592719700205214916617778304573272675375921668579132642919724006263024409721993585931621933438296881250089938991980119422502002278449070558549066761684355385241681543376423664598059545604283264727128751435956628656578107679897849508605955228425059436755803191042495088744261588646895331023323975661760436134781884155242035600102872453538217927184833368033256364291163695004348575441416430824227861576361243590000522498570630094580412200830237948119088506056202289166348379341981537927786086222461636891642539322643776941289496401920084096494638837446028540692700713510316376066891872672087153297620561622201037906890477158087535642104548274668387810672970027178902442611188661490421385030098479706507109135036361089822717737487015740578933133722604393367606932269648579798951160812752503448680130266809200701857573375311264050289386211485224593249300724097320739226682061446917662231683539020069853497704243134929756738062359190016515181108909811600392411136629375552294107908087653919867376418596167897675103610466962333304422051098550819093726158752842891396222316031257031392594196480141920190188447134991951624356771498594413540732454438628833302697179083671963376950982313073451565302087285674931779215652698152452650106654912958243035942347305019120400483196870030949525003024326603510404671605744924492060298293443694297605678897459824912717325073215609503588416726422261955893945089783470188905057177286632851020478634016887939311316110365669258328745635629403700221602391076417091522818777090035012852696680846347615011774003140523235332974183369759609264477182422829118359174449948634046081392552817332170283788833222420370096547412144734117715249269797308288508601783862318552823139707403485506208119696878376262923877995830987413963508080524107193717395257624910079308849354457303173331115320889209815231044455790003834985266092552091141718579515440281607271568614175905535423926898139835474202574860517850641025026156700813243739329336192020516920776376402023509766698752634287138760493019900250014774704014700045141020476544514715250563033014048759507932662979949427457108157606013656931289332235301896535529730021458042822850421381309812149240353219825472985629470774508406552066534644773657110199700008928804870772451120400713053290203051157926379526132212582611340625125211590602385377966393612269003385604333620552204451349933970811609619284810828813524095698047813026175025769255469573467409063350447423621134441231320672914215769599578367463666181935043008351571644896253941090951986604949051990245055589235836738177181188042568860061905121467163684067744464235993709752868827384089116441759506676778435452477520403952451318042670514401812136749614665854412706815485917980652603141079400704298528222737665726803093960149780863179689952102366589822731819432028780234207469646173336987663936080058849936457624895920200674336491452371177259110159635105383414598364359373145275296038849384351337147536329680177309440868421005362259282514046654480949735722314915383836083191941016685361893536953509370747161810725174722184533627134489532792855491067522066662959571448386687362375312669727290274663790640763068555814937258599777582897121569981853546702997538386826476607788548587880636852517411827007837383277557525437735993026663272600321745692801741135037919340783005709122168151814809719272381682194391937937108238484918131598601632768125939457599090924233122316408480928456134021244435453097903824797056084762733728034511947227675738059496612077203555966533674335268865487503905065877794793305856264167039263682555098390931811943789095105282064566582982697201850399449514146191726505396489629421783815225702037349352581136216598595386798114683882910482186150343498572495160109877308273231344547444095639918569112007659739116439654123487183263648358357030851134485535111765753163174948645733225786948794920302228456923156646987160408369015931690086678016688127815648391041254944158629524068075953023221161488793476173770377747608966632702195396614877065581292969988450045345075710921509284848766672382718180211047641754573497535974791764786382642193104897817668294240638103675616046569744317506045996239246919279082230478541877042035895218563765175076307642822417409249084819544441548290981648474365869599427014937304741254919302433822861894080242083398648417588374396903848457765977519174368494936732317192568846557206671215957228627233481370737805963506629344976934898018952942046045580516920864545038600938739118596545534746015883423948594768277118890149752849928089874760008446231795808476003732673543876313735992438185283212477508808968124331600580840782736126325496524187728268236486561648057693606994600212228646011953665414496564363210899484250434545931571745977039052917698010890134032326287356946632414758457337508697097244982694440480020522727315144810898156178430464929992151868712619489812681526405933865828366721495158754985788366116160688141944100617907790638418569894167236376870510009065267373398633912296688640482315209705973003676398782833977693391122335168951260804977000692539272383558991930707518437917611657917762042565988567482671378183780552270081882113829013214444692723148666027268153008000275429877678648321813353128175180553467911704209162641648370024646572888501307935821934900229432454007794961525438401216628794310687229729513498827973445304371376006099806281773743594811420302126274505545375512772429208473309612909930505677224625031178365547090180767444263023693601851317460866847119284694218873665680625112246891919037148606426091844415064273842481722772476889157582138540674617212224123821487959292023128839281006449708419642369923933874243331296782669730297349122342397552596171000064709407590652662605955406908004858361868389239733285019244576616832208746132384939308517923156798053524139711824073543167530120019543561280257509779093256739149739281705684764605638771629331334610954973869655389766890728764774281679720616893917082373509983901222371648627307624224835907689201835761699336509904852124629562994652779966360513454290404837055546920175209591748162858403125938411566534809638654808502452028301519488477214657734224231788481268327960316593996240251448732214554045664394001397398276123082095488067546924489070868673565529818935182185443360604990574165925510016240004350859349114293212384339376983924554828047569515556101639138625976612245538644422994389050211319214450695043306099736865105892463001716300074635073273036894439260451795373032377319620684003122466570508346631174863918322160930840937427834275240396135414857720299337781068007643087472643383973733814398091327593330256860025677473647503277045569194974874415638203310702434187002164428965256012774363541278373797817701144788428111212528279720404356451171007740575341974358280172272754748331644964169119810076919208279509904813040849884243711113559535798947652635990095704128203145460418346419298368357003704943587668914633216510186359689611111747705520229130860438763891795329873979319285668325630713091016503529549224726245786670898298878724857657140786385869326625548910013550667558265144646995041069149389928527499369263002405770302517096713334515862301514414484481203534179884525867474332057208773493618990943001664947588219330060440172990333267535249753163006144022421942921161205228665426534260349992757505567849970476224278714580060749170289175337061231540180266924990080596663835686879290294768565686191245976570650412628808452461312283112914276156040804545808449399629632008870306188136809361878104722660788768504409765473133530080298128415013838626026817538181969916649845878976394949991524340886015379727895787409544527562773409739979558512448838804679752919266824946671155120192817601820176078515670259015328449793576487916992833992959335324515433611139158845290981430336032570116452592831192050250496370013326649309689673479569089229614332989473952896135221104028343405101333831573076418348250193774576245134983001111232348842188909780004264099497004829298275243946213682018670179629871963667585719842486042521060770148722248511262281094431867017781785617897921450471032263898839344154751435706100372000353672703171199648485274941633578273344732439660549071718979291470126399555836249588398481006016369874216783920464148492570800863362599632380359915026406988870453684660371468884798179508062231752849888203137233944627724870801351823862817795633041309619242558857449252748786938002174867989879228488383189087057102566182080573037646500291434314568402475148162415282057591994054670929090892906082180922014726890574846366599507186189788191841520645133742317617553645816991689400333763847885709405289169137642792814419811613107632164840417597482275084902138975293173289752777009131001602391662446290067369304484751234000999623599384169202532507465805441406566430459004555645515160592995725372832020025511887640978588677005613730283839149252946339622521386151003762085841190963380288791719129632325506042011725228431724537035226261561177682487531864988849793217660474669276507945741958905952201937066474404031871257249223207648325429366283029638906918428294022084709582679205878792957941983837747099255424583336588075498494538096122974502282163877696668062748074053115080117637731686919377166078746463897947105244123643087886572369381770585380899449642868423738870545887699379476870256094288987370002734692140701997248164909498996062141600888894849367310402921496362672338884595633857458435787335118560891389549422369959174830917382181103571972265176446160844165031619087887663287329644139147604193495732640562853788375588027550999718693000920247475214316748260957520254519100529695855558250161264961651293701106716343319600159191394802936842328511255845781420197625915365437167294072946483355245219117788454430172439999065806815402816021336743464784486325307377363881143642635256486090199287744139037216662750210986367710044358259465073546701028495872618979387606251753205000197884602204629251869391759968155787219930780746187944476278276986072472136368239979802113012064841179622413932533557844762883613667089529976742764328746675689658123321716030633060858926166602542948202647218821436177718839963222406564698710329576308495394415367705616616934315948405253518264957865106986756347008700039717733649670432369334945507453512736428039032698288780214083985194913948841997824663978995355209804546882292020236834743670505846393904037980887988737061616836427518808183904592756756750544565904844085151920295292390508725655493999436111927886453395493416613571361431845004507077453527386806562921150951152428189217218377773467116480157499723619321755914059516970127054712998091207042424736574843886412308973955121588373082403635898679686607031076881611873475538162837323287947048642621147084169588941849951560763268064098737261843231877346273333508787487533047019256548349366202665934304586848033792155676299221148165748918795562111790731675448993658962360039553320647607884942229520710734037608026898091766290879751225177774104699249840467177749232953386387460069197873331965415500410125380587559174129365516425997730378097770632759894017447811798060164645467570619649280815891670101299559268536230892519391084434219635556362091085677886440067964841043167212672982254486842082827276518379232923436722526314262458485978528327894343710331633617622880596983409370444643944073290798437729954395369083907105588749714360846678279698158345411315629207531469664236193627494200584415296769761341545423527106911534293666604362572049956543354597965915211779854078015817182875914014635029270914110217108590523435962581161199016133756734494419091822286396925911485360385717587454331688374675945857051976213302420342597822754543186171905948962515265399254346139591255659306046269191497991766018720152696775786344568630733697732392184156980231929316105786783025265925110505007205218553091305990470761659665587876881043970176901416514208237472438939575305466006336781866471398659927760172307813047762762652480698510276440922171076131382622944894232249832437403440743789691727539626662227227583564616434937454538115749269391120174500908937637971292793794539114382454156534805767102077207445288316068072206287493142363628187704289279838191786897427380423755474506507565570629974254447233140464195701106798280056340270937846708835473438507715673708568616776979988364960968598039215436508715635569953552137609752099952086885729647164896042189871767758242290468513784589979007049157716495308061838613677886359419565800688962790187829260495872748922839987601304766345087759772715194000797944043665045967034074105993662227505389504863202005415888138215108428035063205832333203420170498118190950281807756085473309287072676468228773656417762891248837198558415791744189909433159091993428034763203061221280222693785591454484021200861372193548934699581850012780199583405673427729247581109245653944819249452804414430314840684371808124174827312813406377233783690072477637852539197476345968862705841491465317313576934279032048623367026537479585394547455978397069440441026957177900676737187477152481213061743891987506926633684148874507468225446694748040515540118046157454871123422657803024043981514871797972331318150077598463369760388270620958671499962670070827039730256207435296599728258946720076447747805193900316403614397457074776300230156775925608421473496846323775401651574656689795083094196165734649805771124669686164811099786387547084474741235088645579664562426383016067164463865397626623549325782885170453871866531531006629477386669373077698236250553604175861755879244929027394356505351508924883244059337916819042407170971695809092232434132898211036513443355192967748472101257168005671754645337618881272180650903504036824750464562666238262383413274138361778005517549165094869975746336958563722854515572406910530948707266120576937955137442988433882948460437909512292753498250128952381728959062973991480201703222656456383834720150683710999476024765116787360509413403093527150744293248759621712770294530024479840309522813776422841249734304931219488919577469392482194230126852036063635274822427172787711082923636167483060545886608751939288968636896794686593906337437506194391052342516259622940281077522196760257668351922455553593699246862448007596339304774861321106601500288537281901198925745258097155101241574430993646806694798084584593006615488248559498387733789363070345846371246271229438974415231083145471337421964304470939132936173100811470657758601472494247738216138433431617029361404427985987536066055107903967364891749594005993647867042209176415340689525599767231226163869801143143270348819759560042700727381673152250983041464557410365062760947990386358236205145120865737590441398315274053109572114547664502849447327674420888166856002912261713998169295986299681735659702709408661793469709649528144550789706066965593331023480074161600870090551934885386812186365743923604962948024415485219847933543212678638030622239745906292295988536855646619189208307034773750951601870722305059906751583824646542227781105798432271593359598536092476568289314100263945269895930075626332174412268248284023683144653055915748411832245984303092590181759270448388712950892835581056555107484078958205893992490626858795939770500424232945537743097478679967967679189994628183000950269314026219132073425133652081974129532830606677583591133296783881427838473755067168775696431907478132270850335065392398513268193053806959255504663124722122913888427364962240902115201014451105812546961190875997486118870161890430979570520776141261732977772491279000972656487163264794422255009141121153350950758723902220918734374562714777646594677406215171494990798788616074050346177440214091196122742680484350293948643318326906389313060393533070911744749311400974850144745938754085112550872365174648011203557194644816663136534709353945688111460113014208380129637531775126076096459487213646113927463069350272801301925470158432757874404320254141116451597341204496145834119225284950430259117956562181179222608571265141881201572658064078320732310730914572742093584784107855206061193667502975509834683509369608410340380601597403100506711371219013764494262070734936398538067999680160865153919139250823033549433765721471995966380139159059155434248351421308718390039377479772640662112264077352700647329300458616661655544744583737724363943995802753237145308029532563186769516119698654298990790317065053135641348252889715753998233586811823961934117543043983223792444540072113785149600604061328770232160080541421296423319225944281061742410070479362774604236717034657391687481488850844683313152275538115905142049919979408768132172514614767709361374106263256595800863265420329913753062874519184005630137519184837869257448292624162446235232580855838497168812697351956199034980591972211509924197124783360657062052313208233067561081658253522773895359090981365472132876936347113275904050145201797022226153756002696278396378118498044706437624672296136545499483883529448784515110564192422055304919937732329315330543651367253312172025260016949392902856892492301059249323541557109602497782072970513033123235096545578793778101412359928545056652994857723494450936013844650938356011284233657486840741178834322739807254850513979915352361636962529953666888171528948994246821627788304780678002198655881242566371591094528443369695890798710399347186093188280537575394913603752480391423259579175634047561044950036008869648560106556188104583817269594021743973783937189785498411695643860458611227383536160857890706826882242272325201159294056844280156319593786613977652593812625142626189326910967103688084053815172876674446160494419982652356222830124090871998893428545769319616040755687923244142553412084663969289098678076102217051223814777373819100901243185498768805696082920232617622712893405299427024416348959056180254222056576135600840688737269617599870791667631933185829308862996324071465839468566422629670250033106658854003535096614178962408999437370751101786394088021667551057907145703265538315871687000670488928027916575524453370439870743030938957857720230261005210493595236202238272394476189403707741740887035933912961107474478102421122502262612449411208600298453396358722411573009577974700068312359140681068466887213235095946897789961286362669283562574200985508146565313140278791214874038438786953549977003120872217579612308086145161545348149353549272063318740622725512810996509817248125055065829681094933580783563959363699945944192189123848053785289662019875539319175406681830924779345695398381283342250733451199278874662775255147143608335441350813493172731419645255165622564777679850706342422487739178122320814282769391924171326533511279675759203602150686589378105690729772416397267512190421409158960433559052281912921237541322746478338228165431843441088671850311526600704296394866792235857820475356780000159705740289863904997555858512846018052237326141114983545292999473889237386918604381300831996873731581243615862745338801086361919565951547669446822815239778356349251242048282122494197049598508699443820845684788103265647281899187698300111512564288943674572246092563420313631943018087502511764712989651798440344789089455137033838073650448460991433622424967102929397323740057851742147574384095558574342003607733226563811123008718608527930959110356322841253868489038139191838484622269646790045734014309747759286238970731304095314188699864729030602664955515003922906961631056963710199665968532543267301500647718434675899507058646696604873581587755469799115871396174635536452181731007036779896865391483786944824171508492684042479133954585696461751115246424797206785307231812343807867400032648616566305272633168551127323083051332569512216312926085601148953649357756482758441736725543883686597310914403945961107657132240824697784661387001735105275967572374156696085634375874728689414456439004513436752040092835050783360834290003662751853038744301442643477536039286729540247608156108392288715333126096190188158073692801436659418508775646099624790351683725515159998434621775819028808787692833667347723004066747527744196243747428266848498578021669981159341078068485559903263782775380749371089762169925019107635982996159015809354625363015340173288165665529119012855334973137914818415440870919382983185424093639620152718244773255553686495030454056784572904728291460673388766002898502227526353333228093942046847419302558818983382360569527915887021175006041127414229306536193773639314127063393674135215009822746342080545385773329768425482385831011989801391966522978447193416425090706454074813802401509587036196619746483013105352708889059555741878724727156636730299258909618489334595673614514989122734100854363360732952806003315362239500148668674868328663692038741563923972842540854176392579821537159115579991479386315174870667572051706879957891397779583503709944110726141812015331930968145180236262413254211188277140110974951303814014218470586874104879931023179570871886596088213223538818317786420947447663111666016379374209762708937014206568126359160921424178083932158026651512064610215027562264438424114398391373140561841783732168917618863171138223117002704696593277558633499737322724894751495605779665598790861233183581654191072507069010573726035152730855716039813032576658216486244705728722185768665450098531099177271116175861354917352132659434475819247201832480980624567854211760684228729294763027224160367522558758310185035710042686700688610796220470360056075517138396873386598921756326352219946084894015617015853533343011274295042274467566374740240186838649732792357509507638544727543389709747623450778747905281243115430706852719388766565140969119294855555972225155135971723167869377879810215099208254169416253528283059106664659808147839107452597232789825584220862562425625843913047954108595957500588411022331020161717835675295450898067639379306344355480584396328147271624855563389287811548742550641698070817107260977234303665270513548787779110614844475991983335875476117563953473924403138176608050356964862289681883529011023403016775074211531907856407854010231195586576415710593208415798268134487122123073576084488913539535719453409242119289732996290432308257378692272510185919326537898120521418928767996035455634196719037357400671637339736894508968274995863150846156658108374070636903889873267557117431342337179146844275542808736852990205654046892869750815934367847427426538117192410229195572552270071036118568432888554611042405351513607206976995398667560312027917480512191167754199076789875659605132766688291029414239539638057531716260956900680017159401537782995348883550870016188229867831039318139885428594449791227315207077467054143752197255079036016488323052913967511213451426295392854407211957332318140891601059794323361196974510367982003097038662170791962714345607023805523800084854031609264135543315222788133693305228305263173254086764108353201196074298798656527141632942076779584719933164204882638330585541174498595550327641725133011877388987128942190676321152926272428550031256184527987837534558797558094170725960733327975410113729360043234333764156201792673865709322125702635638305460061933589488744329005661658377598180302543763215202157723318448273568094936483394975525391500739729654109393228682990015388871755169856169483958147739267747694396062084286820457029925405742115060415178277661361079995717532760768481745987330229109449964842943173470461313165003782960975709521125542795382335383954882872905715462371729313669908433134793068354925138185587634674794263380344480148754455067774759934179333489894314479211838777846624448994434639452700627857337545958899499893682988012690601786404014778761384518147664057228403986220323805506955529779250013376977579503742485342732138504452709672570926003406184986530020333297014797211463485788676551770297351484931400230140684636693087733876893850901846510461896908154458895948650789031612219598920759447647124502029196129201377186112758942080257023551710444091340710929599635563635074252573085381292507145554653683686223624807735985934210013195535140817015487424667619174339411884893747498992270253794247527456367973372873392507094789774059799318829872084632038635527707137258351560231263386676733072520125343710394894642742774492825461211605740429815293972774631767242163740956102058954423540257990817263599130368132157666738817511085225483145648126968609426044199229896430946360951723667412997345056578487732182125547392669218829272365123278208619622018022033913416765333404283316927601676134870672679399180539336956329303641938925545996189469073354071622513325745020119729957480650797374351734193099719478796130651868283835137858490296849577155706017635479211969612705156517546723623050536340039402397316292159617161085102840509176074918364743378082671575721729809625405287243259380814854920321786402961033267676953333686224631615822907986953729142807994500474808516329805469098584342789157945760378249253904787520051485249759503234970015704196752482191632214693021232647660717888816650161177007891962287302389914978716348775839412360162975573849200942258751426152666931738204807890504291677664742333737114700832270236225278601396498392419759509995422687580711399004052629039314375396992586251304851564860095912150773723526029614081348889046279756262514053688864355320503683843353286100105484315997937156776239835699575489887897497392774106787171717718457776055172583301100795095346278048694603399796256986891266392500852325094988916588962916536466534781406953382335780262948602165608247381614407678835814502690915717727213002290039224398707611553202518650926547101866415078150876956639805655472332011949107649634612987225768932968716068490150171747186591800035158124444726923600089915998276501211792373141136893310874078116706902416560089533897423228140281310656022777022463565936003058161334093161817358947741214531980124423457121962140619841811871684399010159217134047503824745310229745305253618033567279217384245861728563229464553779501652871252239677419018690628983746665570087378726124513585375766959470635082552195218856418936413951341095601707877253211780236291217238517914268069057292650358696418408489504665311383366102531962924215510625249890151692960916651970986092787782249617803948637654429030321320952638023654261061844914550694957760569334319266104895026692144233999049197154807421285136518144091816704035555126073333042508804395407656498488069804430734836887329292026097083681083001635070004395433856175915130111678412871257886160233901588382728175112351211169730758087930746916531771330266051615551745952070159561989844766326919135669571604385964069903565002679805144978701290834882363624215840041804777495489539420579864493604585045765450209202035659428563648961505332427880418348858472074384310778745919050613973902551337239302527030397219583457151576805857288853800002094757315169144265220282578136939031643172022028713784774496991455468670524058060827563912850332005001939831906587173531104639069638514308139519281089182512889213968275230443538406131504268199971570678795545417010190221935867553548390274961442661093674374639529894603575370951327081028300908914691718788305202844235507271593649629973768398082865590976027179461283213843004310225921639146211944524927053880388067760813014316436536136995628537185463731980838358474756481479793180797373715049577054286228525176442261792072508057914417108545313580913492468259252644001754832790274222358903387141602958314337848074761987430229201523660310876783880292232137104701021384249700106471729603100631560300397177908100932497851960046427904817998062199544542490123006086614047833227704868459576246988442661787870412795023690571941678969097928983118063748328059022760184072893610143563945509993485706859218001009087773029343955842368110045497397503087099768445958760236854486123085616886964265727570806908055664771013239472399428349682668992028778065992306708901548015444707351604781695767077281033682654672434161402273290657417260446371284422529065152702210436344928768427449022891640095370134716374695661348351831407974517096704615942590142005805778694832456776988788587877530923109468509411414755676099709270253877915355274107670281670289406364616817814694764052210411894264566763681758226233363227154635918612167804378958986909756466071611114117537586468524222057347351168914678033090813300224702074025239968853197138885814377718155650717551559537099908801534752728714439685824067650532095974463164647477441784630483194328770466037934443112861028355219467863067917292277700692910614666188816122929814779393698655083275295328251141763769917396606560598115593715522615982145601773131840290184497098493931154180331371569335347345796272484882331640346822731101331767803367607058605933570663045123833886047489028483273957894005020455363697380034524690013662189216192357965352585722266922722385382563361040794702909495058499555006292195063830482966615196928335363596440079156462139022580281053437264577824310978559596036690420603690807039244590625575156041413907248870440726859293879149357885795137364850408986323612447511514111127039831304649613653156985329884631483238135397307434683608660718819775416676687099098961014740785922139183918912375318309678206164973503273101651920559661848583039908818710333593563619884805232577192746613978381853445844664998407437070752254542548202849971632395596119152268960580078214891994221937899481405889497118936009536528963941060685387726839359074909930687451000207532394889948251874440140843874872622836892547908185113502782987747066366048469434059041391907464612831992818781182252755527626887905647741410263439409562936068054419360970115421927998434406307769281266389278749464469217554433843384451262504410554799542723536516320341527646953495583425969222416568006702034454684321733653787502812132292531707859823316083638552680032142736575340004917453171655702004856779044560007275670643313149796463581363291274899291195967010335623161202917802147624240835385336115565520808412822515518229971857866604045776232632981685299790611472252223766965250218261044669102461906975811757453410006773377409947593687517426576901862693618154056713421573730115567464144461242842031000065391453923878264551170859036751302571638032270860291305413757278818017216426195520650621204697039429402423845935618551570507644733866165001415145348145517610218665325174797041167157958745318008593857500314810622312634306691733239133003413762278656111661533544740299907397589544012057100648106081795835345873120773029479145173635218429111616473647338319909009301799673400739389125562237307634583393074239460472229206337683108110257751989992646000849943739870835263092181719350331463439408134635051152475595795091480082969226894854169930656666889717076991353272661384999301374321959146113288525674552410636337272962732722403496841625224727960875664699992393921124242197243422412779898754899479711009105294063522807287149100061240560243430189747430833099251547203966919783337987648041780673365369843094657022348294891085799730446427065967650961468467876349304294850181738363382055736335053950036460436790921817423409182100662923823888816479298091697121504433138340827056876803555296216420213797460272469029938381558517987230987611090777264590782980294227042147047913921691455242773629539729647974545696945511727169916727251187605879974840069241602571016616260193159580663273475502338166734157757199007166349251251710896723954306336229943812180742047630533650427825129007065615277107112279245660406911816220511850714108412539256606883886911294163700372187540760304780830807525735460002753505689666898173806115290471879693340494403832607013701345901745857402561319712703515167573407465864416569302118564159829006196512927179415798566842650378659868549694571256217266670222098017136156061067051866355952473717525802601543392695588572566547005925268724320751834037970874832616334886502813605399752131814803164182749303500186336067179913249757336178546494186848000884891044293237715905744603476716332367221319034103729141235758940459622202240042367774207696196555199117346913924692077166949231161815258629275359736581407888856322389760525067835157549890038269326449913602687418659744663853286051502853800086105360559862647162233962849498329171137405361534694131508067483545636615987287690571325848119378015023396697617131968649579120348646329696633603073558949265902925906519862271088122827857859645260076176647726347337604510375735503369504983981784828347165814251407713467706819936242585129670468795560056314926885664001622298644615178778012310262407112271135129696702320754083111601252693648977093520414885405237554619855266259545792094252999112416136155907598276036956248367928184455434638387122548331927042200981321298406469276388576188549759206346200496140601256026124695241839273425607080871772525115453759231974920619826120407182916034188916816672400697799688011347138969767098834840541542540307275577978175453407342986060331495473058543843778255440693848314946826159494201993578900142386517630744158841186102994929748197696234441534823794521834116023607114912263341799526436599576749456403820598492533514730143356196368223752146508937964207478083144374948348980087430637669427093970231182531085002386907755546162763330826703148118153636611391391234541888700143747033202026522752973239111612755935104839097354962395113070045404786512680336614621307157728080714570009921861807233108031041138531951438835514189212635301431604378567862615130526524055118243103485976779385636446410420379756801548191992041461997004981121438081478882609405372688714641105218268825704756577728475046382579763095727180793578565385722763622131837478095156859955581521956260436577394448121521118111730706973706544690574432522440095571898701881569076861783630084247076441105836185830468868957388142393163743758446444528004257526934868896436062548051649049693903762287201062080916651422099126103250255206291983026553315680912700833366638067660421926174721045443597971892259160274791349306101140774405901262037512349522794166880982625023020906091939105340781930934092737164312406121998294521729074468651551799690244412059769538678852380893067891966580824391189423895079591056073604194908837328709247462936633464295803103832970822442514080199922169473973255991991511135641431909993050495759751533053852065314248715759001545028308530327602431604111224604899922058732823178553033217452372926839184558574038035159008715700295108293472630828676101958751557977158767963475126106696972665051974839294619287437197069272532119602012815399989198725821500598353896066659598622204657050899035603897648776184990611274151370462977349259608490672942078135562829964919140324686629169455882027467410259235090020673581191328839533455735464867548478335964127292046118436401334584604163129820565832716997840537461809031800825413810435643853776458567127865564903530308330648675736513862519820679305082275611145300762984690774362612337914891877920025879910694438404451794701786978439884774566461191779874679186787707200924646731865564254576062051885318515630789723589131948826320012415120437485318038819465636959611188581800349879675000588640656315970561292454855821689978488037762258788569457589481558275558859949245720519718473773385887568457643033234525100468391483904108573093471991968261239268473871663053594098704260110823057161194979788996618327111653410326260392417152784073216522713106182924846925512225166619143027208273595784610939030727043024138842747154047281872337074117685550317439076261344069618605617653051374441231001466225574093106177222228520357512217295189731270529083377426193665476148889716473738256461307989015468914867676922951628028094515246540047819381963459676811176961313917118764349941844370724433710324819480201377384451966046152672998651527314238255336729653986141136187144693689451153226003195300164186668487381861245758192149617490517495707556289172277884621449077112303882820339253708050707589024279497414938816367651883765959998478611003250967292122834775394356618715053666909771035136848646093890728393551336490446427592998588489128632414186704875856791479769677075684758556156868433242621348574895247896544826865577915894870513331806914257488033727019153000759322699711557354920763211525770124993212051008667675341775140194532898220455166443918327384996244372427872511928843410896699449256083990209982069768748295534524115120437524525299012216787750935938558508965616227795514147538379367646988719516892041411610687882744775867899026718917005824007932887600523794326171203885766409154861371723407966109925577595836804770477372381118686772605710610038990114005511095639643307890650814409588901130497894501224926423771389533097626815556177381682163091174046629817648275931103324469730918206434559102025832596499864953665258365975283163428484174723766414509510573826238035141865892128051306011366708417721039404843637313633577700707490729160860717807991749158241838101256837051879731681279530690521442372309223457627206615295063920000338212332351040071684892898459909226346804517028234372071842777772436244048290612685538425215499759189633452784023205049258542586857127428253618928761239690113520978467954088886792414601522864502002076587251163488011485057465404079516260955428147221862780975314316141507994618651467368876502723532129472299834995145855121300724134782962644934391525694002646446417630210717202138467387785818104640976669496716758469992527822475723340275301702404322592619057691611805811289924629899888466748358170613917629067664420869787374509462736022454488024949246188233947211474626630125377855249647712261707112500100546551475768172475561547062578579456148578365860739220125322187027077739661171394345287270171545639596476711130379697083343444503711650944111725355312706199163940521369489102636970555285444298114794431353326652824568958237410350330923397610533970721901343934144291926069350646925153269905136432972681769027635350398228822361123754553767068214511864488117752890589810416869850839205606525841285714616744684435499041604329401322449875627046462860013392483308819444923552484172777046673638797784644221377354219419057369744894655181267742545784448787566678710715798777918266058669319833991947161249477013070343514885768197336414138857093617873467315692664895260571786180779527100038581685635128387088716722613374793346877754821262699909693212884857957925201541655675667651097052905441047879084719216212763173341388115989970541148181497105437747408140144080845914821397936756350611594233315948496876359350389038529769547617398602547211066924386298828269873100737803202544605998218778975959828954138383860318912308916704864899459968814858495784207158368040616997513636482557604720109832810815100380234928528270838654795597859451561959445151222784224623627217808548728596359193594518848427685600550063166073042608615155612072318445396925125628380053006200774451600408389318723735218108483504183973145198519612633781984036645073794468219998579015076670316218043841428661155722969407511505121040565324011899446382233742518781698219196582968707608466022188803181108165842610619364203013337836008107013428212127745409044507879259387695525982851396910322168163627502556900161374890012955014201275094805197328731536276998632296276552585081963475266316641885556351828325725165982889608880132545956393531520696278069820950118500180870681823765451994596737979254432292171281162074499204848037861252363549038316567348100325239815465599585223072562769259761888897312836504834471038929172293304962250162045701702889356417636001649166428201594595291155870122539767670677449462640412576791165687683110885363276385457621376165867486921320058552977668412082742361473136104245748768691921743679860496211613008296908511618935075823173517411939859634159160716622943598780059681597524127153114649460604622801589915626490288208394179402186936052378754420171384484630191860790716336448932948697425515646666845035554546386645836996596883147709613742524495492450718513562275571259165282361844358382286971239363012865998336662825455513087338089100784959066880766136554227998050632607283130452210073058465850182679067796967742766107865718018626903980277056985867386843163692254309031841918687070244012453149144262702511342697596098901756400435033885686009276975418317798721396288645934648743790752617632198083445798480548659243171504681837896738834708358523031436783365426921254846997963205464160603192027377156963929425942669275379173434755845827650523177127369792898171414679879465267162471178730414564476579579235625043012748800615619276895059712331758977098088663830949823081392883314618828179395361064412132086629977207549664375176811811553546225454877618303527279804406379597639665188418862528613234697171037097123464166887715023560563427968863115799306055945034318643906090431359110514545798895773057682920318779319637586779210954808779061596161224447944996545641124520603861927475775879914338756875973749067381764223976642674871127893007701986350945289331316421431863776946583583385212708980104663731522153174195954181447370819048176033230529540031959323403583096253307457486725798415683444532754626141322932973565914337201281994696091194014268148984379580486138981485659108335579123866438656666832497463296124452484068345792065784997924903110768328173987613721243012880309828652158466293753133158994200102249369114064372377764087342487933542336118085649439472067536153143982279477508255263869414521349034174036977348070216041472705448096513002351726760614019492092518767438668228874187725058533733035798336005530042778699212578093435652707304821481222539922522733826078132454963978290326833504987154072700596161020709952603287686780817300916094448780548540661312537078087084923578290866342195257054260749412148131664677141858921637804286144531591728119251462671462754638973649582624563016825836246233772518612517004004818814061560622804599751137423055925966230880260793322704875932453198255700739725204946421159033624289603598501899625793343917968565351819174621087895355541099946811106986421543001259105333065141977705637319628044869744866094542958711688074473776990560564432755189809506831780540577676213603617754112427959447334702935856921389401379426780981390806861792782096844339031185446042260742682920624164601240678190156221757640841151628382626555392383044345771644892764746561174931246049025782969904338466159476112582756811981107506623290811673913272936264117921930429906939082984854240379589599074834747848682288953894269659123643782033424520542166989952556695534546715495401662546023314302773997440437374279541816727084864173309995918783748883017282100009253859194870966802088257793902296845630274723357166625721355838602817962666244131487416667906710754090178979094541565826585014967740217650237146349463037852884860017193085080381272459146187051395399496244781653765750778695800314487065385689400567865925960725084613299338080967832874927113751352054610533539623487283097894706447321424247193669000455111469371243364449626733729826471267852594848913113315419258835820619306032988621639386345714073108066727752257796318815283054277510477084951172580300395623332898006318703372613954478289666510773212509746923274804012553468832146151788448530231179427974244218427773435323774747166679729445495564114524764527859632032403182565422898274355752642714826486678453280684843276841787860694883515504200977576913022306411734073931048197964568281461377308657849301621509269892477283180841874748052182025209995860064668028142040036253804973585176508427464270164358540182679292937140916620955527557637323711508045084741235800618431744809053361169179841669001833006501671426784789018621152717063897707520743828521120302140097660076214321617558330105443358272008251633654400129408491226548960604728563531008068904057933755617408518501875100204713315565460549410579396363101731429013668480853271228086145343772538747685923793738562123507699491754704793227366179711226633739591322388679400074998087908335244840646664610376360869353738475211952686162741480882038267255182845685535996276453790672112978939068631569102249601981242782826545148040248929222270519699556377727122617247304791512089852294442623216537670013830613086701801375705330861786768333340263931792544291968611988237328306659743577655182286046675632504334479817559495633719579932535813326168945105323588947704581996336484646992988117756407293931529504823843941397473021938827236866047868673281944874261236031665491033445565054612802386464827803442799657944639195677486654502031130445150654989711271448006504374039522833781751050201960919176133151915297215767274111104694626317962026428682804384430655492280648692597221107135549454810190449832640654723053316904951082342075369296891415807992229206969389225565062076459822361376295742050902127521216256599668814649312482264157399059281484935914594869991665355316561022920814977494263173324274903866373721397673982427308349941888995953319632750791992082763038641869903684642044667295257457976866561305966792014590219764040853583866253724397492073420172075042398714927606139584446143302537822713980465709564652869205969924697456169031412481220554726920833303372395842847686836391764669678127946709911075653378185569814019157348846698285134582865722023123789203108799069208002931194020323833780177493438570405542841391944720065298569370688707872799514071540341483552021699790061859163605049256153272058365694868879365368204397818080512713819038541926806617813944944266671108529164963120210825934951866514885061964001961288020323545336368289935221706461226376960039069772264855467072581019636424012093615168776671214255570890879484897517478609522880993173720962842385149790788028481837335757463200972350332440334267521685788363680947471232499441963425841330093182621950577328573644899975091685857441909909493922243781746823386918945045496877957519222760305520930057638158044914738916680712671128014102742552861952612624669934461567945671720090749443586773088920683140045528642786043854056926496588289826334230596790822708207129279751987923690155859039249298375644603897273630935531938711166925474176944257865138556846993496765181630423751831249785284159230189455867907167153678708388625958987805650777476193278232745546837563596235648032736246072301336486157933803460780075316493354950473521809467279289662417722821103286002101530562848742663690433467036298542511007413107769984099520030991974897218543119319572365620034686655621890593831589169550192600068321876821018532097298340798970972248776287272360011074415479428198488382441935344548653780625755793674963525287265479517182757961731937844035905573604578940958404556525866884191579220675018247875576182887435096807631363174273922679824329676219514901875727182567153439283279514064089146337492372622595943987330129986957676230183409313413508441396554306033594812239072120903732769189425659378763835434367062252590455482156754314403833249338935994701096128505018568689041494527756300297532004990849250584063799667098730826816839016207638798930021401079283992736437004918182050931680930831691821759965723984320315893930186765327548049984858826559320072803584472552681340116434563508628090694385794311342071830470007674752515822860939592201791516562345986341720170703387007520015756351108062126568689939020793937926848367053631111133518386470459657204001770501612282155235016022488663484725672630750308388556363448721746617157285589495287417310481131635778093681730084349141253355398383597195810042303975554553760911240400578155702063747087457956204868783831031378118746502480493277363603511834900006493373521957006369106338174534025991443099728904468327629343731420630930750264184259846881417944809457063669394395397242097761978434073305996102192592316516068190944883459334160512727866507782202179522997882520044295200059032270803206652748157245283348671015259937978367012990602859317948001670458565598759824170053643612452584141061441307995759539959679406071337962750245507328809289827631382579091440561514151656833209540831069591026947325490853418370311825639848841759407039560938894307488345709657856152196252466495235331410226344614455508214690695753407633605398148933114522755963338382834246440076567613231372778967411979827324925256294887295877073755109026676683271144685822936014770438496498142506811586809571324300966116356333592694390293148911899898667671480013823145448773195108841472055485344842516794514032269896453561003693925628768073386889903649131889629511348836434866948491065099538078803515350093576320312085333292827454290175507042790244237222317902858855697363449225423414557624589053282610522468679278210256341065526097523952301484290974765577679298957537561507782188409644708061678085877705633474688159118635371371445479650543381001302611607724652188748068608302056331484593148716610029691126654110336789978179210438228929921681308165589576621866327924277314273526382636090778815946979821665084599886513253304802582163756680346384787491896417348164516367951427341959305440806505802225185933755126990942205851659841843331001363371973321085102713749667430917839871897392641888675234002412138519823026356236253717272511074184660306920962876070171555433188720909671766077734086901683793351451719991831491718186296574718225468069850514449526981100741401049815618138902809426498684053283452123358533777728495742053036196556691746224532654864595746624005011089235552126787535159759154953359033351101790809384562935917866031078461225603497848673614847398132980619853528964503830948037047778724981117866238635298877359411885615558832963859742214204221985892337242385986784788023031547028310043351476121518422007622205755682525358868193413157104651677442531187349529839690771677307269087276735374633448154641308901173583706743824376544574239627422964831553649203565701035656779663747329368271008817938827065384668292554058681749750758542473250174292729001280898148906797613794396672980388494214047623694576912622685452921982434586754924274178300196641027266774554819205499114353749065021181063895334124552377019660413415254306663740949809456509134686268666963010371899122726880309065510595371298948551248069228099981521419558772687651233001524950090823909682686209536292799065404983771104688802450785432172074358966838740290825847434297726873638418508822008707572433756362593018263052837670047886275865983654301044700037364946072333976428938427715282580664377901355982603409250371084276975524839889305771041403248183866321201624065308981412452379730170038424356801357993378322723728358500605759863374694183541947154312391076893111655897509754436773664200144355763277566993081490821768882742567803088816786380513951870352552290789182720329741402733275826592289271461921676225826967252718187836376123842043337028739976149338829156911483130899183238255163305124329262472451324591565675480804498313797579093834532141329036749111452041110099926241418425878849834199061576736503621400180289461688338906815981103934828051352710518798545192927152633726125965641534448297476328895308903060933460374449736121166436278328079728442742649965881062901722456790737393455123271487896319726969845966112016083009557551973996773083849971742587014891214692299012395337648616896892436243967919252459324809407160192070464106410667877118749951001471678159505983678816608035798627121563690780102292151538273345352927640971011610923318477864958734594365049358380810797053095131491234842439899451884469804802916697971513357908060216123063106724321506138640771460233399499729780122423647628033317084496203735302411803806319529502238064040897040001718755626873946626907524379276318336191450477808322980767053149093748721587756324373627271210079456804518241365541789998070642538912888717930062263204500562263723049938983694586979924914798635922206341747412479937117581331692905120589795732004891630565230307208037433385017204941179450564805255142575603946959760369792779795933097842554013316065898563903721565250707405125483052802704070103772419112802989646340353272763500757472055663739144632172995590837677998596323930287937510119139362556815389740301182127751044429951707174853474512477850041050532616404278766806721215777310638438725940995671772726765117499839235246780750889849026105517259423483973467804417502915216796693011189298449694725700776000810208165664902610906345877183560004673028667758750405547377270531601991950724256414575799536079685549480338124831723277552545890214498755621537737435603774251893109156665521264679024263239120068046428525327599719750587554371816877814634561158237816218580503963986162530868044104666497143503555560621682913675645406542472769041505964352318230440905735209473014570422036511381437169269636355476602856220451346323851400468599351068285427354692960508587690696208694335292170432517111969786230315768010387851316949261482427866603063761346205720700024263094554676317125930100912595982068891967414624919886921281124334519151305572330793383196851658400498684277129456921385724104044335626226277986169391043156296852233163316644950109361768035828601764419682547458401634343830015378845130980715577983222779358771597194060233750874218192995177126491104057643121704666785309096987410772381574479909344238014887263974501539102292469462751760864364197692638814569818325670896492522972709753395471254531215585619545311573139335390452161035466190417462028873821294427329499818101468232367767586501915714394202321588202667872719950857661627698786970662449889135267784264274644617773584948536528758848002931253949591714033308610434976721700386544555583453643138034137026342688653209301454471111560592384695127532992285383161436346261213760065940322117823251275880327219996776672851588582983141178962549024568279300946766276874287957437742224270358698000716517477098800325385332542454174567177459187862850004802316837273190705779035030914210739341217021268488761926309812748175650818962294186894431028642431155695531610123139814444183658207430450612995956108194162090625123525831878688285408732332792613972010409454714125243754860288984854146364231274629146586190301975714776182097849348399770596739705729088961317692555688705383375497025700005173147158331809676356168762913867245916550462005618364174515462512707377684491448220651422747161862504749282963592504721733822718812592588178521998146442268900842513114035227772415827967251730846462353541642139445021831841823074161960482165662859895285878121968864195694300678250683842634888603359705434135276402489194954713233067959856409619664729713540282662785426223393682949036276186471977303174384982623860280894874334779075686001221347873132234445583390579617802041103704986685464107622828125405504283467141566805734330120424483032280687632695337257631488952531311888301025117320902264020862254475603010603357739951566589102938386880785717490765485709486083688555731286390307234277010580183918845199124774346289382063402402218618248328945801837579464051866919288410403402313538882936901403412096100577525515090167089390736507209665170916560058381716622901830185904088167958789892840948384624333369292600878656595657928342583725613399202038627280872844482568716987610712247775096450952194689777645108073711923630510244713695187182805455497804260571773528893049768854758194101920060898470847624461036910473116906538706398018136088714657495784601973366115497976916551622761511902313661113917514229842755096980422649880007871036204968049013373453837666286535701564658100049299253888340730614330172514192678890590082342434493845722523846203667133711510504653524616224578820998169444410343056044072429857133150140137814543360942522850592382499094579905964977005129965230554542006038909440774165138198411824359815098982239556873996342340034414214481860900750671849780248204358749891179751026427749480482613417416179405228487706342747783822646093072860620884382530501099955857545261504771791645890777975353668257166794288196199069772307291078186269900494675239764123892167941534449633909092408904714948778817134028257565375562581825100217213824519607570790373705820430549577568809791998658739790896029245478772577054253180042280927727095441648239092422541586442775893425858150639074989704536121253157152585784525511683123014553383193818228880459781928997516755098092665446394678625643126587823510339622174055777570626819683380239750274475311305058513040981528297162576398260035020127785202597429341301318485725518351212797088653452428375221755348866575452456148975894567414558011871181021463262845293524426841863950641679083675834112410980692972316150337415955110015804849860162709475308891211954224723201532220208988897138757044972036824510412119045577391130054937890991440008685844470828033329698163549844682196267854462405933867051839219915337122253742773235419094184914825889889684821486114208917182150246916254790362370881584364617854816628810795232211298209157078604661221814584622990266073143767723574119707306579506401611701926762332541693897673011777229307105991924534161336038777009265624002327903513256383131051798815413103896107880739017962012001018570125168111420779161507316283759257320563712045411539526482465621623871503309086385700434377768698735335977016408277495011116889290340041956881896040135452303704065262474835857171964233695924584655061177653550389440384401165700242919383677124225208947817120160281067799950399329151879403378691150093641178747613830180069306474703332871652971541877336936421201380925747980443242283828172231398115418905089758852319730525908640167042343009333172650426428622082569453070006845761871407151502638490908981634139101872239074192040042948852011320181956058909462582693403586508022940303638488738301741978237520966768602560619655551056875056435952176900902265724163165244867986283454908498024711532156518464473846581616720371369888118154964004201729076660826479755054323883880370074126616038987464675830629062640969326702379161809644424417986113950678099741071722515846580541387096287373109395176069123076510297193444047789925546979561037022821975619565906900489461922111665140977455795891909613499261037806361790311937522684214478672083827462733929432511042242422915848062677517780096057620364507014875109128434226954135470602542142774076226960080105001776068025565392795374050061285602913613353230935446365704330391958414457940226602438333956780904505208872045281033942796007638357595072664374730603714070169259120013697467599212597855308524314198094660974008519815609180735214914568300019523640254309621524183172473066009797054060143095134044284187320671065205839238640281813145492891531028764302489598411842794169785874242089950518082046548500142114537840955831827831694958764667387924530510440901034916911522172224228378630910078284530286289445555560977352218705586246036687853455567978910352327103269362455988363287361246612174990884919558270106767599684190953529627240438451258892281029882914651752377392853221953449031921191459193504517024437567172140100831591640072664888181492554072198635901502627304868387637884015218849221207329391356851727007037233374746534892947649167372269977264728930026517729394681332983626979266249251307819492887281000779035504137476083863552475970014089052131087207749118688113795271124290312080148309859340314598670514002844201761673377817670674329289213664952126705335023159107535470237406896901869787892109449049314047847084585695214476668971908542095236720374874213826260860895246195245209531225870511994006649606290900990035166071768124358325810739257363105569041086585680572242385699932326088710148916639143511054841276171290701958794697332229959504507098903222114183722017698448632363775642908789944639764391080651562560035787534593010586627632907141624691634194507394220823936905385532936622416479310666088803103285354077643170883886115769283177960387150097963260258025292623980941913341264556905963120492413396773835458225206704421522958479880226467445756317407793980149329726334879868889596818812073404433627586401129383840481931871694311286505934433313417103401258237070050705559165122891884558085644025164558470203584296371526234728444681934601549446099419946996282256987307279991630364366313733056371671374267442076667064835684913929047501329716479870271412492664291574608865106201429655103391677142481033458734109140604211254134922907289152056933588513658687050249333976087350340764212415503501854078577549474205365512383144455990143222086297972310532244833736124950735395582281220504680707740457537374573717355168179884750439445797733721614051512381199799445204803938101814794269825630300117724488260444361374684306506054674697744993056901934990025736416847579572554309875154489685876321318817239048563811775005880979567787544305106011568244177087425763726271990940941599968309212584233108236827206188739771660744027033182430861206001369803866945503707537201943038083065806946613851517866213607885348270964653892813767464998323981469305400220134029572356282127668678005678458427836424964529521337700229328355268098103115519174228136035271999501604984361687932127919855753605518119782985955325635508592381593160914285504723701595403774352839039984022787694154972277919099002189740644752285811620964708482604315318043624632708425353906453428698698083454961729038861846615249998994482263452145856847753455346528500148748606865590255662985016436046762717678504058060427685804932207933098500182844744875915019486269537286600668327038510828868822236511970233240805655648318367187425736337640908376255971983575630699098294483362724532098846679164226242489961210732852111288416786049200046705306090934852426297389318094396855954212647378522376463178078505121906737741053508843765672784912462231562059203751872323316962871590945041465425134398632071495785118702410960864874298349619036386387887628743792484226919257534668317575887878308569948927343042169489700230329683907011172956001274173427933743053449519432505875709542357925199212999186460144963098923851015666046069238370267811516108461918677340747499431691307416957650334119174982462897103202051687049404464411689134339842255886893228149769920860671337026206354965651747113902069026949764973240093755297103912842308364877013976315180964046704503129290028365744392565360234519485962109750455969119118826884540935574864947464048729377182169136558041749719220484936693802201742096103344005314811826561101639878556192855340558515178384495602071288502245266749775346516997069256172837628810232461013339799866478181906269591781037371864993987350204722792780227896950414098057094326214479329748975397304248674207500329088326039351876609267282138164453214139013464996256278372615370284398853961102710045631731918458554973869794220338933964205526006228592961417881119489920343289201769050716269583066885964370320941770611148513896488749548544850973738680824586368102708855882533325176223857128596860010096081520162318552960956070526329594725872442503896998810230760880894252408952118335429966139588560780968059814270744219370663927517267334661672679734558821296108558728185240948582087240916144680517710964603629291798743612833202447025157443361483997913625565121774325367439761223318911044481114402831648397435402252391581103336604314629975960351979434611550999509291968004546907524600793292945066294714406738585259722001011871718811370692612733483540057272804420579714632022119074352143824025606886905855565800672370455334004216786818853731225709781083013212702520927122297439377285655058985639531285929749103459784191851673450213831936756246429497364694233527435690553282970878779311993453630487225202770756196868376239683564946080486883693673326649199442179966511554623310811497639822957503906593018336367156452859947437083052699041171644161219476041074553649825399043685357763711583851740097765610794973728940061244005553724808051345474320997014534014190033864915191374261767900726629700280019134970673181398589952071010966505481613882363895486531663698243728374305369151824038893653095171987971280882767501840683734109308624769129595704339269763797792339123281262577752734567161597093844550997450503039869481001663008961296217621504345303747566015961316740285722226452362356024903835078837791207831651606076095342771271955434672793394716518669294160091699978006443516309193973953409721387066065771457706486916443780431587242525120532658827335341774246938487732590247284116771312141475936665096129936662612113776045866528004221498129904271845708112381501562356823089048946035957064524620684345281116442759481874501778951941153456477956958808867863291313087281843354367398784188397537609039886736589881706772314616457225297583089501826105816098943025363822787573651930075287846502431893844246767262300880492422488850529406787536961229087028343270119844858923051762360946759148356415287877832070858884822243548649767016581939609622987005996219139750441914516423106248652729122813421216480912373153002712820637097342108286007115009647719143015844747860600354447080742780418082845633619522670538572475118503783728579369845521741981554789709938484956550864532449953178198612056857015712225273972821721303704874536430469728933735552251291314261039392550094071344850967579619161536202017026161665632768878285260748401252791388824230188698537710043109224988085452392701111860148033690983457831061845983356013411515500740909000472092331066872856573716963666824087466434808334303668632877475026818085850388150385439938097546250764456224614583662747972885483709823417108376145475162547481544788913640044903915852183442211610612921209032835883674016778604971772528924020325229248070108258117625809754174357670339520443774653106209421955963181687915243527788696436963108263295388818133241277340822346174718006038229301048947681919818348187275022412532904916346941044482498270942023768345787039297663178773458949361810035299332308579195339250719685873447396957698232586200694224327169926788751095668333443527611671176209611187962372256450459044028968971498737962712695781129823927013676638338299075679495719394029109414631412601452158738504823479905504137599950004910313286287953631308756371398932657326006430070134551029259252326363962313847444964331418675148177035664223022452808612465883287926103935197727855495544464490682206747817834680373887408332030924759430859117291299398277665910895530831443209409401065642421294460221922427891764513853305695006317099352459092729891015989316183870475525262577917255479101020583050618706393646039834796953877612710571800496998381225529892754355333265770443607386309474619338768647993612187227228134889049896972717917159404226375689718969849439089926190304611229793623932329370709489611663606237922029536179855278918391151476002295778830530296047667613867285510432976163247010195823090806755650418489174521311352508642301760024738684493885734332496264167863104603375859906457731705994383129659218832511535207529816079508221451815777120906640157260122207293008773938697780512543887006808295025550118998589245736802415255801157536420500061507066200982356625255854394044659178827036563014375175835039378362829262256371967815222321975600213751193250097476876101295475139981329207712109034697128038376768443816465036162575184513150672664391959654876638805802182994417716292154845289370535228694188481946114987727811012430917254036634118363967735395952377048572945550660756925510411223346758149724125148138436803147740599593733474402665850578564910543007295679554512234919049596595743093574036337014331950398802581705531811212018036409823184723027164939430186788063485543331590447852724192175822426178265431706427733363299536293422109112618071179412015887381361072617352527393827590751540503167427149620944521910288401749471092051319694029997372484761452196804517381315430246846206542256517600572562099213977212188117737843491299801214711817211223804236976219915158453428400906446095718453790209154657755019051553873222946397838469231664737661204997198366453064009229119719720453011877913480792746804091858245696645557628508350891766940123572624005421950018593627435691098168405596247986204854283807835134618397532477300023575387007432533939858410236921085052756060485652995120300810511975389281599197588883102835858448907070589290930499174272450579894976181985203367168864655470336111361181657171294119536162541070797759235062627859034766811333807600834179703514293876611240017100738939148255103469058684162575934041740643867747859557258193396007329189462587802603001911331775521655648343972404690883840828484087245830306335389377699713570135431103281586788101394987977378628252427602167967942930829974444544914702254755774120815812144174016152791768776363354710398341002284739646697517752743161162054348772915778849763780201563102038440068428634993173200162911393152396355767832673404082956910035759538942052420696944251305830818460566392936402934266295535711422740348974378216729496428500476410137553499374890049185081258284723275057307906844275194709868787180759276761708635462706482274131847667259695190455105694706931442476091538211682692921949498978004045290917384751914133094454300304973330036148143540891779695640160621263168971362036363742544665864483199090929803745116814781639713001134440049681417970193034485222415859220685141309545452057683873000304380415574611360707856566700880792397084554562688606805558754128734637378991917024832367413616788357738156568755774122096158047278495086826514861768081011812969834094549376312167210530309028369558854666638185179746275550677904985701246590052705533139721575919516133389567626445699567219713262318436022232129855285016835189623954194745940574449394969574398871802611622911522329713484180313806425182879116793424015747851724213978738644633453702692510162537867650378592494705061248607964145659379116639041435333060986870633162703106267172179683485393305898506142041986183423641170006727145568691041913898747174336044240809979256637767448160207019355466275543824241522620447195648989010314816130562347051923276748935527625643574290540159723571338282673328402081186747783444161197573185367666429925546470438845578240202564443637315897332241608289403844267521458843188994102430614622967439412488591609087810575949871984441130253778823790229141888745679622854293103340867776862900023213831011058484017190913426552461164745455544126474786960399976025871966245288986573688946364951753864620914895942439599188163013889237855855477495081987147837836693621270819744796727255217309347573580630077355830725678091815416858844370116258933140842695986564053960811567353428954943606051686776233188241755917491917314969884848444481086901817662296241451195739377401484780658155959033583866808212077806810751357916443201946499142886210932621897621135162242859640006524709904109479884044916524443566788695252307309761532494618482693969553965067947877601122385852783736188635192171135683421677040847307183871508027975494585675442400427637302003680219391968978776465320525568421032089355183781607763210777772369773530113790321989647722898194763760848559943667468575850341353338703747226535104307001994100061173206522289930200518384305310277837831108759815902088799333983731973507160142953791397664780157626751558163034716373356039256155650834053462512351254699877226542712990472408329560908785628354099117458297384606983367057919583754966968099613050667004410950658054973631397402222520826029961537968245739756800151885290019459115920523258588370194377345163307241237362005612206978291734930995789282210669653819771375925449817468149405527039954484792800986777457951605130470897313464053331409514613676539069566326532264331178041775517722239650781753347334578470389638557172626673537202012849882191444563415259376582215492427303337968110826272591704226060001634537127929232158060860377527315774286697600832335437859955965182844245079513635996586983054722268614153065615092780492072756028258055772725779843736977078771856321827055282979531478268759310962539335356790615935797921275777463320668857003251243649096053015949804087703790435366591444319785661758050902985433109466395182821272674619315690571933952543060265155600194054557664477608268364787288847406559530458356501820522807551011359257512725984903367967161796914482859018836715050578243699273864115650887889673165556013723049534779340816728204964958898519642712593309023561830710173258066842728826157222272022240629213119422462703273141704509683096853426368554081567546591826387510450150006404121873019619139811101751339830472648673756224443963559197253421942632259034175201988768954117688602658759371144910953849167316796437010615315747296589700537722618420651098059781197689182978363265509388810051466822715934357892734581630629412269339337779067256086333851947030270795484842607763677739520665467833217174338219270262605578472182470512822432901140888741015635725932775662149085242558692290762326142482506543753889024766050974465487399950011752798568504473412155679156030892946202696796841018615689730415353018817774632462168798965777237494997582369506896869044959056604076374690013431629768403946869165108443447829460415272618636202647748415212466091850790922924073028804827009087856857095951785710177835572142825035676025416850371882601877980127113035787108816606840012009593339388364231934037359480468992361264518789113929897975083459215178588437053718825313548747644456958750749175640441217588074041477723051821070168427121364272339740712663786197741555807702176372914224871941567885177823035000103192422203673095462473699546109022283279324255317390226336376179632544436659535534996514520575159768567324158200883720896358903098697077675856389486899002455060487731298312410459060762887352207204473715972336501324922462430512921359057902357195539246206975759114712427249299115290570140483591425327093078510999852826144522363446932365309424995807092584870165053981749718564708076773422348133253094207557872944231756084537066349650845678816906266976756999507747869229149280841624106393077755907336211312218591251952283431862193456915365463248210319310019181800423730013058876537006211406755967934449346054924387489473263700887745430045704268139878020396319050214372176640024817841198660067855327705242020194867014930739039610605946938406580000332182782786981260184161875327610600529590054790934184899705606058966815669456055309407489186319665162621342299062906605638589835002778500890403713947153242095190114479936479467294223594669366692203698994252960228090414782003455648860172792236268303967940358998893557720416034397637331945321021133184884942426910891106950464806098422525539261770560810485113096232034069501791833285869861362863347733002704345858762664581777069856140325745131124820183569965612007820314682724043154239023139634496124579753785232504320890087096668259143009192772421587310795655839201061615372078901767754434805327906122882494515801740005781725092320144188017219322251828853043159752079672298591618715188388251453372270059977474912124610095159831138404465750160432442028898210912611688224428122143300818649898923646781534123396349391657187329169096350172668366312364515592463656956133670153109676489319742804047339031733641039450368762250636011028173832997283794676221768641796292339189922132319463284401795179136523300651379721949430665622507330320742204523773661375392065569635040392154511176565437145756252631431718052388407082448694699140555192824429389458371499657437186182583454260448442618440628626193744945680171776466115639866107086044208830161429153122024484964809812581785568321279670332508169964985331366177834269431717105207193909996234923320850890658410223470788503234596474770365399980824254028930538739433986180665231365585654264343872059705444483415216301251028276983345567728099875988736525817277616600134740371791886248198803576735688682936561331861544176806044207574793886037927902302396968332631360362550133506130138484332753654995186757697619344142096586995369774042978697572726160515160433244146337638493439272016551324091334250637445058401410741332381578313714296245276536478633140838622835950835454386904753847348207815079671224364273728247286495509541339568411722204642934855229886921086670276328619275846820307285448875387697146841904471224237618115349850588245364014770372314522557944835059840986294402652455704554066407632551716909183331455561873518157771448654248022181811838653817724559519124033763664325173289199488515176058946879434508055694728907469801196042233862542427305727186652312512349300035398536163203391677780093846578275804149690668592042458619932422302157010997155258833183998942558307544369916537314075086469777958591079193930512360870755544379388973743888790214819769058903580629330737027682524845379135737275075746405696610413971730372675101783520638457345288256093652707001875933147161531180854731535838575646965784512443238758896210041931632917384516890509747422643549744831227410565083232575428596364961615151512357107549903290937388404660804698334641086274906025911532109352173579849511604549351390893013272169090181846964306469756779340571505502468851284915910348582742818496790761803954801372608550472731759257383766476150900396743338786384923217109345010269502284173812684150273906047264647415383178693290097883932574874101640627188642441503173265627618477356466672384434919167382260752248290594623367991221716081946331932425213639440049110935149508493990049775225897858481714497093388683419267414794012090933527813678826602727374933323523974172965045407353975995782798831885885304921395121263005175991661077696895453609120575899777571827221689074502612646180419102992106642795072508200853525412586940753025095302910414868399954654570466351546564564612269492553165112977406055977354077354928221614336942478877293804305913119685575692700360356896137257302335924943789620116883455814158851805582693433424798155029274107016641473936550166028026378778998741400043958562258544902975140334983804467227529334379413554476020789150689176881655455507626032645671396351597563467236437779481393947846200872968284402981520664661112373878748812900192453817015635238278980293073094756158813448244238342612952668699430118994952348122385255084088315496349292465439515742372081678325989955582659270084603622749364409499227749978045919919560485347930179217842595511478455044373558602326853265575068690857569880053906216095310565984954026160747401013559389559850204137137579943532050379637262012774606123494492638315554939056120405324042363127483789977640143088567538476841683107999568600126570750580631529719526583587339015229196764920347712046437105688462008509697393688177422377165067930764364539611233127012088768864781589217047490876375373524905394332513747743467054159319787084069608614040292321617923298809861982634304307237192870731821665394739382947464673204494610108640079195365965579275738290581225895728813565728367178260944724135450466882177597235698894591190070514680967546937924243814141945541728692804252553204706847046101653927551413938341979000188097114521286460820651675826928023835354192255162566937256990250552140768277841241717056623068557543656015797054609683732901240900505225101383440921939887242099830035153682394525545015999113953532274617421161770074558856798531629939402973664447038363340669732431823495638137414648779567493562594109530747603052208826469227147611444604458730105009624730977398149811852844279745009778106479961279742576660276804258580413288477039388758510213191710789081732558525464401027737165002882081220604179133689890183814097491243786460359511671702867913377750323015448763458451634749960163820889265100586238460644892871810890034497029426325073707262520648168773784160425864410215120242075813131055473781203814487626777743972290016681894085698559714175871687340467176984444871557253626532217451138712043072454057843149364189445217973344454805172351511515008213352111164889544268395352717613738007827266533817702039505342099851401301854530136955369805336985967050975598592958642080470157749986690108404556373826299920783537248345600503559054904529575393561432319024254668086797550111801624928612634886997753908032573221818014452926715812861339076220477414291753135598599180909387535418759997574415328011605919386537658530398606999212085518706703995979585433612276427023323881619847377692815508096897627515059443910021536797113327771365042710750238525990995977704921907841958391431435089360520441638475424524715948631655685998701922152834953932200760011769719889234997610322609098621574874056468693305732231751573035199072855606434823110185378842443337269083657400459982539315925726430642243105083426153798943216277772348865413843664059702982948251916016134615586515952647077942061826804148408269100875956937979743168526598581102034797472769418356011359145707097074245552257942399862926537365384275261962504957260641449635406863596576092888438539981842290097009728193111310597513428356788365983172333341858164706367992031772124487757527616229423970415409258681712252673596231284375275288124981735113223185219268997190546871831486635403248086900464430827994389064061743517834161852591629131095843096455141275461218908690797952897817794423927915348753987869395242048007034951719774742961571312350985359877656684931248208388881547384616435844068210211297715800507344857025993826487506406158813041719133370738411443450613515390801593237138905350920128938070452868303123645382633079861732745425101588134076619137294486545354482861769798997401815482110907098467730991145163227172816816969130239922224410130575143359093808454198904139689220809661649570540429501452257844301656040064665570218753418906725106805524602158178550878989887109893453522566456336221301836908279340367871871278675887844637060184192466569506925036948965043073788523570337580618309375202775825056801929867197124055854934574660956552669303299033472201374631332882029852497668194205505943330812235036777050528703956935362193772752556387653858486698229634606144930605585090610955887546773766517630260972919637412711508882720697658845298876448026045056343920864303680168051279740442240751699270461867015438508905311088615646331997327813505421275093932961492373791932272235500087342334585881524189895778931250111100432732801705107080604936400291382696571997417999906980068524294985557683419607777045535193095848922024025335719219415375755666876326737538064186851741979817898329036863338963858121849217925174324578428282353381291222207601393127451542325626765020898453406616056237236380846128120733096536641075738923827791822677378949861143650841701563194425362608536416212696021144281827037829512765859935890690381545304165133427905784735695335257851890060981716334276918173117008941328800660688729572139663919649500405636388117227131546071145830540933349366747631871001461690384449969678803774313152947610670682783893280697853001301462674971083019378663418200985500454884638228205420260478582863152200797920804477409517462317909769165233661029873958395358661303308181949851621476171336662254099610928847334092611012590778595135278471610287979885906425894447452200424466900809586961053958407639830034426633460339639332243465201290041171557118211339050778608374903799346393074235235801033356249005505154633652490926587155259515973682018974406962730948500113079549978071093235496864063712186595408754584438284965632481311813735379077175426839105161748632886300711820805363504504756164742739660376441363193974923132514081332276353943031282915050344979940065750092606767945940741200551633442741938588335679532354262513088608212215871985321593388489618711241075191614494121977802718435963002425304960714054046761979101790257730996178573596077127695158081524542967756065434643010406030264270349752249217960947073647640660467145902672916235769005593347927020568266804015100234466578555461334001420236299503100035845224722133971484602909037183741608354890033367228871435915846391526403900129525039284166235563522627498319347073385075880185029288275659266269994794167249402081569330524038078376070778467640375088298728549676208810437181358079376653771429416247666531934506670944658061620658664812027367222908695677401754405857685112013426380533740784643382633588363773028075455477891086953521914341757743976643315283489328292781858784938842382369005378482243579419060368251673091449606798081710438738871725172082102083797427649740527642567185136326678069369987164036878129149048252982822035400288364998430710889960171024045017080509906933509648325847137123695748902804973605308252994225314715514316814752850977455595987843370733556515819503076871943526008453403192951606115394862080252258143068890787895496738150304012316021937824185062769287009524546127865377624673889974928074221269049123578641417683327216086704636321576970742207589942330362823317093429461942108684850858148132949688030882920845131321259193079517315661416242860075478758912147197189167975033525209121413953657097289903529056365151021390073406323548343019286630517017706460403787701125984752444744285926410336935153191031222312449238905293111420619846623641644879519069563847459419226054250362080546146068582582515266334917060655264091616901448569859184368608269154736610031306531452521245126592352525629039744079341399417328326888801079911095362884748198271160417428922484515240856529339643334160637581167954232755157551753452810074284514178876994056652338538830667931000039288879706642886518295663960717061779322542674638937710786165530086967446154567566664004730533443431600033797700470219694643643285621054636321484334083689007170878844627454267023189081192318030846086206274617734916510539685974567165745202382494603611452567557946638175982854494756180122708569279486948696201480193386352676026156887761782380854989427526802139052284602898659461388567970834782341657674428981500041492040958342915480862263999374001094721891759926554727659571152113459942280122093665069162622710090351514594478163146800790940742264934048160346474332713652161251171415975891375487495570114782725022633188191675483037410681287247504935020319205282468289446332946834880251983339011821423049966206776963944809825359908804926624693103066390934434075313653033482458993470582341620137876409016330486001686034128691568403553123992066314610509123226111362558501409301665094298253435393437869950343996050490941706726003108609064643541050249901343970739548446378701941689211410462043778345460240676313855208061558825186128246406900345063516240927494430339174700607596203230130360245782690513898815528915829980916074001526656700156525426614880697151606172317242011781577633553194813478475619336699165761777163117249882181886141173510743976987544852865988466237472815925639539680799379831091865545932947696412837717447165621713398053099010002555083816179049598779319014038207479531985256227913887910795926235875368851951954745326519672219853919251599649478403622784935442319540792414532161028905257946168327365779138336870574214988333649737927756678585822577356707960484412580222810301436690011288238111777332310730693953450864143569538884635453173990230787489118624418169215059704803387006240576015739236556989093853974644806984863148394377693451907750191557842443532594375337833478483612574662010012600521021837614662263451104191237018218280704067363241038331336874662161889175167899832291062106288076430555772860092826959220253251506610370928722621322512456249529862355253888726378298255494826158182128800245785413659649264145283390229458164451426644744059240533769928591809097001453614804009142031587784396543082549401944551454234432326562422131477449589280823399086790797457035423812883277445954315921056671436026457523407194875625665131561150256346686911226308386571903213752862221289282113663383868260684208708824321316888517970455554137006842450901854545728355480032880706103182994216696862680980467125687413233216446849744999051710773857057012719132533187338342627731233560074112599802818379822592984481654842919481435188308107787182023041254389291774992819022231986055166334654387029419766431683668994763676396109941581544621795408443377942298270315219474541729133457791538087686154490533859700413563568029380698842723358841023101549758745564619528951931470902658178049692664613240846047441819325809478359278793968306252750951282082527293363995716086819546864015155404989862439947775798086475009912658782797788455325778066617434577065726224230201463485832227981673330837840993327281119427368012873158610317665808550744221692998589851864447377515406663031500544382230991141102668135160659423733127555253437616695696305209977188372388232797573656227587621424540916681207005838555908853175923637123944572320290505746092129853643725095772176305494844883878058907239364360882358177300862155779749800009952377068555269479130520982391880574905214512607585367090389456964763271845429811780287345288513611397855249780178084000489378119755020168541160464372782725719588416990286840606025266413540287184109180961670647848701714885796939401361529991646227503358943554172519403116153084848896681824242823685696814473361068202458924177732998320498814317761703518313012248653670264825457798497332305977034982838739324919397693009207429971789954256889758785651155511404188662052156937586700404851315418396514262306251755766467283226896371942575580908737542990374702521527052020390597210822654939112840881244682457510872749298614585944435808333077829562341514547945215565621066275076132584565394359541595702675619821742348248348606146649597819954835641026787841363018782330444426176982754330594525328682403210987495874016364622215423765465440719503480296656481358009380534339898729918914352497827745709102297338817362003725632339101040747725666787243197809993453289122120552117732987623851835562297159590988243154690203383207669169600452703509155573174170116459592956114400435619890396922766158356361324726950621735037879568668091546866552919379368355989788009708151557134555171141569502986312571454826264027624972067131232441419437039589762106403309654320457146946762214020033561746253943072769090907678046879843631747981654997100328719244432475595550815290566364787361095161460920422963474479758260813932019898085786259323057104030404053983965858381697407815593347769338195400998226678540158732914777597127162351195049019549808023675188695667419647651690999204030543977732230131273987297797673366912316745052216342691529935332930007349511063354864155872633569492717157247751891044710055809240944066326739615065138976671348123358498802993427534905037780144046267565926102740764969682675498000916579166299244159618713065627047260801836800951950913269951987208739302223861882596639319931142241866750422526284927740134852808707833101606862020373356407797917056571008487370918842317120566152912607992183771530903811555287119078499509942625117616547493219243208345413232573906420867920591269602548444900438404111751772293503136778634685556355654367969755242942137589189847111944832713563263285083763437031185816437330515077899343395826746818213692983512439973714304609128349825415762008223066818001686462413886714562352528289720193380673716043408577757531644935021723036312418020727971048581077935240559334468648751899352561654069036693652764919408727336477500767870750629960256625459190618198620171794686670244409439546969099556516782850104161709614365853189528262075333757930806610217829831775555728712394443453769835145475267350525574438413887411940568079105589632745223651642921337194882288113535706414346518616528106705942350553275645256129466259874516948285319839588218545995552071226590979111415426237843813161143685973066410578621906496862935891117148482339615654779219337022537938606825210610152196099706723451913571411733242279762268240418858081876499557022288653705861572483016769914793413040007714923049162122616054922337057978859903417695920384487465118143840985021392595796413986291271505138692884674993801008229500108481714192708975134513669113744362155168432160526516260939530991219345641171350992338039216613051781730302513978248174041470347894547737868600649647175079527861865724595621736786389378344277823926645693615418509366826528342590791757497935193009513002666085632034831403349233182142516919046159295429840084814732504736951584414750922790630659008422417817559434115130389570849823710578957209456037196035280335090139826550039408621707403453288840048405690681928303821259072605972120312443279960442261666306804149390773497663530955849732376519335760837618305449286565246649970669787027429354624033396602376288831924338046735864324092265036367970096673105506045466852530125300019606315864997614263414461064343337294505149362957095417886079294273508104573959137773495970481345618812450836119212689726245763063426713179668509976534331626693666089213283940295805787046246787081130516386104311766082010799046273224451351958006008029019258540385135120507465036482979843385876078102416858424881043439628199381635831382654495836456340193403059306132185557807782828102277930424742714630511533087993939773427956963804387288202880407722317312649030784910079341495296866448932076699139943172547951175654046941194742680770711667660544991807392783669677291429592687238797762203967088019436399649475756685089527807801459529752696857711492942529916277890359069451413111316502188504945468099888872880300287034779991073643700873530368513534685565966139825305189995837783770102672726789865615982624465859521896872653544324444824908619745019993046467594147442687249011454204987360147191993101553114273473034389004420457547608127801961470475671790118238822806880900324889228102608008950138700153353298184588306035919356756184900383500563053542788963524096370849719097767494267715937820819667638977218660056418678330048084851293042024895051136692153361024877349545429068071984026813947113385156744562040936961128177470678469084790648897064944977665753828688471559040025675780450867371881452143797415641863195489608197300605814674066102345653302140584382617737527222940494908483773278239818608650833100946924617069751147254803299623561506716897058072075858390284813740529235777952365902804050232749256670762286392465971219291891406986372150553821773310306204668265483173736765456349168793808334357934105347123771987689342296558916629277516198127503892517676312940439903119235364499611442845052738942486976009474155115073801315882795108116543279094409527484681954758920931931705108021764564323084126598574041110440160823272751016345872373286571735573066393856498047921848715454536920741156080686502448536363307315391830807886167823501561062888991281073289251420578835212134531035979848682679750477372730802791744898740881078099639710034408948569807028766874446093400311029718298733866063274286234464295964317856497752516540109578914620070918379123868729418308507685989108659183128963865266694285147090684097402159802053434217102433755865736380198281648294499039711013588245972804119162287976495702720869375894899985145126630906543314057766793158215535234687629682519776687463212428876896515784422554063912261876038485345025960525115703670981556524609618361196387909978585321474469384265413849119430063761895156481165367236321788229636491301804377795209060330906269412881031504197938326184050997846780423726696979735713269384199519264770641927717192573364485319194025025955866776082346992945544105343897631457051246023196787169822684997400972554056307708880219533975831473822625806446318737021217316216881492573865812432618097051843791248413638525045840084553947323125469066973647359811542164214763703428251873766681122327466658757232353470109098424897970272393611523579238200051300881116193965063984452195350787007527142752419924421749581375164679781312861501956905659328430658310815101462541684808808516196897701187975497997738920955551417887573270927649382859356996156298489613142237717630373912594318321370726990608117433782629236475955507760150826473128336109070409299429844479664943925247619897468345534641400061862865233220996774800662695967543654016631050103974783927624193510789460312905813252831383607666258545480315309289378663282305060976173006705079850506299591569870309960764031909415759263489092559355371426041425608413089347620586574138337221264479151951296011834287281088743871334932047369570926595946802048622024734650977868919603627389709302366033831235324642950482218866630096959785721678586489538949596208316791674798346363628265755668887530067184706596274305113351850302528322944161041358699007156011672879366875028645347483467243610755963394385838883815597855595796778493320641190718439832220589004367592360541694636476811428067425623432861334966195768422953697845498633586015642134445382815584519780443880297103374104127200133992132239283186739937960123835438770547559199690419998259277110265894627369391027381079690996259187674865935850692376215269192350469472712173249149285543978794036269801211147246366564304578676533781834746450786644657828427351714879570833574013735855068895933227555463180752354288728229643938115006746730593350475494328318956298331875847933856493139704285925587824656659749268858167792408000553861332171238905912882458800966730241163532461540283971110307012683161678381578359495309294127270987088144933786542813028368966951712410855380543552838284865212953271871115197291449393167668618704401499904905599102087579013647913237185567121770486327960487973028703436594298094222535721671041239758748291846958229375692237714336953148087772542213950854236016887319362486507253804009465291339429455621897092469393132860335876121485009488651684339002807618747373573653846066261690117755292236978809215589755181815352008893777103218648997787324778303513196057321339899258818605202477816135742116705799529727925624992183041768586832461226849533858913709915065641153021210977754926884655659911552118007662260775500878608903165805304264538730262646128743107792115999512037123986339684202618903594095348339000998411547233083574167162183224564298712032708337495852341012748908816648727000162258033330218344458449081768567554208534328701687471963496332790768657321568193331952174502077662552686304349577249591687460405623063259514789028835077980842517587416081795445314411718861665634517835921014026011353981349150345029759386704208073088417870934864868235883625765250349086692801234944915971714024213749869140417058955828855541645514307873475219735073146037667765816831636211895370569585636533447407873593376120791947377631917760003179075694733069991400281356846111978382540650054282893726670271216170247365557405335644740596796384312993617732177753594193288839971217961885767637312795677129895889525871269697360183581823406275082787508159952610459162078098417169598623828607493006048789242369582776497458805505441501146044073262627322249422715354541294445716267322673077285280282675870830047473819947955499914411855343884847259629422368630096294951382882359407388738200678084702426220291477547323488669423969927926359047015307663429192438622244183204467161354067221468150758097059954067807229229360289094126451647012176811959687772656920926006522893213691142805727599337435446551999228541874194428128120743046778773503345802042176479005903823622323255157643427541942645942679395159973210199512602361210198153378736427762560966729407119909756404521574941719000664905682116742483047352311609547761914231219072354370537143698721977733807046803391348492496737635531564463906948499967773093532405770294797183116789160913776435547613376818510098348017064728113615780159682802873466210426746300902301852551953896889769622029641951265466007241354102721570364442070729338001556542959441048731767072562329873993987246910023539191407388491173243835967969448304088672813506422317250170655752926463588878803362645288504127108830355314425498270291029884430739349333073544256376856047396110000257715847541656250953398524278037648875090143307234918248220534151267042655023155144459924990835627412045009816728564743169590206549213719688818381201349201299304718549268400494894681688866952787007492914097416648621817481479159240234841304680718576314937213717383923034585224130944239536462791684548895740470231901100612623319056433962530856432334362844407821244921306264725047355690253270248602219263421565935957272345652464619195160780822878102961747803778302905559864299056530422377178998797245417996184084777958609411015134010271453397103483830943223935792004333428909813179942400447597550148567445740794853623629160660184130288771384590093437985298005200182639425336373661794860080635815190120017151346604228145417560140706610186126624853702289645462255600117182063003727229391474451209674105397577815483983442022810854662023396163125201381320467813295046999537803777131309831081782843460458855961790252157381529950232895842491207259219874047112197931149284337174206888498170638056554307287216448333489650829322880099645109749363897946209653067268751121589753994245612908537221621161373306266126450707512533117774390150035674436443802428432166980839913372420089875299201099721180493785461080468214920990821149599170713760049461962706993776422720258286760612760363464928618157365651225551877493189265447747153401076471812132275997885766942865527635339574177360891828696655904046063791033373460565623273117511411125359698977276633268202679899758515688218445010501379727953251282851491547831998959289654528748953239755002803691697593965955135175209641420475380057471519795279767127455160335279785654360131938709649831757128537041187960110703276171441381397646880652196345066456730085305516842600075983394308504516280746652725697559055040130769038468355628563282163318297076771248904950741505570753013219238182568245970615190804355759154597152421665593725469500532494719392043901456649389827681768444885484356196256178741752239339936262627240787368794707678798291757914898125636460498348001482167859265779044608374150383637481961068771359264855028269587623837914108786730620230838911547929134852784701724032295879252815097677979046936214182174797575647276578057952908003798303277079842545468139727945131669020050896131519759201417654694816715953285201020282186080931502504232262308461886684969529050245938129668547284950926555980040156796912523025657597202935325140181962173193161195719305312265301691362815439666068992517618522020183553901359875801672061178966876812470149448586667590295111983004338750202607891733798652384364947242886913832031883428326875792846150815851311225864647900348902037375203800656020582771425934200763194733943440780479745187479619288182511317943724728311870164205513577636062698807461904280990754797984505547987826952922508568568214042495894476520712562804147351136275025174543549275123722902051873166445603111461489666990312078610440768153477384898978855971224218701025459703698028962698574669252367150595077137248527761165321031334533983627843533770505289234462767085753879227403340879096257839252410194051047563137569758256759126241586044861724943476568845769631026432900159533603784385429551177316249989441229568579898595827462899932178380861308529914989749836003400327410993885017109323125626717018209614533945115422027584175551060598580870729461668629408431373343477656775172589944166065485926387329494422538554034803233598465583862066134318006899027114392885484066916823749390422314223985747564471424218268871604239144678398855210434831730293167864417300759789476177643703213526762500683884180252182567140549172348357915855730134087384673454000138548629189453792850947919991900542764565130192713347797749244209100639404968697149072860893362484967919368656164446342171906694396437335353449419159220611613751180798500732797635057632045972961377369429307848340648793095123340204860987065359497232118450831572155620546171317754908040479596120810393259473068700669436646466844178012487155958318743331461435729482708056823637254224372174399757251687768351478441672309056767611217185809926365977776724149741133497600662813943631270209199616874392150143344624863855991547361933832872511838868297168673820748555808761896011774031899890247447021351030928800922816001147623078732979296993669512612748056408814329583416683535955183784456050472912737668263942046638893491995147505514513915780480905684998164459594840489315862951593031497256037818309502687264276751092523252234799182202995245359338290585695314496798361203200499832820949258764399089656714912705484083823835145201162465852500214389760325119943333923350861382278381951954144011124385396037582145559890853699154037979038233869515687709115937869207053539828285730087521204131186571276115469573596836187977323115291280892169074717572805290948696025298439950423522204159146321931113640160909636058564561040009114826252834891272647966446201201542652855201130640041963440543166522019902745666929819123982257883594631134414501731860541261316825724588649472954806437793059926271442631673249356016014797917735489472040689514463601439953598741505054482395756994304552775785507497281530851387846531326236510935329672797383110964750484226764211201426310743781107570879068191117285563786063655076793309503148227518127210139368508331806541209251481881897314999377681247645922625898876375121283335873767647101449858743289901704683789724852493974272209067589770901579447048977374063215890714251606342701125968924510889464884786451567378638985091659018034573262858159338984128115844900215013478406573259356051605141166199421683544900546065067957301523459317799466078510618447426105798708961123486418034612870056042444350556379179279556786764958300474230951400214080154217463831742900254715717559278875696174261115986621602835949075480417125613109270312821858974397712113764166048100963672554811332473324327747256571579324579996089121183157885829693040622480625798071053689816996191472000503814621463145981372376435966083500633550962405185007680993733581197404478344092245720807444086850279918298107775377285742706316847949183306764129552027116496314512198309895614308856858377400185277760061397930347909431543732498094998980451995776799221246788081708963202642115590479717672487706314681147785992014273403422275594790745548915403426064699453446982304590336416652463648879142647023670606672737217219688712695734567096091147207886000828948876597176021042915266360474769087867644185856571911505199727051528903129660689506508529470275231940518531135770393635832053377235767934910178338659498639396063742292272242059416593407970985260272701007157221627223034383774633803172024941805938369031237237073820673577198150662444474459144984965897759719188978900503163049630964195631178784015982400025707951421730029609243347564723704186141484255839701451106837859222896816965326573768862512731606581588132421999470643052154075830275233624348170758760918270512313505666945706410679981575349790886971497018632101164290493961597452253086670858861337130462237642753328514298367586236713617339753047702150434808512676828010880536560511154530280608640255776405238750070378128651030520785429746181730476641875957250062702469757210034990809986052343434317312665297823246593520894867463411737612519096631681548019031268852645998735462605533266949918440857500140198690258922225460630318396542156445292981322219625806022830904314102852852590594349468889625750526862668048655258813340519239797023188981786106891082514033876712415597041782972957845393066333481737672637044751942785900493348633734915824356566551618070030513462752484673167390604052428586848957276795783845916120421787069336576648967866672378536567276590823745156324574171877315191966109404284637735506255069176714908443319245117368870720901581625064417833401963114400238965719905863052525988166380758528856352552202797133809374638947458882848902902843075566185254348327705745152272071264844834698104269865358018091142964960547522750662169264328222902948174289743637014361386442479449484398376301765351361742638914390315460157341778547830740031230014384090645140486369383771597021509249002161483273319937886061262383174386332383197230869995490436430150891232023678426985761706012022613710313299675920164428199574959644358463000851881930619984636517158544657062681009600843610974791902448051682270972765299272677841269498879907235001137751458756798733853033802514545020506729118341678664632245132849963451641437601159716836420294241192890739752535281861594869204660116090580491554723536965586979902772546485999591916392884575190048558704076049215275887282890118213138992274025658290838331244312181478312054123617139129964418633805861553808021368178025047425771158681652529292131238912210031987205037267561799750488390968454332317236253338507507916501332333389548821550278101615734665163331698004306046795465323936933607146775121493108940962011123269690325198505413641289310010103883295928039709294311036000726440497100206515780434215786386550216648856273697815442389714297361805153062329101503896074601167811717756111593801804165046794295535540722051635275338767712979741637270251641683866213524572905246157765146452502443407990539692417252683993511162603706918937929019311986977225157184751728497434255420108321445188884417326742990972308777902210089954101457117423406896960078865231273036131843235068100190876527338791486987649062433024104379361796755636022857186170495627543912030879991555294208705006329271832630218133395164927550417767524913878872215961126185203638017841049396124679790927905553396709184639204921335607708675400332514845688950268411723752860226584997585700008814063731411936806271941472683706760878920912520811252002555349524004101271670155007510637989966790273451797654557766394954304059525065238958984583497973129343658990183129486348240980379969736961616018065511405214458956359761916835876556355652132951066309062908907382308982004318866485864197131674960145211479630658931252912174347685892603479003342400834635123231017731524013409762157274973254738368382432431718505315029934838683034581880903835334236700707868644850460326176094500475132394994303845545147359881865416133610032691396521476337492846373786226879121651267751221147816096216976109883876586413886168079778168761264164934565522011053771343983980061956176803055482030492307178009834056972606449718399080405852115421019933913983547096332467726422472143598880466161300045381804398700586414393927856810360521889265876555889745731262206149622471397317955812510985341314076151696760338876693481941431019491131951117957719615209444734839924088708522533688235876250781025348940020829402346338657133483211023400606300207740425999297487085329329479886806820645552579692961029947225446310232826075186736428561049397725583005793694314019665149922964609629805697894892769263668335588074608484901864154946414922428687166942749964865857847181405550229065383476950839827808152283651068218934828995440116315979276090695768358447172175853998560493501646794577434596774248835377819457686312935470273361241306541596772145840117513464830789614407098773773010461094614410919373446859853256195531649402591524280835644735643997899449044514151337106933587751552183830817220072764652009186485928485126266798985599189994276908735458205750116552246504614267803513256357883907083239109422456060817871627086905588851644049665925583389963375305747262890333738681381787298196723740673633897252245246367880282159742781524360328917650259890961166171699095046184633414367810450750723670835356482968693774575018415783465680702577549806721188597476909143206869104990311546693193170141289987267455280809956239963981428349556321440870205019694237253558792582782153499989632792570778688061569856351865504312814588628906090150730533143269708297491722091757656581815358920312236388286988198544872127713195593105877199384114525269290424875927695725993655587746181810291483135700836842974231600987059076845330935915471089254685088362662386375457984654285207489852464368739887088045057298428565931730152068814510589460167951362113639586691395528030305399520953868570575972595399808229133165063644958545411337406215445944663980895117355848446975445434156623760195195400543090659764816808388137841267193358432045083582383630189562878653464590638109278584013656917673500390460331413160550383259714277732749353036497251787083363673857812227110630898001179188146771987568914715291704328676948637294565188344439759803765845251822304439648155288202313110420022768278623772488613892498482002446209154997872552708365932250966736794024045102422686496719271139340689095736412773567178493502151785993645982965279032081812965172800766412816994167534259354683780852875168112856116628090258727352753337283252289882517641495647981933783265157637936207331792016510201878385339614721039514944745066897027419336031809240546907757765580576888369091124453461018134819161646622139849850413688344581294964790493554340166197013743062159247635506935461075116994612160778385637904384441499353102344726638723267867891073741125451038898476927504951804717538689312633856316813618664270348997599042729572045981414617687610745261906654006051399793169908585757646455904145896718396158385282946355250347578700187491165370408821680615374200505415138260711262905453783915131515630058357463818354178865336602797684260255791390081309193690491511550383553660175847397149886933711977418513172714840280786809778622239401602282693642990342004637812321332491908699203424292545753368214503330956674309809282284939142984405351199667650029390684962886986272525263946198688140330229853022275493615897290219609902388790975692874375128106467983235198015278507181086226321089855700465469813583089360797172977170158435338820682136681024083321557152873192756026988857380744036537916376614196456381977282591100440681215664255963481878853113757749003562081167756360308332496465841579911944813262543029120216345136644859875291446132719084950098227987863442016643758497913050920159484573538611356400631063710456164460892215065805738273957466074619213136998012744623511254643569308026868855549782174790242618140596419136263617540174053907567040076180529065357817394032980758038050622170705668208389354840248431550803344492213130283677908003233561308430409489344588076941850442221085525522815541038219750706910784822988604436271692429904071523567952634213635582432094134675977912864056555873198018804516253131847261209732173760378385586331588412621596409791836037341160111869032824119475248518615814124462237669852019937523282642969278070533341811995175838867568040897659168990401006200513098546300253975844762425602308598801509488455379466762561367713664606382271538465427936252761420462970665733837585064563406821005170242131041554283003319048305449099581307743866102296552013075876257360853530905052317047938036257700383098804228550085475308219860064672932774025939806447380181934171483590328971975116141614291420184844235644781082497498829289367246823891577950058613323458966361280032478796444436857665210386176344740376502977308906171486424776261846570031840919650802706056173249427671123916958931513864439262390633312235589429243655439571812493378145243868882193999975940654209646078483624454482794514685477406147822249692446989336436782664143191582997861841374779583041909605207156781330544189773462247723825176659572612314974288781445384656822467341520910637988563157544968318833081571756475994302709883019248280438107910759949875403956000659628738522215414760179009265349904989594345234396147330624522666678971862735668547591662776812302011794976433472574062525143470557939398764426469144206323159569995285307998147796977381992133553239601321558451251694674044063302697703647078239232199431165688552011412963917798356902352783789997174618560617321567265381281658998831354423213776862558406528517356432441279860611945773293341799572026982980813902397168654318599336128178600499958511779352604307278861640090196550964646812461337738626805984176148036596355217014679189585407245633518219423443332542349799798329175413864388151757224143342170814966565945315901677473197422386267994944481319090780906057421165741130941297693069637846049112029139718157641931086856344213051342347476073688275789630810698076286761915838509414517255688760357201628170495337240631381975611859926675925350800351732909936630793933011924499865584669145417656690712228965182188127577062675602132329265707189917291379994878530513129063599826759357713114119297042862597632653167709284486876189909699543824380249093070788697990724569987669385426799320229814062232003395717989599975722076703066858841402058479712992984390748921823803003412774674627113067241319584531559438466796533044607457634460927407264524582054100496107204740910642880975975075213222564885525704328625351331579987783994694114697095706745579815797778514350760829148768463229974162296201169767850325492015834329795288929351950846095349833483077771862772539834628557194992748667231991382050759042443560538101636609735293346273735673958252712369859531453945726399284967852628586342496077148208101843642395618585847000164401354957417677847923227073734816279123602227693558165350618433930136105224445845946494808657066552166402158494932832526600600148286384628983413967289300382961528529164070877374221472595072075216216810217585522998044194507950406709049357243429988055061603859205727677302470781368002897199951157778127287888064461004355609068045488111134099126543793645138443283161454113676211882437240229048392003083514136615039908104560059526680732245216208073615985051852506957360364981676237783892520341436996043775825752129604145496442807980501841645102766361740034837074579484657149987758785461514021473813905335066621495148325062585608237546960561842477450971111360086039903946425578202671741945531928931962689388968744176024383802346605704994937772215017249428280771387572451407002184752200004049255096922286639635721853513875168156409116909096438540208945578507740107636764601333774009914201264887034986996306315596121823150940508202649471431863709086214127237298219095702829946743998358197856561958813573565478313183604231903720882991777092191362170700039301311079687544357152726540586278460848554124063509903534971552731967294484638918756365734860274803755972725482043267782112515825691597380999907811404945006495884618807494283584005170080549944764822575677494326213942767295616659202315755718816015277999659716740166598198478523005487491401500449725620023384645280086380810880018973453659258936343288004408443219903386531304524748901530375142817798407945987950551047509177884847832202794057085033014308729021542530479884705675309470782103132904243640090162172190401433970085697207086828156389940842460011831364125254078809130781190284179769137439953216131805527029611392392023524930286097509103598034783354557496102072272989790395210824428600160834396897815712789786990208715578121663583013799566714056078333536462688737488639642458457241181628362953494195071050838769180439603540117647599832274634861957668631367922642676859414508950201588268171037246996359053807777772444431207746670149482372349960003388030227490851757946496336443356126892915770249238135711805970297129726950410690447717484453705546474689025367019034820870585902798108966104355943610995034583819388801294927986834159904145146256106887509118214863845489699435721384491372784557598703217460073220172973311450129721495764301341960825976346911283171309501474890186349974632313445177899047214910949883165847898867605262515026490254131572320300378382575819632933254855146902958113290516826441230210352373642877213551794517518210826648462621108172339907112994813343770516969434388138555869793224841712055847393192304834841771468631826395018083263189128910095865678936344942523057847431340139871876529810799316458324638403641485847498073389596545161449170029428538385630093065078605600304224215300140729135735603989413669037713988871425833859201221444976069528652719896295122773396935117283355652276598908210408666248252929480393910530872995103648361701851571025913879126303002231987334473233722756631231938963872622864725657615672984167194215015973715447135401541703691416318437811485758229136139690095582938373504802597571887724974446489585154964704886162878285486669127613614059503155692727719602044416662056131925811406230354119567093447590926127771806628956064388947144318515058776273430515962006606375255628467866537559664614918491816294038392504164086637288514673315456095443825965788351538954779369301337527267425029759276474477151171576897823975158587404202714959520278515107412788811999192264431233008031277050365697574092869494229069094807106053504280774654871648324417971430470814213735496267769324587053411132444514904181509022823129906935554090374214395044211251574405439114633290345638512385063628376868793547654533279350231959349421479561866547913955252983025183855626151155133010377887549943225041262086555253509973104399605785088444876051670104483767560826090103650572037095302366505649560600938337441192014662806508960380818610237088775697326306603821275513565154602349821540818005487720660484260261851161530691816883925727269624521843580836285462912046197763717838180458847625436654694746284477927851129287147994818652908693874410269283935128692237631582476856804036041795392320636417310745426510009626632673891032255720277190992477207326215498458853657727563499188665098008761926882344622158634835341531719000019307728762270463502350885176800415390452932526019642614801552496241016125707746785865304872898756109706893676291848014592521833799345733062449001149022525373745043450849575898742466804081353948369816054049684227963456451802828309273766731418469976872427078806545261223944533845355073536160922828279859967031622569328614768467744729058410826159029301978942289766287789276385556764975530164475930048033268097645055962272160277134509091423972203978884095706117920188648346306925879596388507228302951598604513427471479865609681433247842159845014052890262162760288140178738475588113532887624007136436555272890216698671700916556224127480560689471725351253132345131142821352661805164824263215192909754532537817293657642616664686326048078967724650586281643134282602765828191207867775992570452144439615278993204852747127012400355962180489412170313852322003975675161910753493259086916718632872691936266599330017893590338381264899111697027744492453190295571668907182117414261227325681926365887061286995925506414549738598688985273333798543519660545883761835588509982360311244170331074710274846932679697855509143499427621501500337370626124218244068653476679046586389780256781968135254086934093313179965022005337335732920579616408921582223830853212330205049200013928065388532478849083014468855065406908311980411872536928040590698070894537285454788721655107016763794756434588908714084096035723091627447587557572786382467099423813729830567146177180732270610493098048876392861148076596622854437984730069343442689258267366330165312246159105463756641881534916641476359749649608323574875481999667194756223821539575375448194234888425489554922463165979901559107890573231184670964432214654969398526953457003486615681642933152479785893882891629356084011018605247053218857880215339104136901067680501911178912763417897720074283993575115422039305834908512867994248991788760996335030428945238923579614377628594130112506264675010134641130369357943481444033431742809279190201906265699894896636911030418858962482681462704196664307745578443755700792114692582988044861939329647864776270009747404356067301285855357562052092047249456817112711703906674090195902957862882350961150339608900281179119851872516423697176116436793272626315518351875733885678991684220149165263151185319059952032688511477866112223604489803310060346099778095244972783476363339191652468719769172567167321818681032399827150014080803202434223879959925535124881140092138010082332074829495587759217239117880122805644656288429359086918253838318759139668968070625583089848834734000856273556221678827928087446490242617604753457664393278214951909937680799004181311070429922853580514628581933094996651502927341842960044629414445502134739075399516717466517792458787425750580642941520830242188614889847936045779285139060279384099468947213997640502774420946486000838975360604208595162089069951467226653827125115862123057767398481887896029775678245643275637443762278902762875092708346273318471131417669804190102947161546823564535215608193350170264109675731977397207546288925954872240497280897215717924152404966608414797420905059387191390324828745598460036846778566493639022754525576249739453997767683357931601402490512242611471194870994779591060380990954416682135649792329467524462155931067676092172510096448454590704544224252308072261536650251875536635592813260267629883797306032817407475686173549053066765523830342681214893311877268103137369654041710744991257130587615310494883692257262573810100841688418862218114087760630587975367523725313811836962549257035462608111490055771536019391829900728732195137345341290426301793443417802305613847019099798823357626066955260090629412675429675907872264953818819108483310092643491606517205537560879053468837113987499295771287273006219461516307065132768838199206063879944927099245833197465312359497038650292241570591278614481094447716711269273449540066792988218356635421022768003794506584365978550144179967229139883475468182360346241996024560317414436607518720961927844197807661678939340540839697166430414333289711973614813836294934773620555375072534018346329873192484596947176129519036923317333902695527151843450433823884337621055839571710444192078201455935420374451828446325731703069311998009593097582755818865017971836247632959346756252110149522060876261431760743926077741784326134571823772351657205214836125180088952995169238711595119976527127315483922702726524508501014106048385831918705326058726048235009638487255965638937198643170881304301508990453430510475331399361698321000469697135047188121316642045058527490782990568392074477227375298327676269357557957262354352081442073839191820920594513457699561237390571209683626051282807256593989338821602634679004902215819629326159028057873742619178156653720169611083973472555195480758069109959434122945872655570598606329280948980046544060461305238058518252529458883666353945371075075757538881920090083380032991367606909768902228273798269707103154387172289128278570386001370659088220955427184680066139314708076052001424598419252338028793187036083718205714826955943402561466251515176825127476815401514057117632807012074847861065931792123389012419506041170807325114994626835819223585101434747690800676182817686081987398774183255506888580191056481738696070186891527948128691203845096987719838503694446888120720333439533613547263289896961854840223884551678486627557040373804917835852595740885823903972034181324643303085701569692237826776491024949272576579910718622037463625795956501509315614237885940453086409586093630555071459758910666573048464175155040549862367080898227617846688260267548112095352198351449480184702911866648696236001375465613551819575630261190586646822151515826919455850459833335852838672503592360693497059624367091712328801589654680906787068866279013330738215263911077240985542174990124580934174824022017363340374204426697718359333990869067587599454905979213617761030396819833290170893433503342472883397078678399357107091827316279032009490626959090385615484058616304010154406339112440670868067824471000250365520178293071315915001873039856346744492199555862014945814258826263949701265873670831581311215339350864394598133897956817172666859344861274183389217369571357264194204679977062113598145416654632879495173062691128538645726154341106382685477825809470351381495043032750364868356436886426624014101094732805417155741952982681594514524207144753316260242250763679757981453840898699748689291729357766736965891021322516652588006864100435434864328887043021287507818590855797716224871716286389009498975483008710552446227251877917747215311247808030067626714969682377303359042368904040170593662668020929931536928918436985164253080152491442216107121179080138147341814052013305420143108671154550359136691040234214215655242490209524686637436959917229274494142509472457644429898724833575734625367745046428573172924407175846244410059562788813374658455362332380341615501300370313462072116965989721567503817044765496867295985878709982462180329341532428152601705425781830469065525179684272511686590258687800646503849592362979225912114308772477089156113298409248895724249038856762741907571337549354595248702351628478773779652177707735287143275464555425410782720510729002682933934010978487865221375516558585118012789156876079005883437261047727597577881712164450822149039677946373786743611795719321483495725487969610478087546982717138654059233398532309284664312075087119517864610741034484867385581045713712232771906806141722389681976066781044100015090660904487110237078272741548120244533593015167080894088844319223293999899891156226215701636792960828672073507684474034046895683254888296672839021394071125529269167761298501461278577063888435503373632506788605895543981690235250118009794263383093432933893852399601320272736209083347562354404391684107689528344690030748737614222307881171589657091738436718574175536567004834147882122900430478857172299812519661830496504541212044375268066940097455907520727341848717355543217045805912927301119621411063793501230871899464009143096471168466429350503614052404764220893800158903640091762200370002213080755631696430697368763181093475056293421038920775794528906288221342315615430015321637340490287299327068142855222056740766237374761397028817569109521660827238601233313740595865064815364992735123145191311046172098495992045268100761884486670426058080304563051989123781466820462310570023827842521263003074770057913335904489217093582437312268009757509420881058373916182809321743786471035133104366008062087519185957665837547484255205797748788855490476334572203133333630667532225716856930598490173853230078945853411931226354230934874723985380288820568451700948171019675170831337332944259034315699770739188836182556352018429670796557411038729671157067432679190438707723108839286174021776980527511705634914404323152015319319677823402747059470768660703779683642274995452057337343524343674826886659277601694180556907772443005013918021435789804192840952645999724683295981670679943713158002094786089713823450989955310512445736232766045848691598679564277854260309873585082038627853830724873929059605547872414707273850810149025827167712011455556658917317142804472590839332782408933960475470505480045403781116281613997816932974151788054937807991368336547144668951354753829238587239578048090718362833573118696391720737502757660883896134207728635319741822652480608244049702485837061399161622666271271785582705318327517087256742677804628352568228020276448412192652565914075750701419663701057282543148426399870213274981153178293997960921212113704994529793979268437868951933065360751442640442971609238335805565178097716708387289646768438963790013954156314625737789553771787662337714277910751225156499454401199039747608277451172919331507986443908931672852881312540720855723957500738893617906797178197869664320541727428914635518267380691755451182987965205531804669426673791084897557330984205680513790068225535868761538694571198776040974268092500985962832846867527593542376513572199899051528110460596196328289804798457122513487975837549154547388434510332574202301345932856735511997520098791592256586611634398946591934689127697724838171077320538020052227974359537380892135389443304581009735879523485705674183331390145967511905118014957185763634139605407151198241232015481413762214624883713109825181924197569032637288053053638289252356149094957631385157929274554244550522067544479593801664083565270034308856570148382715256422406006100471221528297372388058139982275373417929849981827110546011195924212292221162928130656582600047052662421690565063951886445409918115390567927024295764143831679920796677602715641246319645097958839611184825515619215259012965923791046867483770792887498767796081938417019185557453141891612155943170408852832534830809488240326997965531566601682369198867111897659747360058621797198751041013169912337051071236964634032125756054757435627969467130058838579901811082149832362319555173565363422961290194062018260377818589844761675812117095570847104640111811123165050549006578178740025933387168971369665890825974833256952813309174614464024065341927406540485761287142746376871677846319440770544923376936143757708510992809929986826758599217655596791811808961117897756485146382406917497017188883361415032094195363448883736475497341760727350056296401028509886321388940109058701319031282219959533744385050521851262728773354012972236696084376370600011620282487430812611053553805688352685147038141917156346035009106720514631471793179856827854458950403133904099830351977731008989829675538058288280906878866593969863263143504334329872368482468657582219499958642146586855512273638265171822222554648405774454879893011953806090563037633910847856446291136156003301348137103270589271780107692921560558957422722703060304238959510509425438632784731507047840727072454240528045736713028922935486837118704792461795251293801462242747017198756820499183274079845560404406131976663234204989588049295174757924980072672568653660611945038771086259041032468144981615007847442283710431846610090071434725520763944140937300856882537447325166817658591096791505630542626773339414359588234465054053739625817780094309881843700512660436315885337223167580700609715883041558206256061204659688780992364762191000218315107734659711651681346189820040981571887689076885788411656621788552986123208319681049748690519867043502420610715568676748016869539810736385578949270764387546024073720333164951865852946710182210676304330170750707309737521969722311280308787424236562482864349781149291451664450381337444230280910673427637039930689245500381061466272561210546309598749172133060317666926036297555248216611277657392840560268511228231935252141583199909368056047635690124944028203465772480945863949428540955882589949431151683107577105711374206117049781952942215646466054080475684304274286791439168336799830572403478723463585729415299436806303789128321164570742406789393432008068623595561272620843212688878964918383108017479919372213723661491761470894356474677286745658597718738962641024883769831557709791837689728079996406132335745235948912999014984420709382689560757470138980735163637120176788622723863309497766905541238331815156344429384149698071044765143255807306829447623162534999986304481042329472526775548192743966499849499299966940383283506983699731031565652456370880865345105301875911402329982380436149549680463956843638896808517558500291655379914869567480505491931851294529053194290926372812540245204132247413487268271346235881492630185259683287990085121787978645746077041715788046281248757098962260811734679693049674987594093855390324833415466362307003874916026131672984637877562777505385053037244711969067636888791745513662257607314137876613625725585752387175232668405539822604498142228178221733053902225973470607713392785814400685859412553725889680637350144878066081931228589157394046878801227675044842991826051235418668208266219499467759699189508147731815913206005844967573544764916299757521784435619006255044321318174484083067501128010406288637788316493513582850352296875569610277375564520525648439999522242471074442158232242481230162700149549985621030559128840986627712505120881301436016979483488580238257501889651086041066488860652239009413992225621053455009390061476959012719351510059261555760849775734128370623425483753271981268148970816454309206899358555565643774983117114737290923028073457158316631196623235419414872728137543382620798154098051700745366584860547568403663708527312263144860751715939760808837159726490529994029668674355418779926960024630144280395398085675547595250641007541354904522343047305026364985108973734490853753122952775151842117905691705644683860659381617722242280759641635517942803809757251050217383627174490102372358683781089454858254863358495702439741322158015714074975920525550491482689062997062163668339675836078699056170988358256842370195620024080887469587652307784668696650838619962411074909764049530800677291462897948148376743518305443511679756196129663791607051144862643172192465523796855358150261849364234276757030909838067434368113804362345407228161281835153168705554609071302761168555230745151771610085687282740458299661149934899915885674807076876565532970333852681266622071129467736370420681913332613284251740318691040344655238698462286323690985711584562980514912688543222686820234521636743808146769572186789686445712984144060046267271668086651633832146425792557455622817362467826295551009815168198657925000367049347711018846980689867046503988285821354559509301737491321970821619713520305568689213601787867188403959729566600053798014376309854092880580351365707984833266528340850820086337979751562375241071244757170187046586451448978434429489668742906863008236409723963647065319105901698182563383903079563139344857649494314444963238827068577820358700671931981724942685256857795944067830728659461938486154916906025320934282561772234908679915045144086835926585253237059569482605995992729217629986132053814940253550262253369380722332391123281799227170834462478173321146981951176652442647235001373482696148243044376531581457349868915135946832947400667703437428746843153023722979795017847467086895697169007461620147724369489550764911661491833584148258905581559296545344821074562395807266959712439956373438012510001690922488473433932769653687749043011156658120750326261439850717047042761790796724061487932308730786174092091290186642398102994110036903736464892928147435642722123273355950408477351786886197549906649515281609666750632352872167413085362104294459889772157446129858637160305056307337616687689773119217117163293381378742569796943632656596708483025406735101398178120626407137883001043518754823464523203612807406616337570464614470792421587283684170486292212178615205603054962710338369259908625402786010964696472947034213349907540935703423650669306814867584884413041846665440120185987944086091830989198581741432455557687747075426599874997805841076449202149628927881850327841205591952268556864815989523897476752680406180018040232876806642337794123856730149775135073093469398603583518713294853482801436379655537622735953320072438883111373806459777827478027080809293650249605056000832814836094952290720896862912447196339348979223224517733308153664590275251436705094248883174904095238463026708109644622875182840228675854596092595385194511739676850704698525189213560950212196956124065205921044002648481837821101824833143744084454657684412346150522519057328571334841774667223001350661116228527967756130826713579638920780851893574726372916636603932409443741391246013092261422687873725026887862781086581637655039252984985029080503978003246337263740177660507959851741984387999777207823575109075558922359336331863660070905312127482591856006720844915042233489365358573678064392648491707149084447131290832708355814386900613028876606840111256087251789990027598794229838127562746351083054561411870051956090422690897212469473434623858093080083152237524103080045751615224545341226343930669786433334236983011611643800449092734989363901642059218785708573472151285967821253655227942097779574177204511901461826527010999950869904078909900510877241874845837857090725588276880337555576857176655970927935862955505050969964104215252151010827672610158523130108662428128478258230816139413720292212310331756568135677760629519335085993633632166431394538539971301849464948516535146420051227160292418731381284759675777435631702009670900034069022091856615230993778471476360893089577592856481847425879651701391745245838903912474669588614538668705150098633373026006915278375848750922578262458974957237446255516759972989053777837559656535635058803712034941532305960318035708314744459067643397245403503432276111293784688126632803147215548168005090234360387329274673802215734251830108832634638602875924013587553419646965346173446772167644938688201595031144791093857218231375942208146675944219919745899269237818273064704675269028180955491908430533100731507517469905469173876979070394452849974644650858648155220128294763758158578658979472250352392148058698395447666679306897436427811751337963839918486216157371323684879843026039283784247463889227198313040758026500419761562321195064532594304712204246582865232741500926474357578652862602388524491826302905041130077446242183525177277834055848301461766252777784704795505859077920776299246273892363705782042877226263975828734860540434701531414996438305678402527013203155880297919314699091548502202123985174924315077732630383901384866054140374593421332662048735343897035169658152277653726021479576893452080444055481560706099902087656426490892963018221092189255304170229763300411807655322203206958995681010003350573826465669661277431215422206430270608492448900316845628192831375831063576187520462943186861134280751959252144660500965374169847041592225677247011332563649887017088851826976340905047117490296584119942307919457505021479889620947403029856432262917622365564254253708490661306368717760428025933284014010778247928209259833373952997778193299594868597064751033965237469539826063869841597072316345195531072958890354708297710523971418906130588919762449878172677608211137570107102770810028983266095462290818184551913890784428934173050595537317160077260141095144783002758194611386869709285167038220613914214026961269060086872066839845168947669667642460401435708967424647462141103039121296554470469636027284727788156411314548358545091134868522855711865921137778286369113383613048394415778733779631616760615711054118700653975409709877881079956504405260357060651902688122903462498047697686954692266856436885129322100419821856958264519206183843722043442515044025977470337648447485401031627082038854312545903314506990061840540580413021975711182028603533454629198189516814798454560832020366239031665866242682033203140957097178693829991545246942207760174042453522094803025129744225314332183826122223243291657705005000853351151179979741276267619446329197966074394302339684704711858101869065959148771660128168357142565804578066911499752927614850820956915722588361787102804651624345889462927422434660613158411064225555099773227311859312946129217178331590345494043920774493657528472937777931264754102880112236673605140786852721168518756812083548291464722458572295392402065632804280979238321939369611326748622623366879463610441981241336393292876676406470890896721606433355076132645976175729045065312944807593982679399328361988864886037231996416637265435293476661450172154194128761691257010827834207145598877489188318681185589315712899447601355235153315065400115922021794211888222574828322144690160838378610356429068253411490014193382619149145651047083495866591911052439971477295445805283567768354757343171913626572111681381512983227424727160008950626242568358619431514818372856475599143186904962220453153494211042064820620699974398380046638442021677794337821414273809803194680296126928117528164929783661860850321845619206597602296651461208165178983292316901493867346035095591218424198788919158349107016993075089273966166347789067220259974817434956888181766775041955299179165469034041683068684019444944055974905991637178140079938103391375659728459861984759855861797212836085195095421426237524475015188997889166374273703164216867386976604354382173333975725749984580489756443155926388759018963950572022148737007980582188049937523368491558557162927287235906681473995131337267993469204965271045021917286868312977697544782928588705488589208248576276084512046088629267326910768455090120059369718211627173752136324683349137726321746045729885366358192590218762228162217608810647968284578602800358833203188832911861426788465110407694339557362372937542946698177580411653493220185581983984265905224239321446235562385553707997881646682007363333141931466414213825339142585644613852822537425190799033744880362908974829510850720271161924098092073529074423141156951445530122170318547584492849091819354249481018371240848467596216046542856813380516964526172631543845355739226498802221157824028817259378686264525504597833395123480965835238686719893641444538457002490855262099421435514221546325065018966174295678370508819389172426492826182790100473733726450804408874448031335950396110018647547211924557863039786659544363831263188559606885046889164640673418510949517246189282647773555587563764885950149324077515273048504836799515272380158518518359507224634766127459300034652746247356363419633556163201570778945149133206847640819334589220687188230409197239232166819835083469739262169775252704443841176469673217412642765636947065553993553332692754485938229495111310022540878864671825461123110834210973752469592485990259098019372563985275635687944833307262570213775584613554151977773101367824651934987180416625502553716200819824745455987378890740661103711058765602619997997717523805259545748072116451068987405007532233399908776938615906574140554633784960438413755589785748578225878334762621240515865724720261504731257953528349295162042448362912207938997150086800887374194146780309314784792149309594974298739073319921581635220091592655807113261068373535588270688050890953683519281450271583831560247879410956186360564135133553678266905966668938521417841779729443197862116223204139971441679255598610836125152069952605798038709886699051489734237726933604300763988680097229344656111612588700858983559616088318911127583554800677071716260113934970023267972414518164562438864537963711783700007157355753195970535851028976149471755597982005902797097103496692047216633399741525817121453751341997490910508319179607896371245299422658930223305467712748033849839326878743886076849430320435022732042547711368671745871476471491710671934962727273644725240215638222686780304499495049257036372694314728462603469482060740914012153168188143900630443952175716680822080178187315084023075352626185007412013337777764854499240037027671728028880623159784964694731292825577052340669860440731700480432611964238344780734570323723975646187574722076313871683925835072163037254604669013378654550027746235254705311314950027536929395745930173302069818403801465152143058022724356906377027672681024530019657735415774991218959124238056955698049084386131507552885270137956305017769840262841798725121428576551845196145221959218538988602707141754785476656676700295751082552046046552116371301317416647219901194496650070187674561075504468721047016345427442314606225326829261554777154779966049315148897270396606375210795141648803726559383377445549860624199617702476687154152005298367086363185953173437671259659532254155452926374874324224598323992203837230221307495850256235856958100468280016217086852356003601951161447623759967484239074817427905750741401133793630289798478660357739154567911563363030516230107819909719757756438856700643884449537003311627561610903372181351633701420103599855930308157071732189132465903920726170566986940514428768681438753221877885909038474280471814123327420012180296270749616854096330384919082746145438551758980188140122052429696095543161466367171747430002738423756546422121662421993859070940611287139729059780837853932563543633331128477885500526933039928240024465914016368151692255684053397478179169896260091984082816556477687273491603182705253746033406284260850879392187275063854895033880380828027087517449600219769604058943708519626613989302763051590785265289259762056554209549915452216219294595913832571001460102826865138548253792301223003154955777865711189595792937879232203590359032044439135402602339057216870178375379025558351740512048897026950017391232647453883117435661535630663233177742281308226622242948538144650864614612203018769177864904395245434853106028871437834333080040850262656389311911306600503797680447021205612670853154845542884526056422419226938606468205611745166571856080266608492828816225430079082155457961448330342075229672797633107199911072803290643575780590669466186808060622983010026362241427381823986229333610286969537910384674022318272633076622110492951507128764168621861896483025442606297792257645874909857994013948574509962759056014528165001953867050115989504022902766834607636405490665407990346062829686742009485391777020788853699620148520086702219131206764616495024340073718984480282938792465364011715080087834950443701775164374043379728515642064605925650456585184527914706555779723362141614752682824096677839913965744101019606079197231866399029661361086874167229371043159262765974595477868134133209758674552938876969075762220652596285329726032691762030665117811434222521545814577305343723755136432297790731440560369181591663377779004221995170058301988460549188940558817114662021884478752962608085007367223484424158181957097404939861463266237520641194481211176923509448660933985369933205935885371714781596819205600568479573610136365793675132711577741817051739540685581659494063194456976505664247910106125019692862878599244753418204633341228024675793709304326626818927102343371353578217928228113057588825077264477244606704317779971094339333271794692929064856344604874933048762488670047881593941989941606863174315470834552359314681395548471605817525079222363894166695075434760837450416620508773978390645230736535328441389374591528186731509158804711566541582323934428591944469628871057963283307252257454862928958545179130312389941366313408348901387380562590548281171343820001589860579112552193747502279827040441343839298444995950736350802874044443889998318298607070094337283630039156516173580665056245801305910713550344648068319611533021640814983035615373532022954089829672609081334661984470864069738138786444928174411827157018117336206988122396707239607500912130632722335383143455825587288160443496419537400689223616715091247285625919188745346712285073308591769666576586604526407672867386119297270324232612020803399734313464762935568085811662122219941152764836372365993459070274068626419367678949797143085850555583931575614593685342817210883589365206375415408186765306231709621846614630765464683695476498250516100673205052193828119673320240837128254035042289891900052727841649585244946380098566667272197255074171098409297660688657283367118111388955728863021511320891109928986897291303271163928338167144116244297158981088268388069536731326457207093247832540472832141220901856822322929963087767941506045502947703888277305550382861980104514127518218844162603119281271098089079123859322002659284201645041350594530284503323408151343280898268384180481668765315113678276110129051478538237829093460204451119929797715115148702508517987814910852960567113345218598751326630520180115293403934696630639778800610733769578630574585897401568357805125438304871152208672122555868723975099156594762993502353203196653726179985571812348562264512643233293647368223153038511421722528829768401987213793278689676891373472006905229710244370311071717747347475508121608075359366029179687390376894789710660393975085805212956945412223840745589187074237742824269295918816138979344703046981135337661720839347178452108089498578356182608882140160923273785845270746789820716726990329007731250580934898709824195222165155476549934743749837156365843615236374663522934694151884048797774556924236308649280330689514257955543784931297915327447322785558654179459246116375258456982328439441792621754024448066334662810890890885151470930055576771209627212625129116811013317656995451164253628223587377221814884562591986221237279055460440772306583176392682194827529709464235983879809439400635808675072016635363255143728383922850800940249023938006083294884789022030102835383680739293561071856015814434415376182714148120727813736566395901574024656268850041625065650340909713595481461714981507848390972698053424280606624269498458420922286237587704219563272530977252600886496311731261076474030113057619058250719580923608030002665883159641606022777148047131328073152814633429854999976365645681400038354552003179150914754597646153402541732571984087456702430070378350278860336437322814392455087953623710575912147716914407141791913937437307767894538442459080655988892393378560954025542225604665022528221491163523128780715600034658001262454892806241071432111612006788875127935865593337308598640848415473604140517992176734492011500398440516113124553169237080747969392325026683406967177499261345478831307459616967550998571253024968511274334687161332906475697252583855005739505521623811079474328225179985366875530517135389288626092043368358044009193049457544410346889995239369101937674284412525496440818686656892410277002605905682736016519297833192959436171243246559073225389721259495068169226914672397460454105965893309480094634100375485402930772498125383732558503026724134795662961774969659469938468927756585569559633378755269820945552651952862480078177566432587129496911619094535194014179761072854303079310609721661073486388145907690087013370976207302961356582082925836826748736741395409375019202070409416753435736255881073215318922374070107557831835438291372366967614890112365969067133846527262259929459710525937052610624800268317155859408931799050067165929690367187220288781064877067111139072978891080423263808656487267118349867483941689579002164022012578867328802181784440285453962106459354709838285716859189656594425060309457549075421644726627828870175068725940146932118910843073945781516759615491172379132079065574159507784672544783077988624162662042021194327735802606267151909601471894364556746448503751568123549265133377066891018965564502594318766303674883680443621264280310566127141085081606642898984801052586712002292706622361963579982804943195101415728122892971647640007595828545458169345620379837816612828266431509855686245433570713081760185307389239200629254076540560603229899975457930330234605942546194873590985850230521247164188989521473891361690592292816520442489918241654583540500008263611168883784778367693686852899330873486017778006636049262135892051692192437615073231468160152389002881201380438325218904631968188516471831973363067721426187928919831221963986036379749354498979362509342245917155359330815872174720532002052410544133225484469237850303341501654991950570318695252870706841364229830181772979135873788159508478592261290139225572667909083644559271169961643272862141885141175548809446676916580748398528353437309358275122076629725338939805236128861976026582893455310954996116085597726166522177749440576983381332731665841184854691784400968028699932710860752119906088429737463438981940358604385035691250643526374987345902077365739774674689678447827943298215359418290826710561864633662672387934272675833755288721571290457824499794785249821144701277109810192611562861785552374053258109765172513933435915499079745113318561634404827760126477318410246754550663775447664465183373534600494128335131906846420983820816332866541992519002584023974330781771768447057017564907920215604132330603481847112000110926023715373799379808268141011021435925374607025524860261105943277239155028012904895539416524478416141703731302729041600173946988597914476724379462372188262733092965155808815926300741955375490086197558378032200589754320950691951748307414719068454496432942194768934001073073616079195717331007920073296805831162811584633548190798826986419203830007673586929760357134141606329838999850425636637566874733018605163553613876569117078966439279179258258791276643799616644479556194019792423169673180529090827544482089108467655664561425720472423865805873198602731272164815242074606597749937971363962143008019260639210105918699866729323936372150438709955375843765835747111545556734213053843695126549872894725314873888227149553257481328310801736020150024967820426462875903005760843072481484525701497466493711659265475260377721754528005916992096859500657405972526586697672783056455175384800558830372206213169913459386199372669220092981233323962043405766062842993430930976763846364466637655810119164502056347172827061008389692458742494809722853053230716384134896913679514684784834805704591188442836420826270547694392546538341286617706585812615516739526810279760077419827129418968078033248585925695935699484307220418158467742746150780113141648128949265959923154898618728925424307393163912323321571965948226658195491887798698613303313486089823542793708501400788525578669243218747172041474109154128432538629209545758793395650672991933450991297627193619446956815661421818759554631394388805315506726792378627828924202469391328883129282077945048812325208935896931333632738876803660409579904002523526088742556974067757005235631149221479295281507324883718440986683118118606650095503908751257177042936001633891375665915728698793077426821392076387708921477866096875142812852183224807561697890915550919643034013841408774268021803905935560238475172451323231713961380142974879805681649533578870982840097524692442910902886135294468529115065431800367108033307398944214008915804647551417126214985244493394653015324725027135940012741042279434547993741096455781077781180127770441756365909880911294889871317223544677206117532768625662834930718211991824702025025889827919448198528065747930223235738075022899973122348106078918733571605396359232315075317606909985362579987734330814685283652004536833000178141499885663109070609180465519260808515727039616082847303037170318386199032265957798971186133755135872940921105558136317007230443747210512479236722358658703939844232930691456727920827727724824673901370827491577887337541818578065370941740204080751061667085718758407916062009702196354802314723805043663003850434938039652347086934345149583457098627235677995506047069064000020205768332056994922711009841702637260213579390746641269752478829819061234209158484460749614161291870841978894821233174616677240812639113853067767482563180754849679203373809596284470329374974410619218824209247038000282498942385641747517404414094500786510649991297270281368245603601345414644266498307458981613783883386590657363460649451932412470962044850857824403100864447442112805146219976834835334124141730904006813526448578719231949861911586691362638384080713729754672525278734516001356725743601898563477618026017629247548401363280380981015157410958272970472769826276479865814648756804653209768667603366145280297923243074737685624722306633955291944072840686050238933737694517193766319262272155073851525655417244264837270847709836932010984907473845701427475068411903054768264070016651040987234974828593292192093956955707945059866373016203705476335375016846692277967982706114357058563832041741115688732103918139238864841078278891876638958975508410106646732254577874032177759836812779650629017762239854191466149050065662702588649072809921985284343907466022703418564224158995998686987627187291433531830161322336979888432379223726247423571546463543260643130008551580849526760953465189455904429937735558315415112590441499364873798330727197999125561652579301025375969180820026743448858752239503393043068732056433637357126781061210483388740103000455284565511819818997632025713723718924877159084682468857086128673737444308788297533146209556392909443477499693499727071378195753666017389327906267891828376278018418968440759991866013437988326468660554198867602060818666112704275278521959330125792805220064097578908478863412248431303457661810404406500580122985253300091346058725708790409755170195326485214343737690101908220844368473968077115028793894952938697865960446375598144981919624960625740331954059425333360846014424952065459885883682217320286265910611770875676866063684304890267009396687144139160891182784216236044860486309828084931706568718289439615676691880618256303920566757233468215032110536740473852332019089564479725443196689713983769261330957224737056227936400113442815329487963752931961482101827197220095062412386942368917435843477378891082139340543945489316411885062654859490463635704144079872060614392116267914707948987072700630770785896484413799596308721389930093544664448072116695034214203608936849696056216031717780752135518235313344141312632750106847074311746966951865976189594959216197326104624425328699073043356467972762119699831032464620285184149563503069502385108133573403512102932641262967528895690584464216505881064064004756935959320340008706160127690458433782146436762655088585311658865351306064537898488628513320939619829059684149549594916951375173953084715287235542213980508269440745652256387271276066404270550135500555365957397966156996124743012287557598826133344432579273115263449269979425809567572398068283566387294495053118429241503742274731982240011691493573913230293010834989113189649917371490552902104907688663343363429744224592631843036126337227740835174277220845641190552522485436441410814512941739726538667348574574488233578411267095297540539853718684027799949984568571461971995336686302472557172357538663969594954915043418366544470582676093196687550341085376173080058900212679749973359232724534399829944876561809585825317575824870800539702933740448019962540188398998799981451794680997479691629937980669703317567049020709736301194489658902745445056621887481730564240713062381937480290063770144368849667144521229861228486971308430113767736184465103615981536462379935153943300851144353099743145205975310329575366776897001681987931512637746377203053386397861769011455793924440106608324893637921810266777604816090368705628452227190292475592326460499289331837598697862916275439263078970527494016264064326472651776550472256382474356393834688842150688099176498470485160321405469711548303428877402479162754031484633531148092299917044941183027277109147597617304446061952131911474649186688993308381785371893387129885334982408545848781421020090156219202389011300013880360279706531284680273680917976952848362102964356959916472483663055614032500708909789044385088402853180628105320323977854837060673014962711162677673148679317638322224762476095254480057381783673911124155992216651269291156661713816183250287947994424233657935300243189258114586578657898656925801963144096014787212052053416892092172368129211607304161290573586606512526879220391631393579504834189851489470541771541269822309072138679514817804839433283757752945526507427624554086279747212797723894116181008336457666695205011796361811162756078175424376187617279977558142447591348878583207263821826356152743311219745545892789635149443829285927308937468261824408592552748929323319469169271111996799734467381001176798566973343369369779480972893971127723689847828632128588186954068312117219549888894467111258206242480786956383009271444136797812876377633530585990407884752716845659254963551507922800537936033749970466539894853732712995690037376330324559869470500653992069628993209247472097399767114848447242958390276194959750160607850578186607212905031612132665569096186175476341565048028727185628490088657403683762410977450396470542144980657504461229042629470723178226140045056544372248407115674756467413513461945676520004558144515111116323763571031267888256169037715039399686425622582539980841168345901212555712322306409804662841571547073651993177203003796059164269263218434044076385777563344437044570271126419399114367801709388944025016722213712870688307298891941628465534216445399329350861861995471990270649886802891183733346497188450582748742149795480193125586153098918425148569324706370662525394797038042714250193104901068214705354946387377472652791186710307838677643626986308767477371866562505506151160942159395663852371225557942116687320081644309369849725549235399504670173685369320591693917806033394737446718018662740469446075824319136777918346664624021206447695904431145542652504432581348643352559889009367471552003381608764574614016611028139884237290080070829281283222992344283345806758213365391144255441817589364816543364452453669935458853554957239804867780970804226592596146113134526613835050496176048213693947041224556883553766088510349482548547037844867632885429007602963587685229119507349630844418817670610747765857521381863632693530397908887849152058246798729419118229608132712822371300340150229891179019693326573640455357086797472579728364188371879635087579827394112526220399664573253253972886990803146709094562779584292130976227286872847471096219739138094640612732270278594755426056292837746773095284652452379178520069648597996420381577754431678713492487123852788742411254574344602916612621736673649493090303531552026718306677207479582528143198447367553786337587167931296385327725017818775942606417503925871661026405262842655653544483507688944787345245955708948575202736053062442839716549704946415691658440637736447338387152959992296570675644169870334985627459211369018233959311398925439959242967124690867842499408419450199548785528542481794198355440029655055762073169965419609332099406480680660843479277802523679498245443519239978557857865335512614195923922964853899512087352947461457471164217215028226351135624326414482006202233672550293253983825240640085902236749345084677117758034871324474602770291940809285207331097046016637444613785958112097394209281465046655020641652834201416738277459972739244251415391518996824099159791038407214886799434130334351279445750384961264167324818790722682123666900355768922899365937123837762724106646465714627119162620505960337868917651552654214221094387004604726242572014045837158101060538154118422013315767339445242797148015745054514337923768962333742708669832814739121535969106446432595214569692499482872843144736067281844670149307163048944855627321884608946283154458980128001297919463695901619089968998850032054864113170063149441716747915473913317951045103625285014319389780991615552414837108481624432327713241223244924340735024615721166243545965186268089903903531151603374459049906706957888869859842116076089779050563223544217333624824634469474355133198355072456501983806061941249498706895099287702738708867538502650602889038925251720054174615398652111636420473307504505021142804715232130175522056675611156304723011470375164423410095753796233217335187413022741878311739045435821642337319256297747226549707933517230974927067737109484381376793187735602764273564880901884162764836989727884477489160372571508870584083707241345016240346545894949740194743995975343128049920940409093048443448582758244703717789675930276112678802830758786723342710220175362213182923543636930307985546869708127879291735488954225904442786423892875669851292886732861573885147323957016302541382010803938488959073702787078275833598606198726014582574253012704998236009626884044120105632406653148882491721126704903687750355885324864123149772492510882172878873902198712615096913945612798181958069908012778641281526672555772046161329115464588927200345726371713513134292221976193464245978231062314523419806919735852542276633715698615991605171241916254674129373310440906393992165829337112008746451753815748514721761585023565745902153641716751100944191186045603283791650577196109870502050708640468963055135078199323354889387620538464369546720195859454743567668525236020863085358010196928974744635658883785461094453184889565355072657390813790305070303896596501805469611738174888694943687278834904232336674607435760268046307191583801254381717470133038398404944152987561101696208022765209367183293670351838828832434406075464050136736166823729793305201638365132727862672762108002149964381182658859283890795064861174838267325949894841490649676427118439862536918665281150691073436718181944284511725735667957612431580764440740537313409601552992025773464752437611895774813356674500616307654888830080453998393450379399648805807149219704900815291667479844122558053792494022339103780302405345725028967557090048994625020244789998946721618791134052296290588318454452207979830721908711885600486603756200737929649203671253996256068055281725009052642803395607533595479730627160329247737590345934184256326518377854931174237972697619280837401859406296240782558085045910451305024513066268074401734459374757353886585517196535071482487892877952789088412262436187045122415613564877785646783433969471087291200485592532662273266515037957529137617468975679235150368067584655962097288720221374035106010996671032730728919032401661285402326940537754706480733083558395590945138373114964704889250143478097416078771182193403840105626732821228010209120812405868780591604025432555463965573314234466917346897032990157282965704583550546538377789013454973233741259033140884036426019059700542573479267284191640327524543710324834150677850727599073271069693307999379417839638231096179579898973657725842368192678007089373705412426233366825680361516066352795285477047517566309855265715917278248825088140052488818366287249249813418599304979339614434433036098618419649216030495582465075123347445105954188752266577555155706890107500236912797317197768166626132965568722851706662995291760497658905714625273880465713991301779992879606638822674797310986652188202144220025958426945419233411485147576231584529336192133223792043142693407836535440265716401927263982565101138511143945044729335576059219980606294285210230618577599902135413692242396909453352918049456965725941533509905586606925398037453728326668987888146905388974849239603980482208945342426689469164300257782431910133519977351304691988206058370266144338530031975570107066689135711563288321394735326017160850431498547715326156652070752325098115636108589443910733438653959042556835593796394474163048720869073061333863958869855428409611351250896228754943094048509361715377118204646236999205835227671342538696978838617799434805078823358615096024442052976330725198556811638800892234854193442503578093835411465121809702665979173180295378673011182557879099730310257533991271107875569071949430700942160725631238244287623221558574702371862693957306494411209187493918054007926170794446350321488577584757076966659164525930252939630915326911259694112153467185140264221892354118177828089278645267707958747449948543499738540752457681116280587014205541989502693009819604042301152628690422333926201773682639438995470869771387704903587913734377352139973163708687826393496395338699003705178173202902742921272213070182933160926229843864430077598147527215165155519534071449842217396410824132285617296769175553547451649539321843081978741780172257170832921632471649698210624164705361286764317979564254129393433477404494764306429606071638229628582909079894315386951095223615872651888513754823408306233959428034667119346415081195129170788957053288839550464071479755236447741846095621251427760122983073120285680868566408241625396203785302498643419827185141910955946707781509748080902107147307472473789121985244381122295341186878546504463256136635893186199945560601790369812552333979587240091878708560944822810182237882775321300866071729930331937847320322991259067958719834681369848350750816854815594229177473184410216902104004407679714527241503462520124701833486526681939810015555762195366532464540864992219829958903979535969879918728219368291270911602222034240949158251678748529332570019876053241184610364036419606568491583653759996809936300043279786199286834998892363338204721018802810860496724389230100554796590783450876171910911025754036643353224480716627571202476934138571541161514644573440438355049590801524839616530711969784009041247149764789918197598981149977817973647515949657620173516363732763255671536722893530902522999216058410313443712868994266153234287436385986422680230415129490511643606804228693228271801449060750567984150912675598407391791243180931597643339961440663963422430514310434475167124464052903451892126248614349157354129745584780105322795201868243379828996210480152430172292444717455232108141012396677712288751281660803496331914264831601396202298345333520119635411733774050572925941347163749888219263738817375527853552070411497553928668025875397767343833416304123690375082920625575848864923355898738884697164907330973677423488301266084537057777556717202319092175452572145060693058758996952542999680082087637126334675894911477039107302418446138901791622403710966706252427847196554435956640842786646397515084191281509154911692863940472140096304402139939033781328749420690415479554779802140132295429085772797800023505306739899739363133349401853333972076453266867298474113688237708548755392482920761678943737535541125322959542047141668227258515514653370847574411563546254671486813035191610446687440387977020171331153550725075133839820699804520344024469562578674121199220469918205373112012717249220003513717071583842905383959019659391299561676497913776953124876740942204809011502821153880822427168020709920540448440564616782729187953428608297821669757213519704920081882742420694885325470138091489114668644202613770740224544091766955649450870893123396953710063417194114988489089912800620351539198489344524253140985186919952157460026050032187918651302378236412268281632628208604163092768366813483349382110718171036932378928558938546495096471425416468404784618391400217872758138795125657192162417759283782472131808646392743338386853235087312142470422145305417863074181493698958061456011166218753706441522916851992765177583581990968440458441430268918999327974855299982099187859799327729825206998539684409940205257447223847263042683754678007877752473758783242771714876724541208722732719968174099913583977102707150142704084858138295310298445346257105011419280132267451106365326847979346428275075628700667594986167197502968449701467722593535834941139288790257999408691421630127933604250838567126645038159851594854917722692821260144221740951423465123192107627890132333297281098758032408318470412175070757459773879849466542283489308611679677327105429284241643582122110214096904186874774365053073661018675050264581463215451107805685817015084078865915235649667454468298675851701196511042516479610484834436863835226536742534430085259613772063132643415425029769046440031821160418788269094338755868339506337786019775161080216499412811282959112101474085019885364398575162776299370850421927297961735165425463715087756236897247764080673449756796707578229594149346295205929100013642432421723721670063067301685445656165675186821650353661590032604580998835148613404239484485157062105364557472799265095541651635464999862839691856513994219232325308474683863791250362781637397713360018736024974848625178669484640116346856741880612163482675652719878827391354050913748158063993647789844590915395522137403563213744956470957749770962872399858581528808922735112107061752806069640287679721987220325508361438629948451623220746169600430423643709263339498483427025335138904143928125760816725365908835997918669537097562900163975048767663867615013760067959109434216072030683775681371686983148538920295367623318450097217157041140451208806918889578815149018505883178860714577962603025782664954430384103467446525532045759840188577040302961821084590874520192126262842471100779828821840765246213931525107307735702715598330643838720594158726910625655881460566180505682734023196258306507073023907455347971629300350869859269319832016633745813127122814267965915394597402118257152347147808339866180962302598563167559096729068163652828043539063818306126731898359660183640445538486074803486214209350508130803017593384156923429831423094816654740626924903940262053404272499145689532437908294591838076610583628632414554111444926213404085504346890842631049205219488205070744244333645817395047655691470861977268333833379386220450994907644652004204825781526686955520449756327100540006353638328060030920109552393026190455575732609899890495361676755008348304836385796801764396516742444948630452467559175391057062369409207867018728933921146466724212395358587673833468057142323702471008097436022954547459426958074580407852517372921580031099173839698467567556531507518735673449732167305426764110605832882280286101262986275068142174265283969194010865386182413665604678074167935398783628602614582585871421090112068623218112328792452778970180293455958431576565304611206755387997667698333031241764339025799379669326627151880269349056220302509107505084016636406308473604503989584227358361843218595157600283157491842400422382461087905254290856102862121262384108399651880793949684686729142821694809626399471778091764864642304420898829909895851178900929342621695609194339651435373879854446212587400566364106843012661317577295136506107062426277224041936824405853609487714017600001487853094873580081783536798862269934836191736609208092407467400700202954344746713602173023681099875465670054186681967649955903702949473069326630248953086977684829081368527167120712107185850605772298612267132927965214239562506864318555684102398608992067828501865090534243247154680656131811350348181322420712185592813658533825849384017723571193080119045310201893140262371536956216324350092038571355875002259651368860196631745180687122213383924991993683251561381236203688146404142647871124552414734029587216522563381151719381152168764680655747413138279046508172736551335230342922654247701008136473229789864538565677258539993997380396446657024527137491888667329309945710369229335786920550523058965128250949668580010983598045267617416043271468038754853646343545174429567143780598311863534311155644967759767122977339291159356544851817724219946136990317341307906479053258422841612138440335559518453970216720653524011683760617222046239859648895661774134107147284830738772035564585979317064933378465580434888719557071093034113262493754049370753677951427479526051905380133603844936819502145829207370265740760393641598434428301031313905543176707010499450027415973728237850444336926331739926485939248709838058085641618435521783240891323251445195170491121049047159130048156401845491625558778233028170051020195137514820787202650873282363551518738604545250069058102757474074278959901087000084168545300534423498131023193548357660344393882130242894266136096362404167609386970637424610162274412886590393152590149263450421431601491083053202844056116799867210369794407616055956453577031824036080321570785483486446063933388361076984262016410314453494784185995226882375925636134279502614247395194815476650352924225679675945183582482452731809075821074279052215202473103454042450678853210612096836169608497831733270049093857297615355550916197041194175653163657678813249931930187077381070838869276907707136774247216465791426729305097185223698684736474447359458476897542775934349223835263067906976803561186542822392523742533454820592110323581916347784922963641690918141544072479783965294798738194532336348806413089201321843377193800120646310774735181262663035648714380847887166021107821125786121870393535687229476769486325029660077659116497915255646967361612328512353169009402181021504375319728928202522647928781675592609508604941058797776124375507611528021513513460639516409496286046853094319223099168933105791060281105128574335025553798697006557862876638586012430956426458918431173662406989273061338268308560688025725032749036848248700037341012241931974901053249316382448755069582912089339684633506769193340315553882964120292606119489155471723654431316707534620946288170324684956120019396893316293314039179913643922190919089822889772222253711727702221392805106877780463370556574135185985153869392954788645348167874694443796698615358899902481734525885688587202230375010494382492331448822230863434274071216012914573001884867772324318592868605927718086150579166851668498280874772404076311292522080672168207872326017187017094029628211518147352366890610712634358362575107497436282484683538825058134046476070030955212871670401470533883918244520396134515677248915805241305842389952597749055083326999759360185294692452856660020687871699529615852952302468051253476917794940626837423154653096289909958276869833196733815522799716602994510510306285501552498753350867985550677515533923225120427536924470248136166360624436923688273977397917513969745742247992444311974621190812547219701825928129089029945254062162347532257183562817019230308047299871157046037550984461429753032704572815046845796029833646492768837726064573399772508308762707535559957088715813008834402242909910222572227778076598034000864101062301974477532676816470838384778058593743815872772890303387156180762904740851109413130143085340693604115493602852774234481363257258224736246223971962442608560117903425483216538933776394110495907096027014538711475640890730432595963211055766673138555282175969607882929973748883261637876687491823643480274766485862090949858832884863197451719117750776227108748870433562744292389776507784864325140946093889395295989183050084704474685337828668482140775559331000752264246163670474540580027325532118728658485272650860065100945994392401483677803626182814447599751516509604191672698809532585247069922559117625834463306395890373824978883842887038795467602644069400033816132545295119172683173592496361691529752426722299578836081309917934950000855903950896189406540699464610264878320464848415374937770694106309934712598710695273371149155111948671901971481685592097688164237433326810424935022586931918132206542410580430520941495057588699474438138223923868472576702287538806551543996094999233868159020914920239465740827937987386670079816947161749548239602422167188600177009963152633461973442582366694195511437189405294713219856551481738698070725735549828762677369369155333782141307836149707193979425426989746459932215747402202308807733210178514255035554514512078921525987635611837557103870273388607274808484490756013641314680569306828632607037267203149022195811142528143522931998187420930195695039178910337925408105326675322839379085714491432453445647944497380013915627596292524014654237953206699811789942393299605979891047892030647550079401409197321077672044575377907296145688201766088858124234740411617819219605802952342082460574006683316938073451149153504041539333054813870269621290942944747263013804075517924696967687989679509069480828300306948831458198693833632526494189358901569974448626041924140119381110729506104952301582151223256325935861865222331431180028040067034923224106583318636431782025921960554143163568539247479804169602502271819471838834178643837771142319733719625306738155080890143914206554807323025964832589173816641213056170509636866266577060233945021453203266207323415953124166166662366050845368883592858004890048210079776415194818409292538416684888650843850731719870790844388688288024924583748970107952395457869796683140546454556832705373044240179659419822274651782201566327046241230039540258597405512492341789217334534929029551598556889478904979398937096606293897713493839250531453936407797084998596726398406582185468311361338776568497011786679827882177442137909826047269586851071132752595926861519353309234907802400214874971276297862553748274201121321214300564836083703824544784540339099258123424193849250091713080525887871975350044578803177107713368021177778868350101431095266260635755977921998978664579225077492641103414075151456033918246990918304212893353137550212623869976613607690804691854799360116063734712783607076431019394463026553754436289165584957418800964366762825734662608206881898470642446913039408924260747601596036556303212542377811723329049963800736555044899885241490062921926499776651393068078590396143519830621284959278039087209794312124353701650061395753279403203922079266635300508409271324806573786970706488122412553633417600430729039604341051482708725840965714824484205677699290889994891924807514290061990039334014778888660475168591589877432132992604609647171937691462323610146639835070404399720007927122754321460964156763622095293348191335979477177662107337952595827177741357685256584110052366374051098011559870293580859664071930774894639369171615482304030903820050669934312761804183395305760256095480605408737209741917885577917627644807030363671442005540909404993758851056091564024717562986600541181773275884194068085162683313356131508944728335733128689817553245627675072518919905789294171360280404554166778800888659476539205194799826984175291023710321158920086524397755508180872566380297056929425913895237559495257020340724379777980830957441898109523552879292365944752082734805778110165793189382483976348781672906569853011929457330728966510485250951401193682786334971685684171864648165517846000313078538611984142337575148301669247266639237872231711109117618839474499247582504131533904837068094086928256731655898399008516539340442485183161797113175601383903266938416489894061185217661438953757992138844880570351428089805246099972286355256746062767145118277090004413673005618314485422336753077278766189813791195131283913201824713284914409832834505578445555820219944850095070950772714650575671391719627314266442034811624961923206412449897246438262164833893026367664262471484038924261474658031786003952918336527567828938260989598172202446823492740236100502200647488458076713874590556048107642039906946777963815108584485043208120825205474211916850483003300345749396507215857535553754746809723630682406589899716264946899732273576517660966679933903641517127458787328195262353410071086706049321803374560000016095839868005540664499609823536791153599232629817941126686584688754716544700275863766972811270467460216326852302783291873988191943667821945032492980603413769820455464665019594546409416188671682596200155446100896483730173104971962863086421103080762824400173473288577141382559651363316081217298675468120329245161749857117377576941966818226685116669702624227597424340897404769339124733535223324509955263675434439578690679747040418182241819391521952245242249941352301991849973105204874093171410461493137427040151239930568163428733855241999296448891923764351949595537390387727740954712345365338384576101389957812848803617609614858516926265149433454654264292858754438622419148522056338099286139705066911313851827946710944105000614425526753435301493288888951275844276468054694990150566339440248920386941138544363979437763159914288237868005727304511523689857263380975767159226200277242938264120216015996543643601396784541567639439994943999886978138759705393875495147105169005519975643781128253828305802606291173048742551768140779727899570018459112663896399349019969510847097870515361637189082182322711352561637813061341738011758621338352792011923172816713700509670475583254295817561924446694978916702658484257832900458759337652215101062119766050184096651173262087212152071754965810624692927594416829114609093902210106213332719152820977282136790512984552778443727659634006758362954416171098456751884693283748951084799625610530866522587875765464629010977416232905863290765359011763905942452935379189121269262271260804915746817792255386654133113438231661547415182359350996612859831550137996870564395813651981076085324235333844878698066568644642426246163595373004219833777853464783012941066919581047091948988037070592265092289169582508256006855577794024547660072752519124572661370716854640647774375707677371850433198047308736876027280127135500688147433109465608332811770799693267314546168983769329563108469334926396781113236907645706167035289881787217759019294459813240283212579101015493297805793064621317659703311383424461212391467091090370489733343559509161908777187743334286784436295035032378239598109564210166192144986427945076969532550860589092820782069188879915374523031345047629550392452923325517273074167608230957338934067716221580575273440262240149870604210940458686134218612114115878894707969766656827259567567094584591573108943077925497766393712870053445399481309484017173001921432724937606756023302392681435754274520092079105844948521197452293178738186321876967286497899182308031172757439475016165972930961507337365605702486441506590122945631811413889127524089431821052881727969505509777308082749325021640589735891872052194708551205824863339409800604045360923756659881733806386315526262702207230540330875470535987222256347718318352728602779301717161839362107048023303641054502123567612093596497696886975722231085851385630846072440713073223752501026902447985403556293429061458124158412360389468525381837391421325097794325256072370146689706643869700526031216002583583991641832866479224118523535452375644470006714215257065122452613802983726633064006289097940303501098849751421921513667111488267321913454420221720069294324083186350358897419264001780352118645669848071705905894962832857155639954756993982055566822320207006122363889016210593652191746821345429718623881627083425548360405612531170554860143118737398663906546048935906017795120502612401052796965173773290204689110072092897037661534545373798572499324414496413420375534317603059009376080758468030356843043485096507130962699989022440110269444507037842160926168472738335636780202841170932698257236597625456759303683279683204320004359198224635752323768173277358038617782567007635380455049388953324213468870587002888330996091557907512772158122793586486907693837684095921880287767291452508783778003918854059236397403061332761081099351929801070320934491895270847130964907990907625306490547672987660586351011367942165734501185920550135401253406610918097370325769790285813052886668568978114997803326028031597316900236872077797931594653785156373195075063950684789973105988351162662837629588190862781152066395556185168375157766838761476200783018758551349920338353593072081943970406766511282944577597959663146937343303766903790984459069130970984083425740466270558457994266776781854688524683006175810473659546290779229085425426248387249440563930410225249000974656824416049249652728228617036196994131346837425787532497645632132247320140180922092244408564655790429193000078735220072748612481567493527728005513164829856537462424916723263527556276179351170342944706645692997135989867044316491203843311764410607195907450355131453990240585826310835917775320301779651440478284953518900878953435101140783298211174809994019496618103487968836807634688586974543226406957731381188976199936295362019105847145299003863533756407088543329011995879788849914694650210212587532193578518483640922317336201603769858307152087365532766077077658829551350574081069148196114043966936885441755351344048522501897708640912876160543281378407736490818699328022235228551703159458014020881681873831225095952728929563728935008889304781660770267830484110428065525803696647489568738048981982179901203829547102324995892300757882758782932134882381419650426918186177252073739898515756024600268433109738912678514410507574804980492702717533595390221787501594791816287334588208048568552828123003443234847207914447377132375261148546125502641664896784095562709077295216435910213235712898223938361346494847851802381778095366133372932944472683046793892010951723652766688535500686855490977432613648050284460838320218892249608202111867196527728725996527398804853004399546607478550899939829865734550672970637314145258433773592095954846051408080708607362846543922956204270567845771033567018063085249981060716223344338320526650769784850348247957156089643757777797501792555368042446599453788026325315999613120938275519711442572857536724482950721179663977346082829882649888941379986626755871193590619579914538032994175828217586782590510555413359754548163235071228533572541151625278312948845347162996596115848045477330772094999887843283506885328461593192020207463336822444666587202472878716017714544175428025692567995531646703076279239633366449126408767701600487841787258924718638349176994123701032040324491177440192605354577523019936347262165146201222246144269231196332019042973806385491668348316391018630917242280152330819160356248230076787376880187262265014834420150412063868187211966668727150241669643809565461435255597105520113914138406509599832416130307525144960006454967178754118311175173120326842276154477839824121135023392518216190788664840946458086914640174812339557841619561880396493155754002638841964044863513173297083444379601730748535984740529396750966547981218108441526796892040677738079677918423224705954764665905119565070126899396505840485316035697739502257556015436937148559252919635889099006777160057274116505951283048150201794396930698990895646317891652206918685739219573388164935783296434404344340888967636741784925095783924975424947802080343200876355878619972639572599456989912110165658233021859828785843365345562533113452786719863547294550746115661826431850955410416191936391254561396861190597369788240621347119837421684601555779065577022569846572974173280125023790665549774424583099215479187134890178123556023696239332171529216014358380589247856580352010157641397886032218649690604362310298177100191032367129243915981954383441022024454026154553817463292060496624834375190973793644009532961638662735794101407113741747628882038541517249868517691612684286573731660540811587768785032752050170233718615810269775704867609558309974395054118248593559347271677381711846042737078407389919791728401722250518841913154729126865469347617761535864854553880039677248573332604444215564987809551540685074497598460053210694442394916258890425817128540522591341320644598025269240346595167308529633414190440814344537991050982454060053638061918780122857017914948608218377708783962610117361396685324405714029793726687023154545212502892117961170591625435095287714648621473337756021334863008420495290638346228806108844813392764716089201216311182183751525161537050921924555260158769167367549704510266667599735934556671089932089992680792586230719605673692620577809860746223329659708772607810545187539518939237138185131480833435150997381507307589084160831683093784273531499114813167664182386620972414102751018035118126472249056977509627075842254070101650744450533019210688381615278371548852546606056547345898421722359216529256525877909943013288783786177951239898369268612673002458789492211928546660420839636309330881704749043091840660633519253801045244113220588177838233958124817171806238139499531814378053661188830818462154899363537174350307735327528529652913486409513117780385075350202620041165867383057756693121031524137669980879040388306841520066421182534867288130817191364680806072116698984081217316460209389418156557252453244546955395505503198380152238086980323035215086894048071067760377834985477148221844767276955482552960518154409849786492564916880534624938835717724567112741060576463370624953392580484931249488386108910607751955736491800500959582834273739005017456328457742932630855355476294263956957010771242876323510245901558850939129054580214016689813567527840533840663470266269824082623118571065283161518670955905162567311474885432003033543415021786981308071088363194781703336150111107414814532929787420967874461697171735634209348397185538254583174779466106798258904371075567302787828103594001049266060460654902438692162401340340318854679629562348102726941232086116167111166885181529337354278210095285796743335709159731002799872578508074124508475851248272698294246388604689551415008102665768411307505978334028409797831084354633740687292832674599453703949690677979414624987774804781613470488451587385020727746013890259109028068847741557260044903257144457285796467241439218200242414053615071554412008705821399679888379327238440001455680013661295652281559471684500401325984513416869188899425939954494860634531799194086753224065485774159545605532862885555830118289517253921453907490091944331764733542805165994189624292569056916296811576621559345326116183499127632239149422134899820807569928483229458353629379472799370589327245696277534199471671644638828783113258424505269269115446194132446730684251259938859210237503435810100682142092274672716787814305905545183025047505294025411447907917868554434576237930291623837786102836332884378238883114771272665927633097838016736819655701975990071295087363197185360479784946077095471616342161123278562637342155645948763596429875427246303773610321813654945625381682440158471835279188729036024414202366735733893454583407128095414532069841187528360461263537001156593658896221164788724196865713218783572756398961376259566045195365284153697374116307979167108586617936920095730614574621432312174715831425022585354323418622246985488697093582183580919608989972757057765798559875747433208341783780042357300384965225591162672212767540815405314556231526328026522089073447166548367509820297363245334543682351800253220881077604396078352510948899634120275190792570437422034893387016183916139886189158412357380643486776472081073089291551511706875635899116635067680855571017232363829365827764398474469928397283422240234915485903243826035096793870750056242712349037195462149621112597014906061323875857448142324132939037700001689609861530346807820925691945696378261704812373436134321860656847915704152530648155829066214384013590971952745490457353068369373166411149989134163078170367452620978634654335126636553782597070782496158321859435218062293314164353306769800193365134649484231343870593096232367748495920122218756028101974723325852934358754919086267339313621629858076937787456368942601534957396526059610232452066075051514045687820299725346290651315713998215766610348393790793418672392245457876207620389592833367256224273427372175387444247895183000594192575413351365065109239637898759808161164261214987227381280061282839569003979711043707907917289683708258823366594828766571224077128743482928908021288144275804898833421111429960256236062918949866275117124936506781484894224222334807154345438385527939819175461443664803025741647876678045937638584377532721997190137303249289078828252935595101227299903625706248221296315341549556501049816747493486252288972934705859982179784425546830068092617590622727590132835107542054350317730972605615834872036016084113738701925674009705605499006809549565583320199007145975148583191234002265803970352634048969196859989131260465540112404219297117355209703902423783254923658265267892704814640197164383283329069869554786467839778749353720317525115174932526745509971426321630228931876660544110738198911342271184365730733104347559276429192707292684391953904328566412739914938541234697448669348934143274666467250240050644876079255201160219419503790011799599829262226792714786669162801405762377089454658101592295943049397162574620920627617596104131281929030141786388011370588670654061681470579824590246739571492753645118802399676458220103894516293328502850180934009666834750655910453274868021821931396245416436369579146290348751580622266552960003554781717102762858743445228788754676642574582265056350740515977499750259978004017455415856912272000316506421809715902078017533076928051332028852643017115926894704447807705857283180429726967159960927768604395732025554977299546431850161942031211585654102091458630931302635676352409456382663907586845519055192521264420065330094656320521820246269290009675522780972455947142267129472254954447303013727446544441565379047518429537884432583841935501236835518520980651924090996516702127968510117624658451187450346117213149667812471337167384983977250578570502721772902328147319422532120857422710494869679973694953136237080178148913460062759631755325292041285338055903014731688552942323316063708272786314678783044814409469350028415889972126306207411024264794527233257998078232414827709505048032377055128782303878670535282019335425932042212155433258440404868031444451003737983563006408382098014124904996288365695838806105841687298768150978588414124598504553612873287681664569000429755601770394676777432264608356360900276607829772993750268741695996372946636955972942296039246705399154743038119590309720146987948580887881301228777308237016442734555498728099198983628507902886767420386524482366552895579634253070063648880332996611279389514464860259662184853989313362590150588256728558205125703144291966892818949426838004218234902031947203547483823886715070132337060047405840240010769791003123451266505360593924665673646436928014071397086642828164382682214038164215716156187968095776658133055868242490012231579567099008466102099018081025351385279710558250199662876069308181852862025829497019097373811160634676426379891315412959349649925821454772121035453623373606202695404244584413428265399224507240197977458372948419236673307962476291802617832834395533936452364694645019965295389801885087042984131338345050670284566296766431929496303255228015172944995324579959218257311289700732340645364331750245258815222619467337854474882099429348466342412832870217617272152537868060020958983123164489289355348778226041491317732731616650193939963137555376914632939517916097118885068036930858336351611967256651225608300352849792380405934050607222963892565981670350482521424918090940284056322465607257991782814366725264719305061506321847562589026443406878820611012409339296338663042465805587679198973410236894451092976603546773110225806278449653513811833431339614848001685164295043582011244226453431559899402136719088827726807113675085612724934892536323523659711547644372399832464906474362939838720715232309532641953471888369580577242833441115102457047891811754789211811731564663578311311657038588684216293606124860148593795590796375879979101194619511543172199133807086416956793177429630388900871453025336599108617045065024856320044324294658379416615947671581338611159114143034300463825093665157991961653496163581901405656830221409159448270590782930320708030919086516191850140116804841072595420887397563249986041090954188990322047487728910835529479262814940198769402610233278705235879252079416436683475399211781802273680269224156693289431281021571840731391347154569098471689675112995263571348956291620893949728049805865455783980069037478254171634733740908918849093048573683568539043809147780713237240369823019589179804046277434607570422665858224205560778474494197810673652342773112459484446800273263919261813121324501772557449264157035495321156592323502738090974738118584446494709469613006762686369634715936200804881810142870530685197715393031877649983191132726174840719523399393026593269904561107422482339760798054943736567896744012848799494897789117647320069633747106032905118994736589670683430322620278196899674579546685673978995094976464489533454807394210127130337923222581263527860261661273507643121612545124614330236337391393638428656947828964976851532567502748234999462996360644343610002121933364011556905501784679034343442930660393718939565489445151513769280029753509761157868891750678540376339343571193329897724053233094432154813444805023622385402821332789186504341039178340550752777896068887683170767514103028126786378120319754449183515001396771301261058041900620325053778579031867748075388737418811704892102064556645175664370883620063376754304422139516556384858095542597034903064436805040884664575430653247659595733659594757234959012109019860271148319857547801434634260053681250605292461100409130125070713074057798362394644391471282663496434031047470235182140744092674982906209133479403689343870755082111089615959475175233269409765984144504922432093434577973577222001882117972876951256223010612840606913581194652024493699182598614860203161836309734063864707747578069009602178185346588618640173208365929769019874115150444690549139828490277671002938345198790322664902976648623870896105512884945275673399489435584933357560765814090682866470161869347289250690324644778777442825356179233157533536670320933180122439463123917797929442000073230482745275649213682876112935689062131280648850084178455761944253123384389422962241397559765603068102968221256806233107971300672605094215592754380827436730095675489962879946888014706578582830924260495113991571398470775228277702207785615516687128821939193855996925344265216884409596058908416129450444800597601211741303305698929631667610128284190948016611123752053319678251330056754102380981425385370565173913720189128048387736483295696836589683120625978091656286549390026780912367398470075576233140085233412781742280802524389148197350275811433271924084753126768667018470242042243152405313553735204457046939801959835425811645609833767676039897284531865347090590740917088614310811815747579826550921120395548445541500922657697017013516720388079937993982769816790660981368711771279919918238715981388272088357996154685615373252862651553954931357398542283741032607576091291215191248567781075575007536243325204070852268687193252985906792600202963603662432657317470600265116319679373715980843539927919842882720048776145305469849143094286462245342105903094004140575780334999932963351748673976542245121905389955634312924553355423759718797900475296219511491514176508522270661836902349468037221756501053828509197138453701570673790784000807436940581692834916436104511580496135949059982646256492843540305265083961123605885858294980418892049717194089605878419958878733925378957091509459286398071934788027088331688420742596204234243916445848214481313326427219385046718683523279010775842234936503805686806589145460540550812572330716290636720554979699794488602883448644002070272135239277968711099763168962734153964139050215801141558079522230466304147395376621532198586075870335181381602179506591499526848670002308117867602903371478828645163110410038138208829845670629730518699648377650812505922670800379039675193677337037482927245271578043870679069077075754310839626141277571166687001952527461306891438079395258636214994636817590032269584672424373429799343912734676082927232574133603736734183194233586273965998540918032951982685214688990680422239971166614032199506602039093784124846028643233265699516500485057130876432255495465860011608804171191561593194863953852398845734777208622264975799617506781448681956417127118578454550161195477307586750615029638431553075307491523882120443250981305695928847503597639847872883743863714855693582985114003335532054235963538760382779923222375197798046730408633503384737755869820689180132652755702080632061596238904340991948717978679135286262997519334353251527489926301667292360368287936181233828173215342036315047742295301500959781978632662948356179385623389462635384970436784826800370547566646384767894902908661475023045273720552085595277783111390432012959271253518615862747076359222509030641260870928796083800808296142404625654226360238472553386806038620017713965688099945135072470015591521189726148426976834901750957451493563859886365332628156048888694901335394951548331188796601925935028478782656975524132835242986101102322004623934390181351822823560434665056247993990990800435025344492558258525370917090980047779626351702896418374424474744450037976921478297370939017175654851842919886382675403462938784167834324719428967707254236824813304524421525543888802764470299773647948930766703403691485214323854903723441926279677976656481139121097449039173072333943213790883273771540645619840300898756907526050810004611416143372620468861508060487560429173854584566622533914291345444943178731605095165080713659582412700728471617076753046677337780671331163930097484787329889604636082521467720732761239987834315984825392810939760792403886154812887900465966408512912653152420337180411666141763221689327879573969127451397772249008250038326802165813415864554947877842338197628112684309584637670125082181935484007077324751061560368123514513588562003544322877043101247734269226507080749217463031495895438822193478685312961393765560843776468295666054816300388269558937319586190421497737766844175821634807063948545963227317832619878694620518010707712601539231057752597517177343532255115824676646333705830417645884485026011137181703687270828647115946227181861193545300334204396188390916459346128849774866951753510473304773797183268749718266867025168347457961984907274596056685340188073190890568862491124199099411748719445227882800297745085574504909312559019832066655565076205549274286411180269353150189213873390912935374954035816550496856678890809922729204297089395152035832041521547292212871632585169256664159740845540618132670666171633729808456027085900549217167252365524051357634126992009972412581819193096596990890940994058217243416961363364799354553235158372592959414828015028844543673398560424831851718373535170972144544222699123961756371180208585919825410087726373034314581350138815773456774320646950336977250126655475605912892755639823296923115934434121370669395090503667074621346748200504996270708144198459063029518379079278899338749011250851492371727181380652900044602602442110583867812129186167132169131568514711991937806653556793722792627655169096740896972775857545576113667266829395138792074631708397542880591859487959839183921024659509024307365224298395594943739899528618231583170034677862065196965097220444670531508115365954222535038483966947065022691544886373964818702448108815768499449224148479881791180483356322616544090378085350420484122548054700382581009308988671757791763219961861466808330853180637786905687317048121899045757091051544569906368834894678912985566376246867801746097833717787046861184383076937191988579411466134013129910627295426567865976091780333725805780879331381268200816388557475934660132462662608998149738373378257433772409833778813518671148114666039754377041427310501649348515952999714072618700187422526790265644929172772925509433109087206651654842751180516998159493321067046303714737377913241444608224922223704503216000091922633072675424543834420165990163788309887493717760956998683888210059503925895588841715166786528506638720236659242419477964783023389980232492928220203073244108643041501815223949401912177531452353612475666253800392274239505682961203462309004534866530025051968880584120564607518001133295720851358593925913685334234220782406106993835217252565707075232188144199351890269532186401356509383856776342482666471371920791463160211732222866254924155943942818438230783073673894331296848726932360286428044750970031665839920880679134421711920617879559542666004823131108815718393368247086475844887577280249185867448278188172028399910994984513720740274435628587177002472767047228858170471719473184946978473919502696328719396168344248697859886399921513333765408463815360247575364454391043109159137868073661322787475619333685833227794960882022895775822830828467394305564992229222084035221420975888115287587004438001372209117293026388975406015579642510870245594959507533018537942481996099566992835690100032057729973641427517401731395398876638399361385431623213042234090681323166370395327663048049013868184697143908659411131217201097973411558263288525956349801628496358729982153314191714288019427316920973025400865917645135203784587188758709769423220985819420051216787248510286751307951360986707585118332842435699887908270345380542085335014959475160029287546522330642864246912504792721949846396951647933690514185614148624115593061581864968503803716081640249220566448942020785585485773091340406715801674507091315477265515369208733338901193324811358097850982692738622544909729905835019135528338442679702131210487711861829521151798479842232612476166751120312780247949684575066136078327820988726521999459512178413584799489994773662828494428992909175189590632773332976188471094732814161414443148985725994299402341290903778464777572599304529071167953966999278475977586160014840052990989821800345766438916366368151463365170190051892168907775714871134124208693782835120251342583565916803223779002431938762952258841925803977710853200439218894835460571961256749868504490660255968637685727040996461606774728864314969807476807533059730098484590817208326699314369356055374521436259138229313239434132142105753116101873410476636751813404820371679602103692926268400128917808556056720771918721034906805161389856052607795661333982357862896583064860872258628068102370940001151708220598211514108773310138441543051377750692576916159922420428259262400477975644130791868704647251906153839928234794596346657010656331687029880745251577327956498360691563971958040040052834473688139991770807823732907434918991750186927285225228701773102964430029535609211693392269551169184607469642090296564674529412910917589382290252527660886788671690118133751920633125251994219608143390906180462612318044910078568595211785079483790809870183924294845949577570790173501990132968224069390969518346783605976414107252760297137204965495472838185617994330867173959794421058371392481643999880225200157033241091180348480464015059840243021930477528505008197146058365276264310466786110340556213141630365861189104785479402529437148722177385454935035543920376260038482836840372134485384452815516079054441549177227522632147267144903271645468504180802807610872365925684417312452346047647548068039447683575172291072894447126715399833719809119416604934816750810471788773815710498379121295991611299979240030022112126335074523148091594914825307541504651294111736821658341606592449554670160662386998537296988471930093001982092189395578612002532848694310513887587462966391263847502528427658174708342693803163765311840758088184857510542091181389776384895327871088049891524822003842271303515153972031363040929636833469496968434543413982316871788280119852723862976245956513797101453568491357204484046623666315403156403262891651119060509240519949427489491518152146334827702952474047334498816989910773080980230383258524452582051939099194640831625208516574144507012170445359211952790103321591609306954645865750579179651688490436087694331179544602927081266693634109615123536568790156738251226917548558229798040519397651156451304219068249255035552782808131563963301908804656099704040877083647032996760157031405480355410573001127257550331080080922806923541162841106069808880300264855166392323451519590337300560565419419782951073581250604174433117264146209090372894008074411883650674227350701791811277396422691004557445012328004571382876499865293421055815674284468538303663958998985475430577786382632918646683637462925603945324823042612189687661013011589019115785363727721290870345451883755661339462901820703213935299459355048796617485836692191656235665100006329511202129364387216695424358956982975086493075964246793914243639157801923574230033768782823203108938660299044937391732327213077414632317709920553865477998934260708221012349433516074969175411793995663761094588984097860924371326150198869082746015561601865574700990311748046134722520674748502644144662689971522534914474254668486295706262023641720195091668885733656413479190911173980856071859266623414715834517611344738759432192290330583468912298338391742510404767237680678790666616753286853100662562296699781335737543337527422874482017759554205322531758429398485523577407634157526968194915931936096298790785417916877610155469927166291040639860187366566072868390377669912883063168331424286989016107179505176660517550151765176377099217308202027082745508575929615989064029526153556719933760379020855558542055828757499726578816735804276348257506324885408058132562544841109706930408354745295778562649830442143761369853822736262196819883395597279549569968535562081300181765212786425042527823583667390588435460834731930263193294079657549544633826109454258552710933334555491657450500276498768821856294021520790175415910465160225861461472493158177204355122697251982283266953048413659939163403139108027889102562553785227649997482779738661958761189696491732680572932915385174842465118452815554237175750551714287846787021957658062989936262512198772513501602873157714841560420175274259657204260648458177450653728400307912596877967502701306822563017300856285274628839893381914183827751032535781844973295638733882258040329678505310136788238552592498132126365330694996377441271432888876769174457086390406257473470639948306504645486608069387200013590498423752537166944832854144531331584691843014376176764944300420193963687039822178030479730760889031609342887288345595756692615538082632118921060795488583383765953001560751142087388264843186219498801354867934881078029462405306659442807696260969582312123560238565622321242058350448323826835643865982031031466103580984906031130897755774711068590939745467351973215098988137392038249402963134313583613502450161465225078556841455752279798989102989576022604033163812940987108677562187905943390117848503352862039715936700276180464959870820765260347832540958362824355805849448639107350034150100010464539243990655787046756936302851939549497706323494520378573475280178449288754073656072638904206970301598410722358582843788605040475122919372858574542645388882955220576779647191596872017103669618473884425197247071288424900538548418888467318848116962580769535940744138129915154863293096119708106648380486282197201705946459200926704407910048890451690310456928027059716922240712094556714829399426740065737611237092729567417043230318756250348617491434527072349633602872472835942297379560335317191826926484954518604837534034559887784150499305257991938981480594164644264255696763379627883419133758763331733438033163301130615400681511588197735366784025000225757851828764361667072135194817082523959917819618252988581247962364336148251060508535985304782157590295981389727812183177609992970608032225240194709121953165102925660876869405216420871918926732736162643541584567595271972749503734444170668047578458137098819803759711291686758938764283040012037593922226632678299924055365674099312215146029508845338417253981360664648285627940322818604270019710873921470768908172641052798003870444129909768365537367052201452495979457259483977415637664780176502120130024194343792656613889694232693475931421768716719027524546922967569520002004307897941218028744893103549458285573431287401363822951671135670639557646948058183005504617737586069924163870954671522337965014559471435412977739977084844735524774181789964336122329377171852435500114347587219410619582078105532734470141055283559632492956326134090834963918460557289091192726754316383900369587269473941513190319225559969559831650371753735398573230994231455300487363032047004868972781605500628121133750728346285515478953482451304500948901929603741181441549026107292091448201197302707361896260870653949419370726032041376387706465156821888333983730308376158014557377084010036262257936680343721559628484232145378519491570865677945170733112651600226543417090815845172966749755528267486550760673600912857127323394983848092254769209556434298744450765403518222510626292975582327544436115544626671079908007331230626363480020700602823366373283784349608830965041026535279396898476126451543342744623393125880590867475818595603414655369492627734323334387235039291305759221268869258067342881472720151301299420845674055088099841549477500941031525089540806053345344048836055863674766574592644934803726733165985134283566833093585952148488049633399570629681151620870911214710250411823542342663483195575947861948218961748843303856603104091599062018523180101318180149784825041900102880832336036631724666206492056501464469807145250826031916669573122919120879094396397460087016261361686990132239613288944389288526702182703442768472339914053326646631019568543017068373720835092167100747873610694432827352886730818208336647920476675290235859208128277306508924562435707842979335826125392918569644523611472090425294621351245253278980836238600474579388011585327699943417425526493087987532437568395648246819715058429467297680051849223902215684055888765478728149374549954358991258888112340495384419751690033940062469874042021205182115481018894086916888292732345415871252620764420838636482608668046109587110369006802044014906836900225506110638798371070501759022543700186479513622991487642937345492527818764277957688691899595189577921228391992407022767587929614650271498026596963904124982913144460870261948787651633066906779859470246488470560825377206534241644515197959325894303365378530735631973395456934247803228088215693323741418417846565142433458567232518711620879566961187568432815781519592276594642490716890146156128872494639976236516358256429000978891463500996339468255043858396743086989346466044253521231795039268487751089539359884445381688129159493903326588623654555255673205934843509797536927656790370989302235839316968297697491887083540453548309045929196060746727944514403385464471361029386438803294426154361549736073782407726873948170012459799067130083671673238875868722273215662817858390571398266220016456497956707965108874780350140122637591212727733770266064898139488339007714699905433952279783519967727001725692046600837026022764376852629208700860813485313108484272372605650686005954968174385387786808226381819098663691153050647453717231812707885584526065205497860192263898445766225767916438315618161907769192384578816026306234523443360429047396938433211587114548419196731684638627135428895500224190603230295045519639386032779380051422212405935950999800800440851770730125057585233541101554221156978420556099792183089635801575066480847410406811002599835703975469414564362116602167280457786361925690694921195002872008148308062922287428965491841371644409041727823602675890906990954643863764438847924609125956861717626714455105847683682596328616822468036776413664757918604654220874284334761442769966246176324756651331845692518078813868550193922786013862568247941735749340355435376870368757908608834091222225858190069706861537020296910054108763975304263623851065847930929118760772804343872858022809815082279359592638823599736441771646094288603840637825758202003290632070245041607982911653868612194717214112154701065390112912124666824144047585136300785781650997557331565126915459784152175772362599981018354225080097946531683364915188235371418966985013211983527538901371276396113152649817259433554863031090618444867049301874676432627072967797804713577000579970433862885465794809309923362685392891598650959686315955482892066532420681334742389240946774048508972110508693895301432821651212100603205522819238142315602421289928427395875800137811271065989433057983426888016620055748472183599702241345281146374669141121831020818757948340782226395010249826818384642306206989045986944754878762500492222677227670346024792798117484245557619119707421358520159906946435746363283333890522649850038855013166156856233477362932252905264417949260991119773259944714412549711666257838966373865157004439970572485957082978109060506312019595204344234196096814758033882958774956596602969136597092253597569416220098208373584498909091966667528619256337858843016425370516312171449272475584075706102828290159599542679261129628971976411189090860588473017973304419446832160169418613483256556286979618183239094314617343906309971419243467017717452830311744190898320183224439835619540287366081293356871892851413826567559235970095662166807436630492399189408431654065940177913853826199586095020614639876719782338319859659344185749903603116145757808315853184031098477798483015742141881087423026234738265312180709527443585094893017483110065378107746425136632390846885678542073733446518925278981144318943692560709994896130643556534566944184399116299625329544215034290626630680496565390565808043852154664998725629283642202815657549187272966858316893617563770177411908862153127607468233249255874551229826642864817188900479065880509710700167626890047091763586132545499871933773000879075976108242321138804568876648521642409555448527946261108594072412099492109900182305057754773892960271973808249362625203042523933624771803151395784217301643122933641577588953371264411755254152775367362928564440058502248648274571387490953337232945268725920363786545350133983458634381675145280121895325431029742701882222692206018666672820239386975696395733226566015474160849010373904060668096870209833765603066099007368457401756629348674704372300639013077020049819640418000058581318495655585919423937935997980693431188357657924345620895710062628994534823791509301598147002226536459830579654786018569890114198851018736526430656444071178589969179944567266757309463597207845259990166171815390329562973831282927531055229764507819395175524687678025770450198249235682706357987167915530022274757895534658335782886328052440850330517391479874448675514337290227167180644255377498291547294596132978687526090782981643370957349665387707260636705519008378175913990687535266247129260838414782914639104381162733865644498399953803118429852507210168113066442590171207429208414408118041440570919709138143380664315279442292311690179892167171333452185806268331769466985122122289245096895969964970750269270913177524066309281735409988888185747099920809255197863036732249072791745095908678323252337878490787635401072872104340008838732471427991672663395494833703221129915995967489476157107411480811952770787815231492373114240667805488002410202193896088655629879852813123090794484632087912187883071716389334952026189419761113657208714086737950599387437312237585598430419453824497909158213967674928166499440452851724011638807668392585586300481805716568014777908327470034233409403805409237181677193076907581783725698151380737740260234728401222783577818268959443352599470848164279544151077103529599545219809445114234099758894864827151987262496522395597538766595195148660512390486929177800692812799659836151378487805936409302051163705190913315670186253577794484466353762625001289810083030630893799921592495573155902255465765048991397458268178443330066467476788227329734768366913215577047936236447297879369754817912292650776459875662603865712322232870422293668890016831476897371350151998238299042900787134108015514752452629124239706931746939143116516896114496961206027722394419998379621952517074161351077099422307701435536241444104781002350202106393580838081194013860325807410852104561907750435297948360301619318526378129742386656726011761758379056600037843804345842225196892903487533060461695280517463543875547471275720657521532535398428169685344283967781161980694929952350707943696737158081578418089758402257796922179774569290641310576688433294972197223545278997504175744881630675510276028606752458335403964448518280159300825252240574042755637092558380472760285366653134256556966335810805582681345069256890256939797427584037956268021298346028276020752010785241555197640692437390482879269479329256832526123305513613648288877102165060303295673385847078646587563566864871937336935745763634305175981797045251611642273569652509456951762401993918663182768906001471647515632192427998158374294956252848944483698201761746587643178084766827618960814060125230914948497767404070014755391582089094649838558994591251263593335193596665421797514654137010333935800240261618526826811947654055026794679106122114148652721022456045442616784324651082081458705483459273327555828293116619061169253103228772663746462864960142417115877338478298183314905074307909638107614158817081051134879161595417533158860364223391564559553604920648427692311421825955492591940359121607832456494717685465196429132448716180332287617993649584263022587022262277138230430701315329091877698946813689525329649096806807682236171547023040292840639088156866421094628116278795388817040237479153801327369917618589825205012009760027470541392630531764675790667319141710724362159660844772626156462301844455614038905729224700537062630061140466515417548465127180165487084124649510781368576380636374394376308558350451669169744712991650400921670170403553520905499201038916493622736426814967391652479496228408483470870911383112418707750044125515247407803428886450329270905608332706196079512182340077042734008519510132352192664963588629746381222740637765027861534690303874798404265313660717840395294472396771302622732671330959564717579063993049681394793281337094238231042951786727502863716152889438689526123992168367604302095267535153610827152121639159531981975085069349266241667197395642203331608491294392992971127565251661206045422738183231985345696120790994266412732562213302168056523630002259584016936262584256825315116575159676660598774221593034429744289414907501562393819086604892181931649145610868771842337114110437663866363114013455195464566653818021019367758232265965648065562547201157501821570371374793895763209372590985177852151582814466885799009795939834974911355882816297169839791899236651765151894923126359317481227882668655086719095472329603006365293802624095968469196210118272973773258504582758210595019870373034780454889977348565008909606621645019414432266307536658701149641760648290675351574364793362615225727002933560186600297176030082271682876944360824908504291247591491162330127861925698498259517968045750791670343187150710809931495539714400019861951410046743600561884889356684592948592864012663119779062611991950756727854376882942361925588963187923398565572002431930494063726773736196564210655095437021444325667555477063051951314968913468609714738519700657933491798307995868322538245600260096290669196430455435057113761895971816715576104570280116683252013497008582069860914776886130267480727178928900573027848332413990501330405407184520364323182864482850218609183058286747356924916630898468145583294727347710949420980316977561143824075907716889939356742122717216250653619702596909588590645635157040497673629994620052642847608476452184788152170676400833963013638314924918962757610510610885156396596688907377956482897591254007565099709532729393760318065830031774493078620666588167472749205228367964777785239533203070003633038421768153086121823099412295716702804608988556256194991308744780401972619045177050653725401140437754073417593375873093080830647884942817440769797760427854437323189539607189835400077699390959421018481915686445750793619976760232030883983010507099452451037964643592286762479233945888503916988167736825451197299250257278089377212493763536077406046433316164230920884819647430917007935392304655666232468341214325343122200191687491611929347548603899442252876953156842338844881103371996908961462176278314025278066132370824908985593238537210643611264802228877776239986538878961015410756993912886262810002957385962806387540371548908029720068378285322364710229027716442515679790830927379467961629519714450496123226713530924802461503931205671235037932159518971929841741351797232493371718664525410893267917358747728023015037378906138795568205524447180819984122066329377256789955239200179994274433032687684820978076642770742800082116162185379161422288248131019949102600538965341878507576395303667417105690894751752611826595516549920886874070994098072056384563841557134006904249569744620806602301995820104994010513316214247619685557949200845280531362398932856121411482475118714169228799758254267857414257803219100930127612988223283166403084335950799637894024525096562970406441071735376475160483538115449915409972359641862973206795069851217254443074986841107850928440707755696349204867306583236711888221763611850072782103416144579950726964466293575310259532246768810685537746413703591043683071751947263529671429450035305168323653411029375619512867957129956169645807145272045988530892501755762394541271147790487318238949591855629654478457339340205502594090658033712136876402596132424372979032598634157932102779872840039998797549388978571342669153957396580357067145604226887063404647195961769646580685673089452191156519389850627612474423136560626385412725081072631628624002676893269216572589939538667869382522208626538934956879492784932867470100088202794822951808615325892866673596458436240223602287905627348089561003555936874479616907482123957784320465013889229723216979133026704258693115794642772264941358266123369751434578881139635623222514368728537656637994810950506517173520989788387732276536816186806371056342589791537013760599850668205048828742711633883204490019297598442789354024416738879791795853577682964781212972484407734690173719715564956541106371164910243603006435900022267860129230995110006442314255937600329704995125383489023859245997774663990208266602779888914105357768740936757874465780805905579268971264799315765886238790029206571156059501197539175013071273922100930635241175668652448292418478241146870028731222361462899425409266886985680294875405634664520832107498094485595198994665062621700634309266706181650465480790677855018415912282842642738479861497333948118716903940025725550372862741029253276223551618532897261123304216863077517037858683437810195630806981055320300003829205997598672779684576961183942739406727418409979553472519473375554085092788067160024800413170356978142109005853195233145929063475215008694089218629597121161886596575790065777436031776384916935862226388929025749352252964392125079644346472522452071890871077869501069113099163017963414214923940605086819386454237951339527629672056107976611350090619656907900527403664689501009895876008139282018757695813543731962762106744481954116230595422991587138356382334687205303727413176013243659000365552646759199051261979898653766969529663469495906150437265727808817053377967125324018015803531289210991709709270005847785985248265217554122463477608774393421492207624651825082816118119332341376843015937822694589530012939970998440362263686975346229786368684449631328593965518598534029218642862712613497668096817867888206449298471650976045287313285887178471214559519279434749756669420187227708463524759223951849730498830163494610944502630733692725286277174369873544715228375970638800322704410760354256684570689053071342899797089904193876331878171477496033527545724861789975254033562191494445708202791567660583379792182199888808448147230023691319410471092539350205093472308878883864676162061648413341595051235249075050964153677897670593055910645872545124617405768918955598176110210188533149155493255036213392299841133296710193376597203369720051069820092753815387163748466361713874134348987455191763222105516574605729779515760321540704550257583696097026119384333954712917165262351258994219789436496586242194092423467440780959901567051283116137756264059041314393851611878788868015305829081342117444414154618742025660109609580146485924325340008279131355562893674075449475612886042729472315732430394091563112286115010380792900801220864483708152299597958173994824813311570404680433211474818634576384250826256458619256749820413908940058430976215477964794961452771110352922196343742985365811716912954205233351138613953926357613704101600901657531897445861001522419763339845265166366936266372513693170755105013028390376080953285439792177355147875576327883271680389755767772595645380000164377572325271243619358978625324219260993929935768013920563506804795744802727433049252888624020529179728876124281663324383208700974627292247012063270706589919373359706754656824579166508335501701662714619466383658532584219117095713290468880931463811202770050248868032273565195859628971193357561908045499171664769852110214071117787220264597332347530536513179797204948798666683008556981068989012313404893525009124235829588138187646150435933164033644485090619863527682068605094770418174463140159774486609909413926145843452896586502397830925433751079710461159899179965987556548108751141797864522101317599973792255651950346903956068080474877840189459546535853908983733114270540502185145987595329697963192384904734657011568528159583998523577733364370564224286555709317768281090454631674142357854825741479976586724614635153170455819267766664935325823018644572249883201937134992787099847864780753069915321138429902296121146461041725725491662391416205716825347028570449604286667988136168460721677357625695614141368929820811471932611073382271457716277464918200460882843205185119551978341401324345850394271148664738409895972702620090374969762347664640328194073816155354427936067768270294603862841909071383603406635949506900024596096185958264680074070740861008667875504032417839269235671935172683454021782015800459123632196197596224514425714086455824760112061779195199807372647049148855563076369705878114710855296515676804419037507221745452147197065525365889474310043445190072427051912453732658461526355683272962097181836906417891683674007748884911810857560483717231067437349328165376674115304144662412484934628620048603058597247394020103579861327310532729950253496547806453755515011266076976796104318238706174011808980937687833125816008541661124322329894092202673615422844591442427637556975028358934059581297256904109860303311457700761283676199548840605816232071513844355642079617227183130137332745136259330764655010491952014799132084590596374976447989705148728441233424082279632848947088956891720151212608896916036744362208445588723089429678866136810363716307423627513246787278131433259195511164209295886725729372566193590850748290303449537753127757335664112607989138342553510424372579021924454091826280704340624593784571904550278406828541020990591962801965079351554063290036077709578988767260742897564597238275412796338402368983552793521145950337384109698642770111141979090974796406992743684165968646146167934076494635591725387686181954827347528936148897449824616850132426719507002437552401256808787553332557145335272183285253734372332770088088354989549447820591027304942789155441404653426826512365694231698565154289701311594422296486593661770582395497594370322210608341920435672918426505550582734999600664559934073781410845974725757552301966680878997608320456117126194863670655905783416764060753254964788308105456724054079117023077278413668039153720935903662311825403302902653539574539897214913404719650520737092487142288576125100454026590576158514081803499859847807051927175467236722266679300888884168425315332914408010211395979691169795584411545107824039956872403257251595361250556779949783940690600153163159892613311101877570756159558878886309428861932422434686843034526978411063811657670160718433504801339914652296876590034702283760423618491380607458558070454674036595748431658574638801246259468787674273749071905863960910003452415006917704417796423712365299348594622994026151781395551216146032170380545830912186763067133990400100426504738115484066902963322557825328227475673040388809347695537350422735668274316651549349259685053321305814346062315374726010534215158156552666152482842841749310055400326897054428738383481077768475017400883775639079980099232540520058600380076680999851097891623554331745337061944274788703639596238563863348934691332456814364226748324259779009981709693192751526320280633904876685872648310072510152294387404487585775024250148767822691373115915943709709653833621441507162662815606873376712505057254238695242212349143304521223408138298617239699512732806313092786671426706112982836415890729270863994581294751771451185211541293618080040357752869416251056645860016388445585020909535286523985547012567263918659116922541748837387542978231872528151736941715849383694870781243495848796178890721334283166864309874212035454112761089404970788087348160625031636658472662670546511463035388294917614515272873209521219468554527809991720189810971502151946045991987050492303515023224913393195542656015713704953620042727816328320243368659933688202185380051385554282171153247038552205922978154000416902066937179332043031923843518658239602735648592864333707777167573982267774094735535193367479505561440510167887105891885855797562779188069768366142846520104919895763400616890334639993490608960045178213803941806675320254281768759434266365101427185962392107092505063740463779216660262970449064186202812302345993758836118635382385373994298006429189465488319742167912525688353979260309865604287168676120055782133863522990500954943962646717027076886962709189231304874719246655553233470295366551812040944631479849530091363657247489795331803476831368240660994986239236274359286529635684024249841687425718395588735990141990299250237444790885889865567288625755881446022823115237297573210771709146887746628687311616678927620163793381589274151891471001526092932006485610511625892970983197738650095179805558030890514707036704398645076424731511151991409041465633734556692055130416922532440813092969706283784172715706202801176866508917690207457449926970531902056758450938960268532411133788847497945105577889596325831452322138345356709620548070806480728668717478905568588937604345066728894000888905261900670730861162269937672887683789826914061960754365244488558795670035635121309980383309501208811743800069477124114037849258562606892629637867792024468189293661914061473269569004417369494350060785416065142057507856412107375878172114543890719437200511062593973138535011438592741043772051095442880694860098246556171200577955286234534158368594146430934700482322393707393085832878582517045963525683231553006270899621415761311000748315635652639809476511928504794456335915509779606034195586442222000859560270004637002392093627418948470191756393279118053923842270035562975118060927509550388811315053286339738589063825346644356746262126891328988455021498110104553956022086700456841800177646144377004577654229735332255719022011192360363756243300927727377262762934655931384490461667297486996389141907188231438870136517330983568965858262920068584253458121736898321730294096565075819536795739106223277240071300503975747722310493383138544617399319033089959093107526039537172961655798041042439992042473424906170599283750757444544060526287436609402984316064879954660381923518008820235921398075461721871558706998538781738072104555172277735220174663542067859543548154600779139107174702873275591122672547394324039957940798250670704277735800355547317838564069751513280302940184116085125402218979225116796275090425546590887077333727149056709897586535416235367328182324395214183984418328099625677337555804512899980169862119814698586774512070713781027626551732642331551703329277022977636582572123553702049983929795381003134382136567679458532860058129530290806625055331877166721505359967095898582992997345709047717592660422833447063152514551811748227455314938989626531527031431549541359718462666206690559650898490205032374005083606244399216143021254882434319230516172814887722091745146414962599703902535008341829025965080613337276721236473571166512789617223143109314823606496509174372180951923048029110466467320277663705167754352467015161052386651191411329738682624782344334269448072133844839726740511678338832400403001668757781958900545438611444279386324783096296538172501031018705260119573219145674798024990919953570967461776356155371385153121220736909380914610815664363268232958261019022381096486421592672393772285613285295443096110842254986639942814666731734466644721874566877724980552499143271119813534178953090836901178551205152945598044485800459855586700448221665589051541399025534152568649156977547336274677827425587791192225177964961168303401568448995483887949795466209916252149235663315654534749076743035927331157668792432793073476276968015985255743222760183072051313658182467768697860519231699967767735024078032423887480658231556640290320923666235161619107692360601807057787139980795217573143195855111828067153259019695434842265939757462152854936643565720558065775359804349411940709313747325028214346973368675384831265030000192391791093928338235174017873519463112042084590951918655348090888034171151107170797807049929180690775619565935848287550452359880253509859218754274934753922490820793579922981551409651309357893695444300377703413820488958260967342088239627692752428325466650350794223391552709084957783015243247370505360898193786744633478454268257443169025263188125758581027919366401284326575085642586014599311265793082380733445956552087033024305708428922876202689448372378053664886291232739681790596229791447754938236473146441125772475961702248894536410639802808093898600311278993157171805812402747905279609250264337471143401196065727049432031341832012256143463924669281127949572264164418434307100985912546425454888200865301020674127887965982044380381695031981127535920353986212057227182579700328333808509514559890248956694294655012833457796808470583194076773687540428572612643273944430780741836836896139267313518998490750934192310399301860966125344992216077980524559411238002266272523630717740433665114974005084653290739210561172447293498835461692563498361081359725982456639410414185992196427952577623616072385241190411282119666125006684901870502290859113098956382373889083714890874394693223228030443955853780383676673201570310115971323339433729186789720981975600496259780433253854945692356140668547691095990257008824956757222851159551434952101839942427081660612374135528368185903860119826190271471829247602215192507611601289583601761149038205476782017963108593774074433278176676171227637420145137787097429501404494098318366383527794543308285519102435094516706419679451720655831794034595469106017969146117061603757943651542732694632705751135441954865085729098150180807781562830783501920715339302492373466129923587440869225275710985195069994932766011270341929408187465420635319210208204774759499815237226437147136753050776755019285417524589562666082614776145304293500627712862880029754481141056289035867352151283867640241252291612167535980176231013639383614542801716305859146837687146599895024306644984164973003554007239304871680162923823220356360518637314481172903248858713049413931175450973463450866638538117668772066570984532743482982360273199189438971924622640898491847235455512198330959820025222447910643981956117940964551816551020586822237891465842236521837577982986262280863672712188186484394308634256866116262158621802476555814870147151143706645208693862343181439657467613426529410228694813672963175618268179715806848313569651696938258715923126872258331345263837031981945164597623866816622838871564622280121797992406734336012402614463746767910543388396090618790098032101410866346936900095637622486752211191800760920361398144357913164600212254668153385072677521962770633436890114617513904409525792213432207542285432727911976633255790145472217730450363014381536781286297768288124418820525517794298049753531526183816347592040929506426950630188686186368097603899589239632967294553435313178881533036445484080448404444632087728768929727235566168565168556637044787884448524383220514279247680642797776987812541870901513069214628015617758181039271191803097307285999024704261026500162983380186592698192172640744209178660395941435655947557300650843774320473148822566877297136309424954530177452385490167843338636756039208241666341945341930274897147088955106189639103553024359343237107905888397755659282823476359434895658574256831676288045221548054681747603711599833059175298444857221858425146153315674399389441974113829691921708194643562583632139317230076665262670890532886940987498416456940294674271671407324985075750934095667757844306827465053690514243363877150416636324917978299234004429373496779775678863087398152361706802497730999311329262229846981986262381844309302392183895917074289358785984376374022239782229976016433662243891884510630701556381894897666309084107428214315726471957388414538822843328992082292292696801181572513879232127131975683621881218923561294101035696566974218356193149062581306868834076921718354932662302588844466756331321201474997012971180421445446996842281345123040952086898241575019254435919760570647752297790300949161466225146302061241929165707659677323580494804478125167909230569035540810554004712899737028274532708044389521584948852700784528144849811222207339894158824929288270559794374240428773417282844560750210125177532083132329941789671833188206427943823339412517532271786293357187454549780199753325817170682284469885721572802959280593121528069130577343076678182532803882920361013116013405566343528774324600923578125298751310682177634615864323576395200833635527910292543711847491219723050245593307121978426093771440759925164789640478762447139087155733484240386963928228255789463838407973972309924213295504745438516663592528215387814010117386190225939891720625245251323224254154138837094562865471486872967512848868636197976821719825150526132988707122198659506420639591494605733228525396756200479007764055535693667381535443518849584148003275354388342917837866567706699052459819935697155669522426190866142259044040514874053209670397736909022718108727962522911250664541434111020741465416133564999619047228359769476574398160659566259814264918276730903307086909489707533858157310567862120184483421096135213753737160420952830056938858614413467325587583186205341316297935691921793916042931693745044843799091404185226740210453051542667961251328410539863998336088083896945969911001940259119114670115314120588199053305938419232628023075699712383414818039034226711229779605887416295018017347236243481758392728117964372379126572176353199166165896118390574181214341224645353607075306289696099007583985093739207597558723172849889827161965895891552988525753960288565427579701059958352268431869416510511312337870481104634154755152944624525678536952909245964519538220011795209509105450421648030132318531027989736567095122170811613589955877335631238476940408854911811779629425910072287839873708774138612060953278183782380571794867438985069156008096995604697476046690338589388278966499874006486290856249170150968309289483928532087328258502204686189980453960372669149141379007662270757658180187420297169911012486984792059501375005719618930759270490399402217687573876147666920287574946919568601581123076696043377498692818848321658160779715379465003612980717965360325307106179398013997123847427658272061109361418562916968227658956486877406323208018241731501191714671712762801817639123781437172163291740563294843200498749472550134394548905901747699087494695793796561691174427001637761847856328139980690117527556832403969830239176775700103678036012385638518717492049250053260582191398454710727656543548397284818287568436239573420861658134962084221124539320035589761451366423334004244940891232727309590974699104490218488398388507505065768364602601564656310362407136113128593381314571180889094987343836303145912411654263510610875074228108394968542963143724715646857460891290919203406984844808926923145195434990413818962720757549466204703490830160028115711861108342217435081921833909194722513624420709615290478184715705356174457456843353545033161343358116594914175901500354701059854387937600888641211081294431393077171326060563278154674142249683574608034855305516003914061449229593286249597731938401165198089149284267545751300315914752317811760125246026933910863745287066364748601612924737397892047551983437367013705655184696636076871849917957064165420833697945531940253831044415911226079493314823686110430370554635633132649258460299871245719077059288260688137703183618313526002331309206241090976596730868777607427711039526070797650191159922695258063835509366582938486010122789844061493179124875885942368486461296124800377005714843870172675769125193727209808271722173097874699607275582260829322449142751209467476478569673406196168877727971050750894743487661077624758883031872987396850943717836909086552219470199658638366185419667342208650189001149275670711741417761509872121567269251194147694177942898044516266420829429073635868929927031128346376044101691865581294778196214289697127938273452357732249983252979117685398944216216339273131893346926348043813511706374136590381224428552104351115243113144015968397387240913928288527437608999882558815282596199459291165805684628978061070449681283706290104992500930987128134432038002601404801738779433395028985102476689921933020729634764590139513788905508694472552953666934540621926913021909068987569067830763096429055754790508215184206260174094243220130662840856964061100933705794284275031668857144080291666376329864087435107012882463660119217892710419061137347695554942924026391648245090618317463284908369963098033109233353571161131307250025236725144435595111668921225338383868619439496695918103193121999417484654302267995657937337218379128189467574223997137389777105336760185452413089815491447484943186387504966486019597230093924966124984113219648874483380183912696461226610669260004632163607405082240940704387244648185022938330240340274327437005024060730713036337628550061265702858249412113384008639012856482259741571166379580722350226445687475500338975018667192910688794714002481686147978046828670051466506109935391586700261519283957265755501403037360815374157005260349693574254925029306495478549723807675226473167878078950210242800607073003250393203409424610151692742614069595245938222282678846910740646069325153941045552952684239853084911060733066348509392222067530487207841082186178923090154737590031544721158884218126674634085916034661235912278287581250186527295527944008552053654190500800079653161088091183581366737885255767639724628985593116658393283858020841203128301133002871616494287470794417731974385733962557063867206832959229960133444177313844733596701551060578547067798838601367505074861529084767625321839935759401720762207865770531275549877861071708977692615267421258123208542268275336879504374512001077461337736530034280891342358317044471104167765670967756344552763315414950787860642436749513798545394983223400691475349472804098587078603378642158611922214206389389336435512738652463831526283542388561949774301136352413992417875153436619562378961558288309624643623577879252630448083580501696319226290040452735538125018792610153061506140287606898833996549954573112443858284517014309894864177723108477980974921371685566306925701144649545908770930225354433953473310652819109418325742849456221395725401049440011251193570213357356734763454808951359227945522625136138395107883605063578054939526242981029116138123452299248665461532740215706763091227427746400531678864191475416348122089398169401217166985995492274496618950640010185961327749266159467864210850147970918448404762424742328345879255720247348097735657777713813589733072509829065520550430536358675789472649857833559777790553272740902681518784604021866390326164290051355023288841937831352020243801343248380359862150429664727576668638076155462298664849375566984628613816371448817239500224393665801828323989687925398656750268854200328035599545489228123039723161544316671234495511460813126745866912758596535256269660946428705870681815552457694989158398525440234539315869517975701285744615869915370748191437070007255185972771980585262105905298893927126604022240735968587503595123925533702222052952217324472712807794658509529638349567202860443530652175339917544880459714939628966444210032790469317084199631008220450631341998015761376830158761420925990971522766616685255503876013756956944650763081159274467757414262708106439611412171853028310433704440186806794510459970963890558650499826772075126946498048823286760110918621547647310925795580660780175546905452675453854151549207289137934626497405879292556737675333849108569689359968707482877635854278162455584594150721117315031497783251462278847589640893502363647583384989421656634695171723766052877286346837379937039651856874808695910780674842805721499046789185022881094957637387068152968842272614850246106149431697607667182488341607918144022872656275880682641494043827515483798789747977185435462840023170985840112284480184899203073277341669468020404038575329589509787036723149878104721416921438406158968905682964880512255341041777532501467773621534510333994580182656708532678311271313780816346758015950228803152238889310168374505429606971694218299606448207010940002999306240114004986879664980848208762275386499183918746135196575228481217401488104839552642942087242839709865130141028472344978470094147491882194908786966325262033583626613860656100276098673691936151861234747292735443626869609640370158837108960112042127591388588658438798219757326165069738965200558568298411368175110044233680035034020187670459899952848520011878923220954376550697030579493413000008046828340944311144438047351339629985239667596588676939142530804979007234954167165399847755093655134800132247516507371432727406599659334645663884728628426825873492968252402952010599283150264386121988986232034247732293878227938082636046209875277095060160834772989455865056735506992738435184536525231794508133127609081886693811453899041631595196349775703011217615018810267050124427979066541095545509883781732115360337891844875724780110909283656410264629172873886540409250299856478757173585967244929812592243386781282303770303569471727979650080381906701751008072445370745837136375124937217469161311851952129567151620694026209480694253302419489224479581619399853104414504820114183430360546406783115653161296966746348299384360165558757427963803362034285842081154893515703018395243711656252298369858101364444438492436483593709758051617735566590355787578085001094196886051556698984793736314451020187356640390421185667604126723335840943020995935904916508507492245237779247992620406890293666780409322084003983112889024150375284827693320028781364030440717699061729217467771009937168420170012578493409343371057174655011866057808927438424049837579722255080595480914534061540677380066196278598494117407781547619517469894309954518638565929019638533172014270452348553598961476427843872613974761819201647737833446089146679001550894357047541603901873679607182825210275982789762638138873409949713942232581150689791668974211823941167711293682618717798359058693324989428642083112114775627809679853680412667892973865866914758177943550549732188160351320951880760083562880604669039676512765299470849008461689713705135958545453944340116590490059929622575058024935578175080161655577261550710958324680546279432854002141586625718065234143460913582875819836731432842009650288513641838430082938967028638162848038249952141244615002505678828976520190415499530914201803735161105273894118106617538377635176360438823440749748276477706089877671924875761064383108303096809442938557550867221213173115326540916874383443891585907244401793021968419979018169460211279134864125257314306425470694214944030986402013622811905402408827652469469217541413623004719395990996450730486114264811696993876351233369581478059487332959021279454628724357580315983937770071969892324857561687147148994477951975533586946989131919147922958092724805170120163333942799091973518534131710790092789747824214327473653206334885156463870702758309795440570285921840247619961580976124590525768018679160382921104730628207688585938621851115652075600356932715480578877902883604998708170255439656767225282072440588486589193992437093898648742461918813699908408696925444183242703913217576141157510407745844631577765105003827304589880126551643871560594694483976962158393620619787199703257489617228467852540940600099589278189049090428764365124635903239216299906448502226883774482281844982894972892741263167027725330060863108814189153730271305628356056906575948230186271628501986194937838113104146146557929481222679752878178161107901798482446016977442986043630926836259791242810236844144769025350894046703864463535506549415354937784440223796697445483831799218216309931708994139881949980532908973314852721392341913202566129372905917355005329872621510335315013830352593249029469241227911211261023652491555126304297056134522343901681157452004447378258321689295305512058100797286770026209909096977180130285101513559185413079408365440591593756532017182079572548728548919513951624094646913185557734355794791771063360166703036457213437865914767085331237168888626145814488902271501983611360291171060738543571308226622025132414069280511899419826233826685844955555012788718897026473679936663456853488928231272042695277461553899686401365518368323827201269412183310489741515991876938347716460732633562120154270845277451566463086802224087659037762668991240233845679775045480055261767423886182799865689708802814792650696596177154836326690983367568797808881073722650887902663321630103856259703788568539158821475071326213078222302765773100920583148270495315176586457562470039689941298126698961037047404996553893688961350681531026957627080967783979400878616614572246701240887879781037252168321781808798336028893618397902137900814142548153891159591895452775154204192178697456032796941741663759686335660378170067089727604549229473222419503267284858614404059177305320402035789818056928207246231169094429771073444279789410183046534277717379295831332599167416162510155377762561388777515031025231092218375219789481791072980137773491064467753938846629682505009435196488602852970177950092669200410552883782998287887907707525461727485384721664567663447265833718516244154024259159530955073180069684410355173810296727987456628194905412070163456691981155935646200775440219660948110613832555753197327156458298549006945649495365620066444543458071140954944524934011859975785372706335528425154931363677702415254464219699476047413042921673613516681365783516119886987991332889351499398615752979313302346646397386735204439238173332996334444393591370625222398858228034062694430171107496305586873861187418670327416096545831770753771866544202088173952966706896997560716607663377816882646821215508176557525821024684039714382315193210063990946164557352970350522326953520441201955285295670797298052924756311957665899067677288109393345359632046712180946011463403269315128479201280342255806496452558434809464230467398366683584263050173518465216449843031297534576919879911865588941398652603057300520976535623233969044901877761484240175884647836811944423748521153732176204290149869497035722538759944970335121422927699464404047660561917133493539767226957615344407910604700337991378944679278596942293708297134150906399891708182989891348081377082143169173584842822779181197636281423458972824722348956039468403360620532116479157506440088732706952614016090080023558140011237477807039525556230137188065450421910418325238813323019341438401260257670386143261126283110992796682445093962828585245217079577730049015597563728461352909161225547148893490892534334307304606357380344089711296076918350076736624345515617804075826041665010330225888331266925102478284455431885477331923463574661041985685320990873137956242342171363636858467461214401554788660670706317391713719724012022928943812195727668433424455561581356720207084780065196184516486837954364760944020903539883995164097198057392342505319445533224514112946813500133782233580001631499654773419491959533329594164688580246483328651451858730626825849412898332475249160717422054987176560935980758249367875236893716763795689552209776153048954064454321502831886661762516224809607272342670305307060998338645134881868675291126721758388027078252384939703669904986273764045768114984986931004271962964953439644898815685090971026946702852935597634238524635706363581146795382569513239965357712772394163436683611429670217192512255629450591426689013067698504160450401166637924359995559573780862689361188477948445463040667319312162873481976633742569873022421209230584209889855422627132963144029184724361451592898186041620675780672967691391500244361611305504450437899509969477607302405194963358498966223519193598783413419086679808202711099652623930572723635828696156292942079255612434780191990196864830916387335708186228758738720328635231151260547172923308766068374273690015139296318787280776718306509962296619471159187159684378625208470014842203582890509779073846396552558512567034754342811580706832817694029981682528847038992105966305674928361355069537796272318304520991923983695986822227150997953234063112446641357064541727105113027948216210952395930742023469680452817879186999750209392147428287875825430658899421878564975103714663388692016658095642402229199632006255367531940159514642079672510555553946200485092393237785078289397866779271735431399474859759196052523296008156185065075580600905627595269044195687377710708045435078036784217497659838441900428971593386270793677788672251024046002167770932460024282835190918467751951649333888859939555311585281058187961501933524722553901524330268851149179228722700150379280556363571577386538750561184550631643840768665156198531946786033604124583939294464164520385536336365144687232887816045059861932795861155916822510073760893539433520561568949091795939509620088389638879811038253480573169796414851847352426135720835122786445756414354697473411508164815166572553539377426290031972914538832516327331112768098893295067677817254501875596631630782580423429746043665387144777547631214850622397066374840037634105159737745140682513045560645488533682658576964904595002675151227379908705156268258656502978483164145715032293738009941906978755762183594828796341320718540972051887842466672185254827422939149940235714192926947917976408829701111024304253280075620748427287836602474213734158571350347520079999840559110019116429539833192352705332130969273232051778238867617519184445233865321325721149534150485122001320104164284159814925758963548392360170448578897840832559851575802742688265105286180942950773716426070745811192552731675594905933094919784467127944676700431712906722917866597187752679756958785782878173556956483834045601046804045298736271555127447958687767881062568738969592904253701820803817469383016757255475425169651246344629266668035943411377759944371817864116969122120133594194625381420953004248544630046469224571476131465626037367595173535119989560223623791861162111460687733218019709196359908318729969236188531708509780860908550591461610484850793305039893684163552354457925639638876495362614056725121997335451811763449670741269194544124877731728511376020323439347100371504438468854400524768677707412129412413451112967858288585585786200965861793291836886162083096615375682308394827584590064335929510478395020128600295440307693885074124085692352842366717863427081962122163683810260889513385227092627900972403457006593773434767020020806222731305848736008129822390345538606543504176747013227959960193225031515441882153363358315995784837762102208033203128004817563749100304086049501421569728858913322133128308207004666821874447489899209415619056323490857271816875845412296620559080781360609942105578856980242749783846227873389630261338813842796424576391919515501449308369655797864703179549147851168055352246512478677025661405145170009632873643859150144577342901747911551309810649650867674734941728021409535361915379063313944622353753263433836180260357314569123940922057471892956026983439322785208435750637135984258820153329845028454898172713784554549421542837923775891840266708552433687519604043172847869119396997258923817774546800924896004164687844088550810590506056632179709157102741510692583337026634309842285487249356811670947995368895971593119070201761877564478696917859406743970488288821525816833956950691839083969388086437490442085976561741555100879669055653715603399347728269535854978376790240366712287808728451849099383903054702456910176638542839776497964448868639414247895865605084789108030731531080348589166285541467067283549725967446874649569951925023918660996408536186968430895344988304416026157790832390167316779079277997353270120950398071470267432155737199585915801485993947925763724885612032357119428326548204365527359355872231114143937493400217217588075251355717283995403356408139574527620648615720876152005960474887628496409525192090631857737984317190285077416720355760486180932255337489743161863128870022881458472361155346411805363591489360435386888577395079580163468553418975776956107737215190883338688345888364949941972199855315611318041074541331649467653707965228840334833313851610326715987347556759800840241275438697746310503335109592492545239885270405195380187723117775044674399458982549355732527654843847188174981661923835730359857689305235201084545971380785719194363471558779895637612023131862581847573960186868703691167309107190118817342547416029959140620299442198164556469429985982620918153057488007289396830222581395458808689017065536242117744852208393343034484724462368815661522226481613194537465041055877175056859409595714768611355356331162868501231563540637286596986635739821520003501209127993424850929681630513488757070073673229505118513440456880909194719144518787149744334541478554383823090281797981137305916528311505702869061205272712864278275023610999110115582683409790941869429389551616510875268589330314836428831973694726734373365358240242677768992221324614648103809303193518114578376199093284727686271001717588950008674277696576813396999216971330955292791212249127116249294987144689200803147026237100373401241547835362427376455656961224888278227877529525099993871226500572205128093420302957603956726939980933115992759640606137933110774673577492114930007897285921898851446442935030342886074080641729042683109705595977628150517377436276554668492067374687184418090133820055433105460103635179984163959054879996597013693194313533673604717071954486610230205737661875058516573269741561185373227930585214553478969474432231368235222619617639477015300451082003489531794558774823220961200235732062349198167690336518147716852528211735052965868263022193813884246006070643949308019634417807231545271232170513163554813572083626087080828307934980332581333604008389738670980247549570481049858591827403019094731078273801339704027733807328390981353495348191779899895028852906786625093028460376553066966247613368199753253791351500364729965034410188926627745612008598633454078172419226545269878391254719717671551762887564031521862562438168967047644309666825300505641759167623966306958403164384815962097480304652342241185884993588899002292530373333869728672365836518959437240347582306745058928728937314441642757643804895290674901846256694041109100535932629562992473857923803421299232922209507024820142186105294338599305754567974681805564455611280040395728257312784400280962794179750659276613009375864106332144385590946028647378210836312125177802471313554035566688408823800395159672157753572848358642112796421736489631564676305511964843908550976188184727124390684010578215310944871450262371076568832113158360220355269732160009866001176708585697010985791667214967942712048382670461056619013686818587915599028910590691651758747570477173795853719964421617608576617791547169242184774938650999133283698797629746916245173693461976979302600333133677825299838861349335219895450650619770297151135852656536494973973221526255857664255145428445368737199103558323695033196114482493390060295462884271165108161247459605646365719223638032361338787749355858876103358459494339212268070115426024933503005647107152054408754194306052362136793851843821209226264831000774393958642163408127721500747485423019798126546917085801826996729704877214306148517586040675297552805128363083414762866170225089587074296991035949349882980157566324643112534320421554057108992898735460488001833201442667578609198040467177309974801731538776545148443363702069088712468408682729863666886777543514264209649310037380780315075579968289632935707586571251665714332724208598485545414536006899900664569066513803936346191845054847219231221685053937528503072867026230495725818618928388485708037700887671107415830919665776712664377461290549651355396402368460681573768291421796588654887681475377006373420170037793316210797272802235362576957394195154241204253428138174649270946451322914195185680948308558497590218736093016561213809580643441687407033900719099505717015881219796339201730316036623108821429523376515296118993376013270586842523036609921494983880322208472817732769125494459352994766766773097482796360746953232250666724662846419181350892665651588020072107165196663702431054928149749700512644891343922136628948164962618023239841280713845688250925790347935953535291647773202667320148806120931466496499183867503022358910062831100532944259362739855250824199975866643248305583807861251496354383803381545740586266472124015033948640718023671497486277186402782750467677097466213861248041705633396007328415228200701266377134101826681331928466842284347212635273558253734461674521824125502362780288974042584508340757783470190404193755745097994704139713344781463878968965980111616260712026249873448481119141845719631066725918581052230182626718561301371142070699260687978710852248250763500867208076108788255414226467658065681775100355204229516972867592061718664496443831958000823679201259341927020067521766157293623283145275908749530260563368790765907087253645700264970416320685869155876787456858813951372313549595340984442302734800619467832145311861393778570119857385504601362813956523587620085728937320439450781806806991780536453679561865699943051113567123413379193058358254741996792944893680297970891344731043726202344637267249196285143021087477483439552551235886148710258454407911216534939825083972228243265260227831319851806032585479962597129222967238398953697153463641310864764394828566804590144023990864468736051905485773175306542355460911739921835680769320276784414434193842488496067593403184629847977791060496682388590001394659476810872481189006858323814854225095976480453399752178710524060912502459714989325871651051022553911126812159977224813698657038919010971326627790190512431480158230899162036585353226102253765831628455717116147306069530176658027689588475139356989018496713746695595192393970350895014419589922908818554951849736719878336431315355343987555445550269683687158492391298586901107672746796410042738303010866622934304065905403079300244607012011436450325692801315799182347240433121762822531826827799365694146990551276652592116032671121525118395120897191155692107575672851358454076266422021177906157939522307622421401339567595598742235692959406604517410321752428290290113505105868360067878339485013897860809348606085446873045238064905445441160410811851593127417161068176501307159137491019251092463750658155358815760555893185596286969563528881853201572726616181483006177196227775576372565154323187472742898316770965337721579626154853498838982877359424993881294245902823765662518869143476020141621167842347803101790377302050520766398326868766290443083039203432046250193524620588542781854505335565741426452146250553621104942178871035628181297814759145141869777897851306669710165203906170054006334666889574101006140883290277074381786953585010412945866758342861517790265239196485186524348402977458078165776864721374189470761015586840721819333613520747851460802205515868535928384944327427441422452621544559678545066050187538888776379888044323845635200520836412368558104145282109607941333864645742556192241672276479998268008031741748340454397953185073915747829122114253631625361691400243088516532178170784468163549051925330359282361681213229853607312680890329295114849370744144239052905214130929116165504918867579733778663397490119180014006664190071095739485455062943094290519067357546298684281604890648641952340723547445301467840629855449909023297778157991187389699463570554427576957991626109053279676787932978365242599202315163049508923449818090994562008817987668970182774221806804507041435161964545356399342875138267091624352087258836088887940056825577630688072867698253757748118985651251215156414299839026587478903132918067346284471079805185505390334231401208103138237276228302294772238258499351392990757131810044991083204334299867993977919644987063917279915980409139633158541251981724150808031673504363455121385056568207703027853700742860328847338820438782716560358397735312937609815120358425927570398353019633206176445446118708691796823648257791721380787010054373607806366814931541276931703288859554750931641243067120270016079850124373552389779983444297146283341817363638042183476813257265261558749662200045263758039631903716603317986334701395008265827122174987240066303474466631380631689249941134540115216072038516507864868855161316868227967936156335142792569216969560292572893320284170494426693797411278850828961182215212805204322598965691002495999841335525021748928725957813444260201969840661225655698095060456824149382197404313292989367268837027475812926311277307547087185450969016931568061197065331873383057364317081883995958310927619148816276549759788794380716391397316916604748173768388678206213710557539606403432685300757427701651798685738211716896236383407994555762504393824546916966464873940785165608855950541156397143433381727668106364670434349776022754595963662081259668262768895310617824213550285708783015949339382867394312238298890878591021049131117888724849193553531530795289992429342223046533630081784561338421909988248157804289088149482365975124505751419734276531350761462355732981170620153148637157080244114476066057125014281689428293115436321521242018141698560631041503088542753227031672011227113765968962345264193419541134508543579093399803093103922222541445345540732903782837596736666172923011049670526565697767228627308863524875993127504846705435573674010213039494267050486343113062762279954721719247622542871248212777131646618517961766206995996409662458755314250510893257423446379256451772235168988022965569746746044394170042415737373885067518685909265360630515418271711129013499114153243114288582839589544555562822427353836627249732370625072080485776921026636092256422671886573337992858683572161441266523566590696005473329431392804598003948683374955911797653272207372750795133612068026683606966912720570161375748983445536593273923229373965521087057190896419122595244389184872849744544237777708294153057869064614617598873685304333596185508151012991008388202472837623676860775771757687445106459603955422984997360788478103613493157821246061610284975107828915145776185339431268089394868761168949946486121343345682475863938774677212025420546712474092977336308978316895552636939715680302631104498848424520574146033601916387824004787078548149721124670172765773837638474549618628336304610249374937785742769995686431048186633350804389017212753561323361264370919464993767227081608575850516242568174751313801110179271270273670514327798072849839894090815109241530378668543225787528067103723364989637535291512231637218306454533052880675587461123053809394919741887889744088761714069799850655262593028486955797884537302909622484876886515448087514340523917907674522358335101409480735074894496664528744058614357868943552574030527279758506711692205007181280035852039276674359106679523058003644939922147898956383469820529391011625391802221409995761593158677868555917927542450869579391124206033125931226889432507099192111610679020069248655400289618287647728469570110486063417272136932185531271829856558764139169537705354084151775754627568486269644423133920410205959746251259595759862940775777975972510886373585118773597733807274891610426471250563784535399267980694392731328967681323674337872613403815841566664742752712649920898533192484884444392212124033989085679746723181514057008507615479416939718130227419797184992826326835460678833596381519524843201686733948589419892639304227186360562848023721347274618218082170334012768975875307324681755149181604881919268359029198380447944601178281110428723925929331231006349074638946846563562447003293362851401030208400619720251934319678998278847927099374590178683889586058147464727176812523823488025397359575968514273602258359243460035619256884818115655393200563370762411743659131295994127902226714345451762231339367024274058931767494650378966623126432047750163494566930519514920089957826374813104526540241711285334723662572281353906580014437379443793523146954651890516690694513711026243643082586694387897024353102283733992904497560577905822312425678296685347126525172468610834345470993540015791125623779512096576472869090291307610557719241698465774613436130010118270947174782042396428900452397817487721274047910915759922679871714399754821635483604929530433695680746922280312927453407222988086941174385559938420838709690372996055915329521997644199695817299906816706508099253821208094534281358803190702097100144949961234017270230243284170863436198421625343728085839285360697692131134194854065553957950778988088898922245902434420244764560875631254305372528646585557676558684494167699672067228821513476588282462060327690387160441797520368651109475055325262310289762328806114633115853665086778974444271100155982010554120108959673203811522371360452826472714471142177581624641986356399989733263167150799654022467341938054589797873495868159464513369942628892775037284109762123953353049729231603455883042375973681911347345673553564795449440882354277267400084423761145803475936893697500486827131864063580814353358763047930505954256641533936208285833515413927615296596513016355466334825660143630054323580720354844050123589377785849540907241210163985998886795185889341328197981481403192280593076485320914651454555499558006343629581153576311921889377374275775169525668040283976105869153269587248519972175539009194637534374776754448869523062273823998025603888590764023361514946096874330943346071625363268452827148350443382332333728871928417369092196784610271022989853042418080662971037787707489486399004154010898374326242615671600239661805923033274489731941637290340163806455719360071313707554463250742237127123883208764257984426811638756359185290191280126104975084057469533233878428757369087790341496097315980106487964417360436481299596232968480685977997432357710404272551291069738948312588335065961561680607068032341545595394267532956733390606185540978350822314442566431674197931510466630527812511221369913608839129234263969946490664053993811381207621186201681411586175765863046406819357925556946015985354611474554930242515659448143915542640970812798821294052386080801817059590667625744214348778278467114359709900574211044884447664909582647268268540100178017106095322912244945544762888810397760911980316324923880249456161220323325102377495637626436900004909458664594599215204600103432623043439346894091367512468829063026190904548153405423726749307948261096286897968735954722330690221693847289903970225805644469540975201455163500983996186548931928483543461121279231961189562794599965418112780079716928937234532368657409973183255657029389199270796812990166014085231191500661336246049073961377179985256128950164606932016972134836139788802250157439785614307235351192680358187546826278430311861051311379504389431319809460409138621700938034927593329719507287287547218746002014566913455577103505909629526884875677476619668094844889829050171788128519451331321857054596977490077069403643810022632107389267301756782187682845297146967049585996733692453229273195998679871771100474156650860664213969330620619731980484972463147938207059937848726276128428596964325140678546360882042730709070693246570917855615578970427973557890946260269000899363271918008588971477050261686900282312244817129595346708775929179785754825123962744086705482751557475543988865206138533856634947455887952615520641810882683129027495459981317243702640238929226625835008372734735975280343282267561187680230075444254403018060213421034310429327917676106720733738921314265282513281888842551871639241395081331702645593546074936809989350956641666897708971869150158713410758050523200017842813476058924921332864157513672834562974801800449460238740164905325350659464851187484211462483095139966493344674169506036398945617495150057359105859247393247802390097894268213017893737292135845202965335287054459615948642642142278347255571606995263296288159756254178507633531436833927965099377421755675702756401807815671134467766087121694738880551073015061096714477033148208224582751849394315949937690364771235865907386771700777869709290794890081546220984223307194861903929919473764905814697807111144380237822361247913239503360564872057666511021665688442216009920003801322808866512451139445526356455165684109049633959256271690010681049022814632091520913117294806673813252316224668194185966444087174737443003230709102439457393727774872703003932340131461089480018740832444340530340283054700916106068223655362646372774060780845226288765242481538285261047393022617887511809922967257585959595382997253930948157889512884517341215385813851807074701399285576084963526002104076079526800053858938062966942492059378069827120058063486080835963239568991872921312171142515708678405623048744541903067351132559435993485069395776084093867896418424129418036134391829203941153558619148295935235725926352714003593423815217179175854551255705802724452061113984467821377559645508017490070372556431755395348733286686496060419077079497680965909236368122837168316680285508618901045799520526632994760203050977666880897457535557734097393572307083310777465121441736359469767715251144471330620635828884706434624667278532513341235094978485063393856443791152256324546330746317487915447876447268925875375747389171164090988475400947294718500900156514184525659220466898023539910567575019872205744745787388456561134179454478194502242515238359318006180109912887201971800835650683276230697619413907184904830253906967812011303506984756987458048390017038551951812750901896750552796053270311987378888040050871953718794140374427465594076247701323857552782429961436476436650105453100175323817945414137966475989290532297080125834608433297660287602102264668975057670849407573345020773691855743241996114857780651806056803372186126259534608987681937599298992504660478057353678212464318760299970290984513016994419344194488846921249774571331682077219381479376670702552352935168501116762171488612374380271595535434712073525805988010926721997813175040620858455736166993836662924457990581387945048622297854188508860017225907570687091082209100098041337852010995885174105678914293331367079936123107645645524419632682156854961609564469672575757258433109728062636025259596737367259138916305453671219633702907064820847826468691119685425666689239186864778494230391855524503734412087272529924898972371696142205181609890114879995838736589406729750715367763308150178813957792650415077417688015948636377197605740631755346449959565535300410015474341260630369353083261325965924647310874358063905970409290742031515814209022935253397387208830330947982026207751766202769192852176975567932954247632209349254687373326987070240598306402055627973781123642295803186556754187327179382039576043804818849835224514463951220134378028084598764308416675787457100339205821363848035883602365277624751661196978873242737298575944541338556256737520144578063640945430161641569254010187168665940696312214585680898000636362835770476096481755413088019662024280938014194329469669286640690324765443872391264095296558291105810827544347175515441320526250546496917607514817174117696383677404214143116865344305505167518544032801949569605557399411344863972784214096668212224977547370259583823331142962839508855587407372579878344406184996907881269031062594678847939968767506245619614479262767062320806917566353182209710199980728838867540821772962295090321406390081157867064865449128133130520512682829363319536307003163576738631611448331476801326829946806603135506528271905162423463229823254979322086004455161900840584906605200470760962278191618689211142454376289074065844223556348575583979313963755212525281165589999303600504956034167428973024488482467710153752654262643963524751953550112670574567516855167514866836884083422963468381879255084032682755044857322762871598007885977965465568032772057331174046675382750314073409899185854335706108268772636626594400694803854432165512862769451991322263708007568749755199996956193526854155779821600235634380153204626327416235467181937878367084328693399669196788960285865528122574633411401981286025812110700324382661409071951096517151515700846027488521363259082871422636987556828829514762500736480611853682771895663690422587207918404989365453336875235676364287858016949117974566232337717242121958559654601526095455143448599306140278952650472987947200642777274071434713215956209794655457602226726110606776892069853459609435022308410552861387456824565475782181024485728752875099501414985785801515856285603666658904395389352777190777500512558855455382601491806117564166724072100196729980955965279263360223737473389422607733572373903228724469019858783725567004952482124480712207707627341971375830206235023993357488067576158976896690302808430987599755863123679254611776894348796322695716206185656950705969956790186312819067379492157000229195783480593177610642592866921760888002910131966208935109100003511799680871013230261199875340495230404944031255363794543259838330911959492084143539167991230133737563262592415934827241714698883644996505319401251689731364859945800850272252143750275038601468815412816835093623410363197399664123379729350985173820956421958621811060709085172917931271352844568171853502084806412057080107305506939468155787714140026323756139941094094015415145522214725063722411263633123061629573228778924686942265250329501346263154623184666610457263968147815853484124392812758641031567925946811098464732745222151011114682087408842698326602895963510449169982581096778995919852912483342780883451250735331627168257793131127497332879432102742813168305770445517061218295712840903595016873367328537114976851271641212865729813929018675178143282902483976436673444335336708499145272032720595961984934168707188875161996364481451117979452536578072332652612582062046722070762004876814141135799072582380863510360850440246692518167524114823280295157127175867857825901648545442371510286748831032899098006978245252828169563542089702908441644278230921919236480092344265050463276027175066658658168966379236830302557756083476951736141693181912072637679317235738196973833057640903104749284910024603583911242022241457350908718305925248854205365846267609316270014288226902792463151049053189601505564551102515213692267884000603678641962024189428515413727145112055664914384361123804285577636008515668471901051900222624775645799252813615333932848877213983912825759091229386842817265497176850286540497043396988399289667876524644327039399279126334938397997469175433847577815022706549593394906269494538286887637145535131767751209190229927802254686810822060838744289933421503426649794996511829361430240099349082174406545940928334104576735851823269472041727534482532177499829047488151039295716499211502994578205157499862379660748814919205835721130362381888009646801412654054082100991501043277912996242132860009002504928529774879392694177684916601120248950661952826326669069222116677974819800536256002320988379458062044179728205939823352815833960490043679874165754147091042816784820766284669715902659390412188292761501487964037785656404596576202293522618086421306188798334181798716666623784048640385589862315291382328997810581241750673416504837402828459513232039906026691570985306663053474631653992954625647165350414578526571408551582162354503395815965684377379637877145176025239604642817307877228948613744454121928002414978161619955403079755307907836868915408104100089118455143807652525839337181366595786241039108211003592106985217638695896849746475304931486710918376511363297411802047418381889855764256012305231730976019263999989563688826906742853225057103557259597186178277060536053779858692021271940290421739951661234108323155761757707876204522768252762525982268437475646591088392248489820528028369930209835863086226751764259764088439399272470721633195650865878289762640375627968712075123865492085885847277457763740191234190501539553678412179538665257598725330054370216688217223964511231697935449378544395171048586430609911693794319174057268090215015696171805285820447378388857721641021975823269145501715625216654906627274562584548546707951817097829083824022178683046189921044781879517952946591371235100317807719605933145336184915740349565377352537074590155519194497977625542502688555594604320390806408593327075438959641773483543647618629324381573050973640583840852487692634158700724070998921420750106106766186909040498014235623110481588532642888634818546308424239300133726436384686050905012315141209728967400262208842707355108059645618875125638022660207881424123683122261439554166056603334521510186098714830137393486174418036902224246156327529071611237685743278658535791115328484265588015233455779161584327929279157286381466043704678469566224261503972170319019505422541161132808952939999070062699219577819334027331665699975943895064404441830255094460474504591898620634438168870712783541541853294516479482572667682761454524223798154346780185753000281901206500195071093172750853340564790290908175626733315560040523579171426318012152331005235683714758466509982455331498322669846025993977760299948452712208732359659455831044445262540940243773723202957854824039708215031401222654882090634665022026736478760203420119441526627080499748975879419075010939056920506396956355932609614502993593985265943957276549131913443402104825636908970300818538339396429448635769861248148732999170900602713721658757569067040262580218523861788906886416692940382255514465816444777004492863187485563533979721795252700855846619239314327333533883868684404242172284136021784716552552521874894367090930761975070039158909870650757662190465332360638103060376646137680274864052597960982170806645385461982479434125628168190360961525837177625233444131165347476687247509533230097975261871729461467618385153211985853374087218062393683400872333984871320699057629816643143432584249357415653848367247372968879117043381439278564824443309457718148748419785373038844096483239656566588606023970548080000300900928034656527547883619018298192851387731345340817530908441655702428900383221384439844298764982194934210440021662592377474360168081236514217701874175649119673754282640298649419674753438846844826239992751492110580519126826552227571708184040662325738907718355407888045363349443570297146094044914098869093806702100343497798562491111086484017962024748690871987697655070590825397116993359776375455196760279293293255398958435849607665028306029316163045188515114305371884613138643208856310052369426660291343771648691519441447376812011301063480095877160842665041187184288168039927223532224347962616904696328148739179635342472379524788942783112151989865572373388434701814289954675486387613114235739752480177195090445434440981482659857110454675979227916692039074808733695249598879040790320357289891668193218547575336779418593886002301985088519266233305394571983543260443604847639826513871685789311096575209346249453526187820213978762022397978870778509358667013612098633244683141315585533116805212710195655023601664886537369876221170633050433066536288376811493090763891714373573437187732590386719221951365323567315958574086431194242914841175544381756929600426218104485128500186602626845892435513495188467362497773928432156140069639889843979582875149943674315208847830902848801432852871860727968186323722046210781854761721927094385206426397631682191943066069019749733918640869846493208193340761122655334368236845083907040662682944161914267505573180697788861138688172659547214380005381116174632101091156231433437758815343427970629556793867117928270661178704860957828488987725760078024785972947488299791761626853557656012562651974611526125412643394073501768537378794195905560664672803889136673539856523855138085046268796478737163592086817820825311126820366167896898731064631874334811323660688771965501187948524546144996182232989791999772128382512246486668657645707470714233148114064775018130316923707077239988950488991230239100884806321906524819355635609613555929195825775540662589320336752482306752760685866961408872845297999660621772431670958743282338308543955398599354477456131215820385828150615422857751675400465057381197103867743095964636927323341933729831909326454105658124931443211838848258308844188468097589299537240290478925283178498674975149790994798425014981967288862806508377171516801564454582200439053674337363523985509875615693276001992454609636827892316926190632306933095917345486430853682472185448598229047733569975583016446580593616792218283943036646898620690742277564566520308931410586238875788669899653524721574842108359397173336909679648778269166369648956076658296275523113468619051770700837638904182372191906026117344621189959594731495811761503714628456096357927044824533194970379667481722524229064599338457590295690423286748718358391412631403666974313324488396685463071878187000741664807900059205246817158736754995987495791363261422531001975209106940509549801766315001421773018366491075448221817460339925009673838740952780050729511760437299502836121762536632479669050542232820120607522477028337954416267754477754672240609294667869566804294510694979652836886666462732184629302797819555790549637829633087467453481205609240054667780653592543343040928199761669994776555459465400317958724800574984350940957743579489512335542251755603891425587501519114857047411236956369065577619227260846631392153341836107991100843545690616097188933494138319090147187654181954546507208474870447225465949364067719598448867518396921313010897970972161326097430273280085687802722196082140121641392641985122141796939293996157439414482844810601968383285053058794679785523260421966605923043153244329730161774888846023079303291088362080670460559581069326651255577546401108883783709887936273408848386578742731617461165890850648831718586663950936936252879669309291888123118040593224412004728300238538677112621517082161583182352947498780929019847853430172641460508057556102987586835021858481649177238464509513035928718604947643885698685565413081747288969961820454099630425767236992881061130913130531154026541576926349848362569098069085450848841246934273685195495100272098267127938031730447071435331821040423499890320020051061007285464854492616317699396680165919673921539521353095133630767490304472661558292654704505672759205422536189027002558001490809991678316052471202796052017625385499242704789519418504459121707074344973499244025671269212622379972370188911609664102707616793662576063059674120250116362499322883055663851720698287621905357451788210231479634056262530253852708089938009247645554068615165312213697048378114899198213088649905179891018642125574883766495567812872657640162958811667125751853955726858258659190062972637073211484204278273981152233078313444680584655742973003634318896421264348876589530295813063113653639837391970447166999058100329665476275088848229692106405624191321533791265764807480409282501329137581583156558832744701480165515322491966548558065850327244967235756472858995033870274631758633464798573486606820255847093980852289965638105809563856248269590689832570219669443676977871416156661223344386768520917134758118062355114185472305520358829361725038858399193328626761300943258877034257002479911233810130495881520622611526438899004320712449629388918410253707010948479199790506205710199354644835170685575003461226270426788637226279738663450448757201350726923365253832176728201311958813794816734620593222266864969986782560503457148903562474278760684188233582237187077035476302618450122306292866056069523694317559955638278931407613713432416852492970739860422009792213323871590442358244715388026921356637009371603169587793200562670929305646130182237248815656477638117348336357423848417958783538215325052683613767517677930473841023962295327024694912781519205804985784735735428021006447617033603720730307572044483874086549020549686127997362070696689906282006430594696867861718875624290888076946695462016314991748030870280082643871486087142477515385880040533598956501399875775364677568678256976119476374597481010710971736936894442827615026987835751644887467706367403089786126188823838147563715441147647737764152592112026587160961536439191642911076136400685632374319518107399959228404577923124756645261254998576100639679049864511596316816312418247459309684297463106792736197819800420079451820872478707373417560253449508011605811793845519406499979022207965087948525578444841730328806912555954771579670668984729461205644226618163560738998691593361856979115333020787145851994560835866056016406300096430094586660834907494691940528668431301168220878781160234445217061123812542266577968264140235105428697177486894416021867307864148414528011790442708392934269902847402902668840929156118587531867778134663228838905619038271090169616186651421537121501513769967001344537284141978942411071966668957648317084778978508313747416271328835790125779562192838168201853667278899459414400532807502087145003974368704910922751616468340661431856680968605013920109197063197932040794445981163161130318422253060349915287803688707594622238866916530935584043523938398887963422496681251354835158375355557869202391890508973505768293561201344466582752910344406525351803676913891647396787692624643944031408420788410281571382729509362905035780611274504932992508736077738313269405306795267638309190812287730654378871243873186040784138848627561227882890560270719620832305534952401304324180509134594918297343470691356242212464452602752662324020385332172106381335906219687427860652699729545074665646980072725397170915775809142880132875356331322650797011962741248740653147263646744211416102657423126181800096387689744219966689900316014914287436164249605764526824744832553031536294772295884057361696077701306496569498801222357126113236960009363939446965398977699234399458572435481486921627270891090160673751875155724964315813469074159893480815782637280600986208954300548667694299275695290486673281232630428704358601741264742669620970100541349576812443845525884995112275391540847058922297565411684434985080017722406366691526254165769252850911143319529669644935366762840240223951972646299461782772472127757781143110903182501006609544208765627066178837997394246660252928957103147697453327906088023441000033276004168767667604131120331249180961728985089686647728848341707562324847677097700005067920781125923416575964755220572229312087871144013199757029156890201033199232889198486344361434145995654205303750511917805342142744119608511415927670233835545928846408039708895403959076406219410992769499008165841158458037256139673911274349209702031033295386308185886203667031344622692191909942809511109426499461432594291699806859843629667869589337712212464197897374044427659190678753297076756614992670486915889499299645459244381935022716817132799211272857245190249585841256976462743082847059416064460559409000303579551995165141086980576488361294002773222627933935427730255374823119813077237437251223179963118839913347157232744588025924815231463952572929498689898510366034677086080827568811397330234260689806243480271236449088177241487719929061138801129132839831102244076295965676690608256861150162114337104853618487440063654707280787308431967521563308295338931842572662878814104929661034283639895933550650157362389239683800909671774718169421755239687205864984830813500575444038939682486679315125107790936436274301794240480639073669992677316393795515467656673350739133521945086911173941942195288239182402594763391554995993759518777363354684536518425978430738112695251503576656109609404034210656869128452908852804183449827269211680470022675611627429956573210241072327518685223794642026996931148903771702487850306577354043157996233575094721325457267302100714052355056518810921825264700611304829820600775648834405511519129555734198270465643003635189533304150305259271221383227366267560715656695858749245922819101272969647179943223922221849909222477616390959085809286400090380673557424829742088834332415319485969503934082069858147780931677326981352332720592735726357377779378186576510822195770457172517692775559524496344426736417237764396252783405792821133173435225870304146285779238679523681652553181693494048209360435136707430133705430808203834239579264170524203272504961035106841855132361744752702358860923504398799218120833822789188057031502435880099908143027150368822921776729293604665245376538236616045722155102742118932131189385606876103727480630454367248913427511916027198810784372370918896643342749858819221078902369268744384106151689774984574304664010818054689290541196308604772766960046616616913124508221772008880304166076484782975500571546414933766961235422602314437940856487638300020710781397235638039136866063858085598730420371295000263169702437447741362530329040170781756506540661331475857317190433055917860808401453658960502043854535602858317446624323874254249640626653002599770122589787382299047723925782017951176671663187893012759995151378432439462541197804406978490836191725205522509792373172029637994383534180171831804653423819351904160562049662118740695205397223522879506120317730961813436447233351827858535638636677226854403648480850236304096994150901559843839854885901323210915867699386549770605931694853379968499942847032433252695871820707893420058086948038972592138566771582513734585039437077688727967711460678556024913536651624807988490512672766007648755798977314448186641264612952298386310181644880802224728013003483178795391252788764502324395644138409926961481369721888503294669179611554655126637874970777137587691611067077784465238840759730405376053719346538375469420674888264342773218298076166033564677363322260527448371064013879731124767426120933757387419321341775847810634125762346936292263781784663291412441731175196059566423782725125982853839911873549655825765456823766332139769520195340806084572143164733357881537487573501220331619581355298014823608366873273083270087947611012552210444034752307117064132617419416900359619616362808937523521745667356794188260007315364801041748690610775192689803154929548450376825992148393814767174834132882785327474287294491581419327045566572018230334240472332744275761344475389440864918281473890651671406228124074055920422807782350276836502664874309770119116628073534635925180825768656293931937742009851517626602664276401165133675530417325019089792504811832080166358258906988573649203182223909859471348419323700205991938053812206018298276208573128506114562227632045196305864393579657481842340670850502968087140058958277970144293779106604693076892313806284590180531277789941804678923636490940849459911786923465211213669083474206467057059736483161898792443241243168381943573642426269755897469581425137268052164745474894536404048334108700040564704375078147083258576406635705630278326396660583170643302259205736982060120824062801526681713694991874028482280335235468141811129943409958522960946883379442743078736700634425821266955304980113202275776881539702937809399233852035141784013595633890422900770242387975066908743411878347069602381077479950582046134890037216629140336712327179137564308439539235422396269166015444964956970918355765085308250193300543567028455757535577964770984408454975280444146371195253852764541371463905096659269293076334190533267915525883506567884292321583981920860164659161122988270000943200398237819381392373481140650796037386807971783558902924948768785300299737192630214442478130268788180056522336907400020037530221286099051726796125645933817000239290042758992529860849427737970596484464338044244554983248245217871226725651568140460355924831211699349972023142351230344613683102087347100781394006110439154341246098123015643086790441321873864387088075939518971956167650444626184414150996346102146020739215435394872950790068726262218463748992949149532323183959661862605497808732187541689471917170386030614112816992814552944841882614682692738430587897429247613659914786201135602668943526032884221160988265603548870749993200123767608375358876085098215794100327731460120414117225546629167725292945025927178818443428743372209720226784690961426599647460927107817487528552209863301467281101114294279233719887262089699789519354273269037504790348308785523165907526312167226362402238158282146764706211835147980716709554363570175874207535681230988660929409107224586619001679538388834993349124537963657290110706165917344100493687523813736420210241380017225099015649541608447435781280579693014389248136350947345046877409652797921900988306373840998642191152410735813040923083419196749800193096673385795755765451615750858785011314556303880961033268885942394791561348256640060481689699476135723889231557986256358544840898801240537723370185363091562755817989188365969868062520960033503499264538078053586842782250798460415405654557718168445461815603638543510067004681187049382625907904908663266707258127340868778076265892489637549202155333933719944966010007692660671501314828726354917563897091842177433526409956375180877806349496248764202742038351012966369784118214486131201073321320134646092454396656533572545215230849045877977157323814377549426945677925425953312770923654340234686983316921277467065213703355207050948951632071435831836073105711736823199940115371569612511629093371341154395306032268481095589896106923026030028829649204993709463260789323983339269582575310012499719066707580994087677723517364188048789720518240671376719681425757851813546068131756412389772145608387015621554656607346838169121273515064229498196063162848469998374677883597110821703600657352544452782076406550663258666019980154532805648205703912386801633786065797549800849467414424888661736189821133539205336595067572043511015650116923070034649467474938693112063871006925106520861286669989814342326456946915334777846526015985754016422782195867536906289734085246164245848038425036111159544705890605365897342311484713237905666653905331960275919473172875223925735482954989736335762402607179090400851170131588917627249630552929536714573882979360266454136949253367635672699029254144338073423252866674772949212140768482155787970001889624974539596466694307451256334149831557434198734343482981775460132584389949622344418257242077665614896524022158697449592431962297499873261139170826508706903049884122461183589043482882514890578010256445604564730566533828571063511256578279112723637730010195434717647491607706436537683824189174234113172146085173812915519460447623516291754760923172609780664320034549264450538809476162276973964870622790865262075654613284209119342289203084145021369379599536625098341999503504845812169108482275395330050268844934810232108396992769121536235519397745602063048142481695847672873968806651829113681129335105102320138565015890171742714394350887110189007850483243819822753428745482311440304936709767682725728535991826106657035157243130819897302203944596118145437173733011565551609606555269309205733026068375896489492037337248504978352450011434677702922410276163662739627114527524208357861937412646682876434770094805054078574440476557593861651999706280128109093183003782470863273543925878248505962399585529262470322691908393115604712966286630949110841230015779722686687137783976828514427311817136472137064588055325859674209715840450836043027400827832953916801451033589980155769856416933327131259085396101139741190702437805523286145743526118361882454843215483850904855764594735173960998075268759656888842755458127845675363167629427921118088144454106472829480771241082646222962321077360354091791064426138038681405021175197337351179513189359353391799591027199492521338405497539932770000891117388768502497190659783658108728437052554819695942179496294533457703420110775689131407249020962419193240727016855998510752226681835313384467470097596730874268560884787969960104994303127019433036867978172779324753367124200085660837826802428737690105573533165552092285556218280296050566172019252339867624670466665722187715211821142936244677041346641300881108559277865901867331096168629502665276676696745437970720515101875790257946221314606350015414285693685552387225992198362500490378247244151650138164818554464183480217496024091957197189670730205516396572501243952528661079822185007295119161929224332409370571359620836724289377360418917034478631690208885061494770240827190915019885067703039453498122605552381149393802071809822576064881229149120185369757405035209245244432982687091512436116847984404493874179766460254312112537234623600041943289678959261661668034864535160701528145794442062494181631018516657140407160454167643678672420914668284749861075866737774030282447308445337841725452522510074199234492270133243790483682056038585066235589010350506458350587773624276082957413815482714157622405917638313575753033335516869835780794377105097576102254524672120107747454812405792163273748650702248875247402150994086390343668817126948264581298627087472398301836794003354978821751244514238085989042137641450607121940898011998060654570206995133789882304548564367130843731119950341275308270786915411687328461330654152509210591447475229323019452283768912572062321557723374730711772926722626835771231667433515096138774290525340681376187313044154194200482427046218410936200162064569040588891711251557573228443964978409114874288433783167092338368976776252571398102588836454852421221699631913364639765759693823818089874355818117088666520996399438034962501302772315729872074917895114934935672277027958706790073905321529012455804000610131272471477764243063524448073215175406318669922177952688584584921949119433628579084554340082423595740598173282578872297458453676447026178507486324521023225117421364134940738199160404571987145357206770095747749035441560020016486882613574993048754773805711133424465749586130612664087158369578205848015619893684850078667734376219543724952828960540437652601461020216752520006417035223604836910179705351171777474595854951082925895737664385786809272132615968944172839097930411457694101346349911393274034591174184876065588414918858251079353434373226536424641798346097089239755920272658519993783836769036482824340813334868162683701981574223660766691131993472389126648780137782246546941709690961023668060202062809062157869700796892729785807035181490397882550640567403083017458553531698616225139516296078535183981532272038484958129936306861873089961427623611626290294433340372782470815533661962956868834590675688293821223904586508778128982236185900696573448298443799116875632794574393560557579403576133350515675542683108170431237463286361832511289748791058643285998798262481957676209870124211935956853526903547729140146436557124910464775330051748605066051018213347829473273432989477932744693289341353858512312511290281690808686637164706378383972548336302925581494454698176266504490663042984189725087397456917326818191300248221724546095520076750741990406020489098337582136877961596043774906416579469794895822001059024108685720836093108535495693101216382630560637437529863520141156754429218617439115857961282545890436933416815429856108536719228438486384485496608063372238235326606946704259687958117479532541261674341352310063625436332053713876601689724025596084591446027847431026141429161835704160956040398375159955166925739393544242272985431373397081026395929551967081088290634063042599639327877875356120847170247127323129887944783790542407213518454294734095832745786285214489869569898221070516252710532123390883188400879302344003928409982430423536058180884005106178638423894558302172995621577280179540544508122782827225932350158743335054025494832434615644692763851295433018314921297428464395968391725251765652201369380480435645796767070637391354088912026430172609694905886270223731953219908549446958354043169569255422370022759437742952707940545835266140966928664774464628584111566824613339798122047535658139364705448446283359753045452215574966506199626465200051056468266367994448242830638743683037453200566634735881120326711408675413038421756749430696197951549465717343808602947399500536401139989338633963834165686424902499109785969896536638271232579143549153630097991184950465758374037585700240438087098205698127093957641591622564384174928639105565167567871896745820249165017948869202591986809860262774922273292041960890989267090930348970554644696555588196172962196645413910981477169533387758257831615806170048746892386517166969501688705438686472929281138272404547017696355352269083732982617001539882981662773587499481209619727663580097414607906950536927188864125594630802252491404995811830259781870963926737405489763028543170853179230252003447487953476334299271291407356389792541728779456595450068726851561695572828569414235680414074801047242990778721511890760242406700605003707726669264566210319533760054545201172641276879459078606192943871371471946950503058423290952576818254091111035642469130997949693751313174689471935236689816027385502496821995403285086942394567251621421889680395414699022984896023576098411974262498923562404210165222170055729966125280782925036595437673925010628933876013931510927780764407851345767177076585450943895046148916057587958076875738474216564594015681473154701574661812932272034155984486690448646207212356279320482964703554013639949310700399203752967160793178810320389788731327329445251981229353030423069228421165037924416658872649091553511879007064603899010995457237245645353470845094363230479749311013782787671120936496030112084732326408336842461552172923412971823719526529708014350429971716651379579689733660726568022502959013606145192443710431488485795250506359099508950598595210238443009631007782134697395704217329416092769790646290412600430612643018214788845221364457840966124556329603622003051790338692730724385207403468028504072487776309457382247188032291320455785371358030270840070068784522735904074920226166196692803687464780586387222918559625202948615290062834957353005633878520011426802966153614635225837745604061965886092964456037498722805472232799156783733697282072487855006192859132459642686025388412936667114811779740008974376293725999446471204172837547231329845882086474373476706364163030696378217339977738759458385759253089144398116597083385589923268245035311525738641617325741443360362325799195911817830838632533858606368362421043963029148469152290020000308651129090383725543816924819739265761217851507206658290445189391258210552484337317510664021348485772721601229077361207425919970564236640945268543393495661493104921559902355148326639151753937171399603435969272987556395743604197393409518422523863147478496267470718387113221046565039308613605251752685944975052351398095352277299177089930717180811968979339430823834127999019047859785270171215986768418396984635881744879074213826276973762322430625547412359284821711877635304062989708284207239275356557866721861313313645363792889021849648470823936014489778165678545621043671270615972007032757338392910550410550421259951712657817600231588070049958679734975256192709141854147631394364970245049895884882802511426395468923997939006555764670056134038032532271471842683317443069275101972833459018109272372218964342925972499447196602222850214119735163959873851041359786531944471985398748435608687103775361217732744791091978144638881697090352279910532430849277000940704064381538856920323809585095627009483060615348495203039885904699921296799167336761955520466472455419543038334304314182805098267531274169106661323314495656010581005194356459725805208554760995815532705592428587295383371014857444636734016294789831202676082328856399663582762376174019350815104966191064686726735598466155486539998371459647653634867963665565867445414220360584844358590526646648206211744729311027274303522177431213391601943126067920918071667037657826348318953489716461632699658633003243429609604899939267038196443522264759800154530583415204361793282065681260658704927845758755886460901439279778295532744610316995411459058979703198614758178669100177200306669317461179379923454194112978967453845810222707029086572083537717407828022552367729412056981312358973113547970445244767833185467444670536233997433896425977479302150863038771287536343853581426368955706647793832081603015067234563337629434152268266879841627185816007856730426439454109197986200502833842204931436440366773964659459048301472624223731333385553892875147430248374178350969688110408373086712703200629255240779951665268784123159908131955670796250330349283579756359034450617670560942691784426242707272669469807848060418187716024932645189049224995643635907230143131636001615858527342473369461230933600750249769360510392271758114377832411687906348249258386820218294105984251059188014647683247238226013777170745267480815790786768661296905237997062422204565238150881093280029908117348770275357731899232471323870899319268419894047686050494641699003000173687042948795125257276614246408840417242607445599100967954891020522231091046865044067705480137479782089856840582739087494676288553423639260576311741266072641076264653598450485704587430120087233534946651930079898155089672807791921993476654968863168532150134044692137757948820467563661794566675309408757674761462979419934885822559359906013636689981581735108834570487586019947674019007427136523466227984355269756831202181696903373430778898478683987559955212950464570140553722408182133412313309661942153243164993249243936118456681623645749612191508852716793146241265873743593533159693544749963218035850141765369676732026008498706569918573867218979282760107283559499765344786877941204209216341325497282528192008224407361924912666577453196716451355037868468667989559181904596455439311168391662472510728791894344257717278393692225340336319437327033407886935946602609383185638260057442516613702289046802653103973649109718392281028398315032846662606435336340360069019947026657220275604480862830923235704556135963297644400987392646607524588476023676508382688866897133922597960012506727264062382547184805898886063555449978648005620727499892195903649102507204523126160901890403139032109318256194753142357120146028410901897704741674538750220464744835122128273547327403652729809418766272793591883170192493051528523035182989092206847484845040436357278860953631159944794745261655957368702777160878320339339280937272986213203580483695108448058768986521679698425538323370078892983966221945938420409073226253776330428201747655336120677770125108889160529197541924344921756923373418193515322350368749587144861122215907202262568006264841047864134734017176115922051412223388066450482046736131472774163388449163405226118573770304478954710467795190692674423315813090261953031790598503967098335552903283135162982651778496423456920230510530748341242072255052025564255970683622269839025341342133279185218222159112572658391952639017759483208890857775885416557062518934620542064966794916061531313101465673373963496777350776711625273560929872203780622963776280329575370100409687562690019038738885346093158361084398311009120492323843071764027010587617946425314998824778838251393182918545099286117909052854381412425410205451146288124774012725893292533825653141371211800589301642083671693547311037804418549272100438367522798703460595314487821073372043400814925103036978452700571859661874725781902344216881031242267924048556913641165048530005490648096591655545013367834575714645914946948419127175704035438452241666041645147198422286414706335677026725619128453393594013705321973107969890708382632871652359816489449936356858711423872456618758079970229445585186336078206505466077159511047161185389723107699851418360109131586038026576207528791348974992793640238706777672720775718400810437717959257593120840447769134805281199631388476406185480486744233890545682708033316222896611033747844506917738554932640848960176837713789841412481364564832523932071824225267919816111626249377501710196659992793002376472642686573103306827555309964663001673647526557389214275784531951661171999966132324772846292007918755098046289186968444793571659958906723318660209254139189947256868983398465578702226779131301862352092775688410794345535919380043772049123131438253336826375762783514015085193126086973783378782134071672352841417948087177479695368042443572964179313823386043449071110011339027624920127184845818374009558498759196107885678583192260488666703487417311022269601924802042651094250519514810647678205395738703047692721818730529150610497343716534790099814813676398020138221540716232374955138060045294018794136955985965382849277506710706408535214003292769654035538448767638676777852348331369983781918058626035098589321483824714867025227412424385495340404792911263366561904533699514813817530548530947009818377244218949756872130909513211740326528756753161653669658779102528574439945367573011774449385003974315515779781331443016989158269642727898221597240421742851194270794917274078989158090957908126207979032463748749173755508707847363839698880516850073155203762574755395216344622318034120284787557796977901318138243730840381415998662369636765658437179872565845367924673854446931147541530896251123541595344513976078807000058762172510606971773138686758148690552275567244358566900361515533136638784548521941844881022368948888645080611601895140802881335517327646730084532317065487477923621461749073295361706658262604858411954063855034687072555002886292228937113554821578087649764787209206771664708905599101347612564307035728487505849662806341802191025387893422101030037032263891875644399447701172258166122051000719574800497072693287507921859399649810115610907761636966622490333725600135443146942714214461641899502296796050644737009822576009746799825573099935245629204013635347975843372837286614876688116495096279273500532521995289262196743561767238289846265789481386342413142773845429453820869188019688186776255746796313308241492759180610440902347901996757440531535079413718750754012006567564201080985408929286583732878031402171949557177959735965223286547975337816433132329066902634535246301755637698719291581269104507460585183422605295706188981867671546279419921501015078768925531799837267161151304956730896515843477847117736494819956088612017266250016964374674071590262677905109296580816111570934658207248361969270887998749606602566175699122140743513474302957147299029508827955770718508211041277289030569957288739460891677350181222100299941493105192948746144181584480632848676898332763122635768560806248173913063144211208906156974831821200878383329983656021436505912240018182272730795016111799767487317440247513781500827897877338347710905484752347402644131617514938160040234952150225241756271382414789174453077539680460690852350932610693090812642790118847809590831108512545861854349441566042414717763785560971203136261755170072175528933212178623182126026306744964411283106559624799335833806032403344594193412069917918958845926142050943423147898079024033693844760797326752598021874933527381713889658857316994457596681589234354074737641223964349484337092839441752689600772191476249252127050092022009616642389655839725122951116704210009050719795874752031930599956902795813061508441179019269466743717814075636699816524079368474791346832070369302449963045053222574778063265048184918013430043537562134259173552538906026695841845419988052622818441791090795302060407958132877372433547494154897958983719515808346270943007374787046290282696110988943051326448897702254417953079466339576786762937931859028780702194325621492161501089630789798357370292713000846208721697434900180570657360625815228344251674824199878433818964191213369824604023243795703742721696316613476294953001653425811759775296380629221584831487221424063006455599229639897786446847796077704519470249534988115475516826414859403151997684662374433773963925903151071959126694867479759530711628512583502888758634182878811545356223080432630657793024829643204625741078907923304494522172186568257065934741103944173328689853813973998068451398366366063817165524727398356873517686799620682325118178861839611947535481493963912222948123411635359080084023346526118696090999475592606113957810478327218512508295799732415805630912736686686618833691386794280203566692603552535239189186708557604672128745363130171322273599389970128447521153093473906112109201957049267152452636470207734396916955710364650311498305804114345880577444998980563515952573392894412572227606923001820005192500409818345981602974441538528316460510020866079323940369840602799325321271194655740084928028532999409550367823415423553110017026903145153753920279622260001044899663250400159074803198746582068413675591090686141823019892212219236719280398795452543685633930928919336742742507310991279608616277160477996533598514758907121859021582673162453798601801055169526694556163995462340726334262052783543968280223472591596959481773663785803746057239430027648372889814757939329222465880425158490540310534179519867035656056393182536667114106896701005860196882781779870781500596421235544378846283177235119389890536089494761767933227004789725269735267791508391335228887159810138461756972867497393685527324188319773668354776405639826367757761108049927636198671761474751506395947903342458984963961632572042500908938682382736668297100239512871986604634570324574329491204229427160629466676183618273807939887359343093353807316921384478837454684014873383328286414409217228308301217339662311305814353165730577365236289927081208755270776328115039694828394641429313535837462386149526920018167429185473965587393243813407285340977008717793609924788162882622011764893650469401501079619124445672069406611286595434865805121912613605659345995017217159047581510204130696179336287825386818800818559866586723722833418986674985926607108193784377868714669279456721820655933014323655257234495622871682277235375663764442907775803000437713094565534472566288857166040911643963224080890724268935472949017720403385786174240986165103268467117434755154400608692837198533236966163439591133504065364295331549558213211833740326575013785053220165505982463838803233553106788740399090998197058754258939583701044410123436725248514868639141811421911517145823259576895907753343927431957206635409940027681531980571850102288171709802663846830505230431741420527716576078178067553543841537074096733589718388289630605237541978661343234104383152205321900925288460853857020574807537185135266204813746444003326229997545831512931388746766854965477838425997691751152596928069933298532019155674209317871430751584328518793294247712737689143417019909905844805400873817188774762492542317177706117273615984282380396868615959532677392484888444118735863894181683816939167573112635794480095403013143980020703383747174201855888817476387549112524894036146631444762695542773815390011947906147325501668673349077177541403144648057606638416399340691362008286306487591841676419503610559404467847635793540539210236625908873391583673086987756165067706418366812106653560142447448253798404540421209091615415974132088666539453183411960034613307114845681271950194870041211912104330064816471993468614387403433492658934463136314089112619187918638922705762896074889746962676655646140699749150424867739598607059262406064716864283084341458390809239818465932962780154023832978659475278750733186417966615489205707336222668198830464390249637647620264988516487361005077362846983609968698984308935994789913698916036927952615568451909925314163202946592957294250876601407160245073376462246542178132848044821069633886765136291214762810910839500093627582760577081995200611209684983398470732160788577765574325026296700808419695426410580416298369284635700619807927497246618733438782382045247951263048222575343573304429955432726627072323704790612349200977174743991954369934274820874671303585576561037636594344165592030116406258762987424327110666068981187380889908802752200541531993680754496987838270816720990727188694205720435420132840071148860542520769832748665194213627508219248103340381061531542042105416754322598729472753323089570771201203347619521201661840030264513138250758813787002035668904225146534932073400543549482460383347897482796783350437317294077468429543922731570405747438697149242910051163084659686862523148741488584924503945071633321012407280235246416710179667154762309479803705758504975337824637987108265005879307828445984674415626830614782186418947353113398075252922201694054459997228632813266097183873726603260970841046658995415065427070026607931810823624935072408457880789812069419662119515117723800119305855256612940867644499212810464545987153002637300838616317410646136450733868553772293351584548937476683286981663483290146581224753525527845061282134261632911889883397673565804521319397134014494832721753416248990929927040484107130165936680873850181293336565645845467856357821259342241779040327456585145643891967185182738550500468574118473816742853692303025810442630353351926831067548649040173426136193569769431945088996891544491116565489415306477816486733531720368704830288777030621721141774371426246881762586225423257074956932836749630046823188487477753676338381839224835221390530877251243732508075595167567169117027154281511130708244306428614078732077006163305664590403083904818776116429814043119098878453402871186188994573999843690748246972775804204504040604180277592712157227740607367059885139319692384974487356465382736711734075349981821442678725897238365475551996016816543372292806912164498766427794011364316024330673382799614386070920809355561261376066093762951144831846586994741605511342964663324413399973540461478609578295213141578483381325829011178257017671736543654077750629791322771785640666134420294275543758545604641623640058541127283797966537304890358293680408189974225624155447141818387854202240549142425181570811912766488415592262856688873078671167536915743223346506843529944877756636400186931649066400889341023114832549907693541984727176348491772323822027946366673223622869101836507346497332937769108748571459201963409207293952661664826702450379736341626927004012771125731722498752279475819864069999857020697899003878735544041553289497307267431105781583683982523846186086304895511637841783697965989954383777134150519985701673203207316058755230004951125835540398916447417773668628620632052634833531646673774391904822403451310885466485226763908471286554554236379454396488149157467529827007409296216915652471424428606985737509640684899448010631066812672468347521362171856952781617330280127671334333089092944152229936134452993092009622171714879049571806415174246168433705781449397262803257816915913000057567971984850093405936143461675519104748654113028463471246247785760664835134079510114303174944441602349885620573591114490661063604465507474349441583313219289139610385305485905348881229496125992634157966267728070434844116403321392793631795108173166783319521183107322383997483626526831912348633046587173244190999621017807341596239577189853340854480108849124203620749252185023056711639081371725388336754077294049965208005626748752429906220567005453097592909393801861143578824684476429016338618236833788172563567922782492022802562283108475979417949523909237753796808112562049269218372935566281180394615066020724917225465544146082677553392826916321960843549027540615740314675916948664531600415762587442744161851208337872791381506862753795501239755355816435018354982972542015734047608900891663233243072299529392147709877590526297600268521951052850580801030427999384880770983921842399952055354849187477510212491438484278070810446188479955991825632423423132598192645506997633169724261334974837784045933851097699282431217591002899875888694411571156357333339945865931343569600258658619226974861821130133891927200736026869345572031510846252299299874495185090262803835104840613116854256491998914342630350297207557573068883547252918438446281214448653569889857013745190955080537148662816973682996465986880759876146488977225194772432276115887162662985215895312164535457654949942132837997019510057170530868373432500241613188502037918812351280769058332711381572963712103532296328813371291339285164281256747160373054259132657002807046643738839384081784630763006302791732873276173282747911074443978991700249930844423005185406958305619274171553243771749553134613457202383988888509614810645009010865339479299171930783067913475947604800856436804462620521521882797640880033359064469376789056362522698272468767190927447525352918847743793712220706739065220097250200489150286211744765659879310504553638051642962481496673422457799670680182234726872026258300203412949646528316602533251636433822399780796606441490668138737236182764796818099573574292120432065809133440631813960074264010674750417786456485954018025947998573926705290350059956560607292426107933310612719465462726893828930560320556578071091542012540052596288801442932448230770029389642556000578433853394007514381443160190243463890020895694076817235822035670369001746511064777910523395859606289995293316653693000567868403476845214139421221497753145685524601582233003550941733560387546803392931060101907518199942338313689867063316142404987444006068311217397059328119967446083043404617234566122778018937657278084861141801810761347539989208154526485108937362839259601772061039590667479884619217184406523189143143132111461456465014683981207642078534643279793741515432547506395609895196481901879143723840907340514336823811044224664674296131713516828899455575966984475592879718043599482302497113133285106750500900940958438804730843288039396698860189068043853565235079569141630693854830453872799420809450701010106537683368812959298107569954626260503548088705070445655657902517484802771096385383181928031588691252719019584023768958406985436261157255983345688139784822110426551405476275398326365528722215729008887005959046090014265967988323392445630644722072306424658255787052728908267641512708929115428878828776677031330669591984922805699462202187099103623296650630633680305983089857302338930051967973441183380734212543769369886486726620264937303444859693836693776308917742947913862424343514457730205975068847032100500734524961984896635900912850475167766571252343827221400129407791970143341451809069560816155641431523973123418326956574149984194338120961491730601453700556139963234840537168166444014672767973208179610539407813129654358157885112405798996589633940958999039537850600658775457760819190118577910869892897651336305589947389917722137942180443051170710451525596815340872427053132593353597457933043357320282213230567809125390038346891279635514674215211461818454193306463835928200762112326739983723740253193898884685671061818055714287134052476765710764168318027715758643806067180355957112245012157289053657800015394198789576342110015339329074622875415361389111961739494796032572398663803513088340065449498709358918112705100445644254393399132584232687433292119933448823763429490516380921405362371197739776195982592636047025712627630479460107570034758413920070673928182637747858980338802691164423642020977396522250877215494612942382429243838532301558827539646894817602663260003051490857553264900478807097339460833273537000915082007905870405728091142351115912969658421343254802085191507327521931587991832153878039367071325229734479526694666185650370763658678041852948325985817744231487955731046090064643316603696972297339995219734697551501260843099365817916004435497679890434530877322612964295930092146015346442300796870897736091284863040374534166613694299908145256258943496404465322568310064080973298863713400292792125706902811257859475686792462031488223350282698742716917044714413758252221188478619576893402113367508032859726109356559212105549187143072651702238446815987091085187976004294785685524679323796598916334691730433280660670244099694291937846188645346881349886765058338035752175240791581847564922864440914113777947842149356835617061764747106098765525903909351053893431539154068347186329353387241014474625465121310609662043326733424818903883114057345993115598702787900971146123401694857545096481445439075783337212283584085803320128198019271428500806938787934966632903745033720999651511874413524737337694012591974290291170647985584092197560092276372721448665909664173444733952025775227295843989955931392562199498319256941371097700608613366214389296619844826269711100504186752670450903138574171914417819955267525865426738299654008579153405868472206666664945178796811754981347025679775990495365552263413610224724642539671604681989653655114593293963733343938318213937108639783363048549513246402708230134820641851694750922415039226223753763561571967855593125148832394789007420641707818465999621005018984400283487660025475010580318045285096676890888546835229479898029471323313747726988021051081326621114816767817574248493760227347307424944356061850072494254891422829935488421787600321902379128140100997021182747904090196707060843161961602665022906966553771623487891904404414995674824632822384305908230595224905788568836022000564787175578833310700199696115861558472618448365721874534297043566969496670755987533348411118508367073007646468684493779333803279694531836041659907812262668362130213303451279032374194636961535957186517182832617367636035845509923462534060666585876583913390318192873989734655917430425366672372348963719264475550815240378569525585108073312156387813341086113536554451082336682597292853939968728075920851464685711528298086561390090726881366602400130690523459531101746677585039996148380717561432859583296474832375019575471523820750284904895306658639565581013339391045537368368007538604157485383223845752880860301859724589254715694885161334275353256044890334181989848006591205468735325071449747018222163427782830061462811214739177917145275057022109131833943200292811705530104826633420442108984987121253793796418247613976372133368871513826127578142234779426131647514040812435984551344004061614929296559554875985884732683322553245225754758906474530527972628537621210786903117552816104758350300644983020145083279739565146676944496088211017132934993561219754330991405481522957205187801146637572868631395210541068424756294609508932322484129160847900704630240296961850612386310124465339279458104136312422907152131020098165686801969680153773210603307201064771248881141430425740664147014301406584150289651629677407282064469070994965055106585541505605832158228474825117775581672297471635105329512594775173827145498498571663343094096393686543467682712085245010416112337860379213198269896078069662639559787166311182176300032921521181082729122867595449658327348170989256604622046868434669591672115354127225909844185416578658057656400380876336148066060630813170946831473667302878713265021315086315660054852623484737525411906869328869878445715622265260455711109097161138595470214325090291608514890639991363712635714525745173482347863433502457310006786671855102058085739005183239126888204554077749939300638945234536939601439507861151881961930095214798025854283535141348993028075578566904632699280654054742954899789394659350039320268363833429312508503569259512463504874373579857104212655484787571338006827926468211028254925951018529930632686876403470464210346659567902694095945817476085724298623711848943213050902372752302777262837399894648930545645501644308558715568344404223639734906154914768630883885486271787623139136326829377401453010841762943252735225487049341502197759428615868733304426639332748035656053684827198636044311810322117953651186117806030522423471768497397384667623858799403140583620771823875473191418625687661084729148177740512938476840978379623063481723198005439019569483184417443791575607443715013166575865006724297658198408171094018560018244617687263182988967006831272175181060248750904571317544577610580668787374584816025461863341748152507436521411882079603637646847065178020836153264795232606975103516048976523004640314188585897796304660077279713996795810473241830189285054178463119671018761375667800152451053288808244961687268998465206444112641430535688873636554993624807812471889770399687686359158405495495479454113376649766062523417184650189051359281562005534497204653407422651691176899751989981618054749807520635278281981835608119993669557985794929911331298947007817650857647192100838933747446846761572709734576775609500539565288155453887115690658780599430025180415504247951602010851507268348300344463591966182956906015688207504666975054129593385328394494530645776106075605858383705349580811507708157127410988406840797024549652145324725901745263562850584118330303727429482872757514615949663329239155585599937626884933445902094603307534692616651308845808209310790414768505499598028345813332831954177259362109947197963989115912758522906869831624272344287230732861418343745182901634679457318913974976674244103896461574345465309810541683000257372425561149770619089089392295688354007024887272386337384559329570046111844224256896554404020311011287267603754405419671786051826628209521871328646835684534682356822700309752991553629305013387884329200031730380141649915220291466844271790376754341730547404786944757657496467714024118053937051219768789911980807886512396054464230640192895553141256133234791839082053203674590478235249861949346617087585397405526905894412621542355474446085598778569713134230241225264524951809539489017999764251821654787250945662656215110405363280396933580333622732980484128950642772071746778270044883001565377197298485012535507391242243086300767283827240480405423542269428781539764659093478440225964756558284429575102375900929671412132967851520431664267254501995786293250386135805733364886775913753971853177042594837327970202413868134861616608449883762643744280530571799014052586530931973117770532259324960740691973988844336643325928437349737985450945445917317289631781272122946789391417893213816599798287291308454832950314668067242910992681402527165476670179232864632337133810514401239774958266506925557565542778066087304673183114786520368891890116418836804403232250851496968095713361681697656763457013556025814615370059027023589259565347016862040643293567057491480548825479724218502206120199381736474832790151831369565472603636699413687833509726470075499152880722306601697635172157712336013449030512795715972372115793912379278374079585739430832697192319482042318115451252586062739053437363633686409972652204644242289967122993101780093657370985591329044857529546576837076510500463825772197793818405801489502462079613416141506720949769930963030663049669775315191899150740697577525572684517766432870062724817750684195748762220968112058421444902947337198707949943395161511138676274064294307395605065777954251545175715092741929792271148119762380237930223713444718935067943546966243338505337022959414067953780655965115519359552827206177726922116353161338457223783938983957379291412017172379607342572233786653120019305081872313189335717411137140720724805357361180548663428019329711952093235598046911600315814856016138788937394838680790661613743918009253967806674963685175860841681527504875371007425579784317682370429746858723550625022590702753898336650977097894656036830859994553196585321235338444634904696623075182846803976149532052181457880105529287497186623795506787410038307789601121765527853896162637966140229619895532822130050460553781060517135750159136752855625774071039339413418771858942658174694060834579279670932042131739566022768064550408462320006954798910297922347842828387818628827717959395054979582517767067722994822175491131923752840928162501912578935596512274307499438739500699384080699647446440647839705382087859553330058280884350168957988128639988637206165029388273916801013099302984608847256014762444720361963553789328389129079373880834342804643450192958377821446117453572251745774849358249832170241236913536489752019741286605562392486432309932744994499970692828339796560796715760145050553650986008551329218259101120035521071133786546953044550517669674092614236919356391922433269757039334973264662831134984051206837807147701168750848100531060867366938373650333149911602478522041363053330546428438604493726247711254331223410545614726906612082283518086188294469769614106193351015160374815863930869862815324060512380983098010765259482430050748015582588231693211140570552649771410724030872761166860089815414968354902129027208683622339063389400741196955007806219249678482591806922262066206456117007582296161242793894781063180171934426707237652596775064239907949903479696003358209586014775551651419436997987693778310875265953944110466927408556658093537043087098442912656531330006952113338596597510307321432335769923481423781807088234389022069675358262148999771214725872001630743386460497573287912565741360110911037389003672972018959704763090200793768492248423996916371614431637084799443000516720458294182630243243875135567472324107949237906924359025598295842100985425848342925601809827775316431772892703047543890800137777135747611827278462737483221205207924987129618209650367617039764170152615328882650757279839175329263586165427232439423011129156398023540329658422576794471667882242951811693006086729959626473544028215535037383314518620895274532514132144168618492241040943128197322610077078501122665837184759255647685376597722638776394442423381797825612524176193232148745790762059797711573608067175068865557162091849368382804352173307012529459945924233485488647819178403851980462037565951832800491956996766939438814312257747479237431765198426255666461294193004224882491009082751975056863649408401246648491993315454446128537745705596182543448448901740979445992373305720252334914388142172821969914553189141484084559184339497217186723353255361757984238406467820607304251851389935671880586511629716864980299191075217660079540666860672248719700445746264966969898951218559156575436443495314202644641607738876829919132787530962573564580983267112773480809250168679959323216713383252114954931179316195752811803883821380631187465149336485882565541366196130716570574348640445802324883457414549856234920739637806958043376219368113570293751193814812203326870664432389033987510331204024485201224886031225298324756344834661852748193030756256829746805384838512965586630301489394849092780960532339290089973434616753114895791756852302648456826859985078848024416160628983184458202339669709895970625572166720779348649032047286488869932139771181440860115358991650063831382978934637015946003889458990329261620266989736430073225853729869410127716753324159742843932507855898915868169738084260777300644231049644848175593198847621960072593760610723705996754164966077846557949780071580276507638692743513390342405775943808354427484479714195917634336578542447843066157053455509564945723328001090977877285564335898857714212144511368817715930923253848531792627775315813753941379588145034565418733773109670655457391611773352726335744803855050505873022825874200703681376273661766549675972504636509692914421574763633253859222044155541369898663136910027434273624521234433561584096942731997098688887737154154225450185084111562806059093002391212969589177933001914222131812318099886912000116950353959846565831871475996056594790309626113037151913458762592040635335447218787480637274057412810209315330253490323068935739158355393541996410249005715734969225181851167705015600038603353660241101384330062328073702965922738684055812539194852934952310088892749465545155222651971526937683022669038252186722037764119712130582040594448748433011955499760061984529069581506972573815371232118056518228801054679341055472619688533703274060531133440633808335809830395833946936367765007022540403660723307939081835051104237250644512920702879781185312741519409920350519827928021741298434352344963781210422136809642130803759480753083253207395915985892615548951265390042790898548913672514774245026648583933566173320554137432385868067509195879022575254410054722557615139323861474565238917758764181310884038575188638856862021510337405943009691418582179871212115028557769308008269179288081361762820213870997568002030058600302721828614791598229628594473626510699259398714900200611641490018581496353762907671423485776345768325614678858195373249493435516188088886500666069716930918896566781749244476416452530043780453768205651145088379224701179294004314933803664742955859312488497933704873328174314714863960084857943643188633620267784287950586726760555145309315590390195230273033107374514302508935869326233457776674861240654732990326564615252465478319566156849515906535626564420982806322160297191354048786002944865083894058373111034138090065524871454688675463562219589818137723367243439276791094493470485647653465511180408259462574510345639302507059037144185453903666883180678081151366673093618793000930511744111607771469291853827864832962802280226308516006937577184272105104156413197147658971378307085037788666011360494531948340672602457637958529466823035373273458637882236740187624288752206367923610176191822652937404600377331491224808654005280193325646688755458631632089567963056753753426768806278105841404145224239627285512422420577863659045307470438870272385064561578368246629515577283302094010581762750722847133385210876654874980510884826909836332102180551139499983899636521423089949122799974661358686266264107015136381728234483508745890096274872397450637682785638613682003787032200290177260322433327097043471225357533696232498440921872663745294104462682017564449045745270278823432683228132986718299385566801841627379700595058555748652066136570877872557748555346222089163334947996044636023956751053722909608364292122394561519720337269915424886079129180269381258587689212097907065049424121576436991046351497244153441936380011803048972658541973195514019633166011254382222417940988239412608242959392898058975940043686062908564084896818849902450340482847782633361848384885488342335934624797146142436534062450169022616045907233407719582944561190986091838945731491068716317083690146462411427167264662035794877149767340914902278079091816787900277419110008962357246309468526066209404323654091117461441656133551282083488519665799259363597023879695015929965148893609118789929081157329365132804774864724993686006336050624896475520474043646751421777557702298568117988521486462862376545014065935380700791047734033297784390482277619459992199220880426685727347605965010694274625295026740973949259246384461009909282973570168775214714727408365188869515214747154314908557426538688676080118854396103666400677084712729389661285711776970287308344684587036042647361996143439922377388988458313245858197257435886573591422620799423308964441687373913355517060054464216153177978345968856765947176984066545188758155357502208337043298947326338165038038641969721791176450017152398861816925938382279773266820303794902089382892185283143829508296663094176916742541333057639985294724252379653316403735775660742746821960076595950039942144942934216247469180334235850111464847193957425083603992931468180939084524093431324124113541080672528353053698818801803787948942740838290908381891876777816521995489018823985155316992932989960648754883091467616536104386843000840256496553822016530485791466842860034990454558091062810799204408051910789425328714652371354290481519448977750264211075075720881018030431637538491051950797140043390669977425471239645454808231243377615965312394967050261804232979536415602033875545162288626188527367471549221043933545400798714238979676341034687214288296711452150776901487665579178556586038482784290040625606616483705202458437404300740287214653759018338494497559406756373237214132656399599525064878467809152911040285840614590365006710528774902672950227128740290365676209156092103182311744129374136963759172861806553771120170259120466122623540282716445527347400500728350516147726739792935953233333548592993716294971626443544373687530200849816272259988316449764687470241584469470773493800710739080394485917380556406220730257810194705821745920127380290414970150032399371833510428495805019796311813193645398576139644741195842493532834563520254600644114975787780457626668618738445963173323062473443389648171020316800111637881976430687471652122910811551311083895436461438097460568091955240543676232948229989885945603508353538982258616113762245928783778478104350817307325093578867347689381775991900853238791332286753529665143070026598443967536129406614115298531135695667118102727734101773188443623394969549665054357075132540984963760702147743021121684703811749511380461924557875106183257187970780582879536589234305088021906242753952687943375019063972988843489994196166125860781142043854316743615203998604021339260591255344660174188206758759447876504615593670651901371338448653607691830586516578917146519595745649036814736832115104328490464713524362753414845545556042199035698341798624118715124531208081038086838992041471126693506689542814226346380085117947637935193685019037258969817276876082468706716707601952348318376630731242267559959746063038374010812243637705635526202002561141232699150897114039760199664794837307581267681793232374835678576394955117049664987771294662717331165395055921721626647503282894018277563867778585597073515693184971398319447461915496371817885116296636008762451612853480478385951829306616639501971178768032138198531429089165570066368265987803661192607405203864360392987673113765529656972630062452729624724831601818304654672455868043805945221063340112239144645186029500946457953943997613986053953861500010188906860989736246960565631959593439778910008528105072278232176093167692916370140943830099611904915209545672511813135389612338753885700432318351353904615121064743882341244078951795239360290693380137526769923122520383456774674874859371308744854483515970780403780026521700708792478371270545428279214286593801994908571910877274078828471580539489419349034293110007449244099841956481020952258029126237413612109200048843377720333668258825927282198670044375014616124748449922910740183782018440334993390250078550919142843422032498388028735693552449367509830248632361932126619947663097691764919797340393849393563940852165121908315467789420864684282643631628633980478463525560745965388813154230798895686813729372625125998631884944021804914814479840122094474775700389052508929743114583618590046275562413221717711162075838018029672883098446940009548094962861851606885607687360316170610112493597926705037479238730921100941348208016437618363175449608480402831382647610375650958532951517805527389818936156265979392576194941491358127683106426457426098675076162384204182573237029537088849815025869879522844953129736674010871119694929206223864090359585165332347602154343281358153305522761553587846431096674298210191323687806178877118467618605349408080274185118923014748921898864494411185515872607982958620112042226158857859507472700814648469533325645325431590415465728826865089607819299519524825534314489291477256414390104489971242815950345559500331029309768257453130824107058802592016704137204008486583550791941957423091491729026167346148484741319536056700473106536921692336696193963833566277524586181725534563972234525652072173550161066686780834975887848059667056400063149332003185906198087806285880183277588259444827628723037424321971535282367505343796401371863335301373542945333147616804230618285144644596897253489375394115412896604330470627550650980135886775494429229792344538339049586252702305373252354639210821612478261294723813344475404906735116157323287080465616146443355888651273820613198264357836357588225330429076414157151997135909864200341652864102558458665461260255254841261699915405648449299586046695015497624662991707318804253612348107587430230015223678441671050114550235872570863163781887742416992268448331388095101985565818583077789319113131966270692600252678710339298581593875753548673450532874833614806664857933303936203938521672002895294679320173284965650789729405864737148278221242979348474166939564355129106422293974065962776145117286476111119585178977626884677676448367785837625174029479902717476645492829945070027025395776274048724126783479011238796659396259630308460015001487074378288898432560799307283704493265938988790264509422991212458016766107567029733596480194751517346169874342456886269552610994259314885313377225919051488830724288921925870859653735520968548556761412872751711143216783223155161876860445049175972472568284993247017639609953133292479221544460764031661499965995302972282331477416637992685539897136878414347848621891198489246894827630784574562071205338135212827295544534813127517727292117369564862134009351174256802262765926390130084363351354693540408526458458101091571033345254313224375453834505856006989873885028486293176607436213759245080457811243957423327454335798530587898093927458701411855736065718395998034983185110513593865866223948879868429732313048314004628150346946297832974532846123450973417303196877160479368145831801785144801753552883263308128566944621119630654114743260025079205252776775474719578885743262246104711345768508971567565950302088142925104637034372487217323323454056777660896085112842369212885517184866155571487144333685036670206628689067813952308764544533138531554549837923287021405970636633408293715419959302668616049594517670478516662888347731347146754065683901371754171670676860900534667659159026127278614414019849782585464246906189560917914598862183682067958396418544525048115991565576105330462560035970673617270609875051496300423100852009621980081449453030259134071892023057014539438903743362100298624697573094962572947102735143583727561370687220598932599041361715735506763696261082184445478482161245035344345663505376996493110524223927721603675521307588072803376105711015375667081828227388811007090578626405873936401098912765280879851056664272353285465448775125992302601949837767258760654864351246809151774225435053102401311995228744892966207951462362407279984957375593184849855186068059881748128664201262744858024906251198585505298920166466446516431761710624340466156635399052796467263967986683886931653499736985775682133863190146209373884537443653972056811310259779610042874162036779059988132363705767012156506144388089476051294024629463271879714073953480815371668480519798531772081744045960722464386827555578485906631477839385596583906614631947266054776029576008440791713885401341924305067294990908019479200138006557004165494431345436846817183180493841779848971375499728239591551166144038040647009144268763120630749129180105984786167090624557744329243310143684500494355127748751496990971113381881641789387961560114092470914467073894600314766675293957160972519337078102539534999640692718529989694999155936634365973691193632481641886200045149825808384463396406531705260629605366645939152808400892404517873240586689972447286940848538355830148183561769977491273726232482425107152971338524779890216202276877709085440284134948799826647797589593793081514720206719436806170310910442697824049276274539349111262576137138566974904122036005909572454915811749893410560948464099772558920905218705254331163608975377612384105724843278009726875659405211643708090317801873382991518192768648707530508710742165205771251204900851424935575519259978614763537445049806092058516253843659890835204093139745648478941363598309475796391189694996245952614086477061765360366550013744361187401872762418686972223870960698761596216854281155867029420019405749179852308645532314786733563190716064760125955484694454448427647196921267331193906987014903861354619101464464930173406222777256354622433732025443709650699832418239115067289993744466599092378791834623445817035892608014662124543982179078805821931636160694520500863885407112356383873623220556965494257050626411662918082530982041035720471453265877955815924500324845801954043392759962348985545867363063353877455630049121995516951671870624473168816132933079497573161958458997378766380684015292963312695847915571885298820775742638150586958920967313424153344789418251254312061878504383272658806193422213994764939603851298448705724461299084455535367925109069477448083542324199559003038604399757994850498485083025595371986203792294012337622403534764377837361651226088169116567645859779747977830838816733080967921462138478069305795439207691474109013936561610783922284579858178091707949995050530971039391375383451192858549792699734265724375682206228921051489786768464420035803346828016528381633148611966609536187986411869778373189599707681527999443814951451496176993903181533770304101076289848780240731023988330786958639329384359169919928361815264551141092688952907183257830831548877528141505674984354303450586191207612803848812442132051031291646265101057878584571914597241575725618419216089205261370128998130480883526364002366206293617332079298611340817173262823228995030458074234512412007055549256806677099283019504241134962218218799533650025052951210108473389772168364692638888821412210666285901985544206747304496394289002083064571283454752714351273276108819446344292803867989548325124230280009809441062420378499032544558223402281690571747303036818585414731763378957845117433452069450014316710571181095891438170086549670230432045331996710661015189524498707945849962612051289070046747067056943697926446400547397763359594113007598352107696460495581967524325406169748198985594014872882229501936473777683320662469403584735552902670609773152213268452815077051981913896104890019347288381696137739830954412486399126383460326201533529989299945200237832663798021106518398598506059173682065664155291939699004907028331725769254845301006067661294109081955857162707692774708002030941602945889669604714470329260927391492022827640680255465053398753702761941800983667135847538847986326372302498739446018613282845011591271857300204215584720819541787230742250079598653833263620417405488444129532290321171976440745860016908570385484197416355594333473980455374155939680122105898032488627560178322091000889229464848042964037705680288663717996554400773375697876518968003056809766447758134807357648926571671320955763035095758472691793167062132053111769845926422371702338206266061692747359159556683498834817892849960002305941595832069387729677644144896984814415905379394193321949144101453565715402341375385144624977234286450525568054704698162714415117113027746182766324420994064429399931007072158875901317896787063859439490056718995654741219348569206331815528035241267102977091281081279716637265574044863041640345017834531758923867058858728398103322154451886377384321135374922845133393633934784282725432171140039696243158939983807135301382877601647530774632694160613780495160592688960411325841793310076756714124016175135204642449013058299557393151423784093749614866542664463440298315089130923288198666161148281085712548058568274193797080631204354656145864467414305857536989816313379752093954553114493150641912740804512895477041885029355247951346431761855367144861529781112191268516856140119924753876058703511176984473884207009643014822987989962730292937884524499839308584686469682489263496944152579360259499030528848992637789150468163434231065991051793328250731368521035583125697948415848786272907728687699957779426819380344237961058346332375864378428112606799226444083330263898874823401944933588877041026551969926219456062578045291994590464625638446801917437425226770831718611896947489051613109343243933117356331002189140934125176859570015592614143802257551148945073387901775863423936344800409486552545286485376702002837764633613562089382707486726171737026105490785921369192986739886868346813410711257878273767275268842008338425789327476643562650184284992306718494613627825154604586128811908953365716762407558003864739474054627195776484642051266024396686423693273961716819643988365737957048021075490706691636117937383225285495680306374523688464708983906037926347481697862036091837637614320731191476267627552341847332764234815011941410574753020752214143759866197944991160933832823957390098054463976601712976279110844027661285196240528293706271750525885363898241092914872471389845379745853616351592254646437314439897567199530770928676129173506989434506761315159266215089706579921127641018795936305051523092112308491687048470508944270334990958089452211097870220567327395246133137964827979545856725172577897763341303113830399901417733965308547743871085755738901531384406110871677922532634090848302486975608173029150647647345864939616621354036495924914825290785137615543426374889759502957913677459396601483830702586885577511320617261413697210657795286336666477178495385016739954880664247198102897036739184040593715434011767026912149287218690043818699533767798332457171242002327149919816276948856703932567224744957418855815182326194750256677029039688265684054980784785870585927442156184550774692469592371031720246546155996374613895086735992195982444206935909541019141182107447151602884792101987915242304707168569377133189291953145027856092277119928262919740360610686640508399483247731140251942502534141943778437620586781221119477613924400637403289648456882787042351485017199061000334697861475099629679786352898760458122524891750575455939828966085790884773929673142198530439863907491187750602968678798981613516392944374754960482963138064781480785090002450235365079366269085528049877817115074932910301863615841826045638318804033001275945083854294237618438693357208487677587399006276219391064703048834128880640474998823463366963493620932062451599973775789852861619050899484994739624197597799749774373161838402335961464221038386069123458467926998965887012308967984449054577171571283381572913043727118270404081654227711568796098125998173850924556699948755666224827665660151760584869345235790506749699990319345109801947205773060727446766205363803472706571107259327813208485732992000644270215945253728078874690942079882912274083200849493051769183304897007763410829606025442793771800216131175727858523778781617929074955069708076815496839187065206363618536774244794809151758659481149494225521050359848281088892110785513903778790865084479571222294377568401988626061075685031606165668770066308726241732592829439728909543133930626819946654686261878142911238916377028422422317123688736464916245853962660323310558365354455958075525581661752389137123132574053895760329502306212179023532929917514826057195357270243263102109073082272101132417986287297123318397282223738459491034223312538649385299269401119860707223250212867806860876418747234555191005515340900130561083352751323271258387565380725557172568655102612772601900604947686427999736175756301892937426683690271095203203993010641375461421887949312715969979711588824401186661688367356703085289010809755927911543751872283105312133425173368457953503850051229627355359109635537482783498892981166352952342590198513504857129131231143931471109554953737096021140150515683635162380780044086288029201993554138670485767543792026085694284591110326477005672712239653522406163475557318816538607672630329445531810454893509765833184241487076660070918331070839321856811931639956578721511800644164824795884762818802875685285096802914874086363052783687205350721958462980740938969745003710425667199644455072790242254051339137202542420118941612298651451919165158120842286070162449980400206052618140173090883651146959001002007252875500447535815560535353648143811661788745460063359996080720085449471765841153236651069167493330375803547147351661803876590726445132294556391057230916231549676988414493011642680968974570879645775111942622545760027753362917443029629891142480170229325084533941868214118660918622334255479950820528259044009809026999314712569400097953133439075247325222446553633099799204790594808821998578324567828490582886906988742700507855003582464876279180553048069278329116735300569633393905751766101026643868962853678120546554167612238113647675921876552794709170266639272066899138183673427158506182585158397449703697275666273999040902830900290515134503717773179017623836201329889468028154259877345570497911253644138365306245917113703265018020235876707230813520330036381808225572009677978798010274440361106661276589591087468781501156629047288005688668952742105873955028349969534374297839405348670107823048401242141926909012019439634755907971167672271183268532666678625505107175929068025110203010117527124244225518592873732636927527753229803540841389304040255627290982732003981248889612115670808639585146498554645416874839045547898257627204384468130661593465981416463721343620682709696099116854862821822803954113202038776278519380744117955209939592285465204733446006065855929426802389748166727558118611152141199054420415935803490430549905753753684684359572101880889102431658646837767254047023120747692541197667789541416471041002570418144937364271162087946711622328450934856805310001294498691907119951799368609263073684455645899918307131660482914708396408759287150242557747170714525478849246281866987677480857533808870595151009943508111263117566674103870350288711664120368505932061855335723160231323527964761447791709306228895091002226480915746591705546005580325635300298463115272633498892648614343205548726873689479195869246044841301103735065758504140256696566014032565478853269206797878359338810973478090932694619627629200646010599370614099648137172075559126279007548752558148777622626626828834456551509428261059876448775276214364617214492116796578464443556593332205903622250956214225734784231468445754646779532398153548034859363621814210231506470944697159351245944957567277167927626922702871156443357813276911027498592544656646570700171565818275878021766319003370312573814422680275767902739569233321010423536440233449868869092989973047297921606646420720562758740122939320742993286831280378698467446319972249465533676107806032424116444081334498438828152378754904984732373624120475550902177700378649571855550010238196368545254019255146350638724535934957334516968623547224219470897948319951585848484927421391605965605778514712613019298445188132863213013020309836223529811189523182411974449537641552045326791384825314926626860494833150939554384908135040440538470358103674638893463818070402152919750602641385542397816046350276171079002213773176410841520289627053431167594489258367049449188695185888578406239936252773208966420991882549407549937045476878488884805437159911067337953783102298917997130794439483943806204382867874707459866678558183839381619585876530257204731660667351493124410817267112362994658732798763393641847383537237136502853151277867747632841115726172023555089365190209341337955355036232230981328158584913630937774460128681630849287831285578368847200209641486849154928813560895833257607997104068096585409770683141834344072103331905853568597814206273827170654425737822385086132262666413098662660749500334082231020542530971455203522684365678827027385308748517024891429790827483919381964177391466351135060421252037160701377490482261268896048111084252717451871618239929591442367862611742034234341363896802878828618968826770889684672772923449794236432466554098601974576541808441549048249309798480558130356712634419059672639896547445911092774870254551890595384520637795530326396874902586487015296324081355062758149525574425503913275805029092100583964916744671294248536785720028004490762049447381485654653252662197641852330240444862097730541307666125064838711692308833400417068997461641939699209138548813148700081894809111984476707364746105948395807930404567581423821850229789560171044018129747826508614633462216596246458818764780002843427361690491388515247889522229661218395706362127853185655416009575863253405438181479666289112231376201728236393525814871441948011576331321650418098138302153619682199422450344211097601032045691762956753558023091345054482313929006882631158450400524221005025873015914323957406145420321230554196994771767933733188159830201298385821737401878927339037927819304372440854144106909109822716979993506614307722607992462135916061343098668028241260261683724777669115300212726564728202626705714966552511931259255461879733104725633507810109532103081014122779654230193225349148426266405256793259032313213442826780897172942164976268564103040013233449108349242228955644922867293993434293206192548444978198971136405862926254967506951955391419539658830812039201615392056518583550921511246580786398457576676246563231257286522516154487854589379612974252642834452495801519204023631702142454234838483065903403981776677920887392341184636471693190592168653005419404217982319558143803755892140547674200971707346398769819942995977055532794780494197178249753223602675133479567221090956630858622833122420430376731920693863705842976736223163629526361652709975720058176949180386329734395514842140933011437172433182287475878234082989722763761482246135924030970986908168824312840293960481023643426587824682236662477748630875860943410278455329843294535009170988548371702900926141096796653361273332001725122488796018875434083856292668773842765399477322267901352457300909840614086712810230073711828269671331357966052843655435542765263255840741700727954307247284288661111024985541535477323285235118463282873144211849337897021887393515939396988282173015575632448298200486184315042496270587027296290664918606750711983179299214346908716488128769897372831122505312617730326041696967276232626169096278753647514127803387309187297562000828766727736539675180285995129062819305406832593210440710613668516605089173701239762855051224118280025112916756158809701481275908939613827794676719853253402734391312994982651969697593603248485928708249657177402453377168187968279944719727024276038316199537453179783632159831646384863107920846427602209078514154262834350049650508914803458255143009347489775419629516753366508362021855506277775632399964584616534658740751864760776381524448634079147145571731829445036920826504911162696247234665107882978089799874554922952182481084439584810276830655160759809783322551089506796907809598320985551751419320876287861288105923384293388781800749034733417121098420619029538238190203135927458045360983749127007901904065482056024622996582173080510667005115808507706353516198909232220045305511188435898445879072764765932279863749444326132032537618489085976701354854438709534160238356252624424112366533228581150105245267691544421974146177064294580608119390303275385041003233679851593807082118979936519437177337155972959164054286040698911171541507105332954169999265774490922762307106057596195334485737312894562868812788411181660472570127070610600822140407014787759546842527012874001679926378386992130230882641553921916244760904442520452494514232584893656931014864491466649913700979587672611709592536777657961815311474253555963748067729362399127062479067954032299987008746933168714427830516075578503221206398684697102023956536545768598003966173476694979965959754017247135604171655963794403004403691112341772960149155110892101662691327354743747002644441918925243509722505235902138741707930720893443448267711293576653754008201912421509478907471786337902899512550444418866052193465390719448242383110854378668034395624148812246895533391707618862063853571010049113692666733546674936429672416652896159173572004780717747808733834298623210750918123278087019965145209367052191248537337184033700119724058290927979009678370411581945637840393325735383046463674885794088983203432370367746442434250185263330201869498196722011141771074824763510153835922980560381114851888481915807182529761393475013955141011425204745242759928322054389588934101660539130004297214712088200633473057573951817109096176738993099604546475988647790155060071228978623108066162492395759111382311499414479477606963495142751962204591372676582944144331294781686814867348005345567174076590341300204350904014721258335618190052361807369906179902550789755055612948140586382128711515322547723821180039730000508100349456279534186879926898681554734203705109966097654116553749814137419975145293424833261344924882259902387683514070685015001412708331109921513109702198296449431838834835612238784441724240123965860210559785569695078402667983890447649018213463249570871424471971857238506067569858012883818605761749303755638365238482295338353950614311231913019336943499503803559562485170020497853914675727133200077097944762246848398501627653356290697308799912556364903024878848082593164037108054095488912249207405546325287201767804234000512518464393981611321310892726770523640513336156196396116338719673872602332592056716075493921352111371900030868829174635840148478803996238369250290745705852552620038160460389302318816587776814194332059450984109567060405542981683845094316087158039862352299790963110007076515679164915602514554529894493332146414440961877793742548814644073272740444990263028077245776124959383293843170224867719571160034364335193462330230283507923754141439739274491198621747083812870511846773070998552434441317944323352314998358870402043157752528106762049300748877234669216377008932427337281150181848299512264777608665455741162056372921502054996963917785022416818636576355045497440282562384138692990021556628418984022686265468334344715259155667699973606609788301128794344889376864832517493248232488585532432199452590602197731266581710122207534543151867309520402886536286154502334299632196217382234264818110369518798162520198516909974030880941977219920764287141286134840689314182768987325402748102518094808050751164696005970265563243747391655518056269132089143617416132855979615780074266716523756584199687178467088700488525897107625223819922206137370253675336014244820737648403891319421789968186959724968475214334838132548719046015092542622156296209336078331419378814701720674737269197390804220490364978975505195896283631942554269633790757775750494302789679098209722395505957438387438121722849211764677512732546921060584172618102494724235111717099358670237859640921380521426487423757674378633340523740135655128251005483409243832731762576436798058906884742393639119838327154299224961345676345834037294257890585695091933295117331022554029421699540356966085307173351218730073666480669287067775296424164464047298205257862426308334951730309860309799766639114166648271477633645812795801127116766575217861142816997394971767034956238531760585827589737074419769831910678341416283640202099739402343847211409841056273217485002594093253331238586380245887557864536680814126624844373147499951173893570393979940464491319907986610855878752549181415030542485627279183380761655625737294989828210245984315923726577012295204807378119919799263294608302684981434610532882077627890112957160879025439962181748015807872667934006957051763280781508246251483523074476134224066973238527212671549249605859418175137356014843465353540384729883002977276521336228815286983769324954260767619725691771773351729463289889854786842988884702188256724789857630833864982675442361019581774968953164070474179957184493045492532351989662076555327317547675365953122507594017448084402227085650520728409043997754710566224740316393937769063743456236333154285450012251743307234323327711675929683171954678794650374431637768572568393495278084630239725041132836286300419317864339607946338750847312444938523443907021075630310791119580567423762464723852843451830707483735795134861979957764707047387635124351975863743402280055509885571957049468343535904298686437281705525889005785019467973891719781013416271870980546774128789644642714301753441066288689434009735894566543542468443743616884837064347135990596351870041906447164833238949527501304190800783483695012215135444394273698712542274425415197576691860344990234496508271391085893969840516163700267435346133111685829717269273658663679999532788587006635844248740954360040228395570622689470865442898990337420409312691210928735369409886273792199323324553185409451049756130397690805983226452624416963537416349511124463267469997303032354359241029599392764994564849294390280955918558085813165678360975803237551749978042166226711322876415642400878977621293113087124543972771804029601298819259371285128057125908345758792436706834513196812667107618676205030831312691253394989478863673515325874713059934503746046676074046281271729880305354866919155931923278473094807002458028498426450203728028992777055921145147130390556838655058357662033892617062673287581086055874670135637068153038061821519231041914477981470595727479064941533122113609534206160012765911355262887476505931300261703862133342873919085130219801806150714642827138741415912488694800270560958764866771695721277481433298176495078075277647319787795170487431868601263042328396427623925244390528350591054320607420801718953911080728630706400551238026052787879692002539990695566383964829674753700393996609356709175734160505376839998702795428091906356873453731165771338980314481708773956717541001326463832652147450078361770242620050817239001345478467524175730626705827704794120794079617556972808816002919477085724431710996332942838110496834494225220779429572460642989585622998922108264554964361903619678694308947682821059854416390877467451929072826124013751609656136824627183927739708505824530740608000879390620021428683151245487578401948050638819351701352285333558922560357833995629863977810542613271245943926736795004914600610224790263324909076695289806375662086324357114245349246111590996122880135052532447251791517590874210319165298466552590014764123872243691809537159578238077731651135655400219816939301287959850722953619014323847480183874602585792433051454843138682498104827603258418913940543427509169453928432340044240308698673958779043287135507182695662420911830404972359790385454321377984410266095314569340407281829595212809358211879104274799311679461460918416905085468922576768031964623305456411068944156786429310381366538471539752281392661933544106292578036176483341266825969587706248800320922048452544352238712826130935564369104094866427916936912883272162331735529973634906512187828190331381757740852653402509449973519183828339711492768409089229343887682616019141217511844534396885108114594875587282023088822862818954971084527558628281533371232893239564606808598591565381890016092753372031560545052096806125981781428601513146011073904627363871834303092519937424849765892209012842539668300565096904459828568760101834317740070126793819219443332125921008183762936610420816590160503354139991336058412854096862990725433611073511518273142952216078015223231583490008123869565752156164655833072372030686592870460610483997426874096925477751627570733376195428846849468773261889810402628043178883720938506075915314871924246494403269689079211579660916650487963607381933273328664523902727747442203076260595988673167956705026492521061228072774201426142475980949208983455024316414167570446803272836346755068474283291729835915827770437807320249857921951119859319256429666949770344832246206171747153045300703889327095142510098218315140795967112403827682675248361566659385502052348869246319085248641599544599726772146823470498138905178047344364257055655238096526667692158099075347999423834146441582722309701023103530162360848113817243036428818303235278556177004099448984056618391717584799621293720742007121414370833575650104027862359669712695388446674997542860882225149718185769226539561076847988780108429587623127067225367013392453714955961027358888171433326577918843508844886062108654990316717854636667670632496990485006357049250098498954255118322397593417078151138693296534032741072340425465626439658099810550129120360926714131890229882239634810349902253280212734033481927287454150110317394339995953895078248597004684414176224389958913074403453292280765492891703957170666300742483989000070798044700133705202086823690871451770294249568043635296057226095531842874197008832159024362935306343903897500806144843953239241158749961827255602996294695942110347481589116908920518094960219824203754437833322395111507411410770924502369201184089641010420882531024025234699225312577436119804861157725262268176404919846377169908722727496849534215862365259067160859897806341353907519494767750707812347313313900019220526784145996613286043228361761419653585058199113398034554776873471979410917754792067470005800544972852420865026015975595378244575313736891452034837651853878421485896414358562520914923604609610783093426156122119634528768790108583210487212026695337544616066078049574314146676170295721179713879452016415348067627352216736310728242283238091983776184967395987207679967219479590811599320757237641190508741365988132469627183324641886179225621943538018888278826012547595996623227125702439313914248068758196877797227846477568072614044867688477484148311684810100771656036953605815884437899248565882289593906517385491813259686099379744059721586028975632930732453939233192139366198530024798052653727939688502342263658791222333360941814274232419642213397438217924908145091817634514730310405325421702642882119227879519668511589971769365152161073274745930819919897906629391005453474369865642266702929917080836584831912356402128677318699403684721002347801664822336281773623529219948414710230499938852794602016338648159874063165974064620125363252021484133881276439343028144496022539433613716492285385532627293431119184429739489578969563093073656020930215729442989900027011615973917888814561590544737186853662141587403236838369519124350030063490679515849512673867314857309409137315649747115820499050079025078809036320978020462933782914561837690328963315801753029907467417794599453362769174578471980150197506572127628817008321486632676421002917065037105084639221953350910221074328065782380602799869370678274269733051796986750947716302521440917684954441099410483178736126016079190760743772528499865239016520979351476007243158847678549243986240024385549373514858230127881610892828490438254956518631230550419244829394334153782510211420771011502418596432632757455728511823261505977004871182430380378181565064397591946368165558031443379486164499740918049524991865891574458699161656810466051220989334644548088817404311473130209909500228522680422094381987831133795626076702378714715407043670029150241786320814245342511873810710157397436636406443283088720497597690068268505387098310233323833991542520144129569484958454901260988667645400499521965577807065895374763202328084514734572394590838748247391991771195969068507453878910204179960014838668892447634768522318005584384344630538522990972404928704004109089470232517426838867501167189361549334049777557780900828678130227592153831996903415558769108471300416658632687695314115070004131843260278720367344166658071207988068638116024216365762826308138370533429743206152745255697632446824443922019356942024643205163695617239272115471853907007740718451153613155162074279092250616362966592215907572690449576094653701495149195846818108285149775606625009862811844209681323123810819474129510169802728476578432077435944076686119360917481223719939742060904956080660534247069161956402674280903232283123468958187036490222779304771554706454007108460693685715269444062626617159110034108485452660174369923076025945150283384758155124113761860268060699044531846498437906573040427618600421739561911344293828632542034331243571891116082331345268518539191501769459524930812602117343312355159674598308180358112786502888230002986008399880392675036225983537334927199547648422050802391530878679038052461997653699838793292065008059786624222858844950644743780849378535014782320459729107561995855160093846556183325302046254892895493180502684485090926507854698455405791271261058054866380485799985983031630850446121375994958373004031753924934295899320147510822999183196418609499288249710723882635432786003345346764598862783250724256032302918336720929174662642300956842673173771563474320527805428415072432351254256845158633387493944654813966932623236188471701253451478133792975556160639264677236843870400027272642703987466358114765772571953912188386641302205682538420656528318340476864373312583762647287900830341122962962432904303153022273967792692018157879880622520773300475542818714366933386435788527030911868779020027967394356888916609316002439667756462201179206738054401409693671370110637770733316565856176243530290413429697502767565126124453556831166802098065140148741930757440708955902613001731461590683685006854316116980679207109863031097244574573158442309285200585805796925400548935621216295624979907273512368385326326904338415546017910743619101892758171877937475682239072135536790321120516610022600533397070389473766055798576064666163898170327229613384709918009716780185228734005375573089426759753333269390843591590374807020896007025690478437967619637633268895974881094893041223343087177069685549287336545931495762032966022177203450920128123205109980628381095868950976146013561734800017487202084529142033775940005550593394820771595137710829658975470725148012708696639410873452245039174134356421656166250688366168673016856586760992558004611071240760373183095942405919622162184519953232648980844026077077180657387100420334591170714526033887312543506728018442562167113420650761758202893098288870454413257373271818606466406797246702990614202511563193610579179128908916822022024801101771913346598862660036358774051630794755205011354823890590152247267252728340372181410248717492719636782070098097784605612358283856970891741086943189983696279456411657315047907397744948139679923514681188483417173907201455616585413978335820828772317885356787160841063557755487718226992934363703649126517366729409948214072990151596265847561588055213082025607648223860864540590331120620831899207449428561180319893330244129815897210771792163550587318991678263008088495710092587125539756442395565865828113888315171192449071389513500652168743222576690528369475604436314282983037797987446687804371051094469645539004572185223684866059373466491739039207526725944905296538621666291134129276921938243771184722334582356096645090363382241025274984315977306174601622220845949809066471114979709441675541577710018831069961976722651777062295546506892625578469367297474332601920961170766331277219259954957125596719064281279529277538300768341156878601859380378640853593031015433619620754911638665476907366501833013646261698952344544457004336476479383897282674274293680679030877142417812507200696650403722959980237801714556096892966245468125804690680888332497969202155923174919983229552610357367869167557589653885190014371969776771435842045447047029287303705767282575990475658627396328728856671253072223386481919257772534261845946359451506299321407408744454813752060810737916930768862048791863757598258723794999755809616885582287274659656423073386033217434770567495065752275074090993134992026011401612236946942637635920018895323448054810163969628129306556578619452188002169625638942401665712368803011332336814626736385390879216015334539111702094939679652622265029559103883474029110899766565602233824225394323900288603076499702298358641952219564865415151614673643000764436930453479429785728002349558243454670549171568042047085453374575490788855487427949979708941694101145624498766138098060311776965011152386350867449984970804429422762402716225857521113827842270277572529352057098394297474626976163255249702727079209699178946606092748162085043686142876285495722522743155359329825408720095663476361464467771688684826479480781553832297344015803990842276492494670968937893845172368059870666362514661304346893502520470291455242823081839646858404298251894262641539283016207303887447421289906955535541334704175648227954314690355580884907446932310276169148821535958763203659301929184644551379201829599815922764309400911622496098241771547886211884001607989365964330118671258084846145962334652872588018608594743804078771695978041430607032650298494745938798247627802214500097146204843134130944216295746048213077228056269673362352732271063543043491510623824079572512536871513077829259469297861329570640254088110902687457820429002295903336484114091099553476763322094787154780121555775106138744141466776137107798285482478797949539913164641798926729048670618557840392335553299283765196444388672277496630939512339652813176856773860683890023607783907434363123214546513556941654197102495355282410607562679428186498265762292407387792805816957431236459416117891005068773115163789810381519595639435177493515920431650891619810974427542561000253002843130146001453258644508407241134139344602439327635780506694039310597549861890781405727965632005623950223708340584411639229317214131763992867563644210623601523539504630716357241281313050734400835868405992089765477593026485407820376875739402566719476223520377323306783576717731554740935819801664267859899878594382183560681884473555856494408871616813330162281444658800318545595030230508560900219164244155501246039944226098919616455301572939686218275926167093009768506910973566216155548588375954538023746782306818489364668126794327292350855131607775373100436931454252344840436809933897924925227292097436282106045793154390858723375700335649791925404758998137896583152262721457133414182609625675588614765519515855026913298059129571550312148586622027235725534438704613437965139251625489990834066783117877008441353075008754103954587736929469623763816425768693869406583831188703942011036867810037203576135507483084269935233852906610513268704712638525491362440425466914671562466098885412978181571676450032887291477017863007029417181394327163873891226100321593956563602373978855500582502986505384538195004915155544578313097079866222163931492624964933172729294060608177169191396028356931596713646626404424838112691449878806312571373951155920886480213100589396379364178516786444872656915387882735586822653675553555316953021766290332225645267313951930623554675947623282700058659334923331679625515349329421969883753229694826900258713665958494548171477110552767380163763777828801437538186366056848870692526572880155673017984382294370785169349285976340199890910618931658616751427404584317550039934530079264071027062938753367936623276893733540424840603878310206890681719625018688973112021246070037518703794630833170050391764050081603776120206308816093462879614076228038881571721973701766133136235154428546047395594373790974519593206457217536607058914000051259725376194628820242059954031440042475162018527641007054495073911329090671007516423998232953862889097009409676518973701729645184886502279305721749862878104167301737972326414180236207799641726308953704196539292297273053592298516602447830229041653776245537708584211553894995219728849275871246315612776671283500819488783818386280163001319368830591348338750827910561888045360486803362720939154055094294735410543862899219001812894599071766032416385047294720392941414062438073782174552872562205872457722981166363232866044670420847166821479644650870590908264825873620841583902781123483113028085203570647572926203224917885771068320812360259008810913562282063195994920443491955411812185168246556478881666825225847139047239226355911025911818069913297967508268794819252708727423570603865818593787179415746244961183751264035800797363926976548444140497135433976987139619313177427165308949318888463239720686667475417189788666335532777753685125221548619828392801930748441790393539273577101669368293807478327291592814271076678285662169982956328009076625893679540918163397056107367132108070939116030593709477003674253050612538747402475138608897789359332251232992448535982554355220965504265341910982772402682975886230040357875373207891390082843154762494036817537962387829993845931400038533295779457890792061129108280224053599952576352845293729186694674177888117238453680991311421275439646698600929622824515771191988957616464530477092349900128200705719151409185176713066207833269627574979082066683469099878722162228647348386522976572258210079538999495396285666726991749074372328844773287757449994414990774097932496557413857540541585723032211279123193934264364547659860543831388568939621790304952686304442376111346087152124398316752810978891229701287780605348198996993675540990112590738004030850657654163727021224824714908694999128879829487345403218660900443170559685269964134380973194765114596285938475927850174631150761897118803890231517666379728048315734472098478422121714312413107198685369367161924300872691644845891476078041652147301630056745976839877508466535365351554442541082542343223542704715735093672249700849941335479049017027682471108394007739787354860071877813488925672667646834243392583446131061632918195134991164710161604637144171485568789887727616996705492740854058198027101748898207360470055960151118929220907845877738578407563848667155343678509050970164692208447249171342937548606999544702783382802065969004881605956705771159185690095203956031829802566922504132927303094672932851644417087563120207678144071470373020191361621839459475875002044613320603314790956990324492068113933775008334098386823660206390269401007845155874521865265500789470421813891849411059560983531486324985537749760102704036132700332640285270883386076747045146099439352520208155443024896047134501308341881213061723081247670348028815378976033063215838902049369190869118296542435876856965636756818018141784605440267617674790099047261000846744365010804836309158433360063317901335589904852855158137025800574664648487313307990016577735693218401891847780246427989244891164335372215900192442538269551957829683120706629865508950298726482194651395603574844914812740485886567668054520133251357510925714806495448094319431427898186072796490551333975602370762257302567628501240781813039832166875807244717452851619579536464885555970130013667424707403593595383795159003553874220056578057381696672295280128476218343533782466188113680844754751744434039592667414571680836492240428677812475448822410263217189714239372528324327063565089466389998249476233173925016018108953507451253955064678646853478547721924542091811075792113705235007265760060838992190141687276492962006657106429426101496673205865285645703784257572679410307503780121741907259390489123710998574693969838590172334237964024713089653138366436588661073836127936137823522082469135257367087107801136656150881000400079427725815720746602098836105707525617627681394225427576497453267640917237543752014469113964254442773960488073745323690667361165596332661384534974682114503093728257461151968973598510477886913003307174998129450439281839410833345414031075751959612823197351478314423935275342035571360383346414301804214325926058876924257663130770475040066108013174800813940469108775368805052610886226190565716749481272818499159488270429443244675775249565780401514493392510685668521155480585290912464141833694545256609963949705858581329620963820808772971618580756212646807173668096603104886264348887784139123918345158915680092312612714406733577808849228811896837791998831378620409476911499502758635405642815028404395762492845918012588884283238508160461548005763200507771678730251800968683252209771791288075614779416065616278505421511251696498830041938183910539595027936639268634860246674034567448468982057448125917358434115880556129604858536292710878235699035992943888289680587723406553553636077445216477561050695916671333468841321717580200642469244437494714686526890199232290757138433547155914208161291349643190796519563323580155302017662969955048995969849918052875627209720245985575019783773423763710086236013379028385179006668313154426037537760120766802911399685573414096582356795158085914417820219772758209722839207695727731074970991577119208513940297656084466279306607623873447722953771028121633685129730716306603817213207852096139446408723640194150007889593441684835151356181653552131160609429485134782965648409584755766472091695971440165568675226530799137095995208660930394644374756726986537299440386166098621890050689012308114993555928999813723953700923349222514205540759364927289651428288878443614374874669739695673796835068872384913446059358368182855003342327315861657168546411324679376878854823263319897079587012024352050280427064756254715574324150701489651663205134408314052219007855018544763867161779239592427128736877131695224801784497997878805645122022133463838230990090340248782985205670154477927225805430525840973257146744469123480279582878255738915266019533767451239915414140045642707842364403788562640287389586195613918217249972445619449367160015413171728898816720279887798887240263597444929423674575277517366065869346055086382094175115763813477675569157191447671979308044694893679936453182738993534853383967566116755517160791607434969376901001660812379920411926348263164668197390575513917249091985107114465585411265154226145144724907837270430928053107033657391121707637930835938564829765966827375195550283158193085004542801118270057365571179999997201001222923046434203467859697289859545252496578550535817103343139713373080017076437810884169726969235827520231972111341064826006829614735537495203624270903181988093774204557786781932687195812936898064723278463345011401998732932647573386346771095106491985619014299802655362311446407845247384248627734270190734391726605511677968208442076914185829476026552980205258248782412839570977355396748263149634975163400501474655959481667612938472512471925161080051056418045633641144770660991393622407330877644592378302933341576200671612895572311033567241273889219273577619974763648821094221516394807437486413521084993435525638454826108251219456937034851578283340982486760639712492900623429559768018610730299746224685120818577128579170009361949421113085392919549596323827639470708997172183803103734915313299910291988028228766592356654821023188734448596263237193286063315860021498506696777067451387992785730680858804964231731678730471246303710359756382229512223688695929211916293617292935231721792884438346433652896156014334246922400141224020856494273938040588890143869361903477660491374984922274435963649078881492954696545750419632843819849283450034800966578433315399278369190121893411128087536085906668924099700429484885018878280384358567834851383177313764115861474546681000779120513555355717587546641013318661353421252299854648173900478933672198963116542725477967786424077909658242211931535221453716759335415661242822578056509145125802808872594842055608722658504735511142606696716698636004873557070917263735833695501417875119171902351783669400047696509647658694722272383835670407110451369024359390314087233979104002450519362049824336650055250070046605260940779541572501679301016156095640890259890812249102561039452853190340433568798426855894147321444030529004397500968680974336319887097437453818621588244724879553778977212812399279944348733616317376787790602125651343271192054966107427811252713278580782302897256121680534680114849059210893883836213214703224384740274219969924655103233208603223054280290812304648455536133498594023119544194490113240038756067563365996065764396347540934047592831446868848327182537043049820111117286718067977285663214890922260957972509379410797795415381393478131787704623672088905740311745961244045037479227242786978524419229927858236664877315291855409965447255759109374747792974387213606343732734854390769480817794517960979713696477248620120484363288237540506185344049303721311550026732625518149546180416702274365282286178338570358776131733047159051242024197139233075374458836808200066380437123786151675403809542965839167922452251576007426468629400992836358151090463865635411205828793936873224867550165904930692782917038914869158995511906355844819607163040592927556750758344453474644797643458412621646310157699684065950237604763912876321848469936998131901681013030758492852236855567796403659735762655648008389722066118619042565536063909079592867808796990546952791927693337297494372378029411732771202097154658943546806543305725960762530788770604906084738585672711474501026595529870812145375488047403345192150109880032175722789443611914814658855051680976650737035868122270375272330784115513333792170595454804138100232390643412574359398059744172892958577690154756844872216808152380585169549094851842422335726831847141736987900634785948318953692721176176786295127721310442840965816429625503586301786376696497912171139821261088101311806764097794168841087514252126809809503982563218259833338821028087053455191427809419772062836845818692691335613492796748999664077095005376676157252745811321381487560420223935103616182334773869085786841827118663842910260565257630691453228123314591722766053213578528018596070030446237356749394990722434955630055462492260795433536897871753971104147347348412963369855166967470864482238469257440344524320334997401581920999423266450836694102655156464064376608985507162196678501967882456138418352885634288777710063876456329816990512937579569585040584135442903202682131838529298384612152583650689147967682149043601862047921284686006949806145102733088748616573840491733607780995644625451065263603218084286990653327103902951813308761377008920682019851289043939154471503866730743006768263333872950493583370449887316177490694065299008819327256818966901566410071657637902633303570469032106367259339962690715477089050418250751280022334987694055422184705597196745645877314975594425045076700354022306799829629045551013883268180112874648525381700074071281226875932256757205551620345280775300636087963199782923693247891137675987323949327732127676543301682587295616236236192552454027639686051354681498097081803788791581608705480499650594319470506348891960106785794870343447723838596285327148778152480998941686851565297943976256517029126063416128984261519542279821248015009354978708862638394446103233536733819327173921994956612150431318216005047661880319798511774079017659309167590659466946474937310924301468838182285960441453010675484861115786249729237948988196525313441088027247008825725529337483844615550723051182265360637658767188670774645341188244411823185947134876500326871249083570557355119231241128340148280711810674461314058957987920289135333590546011314080504123357051119769851924541465655507444651119344939378916217536001927577821779719005783045505804542558093046611576572565413396550501602543272155710408461054967681074122337402051879898426620482296865701627799292420101171600329253500162416955601866087233088119606793876099385213265554642404702202101708609715988458449528900912760027374838379903529218314661358923056142296996154438837948447939756789066392078727168192707678371420221958249935735639262473128924225508317358159158735592803850558604576565866526364363638540465754770268999445507567482577454271344301773272142330918339139820951403352077747564219558737863987745509944196817618496330014696690571173266682522953404045825737351160749123235057119865842263552357439410062360145089894419344061017549825388419348902023969367630341877474837874216190328435297183051088225783420716866122250184181670657834472898923110775624764973121418531320425502960499788655542979210712919534343181334771563173415395017385087933417659149738644528149634708091438411551921899154709034945654805518541304675599190896396621411848243150014386481354980364898319464681011759684009075195857124637556553213279017271818940987544917901041507004959634868866133041331024828284747167521919825313765849764738467951244983838632784981839434214733227545003287542148193349865962729291098006474694126846395921727868166744598808559724125400610443094060618171497824680501436019666136802939100798840937093482881774337203605230462814992721217692867382129280804110246602987441084376500862685296173208521477914450084990139744317304411193614175487643964993352561318826558864412793494013983740872334282148583648655369556252237059798972656468763304326857931510739622631286648105412433579037034941824385605264643445017972806235042721677925783272843501672915896539575187013725268071214322007051903739310361196276511201481725143271145656939348896025856835350322859677973759684719768455238012947792796521506265735715919901993748708682432404636080239459340374617512376824462008486166900811037740837660289789424941079464932181000860572644066728735315908873508342072194479234338313222040367022120540570133689875961120349382648087336737890802204207451013479623654407929442058173631431299292281092945751343578579082395249495725208506863466032160796544883019115377505525704045591735690544754788094221759569917244805291870181891774292259743654758463188205956003834626171141126804572417342937271427977987333422439825611131530433920499646531200304424708203117453462763765093658546082806203707386809150627906398218059489744238232433491223588684252113960589269030121266996904945851336288054702068394419337089805860643510355473546942598057613366189093323445213185127145638184635081672814405831768327398365031376575852908164960870094234523699408583596733703431505965142245586541718330814892311285980782162420680692117969622702611708222594144903506997103856540635568340449021312038808666326273652890436288406141282845402680063257963537854362179430074003130307065048793957455091056485960639338403030804505955811078730418547075957585992063103419299059055849558741859397002581566061310133884296154807405150041701751170487447556397282514623443773380873856175672809553974677416748858871802873975949294708461352780146555700654234625648905058850435320304908472411556340855648512620439035332754176144030235686229891322299277652647347845717305970703565978211319767264280646306887677406032895549890863401646868153385945476644371019493585580406480405389756475442628307533428748774807036634749099923298462660039255146480803295013954111190173996236914896306733340039967663753313444092917898629886158013513826706485522246551489905441036776699409834408237426188782868896990144812666413440293953597660454443917342081465358121913931835086105635211917975923782823240516949818421743155516332959464941919196673596299405066866356847160415876362373199977028594470411029715265411216138589509210623614384104870218203038865460534145308563893671533514527167986936508430024760444639787486879594774435951505772460964194829404569860536958198389076998346781283572542177312069794906360474636486947492652186879850949110685741079906586507277244341528249893840613280606437964885767659103690443544989161955233545583822497180743405036794897921091976230296351717799129034203971397330202144565961855875749050403019708404296454163442012052583513695157000936281982745477737740236890933689640414178908721201174897570288842838216878315792596570189110355816034622498677542113521060819070177027005639544538915597768340114678364313398542809743370786379961741543554155793931045718640412560357039406561372817783867996784340900475745579735622773190223565786570635415358502393383671315493986384535639868716822305880184565463644076350958266545719982908474126185223667248207744944217406640858436703198692816048392062604802342341698682698041868943156792958020382886555422189769806615599896905532641995265686560797348358079026566026301473802710671663780005021389676455371642071188360791896004866036032172148709096265434967362305385255525071614973203019181468485133389547612903292025576066778173379664157516313590459811119794927285310234801603630486340534407279259210192763579566848944969209076627884543875151763992271040672620854525031504595025439496522988929375910701615284655710605947799539375612735277076286274555778047996177628251597789251750632616819512391184232658337537285143259104125574851052905627450927495874860262512400083243827894189628083089693536736599505902256308869523805550590215722154872616290120878101690211540546569510902092375555969056632233650102261487029006050339830842413818907335198807768926595963929105576417587665830962703307977879582934243784750146271286680092127453846138223252106290908213952861353162321700268776133775246393060169866235876587096811791240614197476811072735989347773906231205776592627479095664572518049127700843164282221944096132790563495139493216389151688312781404366699201627274159461350027471647543044642773174036582868948608247471978595812405441649831627706444737411065924087550156317461222254834389948399612942089777121020949494337515011041180515457434749592734070015479952446264127727890871573851211353826861248722934689070985223276701191730377426195762079503179986683700589057807939661228487543648081233842527598252709355497497804254771463884687815381752966853913688864757752704515831307673596223403956172944335626296871535849223990107492083797294723800091603717954501600413487592258064763343173366709211913164351968874307289659153069785712357170037147596157454375261953513471772409974975872504060417599654320849093707031721535315013392040910353260541812485450811183612581921724105513648272207956137368521742124223615390157044600867966853778707704391535572618796539592473543363035390430949154038666669657641922449648787337782986175634931319033226604473081523178946590234481647487756224850194091540051126822667411913641532440413153901549972129316814750840033782953538903486953864690513515209865341319608072148098330149812911460703212208059605587543416141672928041561055820105059828315476758647874873984601736347666055535624000179243272131856036663030186949941931451782384408647714876303859710916150592819750898783807452825758590858959237100297789695676323272790770191768690806995749763297547542050506708055676475665131353986173869158703166787570890420657578862645011326404782463693144739704771746657507990034252780836206766623586007588813543781041816488783671806295857709655336319704861792523979190355203189313643948192923602548049885888179400245890951833831386063333423228592529057588464321976467173049887113432504942253417493361390572844901526705257112136377512097785688029346257788543725380085072606622433528225521553563051022058140147762588152912182144665560031691205980613636081625259787631874157647333951039928454242783811149782338172669200452834843678856686573552830866410726633299226776155444649493925996004458750349713666518968908854343791566584871426292709545892793073307709743045250637901794518861494569230684267364854801825120848179735290629256115212360942783100113259657063598266954770584382076829070993385089233942004212061857325052123991396498094000473251462606881132813285752298712547641941395621834733848620222199000800056049851678817423412302435546708293203411964437538302206086719801073726968811577404730370889380651739938272327529166222419381793389137614760943252729231820174214762836495374480789860185472813595215653586345035874046574846931007077764435464815812958532431489356116707423248576764726408741075842946208304802178607512995300145152908723076780471710312047733869531917381432496181151460808285924567429659956995008669675467176552252772358040227762810421783561521273508466898365264040273878238691968983220283433748506127513009710519230349153276664384871898036945570637899197402094694641434194300676241007194532276353107796863772257983579573902378423918536418854976974990182547098664941175700475627909446559895694967115255037358577843695295861228768628771355467885318157134028242662277818924289162817962468645543860279783858207424600509767660437696707176904021368675392624930858914624404649731482412826018368422771884975223727768752689521706097425332501231685927704358287566023340982893373309511290496659946738246779824913227809073331440461298264681802107261961602284398152488175864869595934166334274662313867437056269479789145405602999955238755481535556215007884891427016897459785101460066726876148375058401529267231322277545006386375677211810648585399633396088363956509720600701676796762446190559893824611520734060212463338369223387650963032684739366625258316717578944789546496543345505776594530456092489501519686616732749920116847387719443144806338632906884688797208431680618365773887838733207009300817242480889316897046931914701453192354529648412731905312403804026281370345894086070102995006680917376004364112949041686334808738643491672168871283952047343903354160851540969457978262009349660866866563899404475313479870956309979225747747552893869196458982866646559920479038862457500911974469981249113107366433704422952597148791230837383839145950627809472283470542723120633262451645871002568059365484513003985342749613002898189807277877457170918554091182615804018842325215384737894310434818327947604454989785981586066840492544033346620567950108327079634504856208501769442108065821598094520646604477415898022293305086040815378096930808162341005505661004828211470019073886661671185511071510309634898476114049168814103994743683442737406658301560632975765775646085122076960904485874785235686313247652061190178156414633583266499613067466933891895175517214597016967509458108749621534781759810122815411037845680502065109576333220966463842448446560546860547425391111511783495594468551547594647634767910981818647666430885637266103349156535896548759315045347650323599249368581770935439160304982761851603759215209153713368570322276779631490927862726127282138713061981308277430301820449510611607659384416641123715413055150560569518703731877504071924927304205643078653560591309591569244714711082517309224227613267022534155045798691984436940828095655033011377569702956361213121330999742167904281853940746857839110571697385397631704989829321505697609777549062320481467934483944457280012143425740748630553581492735391217817547474525598052848914201406412024327499117014029331788922197993076134128382038065241568709156880258490348909758876850023970097812906790372582764778053481660270544684277141033325577544445072336802627467989406807496765418149912723113290681085633628182699304352347253844786979447985171427443000988527914929413351949274788755960882879977240317294373310599118402030316155758595269194191570892128630208890231284238383591628218835555706516919702028826827442148189345962815163687140315104690933223792662682659444463871760516333303092966417621475148932527187858295593653844773516376838512687667395568231669484344719958851849279889369642496836758248743610564122460821624014619076436708271216840249879816847238720397570381279227649076057489014992893430067366188943482817482361991087472733507853073255832017017239376121611868690550967779033738992836909865678089370773634206076220128139527835966520021110381306682199545928800564438708898822992463380168128885602238443080583641349431234322504379402775519560914208626474411579670510100689941264387756307275928669487501688832461857249188513734254761224155266667803824828634870139169148670346806137900714050664879544398878411983623272406562349388279406624268259051544584286475511979637538127194638526217165615210031436772101689459926575660234474812588559312841179842365048214105094162941651230250784386767952895414408027889544805774043983914977332479384253360648293729393742718996875334822589431696066762228403688714925905611508114021610558137331564251235565883742261376749290882404607279744612716099740111902910130155233970324202620051995448602333810973194423877819171321238546938948590552397085012638810221024843301078974231140130307344268231429225594057524105741533867438115457170868750263415680561152863795229224854387192933453063478334550281426082983538629842893626746227068881097118076012507384854175902696023467338894144747724229711822905561143901895599076646826706562804493089513226679493827584688593602650594154043209184904541639552997978548188227982967412234659310012454109027847541381362342485083944706144317136170108974161887970402706644675835478920969676099736663360372624277564677848373609709722270280105241257640894182796212555167492283808348320750017079786087840574933227980543620803507536137280254317176099446372607195208245982535863690412566181075503279542662919863690601783593630006511831328456294318507367549240279469430970552364103760077993571736109698274014737276324748405915965147380682983282723301688881654907633769350791753556716069716918069605809741207605355348272009193432809235718920150986715789585586887342823185255888555966928409741652336464964034431261609563540041566862691966891131699278542837108723791756157097970419694968202180701081083308672851552341721134425452942860770669699807056191273840565550260920699096517123415475797896236472313689798588214238785683489668879450883441847365580469371382936076001177994063162541034834449860920849521223383037277549489116874358898999258256216923571592765261593043891411687452314161904270322324673903140303974651603085736462144842579412484226237462869592977283368851202344346527373984462571740453363507508328082542731677072068081718369647632862566699051525716541571260892180208268407959345542152477632966716289051229098523979536712855720504560866318136870404469082970057648174344741335913135906599629458194192390339554069320248211645561525059411322552840580315331818218203277563008203918619674580978092680721165164923334232744371055442906139183347852656787195089550897377780703714048202416758486531227452962156860177160222935477765376644523863991222183826099002676542632737335897614573230755443211601769353024291538475689832650384415174659770716395711575071638494299838730729326540546614840508891231212496349891439548217986538671101057019612031851680221055631536553363505668894215320214328603546937649312335260157768283540005063244072598322062694115073271750803432953237673899710802725083922061929211170657459221135760434515567150492421975969790620276286226247366646419347533824612418743935627396982682571305107937769861024084785503133260313836444658116600228454451306259297704522982607214197291353391291250842022933661309887655865578801865638229275333106098102012074255832969918112637903059921894043977256205477032339470864916920926974109325953265792694827901884036771628017384361517099019364180855828491848974560306036694052350109825579634514075685254867304604739151663963098925747680185329079739494780786840250831716922089071036912338446859577778515919874092592053578847474729426513223277237114574938082016852327907350714847010793871883685815941526601685768287342489511336427196642450406221605101005118571287375772939367030432028049244637625331971830814049011845658347665650815615924619594681180802343251312447834585138110069329275074772812302968196254925696315957722596088932745582524337818095674771092562116788644986266784158434271288021978346247954566321578411863644039586667225968639876995394928316887431686476190872957827513575968430721754525101711848325035198369451873020854445158297169544180736209885054239560333572302987719064576300551352007034983011479107354880975677473176292518594604759491957184038278418727900058143665706152742901982921667073551909747537929184068598145056221119751817040474127427501081304739782871542077146481731885884031130642928330258575572884200035631125140394419223793334133064816209574787653641042825655792061172726962051687738815513099651752553367340952186969362061842317696573035297913146262331390976617014465712595349272329428602722793595772412683222925580796423284075178829557189797326783962913661705906544456132848235050461382349204284348900854362897292053316522429885370669552669215364236407952283877377855706590090143800707885916944460330684353299758375812290386059096744088351177450007791431048247776610661015331396360540137067951862248419775909036430527717166800596218531616915871712535193489302054353264581402289716222200805199576311634787323218595090489603892787874319841207998887851348372033981414366957058692414502736057805832162591118114972003464969743185506209013194415955858441814502889163557377550772347332373209415610084269685707673814524102284773315291710367164733952378004077700709721927501149877042852666971949669583419444705150712377738315050307618870497950188149527883834844104242715067572595683696907312724755239877356121052801452362891529819749259450651071210575228836321283339453799381931237213042288064689064950947379973066998889179636107000330669327539658094685103181165623669184353801215853182248399129511972707871932389150321031558646467452020583345726909970834317081213940337438887861007747160718366929034275154509703517607174917693785716149502097886046800404239046368233897850297635316186978655022963983359365881362189352128088530663033271052735397385778085383067376304604025446288981628781021845336858927063200499095066651671042316192839641517665986962272311750943963928096062921203120515851971627811943242456673395622846818093710859535141233742485548045301139031842391602167541622445870895761663206618992694813600670142834712344334997683927018725604294413354703759062592867053254655102823567457855351275079839667835498657395948317176682640935705263762439959105060316928453456110765332823232089873040909511571836940131727267987231443438841479100632121566180666225202642099576592335352864504820869052680339688066845646425303841207809571667619804923467584160285342872957646017875653401848488116782209374000493620627570443223814362023052573669495792705190916391753631317298057306676244120212212587444437204287539627059289090111776709438588978861977203332610829642946102381541007151864089429486431307395501491414592215701795494648078351458757478570993602812832822190695098492641734194335811667392610035776876090591423727174822841908904400443944273295033164952099282519947761233811479424302584334117506896185379616139364607762425512736260522654406870805373912832750891267253851660591132553601490177646302756234698681185571894628972125299231476709222634674272398062352345288821553015130800720221665405794157305971433724747320233970809205295391780446222114108003209364358316621980390332759354694084963625137101207332535505559918329835100644344552207559387949740152973872795120871922331547555830021389534362099973337653646702705471150123691384526733371718805229374827334151600783789021754177934004007762873786726650689038019184382941059573448465177849685980084661122458517091901645757421585516414887416039741946577657363692023437598970730414347613923464044189322845937141416995191722644939778814119661275179631584269864046105301041838037332745484201294816798088257823568041303435828097116994032518100551934852511587328263014013562848845946598877892252779378436810009900410697639104048358241073507441919517674871232854756184749944772096925356328990378207234633936424904198337785253926861176849593277617808318060386998130998459678281294038707487584670312683250128590646075638378775117748498434768744130389124158586516619199514433506754645686750080110125203025478106908793048452519535531730096298809859660476869034422323106653247087113285224424570798018108429065557671870798721559073099729976965302319770921425691443049167568060869551551695523791741468465700941517878795027629948603737485505396816878670468161209280187028889791094790111860042947222340406870403314117331978592987211442692781185911832163080377978585821658648781690543454587731776613775790219800347474750278677838935653890327241321227189095522180790845357706869739767879897746891775694859463031029124088689899989225827878299822241511226547563121548355516199288404206142324285950416372889541901428866364766066337144700863077485814883293906709001531775294946735419907036423415835615609233403820971816031417980125159945622241989578642223808783552664638622228613537168270223104909726521158152530831654392746016199303900008887686583694082200666317788095099697366826756149039722621114294410466358476151734422493997793048592685996556403704435586163241346996864083668063763941187316524861226979915289878181371167036534393517908734884042279512523332881898375855153168314836910013900767038553725232232113236903352145646280893495155281862337011158599342928475691939013413986091470540797737821465478585739758275588060962998338084586227955370034961152037218981867527832714494430432209957327443356390306570813372920975798780879664705070952428396615316378110750964252806390006587527233833708235620723206229053567137541147574557047201199537676218819635401049662912297745542066545430816613492957178826031490287566630535430485358654757833101341576592222049132348631402972667236792622440310176528680918243883370935182558720308601365428757087839391887336802501131964519142727649726652999200617307661238957831920257311587526957006447647800737403602221005350643640545332212982682328162723334385242365353386705911735496014648218910073704113762485315207782674590441196447146128210264292067664326995870722093152246830103129378444834339779788086641805362021432188316738997893658257303699198785385078816433426103267214417928097383816314071268239230410934382021662147193843444373756252804584355123155469083788704616731264442656021182282580270761182220229167172920059102069800264764617174764551698214998543341299845252812386381254235906332768291902139751045073301133716262119215950244688268509190310114980807735945967292987229420106897523365252031038716662462059334898422403800618526754009798702195972890490770366471881657271582146177419899590461145989481042757741551339299147153397075372269205628616876566165377058307869513326550776538731040634413520985041467515131417323565304228526944928591296671084018447214905930160088815056918228290996886856128817454513046817132777499004136946941119761345586046003781132425908746983466743639013119898959691448283916220826821693271242669110796178940262398863555386724363075554672752295943270033531775786460222055775521856344669374508868457226607681114496154788551142676614816070453877119870945038587217124859402882665861516146811263996749102418146830611231780747018199225491158452978467461622565406480216244431949208806735369249256608544356238749028151048088288548241289174153134403658104104591666344334266210665363851768152389512243020832145438279862393106503228950989586938254003071527018443081192904475088282083224267593289166466464730472422445932058412843360881024631748692586619304525925603298265322974843385671763918784836205367447562306413034688450851610821526591548919296617645897908846593534858564718551568666066512801032526342483821607616920312418985145683970247168462013528539191878977086801763646516969289147665995486127911210122431282679654727972915635858546299290652131066615873267030450810877032492551749163498320883511649163170811080804456419816089774745936166417851289365763105568139358746423394335840246235005614012808175167958055751341656121261841172673367943543367804544600006565157531219194891349304081036470921634801526599358027733785732797591648278861354448694220047981746952756072274962387821570053955422411323781144152075405089247886139284294939719573489614136664408927425691398668568183544990073834479936844256450342313637792867504403694405416211799467113677626849658766008622445995366320112687748141013408765424341483324811012655835410295207592437465150767019064678046504928673167590999792380694105210139385899028669159224036329392717158052976882885723013609036293848141450796142245913921098371512155119573272298518271117752936224079974621184646722625516248438981329998882935697919692553172119610007572807143652311391469802962462663567406816552585555444509316833676234132053998307363374721169682882237479468071498022758830150902599619836484124346978586237177209585252312338045102649687118535525255045605515514577460716491976749925231145645055575957117028873087312465743760335688852636102941282185173643676545340093481654398996369287477696624498393294614033602862807626613807462389166517610111578215212648413798705499386844171355381184456901062895642129647030325918149732065373913246853384029319173417249768112758732218548844683700437460447448886870844267014337415832432211230303622271076929722939770770338942822102711366053043752870229903759800030135667434451805995996757050639189997302150532091179771522158711465868867740097780463235644346658447359837961902424288409440089640486571839823496540191845934102830538327709052128754175710838496137609424294886079990796846435366704723815173335741466907352053996221232756238921017617151175839550555053606202553005698511671238771963821997876199273506369128537565732141444230796390831974393246360802005830211447967168388884851445516277400249792267121213690158633556656247123401936145197377349962411957600913755643859701136959532405567352802890723818706551466711810400150084020792129673162513924124470344856771929245500307701891326407856470442689118988711859984274360863403300775591288630604371416600443708985692845977274273774816104732552393299607358714278981449010221476503768071030793386522936144104773635166075540064745938244528204268177405823075591445754655662923100017182510574818739895016529812001824777682984480268771629347368741818461423267443793689409547162966246674384277159867997696619391973209390952357809897087294814396797909621115648655476705200281227276179481305926389456440483727363137147090977211991542881118228702262501110517918815990644282281387556242790445909262683912395549271757026666719540518173586811218359009898372901245351046384463902848498011665341718230045258355449624556384279234149993114391350314414418807103291592973851621113527643332982747521584316893539335317298155535760170393280607755875566332943701725575396694146212855990299898599581618725002994383058591721220386730386835085332571482653937440080994942455707990793674913174562943555032316289730522348481025712850055665365222504854239470443629856847914682201515007552983302622789578002154077778171398395314872891839016391933479067294089427671070996520805189816850834091475980066432128635073509415987867863926297755810322881992495050763769463277441905445869212767707872073520081159395446183272840500265414916889845356154175631846566443756926227224388376723172600727915781249233018968814875328468959713711640166150888889684064549730173210987130682916765905797742550750385342165580877888748641137793757060736146075462476714504657756833719209147145008358536569611750287426702715065584854349972998835372426594423987566706035880057128067769170581968135385194667245677980255930323387349316620982739929570256705830091553363071078796460135354499432421126726408364583206679579050084509008074113222139164682071614078281729662757326482440659977939258802277175878985999590196786360425485542833304881619525610836891856649461063145818808132009073410841897761251232291257208178650805470166832326793447585960239940240266912415314397121963293432673001107766277802081631700321030286243253461497835545554128734255634002247646687417073880580566251082798771281237825501542944419741444112823754726353041203273863989341230207234998783576505344283075977502438892547331541177185499244508097676891756867300765957983816494103228528312921519603653441344078345644256315569625813024168487305284292063019455341201561096878029573114852306822819638890034691781120992328843476567853912009821827823526714795742946548654465495957616944601471574608915830464676110319157961382847293557254088806108062254853507429502748242750005745527693633867357724644884509875089865299995835923151319420643844545876857338540895869196722623546087703723302446213070832971030825201084398552628884454727993459159349213013601223572859787126403823808428753771957577672864688545653250212537648101127306199865350863259457991179464641271046075921170335192115611020637417072308560477129364276991314043922013247021974717666789118796011950984716673227953231297959514237769632041050983957007647742760290129953717375904400721093442744412364038450271275335959097482330529427087149001144511032397958374036204537266664859117853611152105002679945484247626591666592816121485003422682704019159446832057738967725557565505353888713843039193818745832629452987572072548781926613515297503529411008338064619145115020141711538062336266781803611807082926452129566062639146237312329129300180516242674419071025197410261087538711534576663461505749120992521915577965896942369881649952522146298330724402960357277642866046523114905092447469662342093972765197115478823635363401632398469070125726051302116367550203257109928110775708754894014272594954458111112195451518672232189377508926144839805320783310561534228625379791732538937418093221930677372857467204491116281271808806708453791540983617189180105379962019826873314860738078669520773185429141682122202651412289724157859934984556401554148901318131085373099418678082969527119075700218959267997392008163945485450748209150561361738152588223543769100074584527030875308391929421996579377760692428224519819441889972986702530920742804232008417785366157018342200476179637417890095457384316534306102808383168476347890870168548921926757873507857707560979243777722138002858982845722693266557068171054044137588093794514020608285223850024040205623124522125534344644453509404365489242918271503125206079484409309269501269745673964271322603958063343577321637277682286741163718549202211518596092041424379722411443830444132063718235887851858258424505060905094352945399577668107242569622682185218213547657343508454174227679753825523532518277599384369600702180808685765141567487575438321781659148205718243990750568651988760633499955131639632487081899127128755810452699210840061833329184815684634687012966804172425075506861497626642869361933307192570986769180809310423961192468288038785575515507321518290198334738821113091900804875322543200185136611173737280154135952827539837366344326885157527134493523820141546486592107579779141011316527376414889234479324658613327517760587002463939216101191944569469188820414972558538119013849713130186765386639034157132941928826479341412827812527220565986007540934632497688580145831095991685915629926653635759431093008233104341909586867564959055459428450101204094129186664956385482110564771648878292231204841673971820347412506910585144428213972254209272354284626108912741631712181599233383801001821288515417491958112548868268794466936317306858234047105713066823088969469274177223867904486105407434887460159921180888811664599718892023297534549005638124852840394176575185891085707212616371212318682281354142055422326399712152721061610832926239102787425275388426557103267862352848339671725306891266997627764026587609907958629583735780949385736680238615371046696050372416066646215880052100173194250022878206637096970113321882480389928210821130135326344344870589071750027447161709989819896210714681060995446599758817415351004286193531828846959660400276867602089977784713815712776954630174101471481473496886736887234176012119157093748519197954457211105955375770747311056193436399646439545561470713919075968230579487907321955385261366786890322569032499890530866197180372587182884243980645360788002495561451048302682099819373946328094086681628687725380823261361647959961898914670092569734150432225533018730381569344894489963736084475176239799092513565077374042435144393284295300102669440016321240262865509098705361277190266276335192049483277980242124332916707898758739951639919706054562920857737882581212380287153044992918629735528142779792778773033396485149421252441311580344942578388031198903017976710937993505784678680186431766782929405003610786347623657366366370886057582705455882608371244379868059711155591946214182241785190273968584214126059252112283557747628020304120895375259311035878307870085225526180188721260051703065172966067118136237154145015648442772139735876692658146415434909157252177739689293703082018017076395798817074517423341982001647510723870550608856429288498018373955145023128083062004825752205979810664746877099655726640926761868800906179731671582637864445550146031048807414396973670199084250361015222008207403416250013056866943434864193342645483172883139601402920647431851580870932814669347031052237719263744087683249931242888927990127795987189041093340428912579264647566914768167647085097705300762176688051452020646365863184325813802822194341569649908917931815156678272115884553505638855414499258553742977392805272809040903824998688915345699775369305605799026078734068943531279708012348533385012728048925454414623834615099862273379220352182297971660576822571539528220400142770263484535464873845980698320607924382861712944348225468485611914453201106933589039231225546207108563834335909833979756872556442869319810526207575879733067048080696951641612707241068784905317771568206688658632655268146637894734608813335371203587818632609928057777281094742625567539198801170754808404030565225988698101808910989200554847888420052215359215966154658566144172442914493722929927474683718046122250711698049522586021826588383245617375349134404149139307569160341696912059994005014557462567707849767584687775419153272603563876417956614970749662211055127253679938941738855553110076180847827062491262231394885536539314263327425193313940916522474080941233725658870213712926618908605066137507050115408895255423370746892723510091273685040247942404616138198943013495120385870408645561334060655972902232007068591240549484572380366937526113292027386666638728205445000912592280551636561495433309115446387261367569866713200837446774477713412924144818844318386822670638014371421954459984026794122953990787015301286105035588734535391437238992046059030330075008159986800941079930298209379318698279370885045485225120879002209247437502792768664195267568664782564807432596857706033454611435427373014585313551902080337176288050095280306443259417926154029906538117752226174002807934758555967634569735636197676025648764678800918587861162269051201809063887424524924412775120321626212634635185782867702384781846802295593511104209154337528468650606758188047045954164712726886256553884825851186530464729559743170276920232838656660576804866624876982120295673428681495576610815454884640333064093311435460478291798672687588884725920753892807589564831878680354496536117303603150804087679042994555131527070566379424886481523480361891920503259572215054666881723274643665239745411003183037627969160088845594924260526314767818604954160412957604350554565856029964362801435619334232675889777577507554964979712185138060598297086795741208675262058908239848918474797061273919839221416909878793596892752534429343370070057030641546661902254230757254233317548585478911125208649860516875172949884203048042934250422834588469150807184054864571021491051140364228558129318816091030026179025785407570594436350783338232820975916817037285111150200860338739072679355054804938575420357875940526522308840455240386005930381429016322128632290215703589035671506599131959378745239536685426065980303106010949531087168108508046741219612181267620927061238497890355374387625049062889510584105681312057648067247091446009131441579563306390751134625322794339824221132950108397953394740091123040015872199803729328240826608016924651439089342763472315134893072312865760131479245075017566383268327691837129943630681875349190338738441740598937233624294003673287212376315818194458006593384973023685943978101681403137638107646523530742217532809341935421308155012874374352260828158283054956439546492732994708058496040699640410091621136839261944346635731099433629009333235227095497579995615198621118897565243796227144308370376016739706764815433180296657520319253619702779814385781960470535062257654923776245821400709500112125493421940605327869729285103838268870957645312209591829405875246616301672829437048604862299764678694433926396536163945099748158384036601227902589667781591325254541448137375376116878458604680861708067392239077372540750584570968539937725329697332300435637311840764555897209356779818325260061378028061192105387669440849745520322840836097368697969285637358701248449996825637787950394671535274814339972060305608882699791081027878575899711019324882275239775119688584966524814317512053271753815241751758962972986640029822535699921663335986154324634340243662130170268081196602538576181889204807075046787670368940122553139846406353266874588266679926787734591073031392605303202464878472901356523979966638554918172341970919189207114318553378112682578261588536923642991793173780266282203571030834028943005730280807680201783874910351735135733304165763485501150129184965007110527038406109913658845056419186097440104910287608432347242556714094814547814778351945765801590743363068500248194627479287073080866620493607188817132139539138328127089966208308361869388788919105842591157537697912835118230431652879653775514782679993668949737423990344201862821016915593595628487074185855708123299327200095642514456647434951055761916191345782222427749894381721381476521499015064786086058037358239090584988190022767066593499288431466123634748479349778612287879584044453467803534933379769705539990058968017320703835663077532873374099546848969354403752551955162846189290340396530039202408782744057421799371831446794443109828247773742964771213184972193965622210051169989353608039718501115513841213460969827519140196834849245687681133040626753792325015541668532261446396772898815465339395352412887146165194424121165468181197881618776452114442104076281352040753990347559367154085536364392269611825670568320306281536003029126064462013586716814035891806509903376223509650511045264182521408436003554787451050549375875570186710339945580901748801031111519462766722209416137146035395865428173159550282432528694976141317475720554499719427109204452591133060352906035159168495125398888816478149238128909710129770439487705618025455311940001799163146184452344136488777607832762644666686435393667653175870590728003578943671446499840756065964359148930498806937515826187803264146092412036584085216323172019378139096912142993820580502319628901407486525387021276288699939853427161154665848431066568737059886786302215995426968345472258231931797132422103999780168751276336702005439300575507544037243553814583810245201920873993014864977259199676116924223966800257948263354644242878010155873229778368450113731544630644090595738401151845795540819389760639049417484702469170125955657937817924747593035628415646412261936396394710100361703726061223698007954924835595796639854862710979158449149270295820061774518656311155563385249776725921085447374909236021618541792033427822689328191158171834669259760034624536434957477278950274998625480000539636062111880856681688927858769299999248411784949464856815030784823443453635367567186376161295195967482143390465327457603959136145179486618114007660367306678433306383166766213819278761545176249910995588145305605933239804023231682650869619926628844935187782262789581912143544048076629684698391538501380179410338310636782049356861627245037586480515320282557917427750934836849820014569778788467750212757536113668893991066226501365241375540998207490724549239236734181496388626843739379667746074163417047907665335395421754747688063784805925085438618712222872075508133745124539508758401195651569305789790178143831100665929093508683488081420687095839927302197459849183460941004100503039424167002103655272913653252987372337488260158545603968199280898429555221322523445196952673777768364825393135811283488844746380860590098959186412547656304551206403113741420231782013864425464804121095992281029426945747568854791678212106994332967867490502479077129215438395323932662126676068855289063247437717310175047735224940248461191871274135372212296765062896424752527997728920869844713674973785719132092217729621990462363580653241189592939762482420819908631346323838982388540324977727523711149896668103313499042759522743775814394710798057557048863485840088890431863447672886648862211742760881408060827121166781036264537852031543653619757106202666236967726654925925264269619021566896909940534968196879798181011555373211996874301191476650550035284128946231934127427553011292931039462666547228550851833886509305990106337737416556197985013143681185893604881408202579360302410053460551852217410732758411218601468928851281976523402965466471959107119572154969822314327821037540961269894948930179048657815113024641043100661955362910606941007429496083103131912309894707467857802957017730886268763878304173083490420877060886522353960955673768432521983662341402221892195800571906008533055891081900525474904563110795842229466968160926143741751024183516820803695746927687115988602716551992528259458380974393123770375624608650774519515940927319661212208285522680337634332272494534786763889073681126353960132894784223895032611792062559906985175458318511005287387316794624498725060533693892796878698636415707245300325321730475415374202934455072597327490877124071423348418004251622354408720211517092659609890173254309358725733705140999257140806802288299119787631291352156641761228798664737226206152477407335324146146636369086162356863862554188224123244765690192878776350517141173426765879700927256243241655172190668334650989306602236379027358226541965895602448374770328418899082002972079470779927460791016300088620033187414290174151061306426550016710544694357192103886258683661916128744229383734589623923990906698400208212090796457909160529776503020573271425138054621114029368973209091230808498131797197001185005141476428145031613832699075301921131573118776437805975207384566112384419767549900619856310525898436269924797155912183580197465573299960700296964710813101655987318523049369845038652627113345916717346967924294910676579677166624444166352200148565193435939003989733000268148118534910526028767228016066850310434659436897272000800759367894757482572578734393044476041675540608168359261945699536493802819731287107294822816352792774802513070934562324532160160895156737243071158735478209239291130680393513125162452173290678055961720763130015712543812385376442433949047206179301968860680187429431252186738890965814418471082602401949646945124665028170797112899204495010239708156211905526283149726557879202620971682482863789762593842361774307211829424566600345981792178321320631740145318348520508110823858358147502507382970148137167633885017244832587352325898582327318869034202344363334558934817463065605919303036456741002969417603521689330362734847440619891088091943716205912185761082524283886054508854124855551137573623378721035336541564393342260612317040711653538295204114352019910818873753790795678934979151852921657250077488764360959418713495164698759603232018323212679547666641870344849765558561670802440061106319144912144217787204659898955479593691984371664529909181811288811616531947466132810261942940121265390433914028760955039664136379872004216148200612815426034524963040036494551770683808951211238960685707601197120216187355063962207893607333483785470318420470629155029133055564547668219504020319565595772598631682939090564508812461627729110696572923954215896571741411447132527422375599627408169540636508346858720832717312102883013483489689479412007965757076308695587816267348492161907091340445526865961161477667888958329613697235078160664998532256349626335131421290608450494861162976195863594923335412728169226685159752313590827411754618947754131147446414911315044326470344481742192721398862477875736442840299707864057911657950573394656899908779228348470919649988277469961996533581603039818245850630558249362194278701723213025628393553259718514243336490941919659832286751013101970024658945753300413891637316346105190569119891953278123333145851453347924039713099701236869812982889509292332697497233921705660111428747912177526834532824332561411936492609369649131806060133327728131206541788287506904042619268708368594138576997283219873545377970961886049845564182765041630552719162928435910879708661886679889645745643141022470336648456278660350583628243989680139166070519154310117165864109821298669935481686770933314716219135339513945145784586161164002257714824406622352242429756334739917193454404759651499557445642061606036031677842630426611081631178809030654446280195468673198645194117152947909784850270780893398783206229952252569855841175593290699602995556618163370656790088885418064643059353407766697100388468591660706883938312168131523016551056732158519519953504510172980560774522709777251038235478150160536311075394805806257935923926529732755889489786578522816856979637874831938750397237899472949317956066947417862587228721332950842129291817389225511612329997337053330407325239632659522706300152266229264753529333166099441496066575859108233970934927481934326977963110113704553556591298471158542863099183242003362830647485809320080284146438915767771348894762859365429387664888153223259848064986341176755667749807099073358691183236329706473939867914433852183346039796365398637052934011950892351769160003329874329843627443283277096582794986769708033686561680900376940881930250201517960770756476163688222389364313624005322507874411439798105840790917888265111073154141717511994476218927541802399240197195065457168403471048880304156887027997891991811193610839059923211692264708776828630288999975157545592841779328682606685898733993009617165907883057368849577740551350521751599246502292833933531908064176946270529887794559281231945673220599963861316948221482195739362284167705568348568421151963123150957818280451867739046582140645484180346384585122896794051693692273686891919243055106919509700761495955413966852201792345428926013912236346238027289934988870413148417796012745554741574952994283389852321989398874063102405837042630488160486836752637363676883107751268199127812887796382944902350982415018853433802007919624572537319312116926524478098673024333784796717982144255135585610592566714144793720039432329587221619147993173791995748140566492802273947388544801032625868048434426353352916597770980292007433238204984262151940051193381287162830994990866221558089560070527440278702695049892993680615317901093074089350458133970243056193096343133382663424936392208939264784539259533662829846905583428229307917909023696753512079716971670122524366756658854320460111443354463991784966826774534637251519964775522416834498727506325911352986813647678500717291591396536483447376221749469447850346262698304703462623124102856714774764252075091353481410585066237068314651227840665243846789289221167556534894004064131825812380587616826127386011236438161935182001900450680955740345700339874476423998271779305133864243991523298861985187202182090950396669922051207665772630445103666667306261984070663444528996993329570265352453332032322754662277080011730813020437128678356242024111370022646710924271673183376871521131825079979429420343706783560715789769039963921672885981143812424575137258443896421500196376245179623522386816584018540259924093470708186814593239822263524008451612064754283102623483465549142607207920793740815693210967219842529768389040561914261878236931077132966903994164537855458028635014329126351487545765887516921557063803408222507239673711844698228207876141693020002640597849281523125068157694578194547041714035390939266758090546466935086202302543650443174408935138471465881673148198956999850062706585436851037721278811783793466037513006356254233436474595216692158037222979342966230604013035271990720826082601556472174590969248726228360821985206690856724499713295589733137111616109478380078044877029105645342528262835756919484315444977148381276160751943600660066933611020117446840749818654446664772083205448315844032101509635801076732423508080179116333563908268561264670771723390815599405578875618982441724396016820362722345260005439382112265935626947084048393278072521833085137643455799916971638921834742185973272803212728411880318868562321358489920421968587166312770751939666913438469776923848337116918243780147808803723390708646036307631062682031263717964579883317249785169658503562292727734793683165737379586893992889206183715281671360399496680703861558551736355893854345290603465224128872412392695750312580730763812820078686096667547121258074100665513446899835880353768616236064157708106062348840796656879034471233774013199738984536237840692485989809204089874731334617795665783248559024078992478014376260877611085081618211096544615620622428338094089494934562749661422267332035722232832950613434427138612209021881771554249440894980494677058994166921023297804875362466567634915183302212053828105449788542509546537291678821900060145876611860026062901290462628475321603976691735085042129667599341939022009036300511816933259772491482975719469905343074953564178771323706309315208795950597361868627275560859140592872249400857936764714285001393327387900882854188533243706386705180424748286528732571141082477089132659601467805876200752861959316852563367217826506950169437284334580485521377232423905923785925757631866407344838571171349468168712025894494048037683890887254334032903655980024805281357337941424547603902490265746616466021368577634219741888305743251139324971728191240336578487439285310110511901802914413501506267385638701947812662698426991738656555689923358537599238471676952261696705232149983520498184348895764267275621844138535161686209908527551298635601698358927397266678188737986219732532405272695153071612853733813945799839941501456283338286038595397691693326796128695912752657775777544082136303520119585429960310311566703898685813140574307440683963529902017317617729610606557948740300526492785764147416816965307926444241205725472669619721925442904741042595964511286674303507273491264191779236687229475401601355428736100736833925972148740038452570837336569988606063348294392283939132895208739693524514373214993578795913135474913092589167199936648708963531151746492776144204177742856444630229211469101674673002795935655268187630463607955633409504924442410224204543214471723436251204760400173843874632373584881970091192310775645285323355709467507577181002899259573235246855180920809886393536682948177979960713714297844266822679195966639615484080483320783797663186198217288292622707414841086160311585071960514762963950673015186887028461577004160941564955766797386833922185967288277747126404907270306123674150772675850697891718271652058082335483444534587007947776007762397452183067860908647363581311544709426772398054986095077746342948878269267342769170774441483220547252506626701271401845586667449706291515323178858049531091737236176618721274369310642022103412845693070375296031099682070930910810454834304187835235081100272106836641804840841165301453540725404812390145044656875746597046645112572391280176184777256471830116115477396872975153097534569458413028487441401361309311231633636405117021522068246180765381811432942068916430740865240874362041060863965736544164459465506330754957261679399593939224913465362458021088343209050636883097598125276809303442209274628233799403637597088763334070685763053150695120715684618429520868332952927678949998580537529615384660912245621387720652570185374274186533929882447233610500525368719539577171786629924314405612903951162669811240768670262332902575631575031107741150121305196418196550843874957984702619623873399844158903871916840353045443350061154643466206995210449473418911708651307070392734213665749823343905428511999540551330131411749678426548805601612770382368537978648285338867554983713868504947168414856222660317940548452809939316841183150088285014968333466039396981853629437591652850477606989326558707456583063545216649043129174629115085195620511735849749822449277594697640349264159650687419435258839936220125654261096246473486790963982732703276382088693443193298497253517337459579847056684922697713806551518200787763170483022789876677700315618474005483741583219061718070134713531750248850536232014058437326541633718900450759684775980164361653553280629891542664153048109932429544922377189760448914471763647127452174202306746617137645448594576077604147164538200909888953698699892212832447633008588790875671050399879467248379203591529745212588000615432862936813282517182702270051216936155212719662448423352838220170775552416108478434582786247467081598898730331488039396810727035274951022585175545351981825430696424064032523825614080108226021708357004460150358391675183407689934122220702703373961912219025128101595617650370549903339809121795944308050087391945146972514094305047356571905328638994026318999509947843354521912701666904626088482231175353525581645894476557851528100499077472693686890551722225813633509953771238226195084201015126573022709033010265623014742094364137939481425040404555583916928956973155791191704281007613955568278184524003491512079994402453091689389572869360086358618927221159916539065241759533872748666859871016325417943875100018175043400779960333307738849570451620858067689614752240773065232936545797317276380873740327937118729211073845652389339288670514444761228264631628187222482164296487309059716650579398479511535011182019136890703135172896358748213257444632647959371662494725160987819555089835021712273176171917359956568413188921902533416735909690521397315310410747379649369489824487821506453749026620971931331186225188263617259838377381776204526710166648536481584324188889671963836680115823272535525110673245277998022291376594751605109127298510638082728474516108453632566449320662387691570018643539532222111888456229949681980846259356615647623806649111365074717944827030858415534268407163349080113883400040564608761638050841989689843870288887956477478107589053763298238538509397816958433907136801380468391963647235418432490870754615737401375742409888168718585895418499886701945531728803722555735795809894704776503525018542126166042231959541277206087403614745933656003745043220594357666129190179804349517924671387764116982277178633709761620152176935730877879999080356043692844985507339420918222955971794485611465357325788888200976177279568001544949073812189165835192999293248752488382374051095794995503221896223133781791486873395578159448669393033236323657645917528203374815959566218568131775026387663830151648575908285113734643913785014860826820575780180750679755116298005401573856069953538920377463032074621113764547614273375465404117953587411434611066761846439705210917395408257051946834219909066842077406319432695784999390426880944232168171868437839455771854874091857654324707641773436492895515292012997272031194801441918142417522189550772529413481982717736149768767375091425499209060470397693403166624711827185527184324061489005360807645576416135948605460718864379730335287633651308153934993260878316634554158962620739856282730607264333614415806670140465961138198195738233744102787816795122535791169927631292783693033801161156128919155975458758608395352466520445175742373236244574449534565099526481318957006358682185034456524820446871959837787005537777002818100478094591717847582907720580336258431316196617324317438879262546204768911651066881990189267793621094557659334164963381784755495979776625584788575023276799560957006958237884889844577276106524760619089413698862755294985363861531959247295238232247123180538616443935689836817604192683512065810303782270245167870991104483613157876432442299994109024831002638841419863954454704997272488760394449487856051500410623151632943053589334293142733216084694097942790445545430081528214768462345791845629391910693994888637992407678623353887979604924650777607352744012108903592313818184362314116637625547345837366662865289384876404727158841983285387010802857353614146463323030227980304716001851580183092220757483999744095735920616544189575846653027272639805084246982649867357308354077693570047298772021003374523348129645946212545958844744863733637177362550530863025686720697055705397126227636036251476549516645185326116572366900743730243330986112357727569704723846809950679450930745099950303563229295872585447067647126021811785521625520514905329790230062100171432414084663836939694130113619965968191958092460274224087959293519276437911688720866140739819444215737226994597474458428592302594362592804861636397844642144324088738057960090908548342786835563320609701249302041344885787634976111682740222005398252504986627890270928717539657489237453694667922562605076043514284524173902691987410760175331142270484408092547262296053123339002385050995158374825318147153000865042027621021941432189968045440991607354651563299188163630698760320096739374020625643684538642992262538548551302547160431943539433325387939032958196083264312407504728992503516429783424140910476952132798467777692994325248328598834672476674036473464567081764480045190006826822320972227722642880684809533933797108604828088479129210118045137234861467233738651684890945784083508859212282857868449566274693384938038255953589112159313420767633021917477170514452047462440990259420738639770490442366326480590198070425174452612161100465882278828222291909859262858023411211341267968848837323350320548397604863481578150814273639970309943657832006950293846332136799324541772693348843714171096121374924341501865548696349287358398953386244257499596821437825250251880702940890301541000155106274976045667478001836153763717492503299492746000985849829305765355042153900666358148420142539212453508811117872968325024731372881074198976052007285167703023583935972632275945016078860550174684525258904916464229494844410906375077706134464742799884896435758293013423656090401624670123449439706750149383461859399283713241699906753460939973511520117692702487926199161121717586150724628511521102837758942007562088237463428501607781848862136353114280096329125335419827696826156630691253150049500152670657131909141610916790423940705860927564096358981745834024372858916941956393676913159531142993009336484070362921614479350157347638330207088535757468196485947206266294720700630660646434918994372408420401424758812100498323213962309276785877321330014389251378172703804632370607680134042882018582378305220978995810008485408155100857104474949066457599330921203372732072435142293561218142659437734262459641032641129236183484561317378057144492502540244825457743725624333838953064178898156782959933886314247245732622187441891031886261106114564928366915456589969225347094707094892433451933730022330959339246588811540561901121137023081918175391891829429152982865871149073772962216370945626705617165016076839134412974902300082838375026128314476633942160797131025708099295914602307537653770194925524255530495209386528698310766123155203867553517177220322297892452967386769072064503482080862924086785002223715290824760081708143842539062849526870147410901777633783388903946747792949501938107432473473639943206962618616921729676002862288930543811100576935839738932200783624210368704175075047893437986620070574596274097925877606612409279273646199880779661894318557144873546223345994213273741655962121688110747527862835354459747621395119596665781812453359499586302385261258431304845510552269045959853216252992129975730358968387774687600141795153111791512874177820565468325660478200497964858679967409096012301636856535924484694994088361338573883028573191293144328876526229323354064353214126386154978000292748377841904125918822416804545724620480081873823230360467573649757455361114402835327027634916126568433888053434655321529081976852164877909678063856723292670892351309763704588347074063402871035089817745709353840945450997784651243003506605036958411994509190611578143749546651862589596291067746820300366761674074672105871436967570046451581942700314146547570129519066541223419281423756306291523655499587417663172661509843439381988544637830611160670299693897388278068491234583312566834155593982366026406911164025022881691797839909646654062000811994444218842869788203096336235924686250141379629369665917730118637466043240739162443767440071078410606675989948643987945542595344272762630271985342167383322637550817334364233097421204637236065494102888986451459504071361479825688569015804378667037046151278004423343421648047196069865728596387633872332476656354919761354484393641329326168892593035123270199129879322138868952275499678157294592121792246126202689488265976207557822417947819276669196558202094698428290524367018418549372281966379466193901624081425510085582150265032589797662453725849447185826458547953305255136898205081872942066317957784504144620046543461094122485224327597584106208752296107478108785297165157896097779392827486804735774830666518140055409578683280497489395984506947294547339476626731148618034802192144422047073484678450856435364660631049692300834217403688734626513636615854225905996424195658714479854759696510530222540114424776651909861521753906160647248783091331226179212372646181603231173567269860896804546244557868652791346145859239305834879634560124979238543901786664362407026205819132338442814917083592114447248108662690792814601373283155906590719905822056973029258992052328608504086058582905442837313743794267971873597201863664663724393748822217897991626087907891282642059852777631535016928392625855661588034841752855268062829981619957709887602572970968983084843758959683268158164107593715999155983576500514958444137272673756188219835114570513858543438467158993019241125918725656779013504186661073753846573642744628607056274700513672415765884321834651542230180920503578100112079544656390162102761500396091398474101000154609833731276817316454534524387680784803090880002530163791134852537496817671913650190682108393130207555648732195208054409271741334077695181947978508711178527062197988908002711221739914711873604694670380847444898484843088809886965749699765247232890918806837546875847989336157713359181359353787443354349575232801544302066488524458044157291143538771128004392423089892498891973060668509801625456051558244701050093868605727212098653648716000378623450821494816768901631863046813735864857089151908878753107960991175025421965870520112314304174509404068859731127378601502893915073911455256242795825509484731213047407714172556291326185218719230717170584430646047778977190548934794415805381917445051569378305280067296720382713459317718179032583885487874559355562031727555512110856127714684233639214300489171304593578143442668445488181432893649109557552330133065307936948730147325552543629674221987617880941615388186180158475505658391535497244523308510769578445784631379374694384446317025370327010899351486382199382249042034608217729810367730918448895348331981130193128557668361502823300252977891853608971590113752649077068709079871509324679880957288044163714853789599605855179899324566413871347640493901440144397856899597713319949827682597172867345728272594824294080449435075471944431763665885175445186562456603545604697525233974974192192905111935172399695926057421232238763038649642948965219482088274598053960970674607217778789389882506915477336487834315227578430722117397158123021486344684576849432523100657218794995511778285579376726323861645731416841248518969203764887111655999687681979911396644398138577363445645045704515310359187712909840324895551499580385896467814945624326059115338086100111960167824422335653700664723501939452570924587848545573343754001022575236553313139811061685332391970445532634647487285209227834710220450082485011695444239528466937376921971039281183167399783863172525391403255450813760154089363848944265201380151496237016347287974297175747336128228174351746864600985496922008714921953015601988523538662879602397590744046492944744341146932555194877019372464324776307437269737559770273592313257931133573095974586961480216933343854730089294160116767033518282687482041487471737753126373480168900199871264421271898028995325336671454266032530338805814416156022850655205651961154811407065115775564860170985432506158987913273384982267482299774238503592049937416028141280030152667213367824166750347964551873363903189127549322129166495003645680274884501042387887288989513681097686990669003055361854989525104475740184531426034910207172163730431599679671399563558503134184009050016560458176246352367202137383320829042894015935202117579824403027910178165355960322373346706062360358629248801519915625651398437023682281173084389412711566238364588301442919528386185013715831991287526822521802263881131307137187225798060893686541328228745975169128547983401197211928412974955784175721653498886263929471298208048473774574024264518842906867328283154452569320954455789333009431732996240030097984431728225414822507298523030141332806539712086710917380677941544492557904991901060895419107511694449881427584690060347933958350119054224615434761217967793154458081470258316684279004283053354295483264360924714522057327349583228354597580724571779396517172984413053488999133667678322682849253504996382446296517356387356924792557654679414137026846046788878766609906716865115011949918311344565594684695177286527599982972282351318717801001334184169509978254459828630067284895132960903046022419614570568634394129514148660795702031617307342921434127885964873405172068999721122416818033157941501162094720226030105004149915001510828768754547549380215457318126488874394518135116929363177723346921758728717043964947058427922352768383385312610906896377489372138713270637391199096468202892717003042668569907418607865346734096980908298872173249226359883568607464705331719762548175663535540968861951282123381292777917017067585011751968347636981503688972515834439667884698858802416304832627422635727018940626710317343675334189199479231125424162672353401239926102184156965328907955094801978265329426407170244743579823874205732558339544427656492114967182962292535908541001166691904122398262398423510036248236743252172323431496395808338159528721831532183792571248090210673421293559019838411213198718324254551569079930716894897711446786283418820873887696222549835517917780356028140082437037814205139694823644540446110334172934869639867332965775062595561458363384851951849353771535295080679020148236794973577372086221616725766281962166411380943989671665738342543622094482297627830681227709322408423515742719477212236735664223573916216830630133943290968383226798543491733328093919983926434543571171878799250164776167411507939331044832801711329242307100410042562858244429431649036697454756587137953295708600840776719461928925439582947148997117803169831417018202932221644631920939193073172694824027517511308811128067958416346200664605411161678035547851468705726939362408519654431212989242680192455430968052419776277876388676622127381597470826676028252813072561028128280860075835097764209755688820568834905517548446352817252309678316916086511490220861971080864174657192129643874559010034960494973169044620084461393409097140799041352861689377667746849799031126334892842388234211447130032705302566189666584610491855757888461274804362270480768521694703855304346214689033689529205975179342113365712869261732306817761884310215673791858011275246580699395032651270249429798937335504132558768570633414665643156987719538530826575947683229025202726374568209546984564179135006670500556746241494395231229648354792894345278126626113887601458150896203840694664095711156652056691654253355554109181153469687208550808629741783036305778653783631497597632561252206755484656979151664803013722902976004419035844766801748783704290718824464116171073120606446590908496395352332920307178059023352407496482532218398864112486323226149119956346932227405282212228323469607547969113373217363965525012949770925260447016499463637924683121922478393067956669715221727811589399622302096981937539508912966021424434145267510561738209709332472812298061661314284282916374343814742326191289575465896347987822705877130706116038673675681147936842786043679303873130058452061010730080319687380823009306398325296485046604044152232356286821763631623606753666054650052008863638861362799318995422001959688901138737809846716323667536400739249930906027847142604626219657713331083758936196365727009663650521395076620571309624567699206110544220583685008118947176326628606197767007924988010836764664438116596018927864076790159571898100474265385708059152792310575423374637003511009171612642179837423116319947410719778628261591992021721486076349504484241858239976576826731790509694600070177897871544444302728927802095460875993460004612005502794607723696665812251994335085418465504368476273621014668637788582366733965060216012313723763000443075551964077775500084607925246704124151470708531205798689997490452119661957438189494458902044460489192267411301703102708765680787108643955015581195461932659021735590456440836287400793976571855139517594306213403013713668094305097965516957277732018812178697073122041161942484737816414808475050344512737056990674478039027684386209289731842862526352746432172235596218286307278470809276921101292137961985787487334136616887031313281284900306922151065915900601356841184227135814290043688213669251828772697846109312147237956437999475220581612081078623242307286055077333653176934264075175491703524169382299132756015998706628963973211344064299373716002903928660799796366793252230069884159517129700962000212132659807667613695216287728176942534771198544098880821487706012109966087729096951143419032745300146908436529582438122874145668280689630780144527034818584808217419957640243570573326077256324079502780887068867814702537019670854503531825504726026242997868971534614565062714235110523225711002609044275885108741591800185392290647945392063387709042940915129836916747365469062998661586548406087003143578042806132612965269254498734755075253218594025460326135344832767839610754518518160053414234851209247489415547829620188483058094524674761252004648591900895678602734154878890679513420156084320917016919089715957998112852672396804574378233958057549499940532983907865133070731480273404890095597817945587502775868555372024267189300604254965600234380014073871362729208782679214781141420516365242851744276587878868702351478650695500923257917142053166373306946771423942089441840282268131592279878662047468184416495831149092178260731379913071357663956480627846188446119538870767610650104721876881863798011017456743859811674982429201883522953735151548642042707858093617178262084812246122310844958133351062429689203887268701783209589039606492137921404873417172985017435810665762670330701139473681345601517614335462543464836955110176375238495119192369474211171732128208501666508111660809510066377536306347290500411890042976626974426604125312497165839349964088478816156011278036526621413609490452145083520429279825111250625890374249181527606910280711853316833105663391514287456246948542194825767752317222311043425119887138436516977230721333912694857721606649325666531115635168990769829269863893819970839299581827283654977618020322630916501241096739460632712149267331610742933079873621876272170223831583401862137448267605951095981951949277673024285030136167412223415808354107606780599598868553686668868073620824324824028941994685344090576405396925386308956865772186476793298038355282527563634633338709236779161029133560191055669851266206278350739855463353527699316028401488840374506118352447004557072685641941013595431944302711154943780956713339000926191444633147571371553450269643197778203533730352325384097956842100659455980658961045045618215485582469784086898227428280754981168111960096953569253863657328973949797828880193008485197480542467675034066549922144261469774469259400702628473530071493139352844510959460298903208759806667791000627952599989527501694025338394473949169155050697045244045349680630360644594561801296878882021334988317704094389780479865761153080765280981681570704615008831008424531264362724117306298435792903821299080693522643386715190589338790083364360395940429262091164979045611294683158015193515908366511378692043208755355613014306944767385169769859694642200697287745894331023820515084276723403048590468562784736675838666020525377392703422454016647972899760312795063932748829429091048491291387523053315120789694332671792906992979721578679439450912528862236868792575165856120003936211101629000759945305295431045660978942878880906096035083746073639215322742923035557731339690279021670483167129891662435184207124540102682938777839643833537398010702240657257972386741241429360385823724293901378896415949054051751433511162840347122863636018092056647820633767629105809738933583031109133460259503431808951260737413201505976621502226908859694596498370226453446929668190729261523904406836405084079173675769280114836111379679633722186778724944210255820898877716199661898050576379470186254728669013998619449291498610878021644313783162711903823613898204641297336862412605948730549861455056128086092774923459264670155556515167863211541188490354851816232676629547402985030554497977012173473932708821373274812313939916279799405642724406876498993271982110161225191307035048853649277595628466375159517041693169474498234703966500525276749609279472963186119526373729684061143389952659378118762542169185832956014498430597954104898233370178921741824186794921378753883490770682041025923387921330006472886702995815685078081751786052256941278181770724525747574376638036097245345604665477676492494333329055829526623732353356041301690374923494912257779631116058246516708504746682904319211320544136267360947613965857705202114965345242974734025809755029552405105840670154371421571389263599402184182741343132694992788594378812723106667871203045114165679333487163344293025825449940780856541398368123175965168795880705195150623169432615869424137897948377524989056158613677205831733578307789747388056235686583777435146836301849240612795557160088987035347274935691601500008756784970231308949638837947043914549478975610949776020666555629834501969042885748519660246390072222595750449909207236822123649935224767764860409570687235402178862380508276215094981194034086965502072450827909656295629231398756318791410569799517658373261480001950459403321908888314667568600355121882172663526412243407989331247030347094576715356291263929075635953398054157006472788311719583287353315292943132980177501494333552692145860896469061561206084286278618806032411002695690189346774271790253315007029277681034988112131892190249110800408549164730269842451808754143685134876793989702273676399741129941471473312507951745153530492538220777065110712147502512006100596053434644932294349270998776323351095806399902633866489525794802947719895748175993393045459411377632525865702148475716622130465802568985182382457505904985806791054705570506363158171033998931136514179482246378228295231268613845500314759709608358269144531592491636115711691985421120650266568856063152007258204319078131913026045547897043498946059398544348067063612441791117589199557683757838654555431421813409180040479004856556747604671402953519499456202249236631360318686114334393778211950489076853149459572775023747680606907078369069379831961313331595744115022574777420366372511338522070391616729919174770063669947151298982312462521955166360283325877882814982870843061000498921020740547450773732240848505691646651058574688952511134093379049651418764960674175303664946998808349801398267749300798401154894991997145958800137593217963569255364662347826133449731872876661213660394822758658986391496678802558829160188159657191951623993028292549526216814851724689023639930926104104808587926965019990332694012150770031232223034851058657380442561242656863644021506150125012967576586255625455462682664884360895913907562503800910887208932760383851070681525782738917227155459027553660976389928638739468918804044338038024035507909896572444962396065364009321750232795255065112264168638015558612647535375575597211606427432021307371184991774444347152910634895084201460119463502276907797762644773709845100727916807455163163321987829181285081011111909299147833897483109027865963120025838708816236643381437149786555898004817707067031292977935066066890698526213934928960270398846182883490458311855393823908242898047481437405888145779117860179409378200020939613489574276354652267023791769316759940677729113690335801034082747560009961825118711740355825774629522955331763441236961560249170154075740908006922897160067996088433410248085254707810548492543761876901024092557843858415029809743432891374883720064929647367077192221861384980506094062188291944730791853217199488047904794017711771891931131943618838185956349805357526138422392693066917180764428425875729517358254524011638186345635399883620133793148714368631357766097615899677905603151589420085266566858681756319815887958063410737520751932620645987027996032473961844544734965892936432010408815044084879211718175592629451195028527667668165099578482859346979125158805038446349053755057987347856683518306753021234839309201362679311909497658955599400053200492778368357772286471404169754697268353622976839588878715695508173864731453516560910716517020600690365619430238456232382129611252189350529917071921005354173336166083063673495737843071583818095953248931172513105288964143629555781119402481535345136096252094232563461500567291605914408108287359743117396095539650364813449887921026489137199389646488911418384028633995138171195337373416841797874509484515851250593018695419006504849018364519498593346525688386627718214244802388264672831045105855517413605206357502859211324979767639691469146429084063539096646393807506322742353949511866781165469435752906393039652308189706780905134320080734947595847136698286437941085579171627850114586572050194111349132476550946585989152433073740647412869956774080051490268511660785391302207253382950224444429383836460182333852179678870425690877596861003778806274003984862162136058461693738933304194758393741340556698375389777247736507801200700977908161831281499519899127442137073384009524489879018896451031209958859167591785094911192966249025728824995429754989172729094717567085960554090049983753461733932001391724827255188246487735136609036055345681154386732336874028696315649181850311824641299669939223794161647979380120846787617349567266805153759573590606165671496640893323612661316343252546782499872182512037468349431649332912604632615737171508223028250546164105439243024339445764551191835582865995556227738727955188783797769137834407287404082004470195065080150798850537583939437291298166814691306417953322004241936331875162698202079035366582024346047463235553093934460799739065199745652651118664595516612488975768704440406302166719046809115252297118189981860623178476696698043484516994188075758639752293016403841618563963296337527630003961107092014477481036263613374709797539498463625696637373260687996552177268870726493395640263004494857211477702448725334655645105106282339227582863269604248717265107614792238962069277160108680539545092935431749281829066979452837279380253248646256641534199577232548167370536874178048600064213287134653352152628178511708510132502647224946444043243925455675958005627725390836243147664688531158219308923257555954071226595908875602228794180062570187878170145055744548933748861571339828863267070865132139763683640074068381418319752904403118492072714032031551523662833900297974818877105919130602843307343181998699466055986582943927908172351722145151288114010075866367573977436140100138309141089925873049807203734097649765968545695154362045031575193544011803328002668250741550516174595389780098945057770312812131930485510289023051267395125492490738832237354447593445387299320590059003718552886925887999051270675251437599845193435615114232999292105141458283872816704558835347121234574553419295498775116266731393088373608724672757553762681312165286293751649871024757246020029123012410300604561575820321731511573293612663525459020879500043643993812844998813296520032783564924679761856344523708808196286952521248904326475567740940143673020417174278047325681487652637930669512718774718773316622831324663038236808774807744024949280531474506236189998448406904709654213038227306079016669755912008319682566131437566754584124005214293298123036803279679036853185986943693014019342233179886289058637478192659815382844359430609904661170975295265745907825974375896467115542794134126590027994861750939317367349842536274964743046322419766025549703340746306051879870650366222028036768649292024628527389232213728768556636343897136832180188579798901428592741035372542805748983125272132177669039902050399003876281886922603288994857280722968970390102084810758190926209683913159978437661465680813535406621840622865658406899297735749946555701405933562483911416919202620261745831063607038738540262596765491869438367784208651985968515457072678654716213747426556234818273835151147913784759244266074177273272414135519543921638329467962132088900351987497804938473585111027507937924559270053692106931798352388352703428765493771684242034167157070613118237483973831738139739241452826532788208708556992255675096483466087208044875102053776302073829855488802662534578298433398907898058609698103976838544543366679995765468369268475878630129137394834062980939027826792807566493632930730112394485299109417450839314697291444893114030971508113391212576673684822461113663437485064240776016653001570382062428145758552899191107254805442030532953900926181650044511035674886620434678061485555864773827518158212742787148064829981523711534792646657215229798976251536044953011340638591435160507123391381879792498334574910003237004271766182681486521490128081091395160194485195746895645605235929933391146733761301514184140544791947346629340673016201598225025309517774796445229829736637833638095240321773156156880176647678375644817084040491577797859555776123612350459530335113299449282100919787195373203236925726678338523595233733485813474928180343953179722104550352969837629611230192570326797289820804497657478217444141165882696648993603614535503150621481489792316504288040608731173176101589225591510790310223714358816097351175366963801135222351806896816778061410761012988785150568928789694276660665457646815886758357154535209812980797070503061123660222109236660799875582884157276693828822503139761107780079578388561765555537258812945836203559776807947440652966325033769258657231107132963351357703762484865731089626037603013743202528447599858512108038253111470502432661404635146236161414507140255408072555598624800523709395881421284675488509473102756448618972190272270274756101597722661691905701586428136687703547654565815844431171756024207373093059996669643548731633628650868489644720477985460619795684377876600660893250795235609561799590465555467875523135064198167441269280564589918874166462980637846174439339010112384392173721374937275219102226516065631389005085648664220057410305185230914302729557956316541447758063875736291174994102348203313998172961799727019198150115978967343492395366648592027615896056042591489893718454325887789892583034757040179413426503393047021950091482299927217844006102707113129138325791671308422656020432409815889081100769817373318372939853011243388809056387638926025032916270232589025102558694648095420746171321631169041559801943463011536138578886443863016169286400938532087849376121857212067446783241347883657044785721595573300337822920373131373866225917980418593743936639919471091835228154130207300426811277082583077550842208174301594849787592289328254005403480290115863127064238893063750223641030656861590925039086609070191044227517555453843340801780598914177432918319717747195387192262313699343574471072373628426645779481289360434769678385299967709706897986607180323048734359673819408504087436013959457087115101516721029527056443416523858162912853431865342689863889186336823799640851302495640296700412232467744748134214321886760382746929559901668416897380184140239404838307925768643717850266990802051111516076729874966196596242284873556011200341112895415535369659734808129186495038885688022381982174988839750840709301991966333314108028160861685493822209694427202012554610053252357901686253038016631878199861894243115325827803699598561435006188106115522912542972978082100706985802792704934067645175118657464978496424809913891667092062724350422189256428576055394933445392273157922609341438888071072832905727976053654904425374912055327213033947083249539966303077994305070616996469690199046150133255514524528196406309503730072898394941879815580570893737247453298059691821071124315469319792992236122696851650683438396302339019040421773115931688029292191802586869718869579750219925224991629666468158127223933134813188972947172175788605222646117247473116862722585227688594954101855493997770964582545251443870160064194309488349905815636014337386080546696322258644996265488240569996615676579499135410296708082734961846522672591578036638242949215460495327152396054098601045854517785789050061426260015828880915523641550455812695749799295438894334902677116914296598611223929492850336037707933155173227037250117909272324584653778489249809005202541411192018244025755476149099636256683667447988799550552414008629143820671416789371788139151254965452050747672720174982001862874430796648411814910664911639996553607627947756683737127162971956313231923840411628793700392486139523614065862979750129489315664276916851508452085155593995898117857052736634171207628295669020544610741100999236627228666512331024559826103018799941165261317428008533902284781340235307336506784945502011742878023463251388029057929509590068907777760342382166397855167121639652555595475493205402474282431505753176744372942818483837679967888646892401828082966696737825185747427457702618420598375019710876722983266986353515863965230848601686968660523973822316691656285243355686881301530804119190174590844002336173919086751244720989304815818652724876529565546569408928413466774301790317734101537761067987764716971084468601526338620076567871665303008201374878302731351883854644461944042282183693081625351809846099121405237772443244648173725738928261786375241177316146215208905883329356490191255519878133369915517489551594357400976345839868521010624502301521925056830441831892539464484610141327851699786494906225237435943645125862553636489042653269660124301842355947764224528397097551154623408636082257688439466292163402019997598242071262223337181845351815087321718592262858093995566046579698380618416211339973255894441208841164019652495912478573154673511025309061055209758354854781942755618999761465801943378967948294250575373887579087721854941740785584076093430579785286342327248316864675240118519894769956267123827232689317052944088317695267432459269055670987933748358236290738492698760825091786288724893975658371752151606805500174609245559457634025956223206571659328032188752692553921171785530965339172411122678707284431867493382814107408762315151910377080349782176459962293676805182055729322500291599657196922506803685232318293730712252765872028393463723643381318659931767973509819848802707161418837131776506644702444139328870719256022324336837737288396508779696877485227616005174817717244652076943193777108336951247707311129493908850510671384169945167609640782118662830893134091081070336820525517268152329079832728982843128472459187992262956704216858493625108678671074128558661595232137213185595707054774931092744627156241173310788222587146464677019944066425421217551589544081718232618015244766934009282552065159921916816154214742005401883130999112822829364714656238111624363664456559181925909660475065335321368256632161421843831488659963566208435748522311179586617876143388794303310616542275928117227210978632638015310098563863621076044435689518931651176181446463883667449641452550955421069029579624310462548161230603236417647459293662178746717092486376662663635974208430051529734347927019654927047410932033328787830130517201007526712333358660789846914661704814996198885327558054456946200139603796994007582250581665875551091599236537173843447497832243157226705653163067207050928335193744672589171091580866292905892894652384206340725725898061562617908124281666645509716526819971462667596087958615743681965528374040157827573995600556443197426952344382666250423381621777806343922185388760162879780219516355697246907679632965187501309024044316907266473275917961342731638222214171814941754574941212492043955833686524234553661725306679693610398813379103793641828871858078011802752814728921844830469119923552124625092907632862322123451922108351341637968397814168519414684973075503796955375214605776294534474062495625461859875054164046961099399164683841965785998303620980520863843165396707838375308416557934700162734561138705762393052379318559157555696405220522571193492571992657799807401419413508960392419068339322384837790066355476164232464817008583680214006885469179540848164074269825002580618228712764225880832324889541361548373528746052283191994323088486536631863016495785803381337978301446168526623109560112301049459990500779944612333474495571335530714386668005962219433440765667588475531871681518083774666727732825824206095915540190136604188725199985697134475842732599695021580095092136485904042474523898482207977645514934407234243084011118053038311495492337456553736052782296383057785719699480478177489200611007790878199136411736126992306933787667407385383593608809908057949020398466865641897787370234762569703578208376341508587488334426215314658912466071062547139008651379338731843418480840554484511999172242611020048308502167997802574595590184308611840123715605982545152019211810573586590838179946878841250355685254366898166466454406259622037974871235510079849275599600402873681619013113537618491463283793953273571021287149318652191302868711219412590310012682662037011465460430844462133844074535791929977699450694345500851269060432101970379511711070435210037150904959307196667632146678904678206457516326225947846343307105472850618739037662293219964935060756594657912366841705234975641058705920534651580861065310271483555081866160612769318024379514891721270205355724548287977736746816865227498916132390267239513171050183193895090121023312882834849596077594530127487618137501138888142227902058813471853117294935610890094968730926616728548495154588280261678855120315978050327110222669969760418254536090856519339743319857904017887126048208438154252373973633800291943195563051836656787508589887161448186638646048539392840997104760425796260801730957583921412153955926444842250818674404848382812109447298698237164372591055070620587953304287862566422334920300925381434560149564179926586915084080858105598594736131190042555476136968206600651316031824181505801586605817797684513685260628765981995106121804237979441452137695168257319129652473788403029579820455960493226674429320235145798569797705174262159962898537827196869920463740311799321943081974558119409700530094542591272757031772272575543683221666832672986127334632155313550512381834526050101853620015082752878040371674435316025596272005707735282526975983621860344027240901233858245064327583907734135172239067827711290346264994597886108641760050557353934048350083520654794221596777132994359781311953748765074693888042378367491331426901301233652768542235040870370730964012153032997299665206997639184860154121724678156554446226202865932900316649398762114277799637485224374703090227873848492136513576624345420187438869922701536503378379748909874897196799909208450587680607219243275861651512634752214575619302181377391807350739161137411935387204395794268532855661081455128610996167528474832942994066343482205709782263085264025588797196810231840832807384289551411167199082378054193112320016245329502263539803170726995751292779488010863386085300800281331697873357787956597676963099627858355036804826828740228033884586065515153878086516027963500272431111982047166480570146920308401370013947041947769744337649461501181473682447506097037895632807462765614338155316402341824634891657037491019045347807168197343853047539521796584038304811301688742178118836084473235398914476575352712344678026838056546686363884408749431195834741225613548738276668215794885968256249513313219972770909583158763099610370452712128473859219576818461330192772872836297307948928502731653951764325996969920796443651028056385466498898202036989492546779506721114768405582398842257199136432870800497856560089847978712596338288758155531412856141764407074651356512953430300118818928946224252139812066531390853276598880732745190485905590600760617357257381939897013120430675808922216058677752448149801311755837425385815610790578110691021068349876006837729592706465412702984291664406756478153223027240948271100447651545032085541946266647401335043547700094344940566846833424918159385717869809998039674783926656145194453081832064520497216424519386123955999370619962903417410015434829205006911156777855288035523818951640489726003882849983957725181099581698734349008038765917392962354037015842832791317668899675177770012422134723130079268390409461794349004696798284735164796807898576241328476266885254077902987134422159692658074003333796044658296178938420748023878068957695916748083883283727257360324518446620353569300836586688025769001753991730256404047489167209198458477013811897883435075139805611932160161629353349704442159121072461596028475969088304265827980053163427096849853940868449336623620120688992712979107180986232059140554557285529309337679500985121862962570680263677886063537584492721128625423967724789440854278637096985232417141328754448812471581093069361115288835723333080389024373719554816891948011195719736548957601579488448018216477694144312751532828968579745349112953584769060153468682509337096213809124392367535109953915242200687539322685087113118436155335291190843413588731125019857483662261474031561293676042137481478186202404225373667918191850874467101931496291113292764992981171860763418563958255173353300358082661805059425865406805390293426738270707189921677362303249280610160069774842946561433287551929817311654077466414463911047820283607471476942352317506344454644804592231707309942885196995491981728201247696794010326955745606804597890405099261348448410647986129526418269537875448911408127267331659309004126053616957092226308468268031286668207534882072450230177186119165379875566898955886472264056183591329992098779846488042106418343798163429645327268750121062285874046433017073219983296846818359850249004255465252643044547566982929267040666402314769295433342820170029462406011744653818909626800547362061967070974634400524124201064322374065533501969833441287817126792379763488687690502209091847814963038813850977336799545641402975693111334662322482479170466685731476581245219217152313946341191278200339040618228180591897830534293008755917655575250778956577560174050873739243821217537865982383293295859133734531106048132649778912821293841505057431608580413753930239174500451060852504859553506854702704645391815124744366329389684566725893042930153058720874281769894954698346781893733339533606657353829689321100156829058424289935365716083201563027286654930103839220118902726383049547103480523376148965380998382771872993069957783024078514886181458755902601306730998115340196443152027718102980581638713538703905597893276658633977511116201842402184392291838372194327073377604917299883790654793085977588918323154657395100352435774326379269599292148909614038987149071913182687879178978846359887740660030216244543556448958380226500655539501440494259863915192507520698687020287553979368997896657460248080840239265347497544605064539051066301268614274536905574349293910249109033648026888927505758180706744420515110738098670459281090875508670086979594840238765773279275820579355435999250275051247556791431088048710781881856568110023033979404496063828281443586978894031117934611859623340602947973448615293317848785318885517229771022687402243119809030611776934380182596021301853538881331750406877727219846313913088291332151932389513793562455891424368146761677598824413653036735902096240635554317329494433217058798557579813439806195969531756818178803994061296484851323481354007520653247782162042441197778070130731091746650601351513726646227419157527671904063021763789136975184470199388603710247096063548599598940349987877078490543611717844863802232667830263178063128414994436487843327974635233497683670881881753750003191542838664288300673291463218989775482239935742631614518633642941052573133611621797253768811392868213118792668611157456050961741548518365887572701316568596494063964795644744850667577947801362166107617814578305605351974374295924601200437457121439966622148945738515946084465948306226705311997722891092136505982893327626852152938263257931512485970965371600542798727246765093247185036761846919237455586356315546660131675106640579546422170015824335157176058497578357634967441999830822117000876815813757154047392149500006607480359489753501461714936609362458308170914298186998737632916476570854668910707974110204537288044481160627063256924301660111184468125941276862921999400707439144954118802631616788697782452961329186665792851867172651736070088149459816692307621015688295556745409900817144317489762694405524839702828320401818440280735252070731913461658057936280292469386936025484907524561407608847640440881332893772126440889191899405890082960327120882302053345732966921097562202945507664965325593015286067848061644240391236772615117434611293002697748222805774316873206171189525960985090949524918980651748442784838012902478955108891087438029630377198315802258204030039163962701458261517878088214971038989346015333316117238800968673962811267931635081923538007164265802172711904243072674011143940572840931774423564027537112482853048385247445210401184239904255375531889861222225145835949759119335546535539263444755873770192223514732486291015470322174096815039945102255662955918220720094245138168918292476841206496517392479566235530403239165762258366409629180314430842127927938519053461326953884055835357804445161339271219671020696683736643973388948554647867966796697454635639879387368859177775681456802392300898849631458536753831412729869832233836937014575974958341088354656310025385687395845412613562098899128813950499046641316203129584483003486070420564851951684758876424993243588374456329609656524615532395083678087949701382289131565272089360367405208234709920304319405986377079057669506111405205896974326378900562951269736899611780886550053507670135973264479956134469897596708257872854011223619394963094063095639735499210545164775012186141103789418385683822240847151244019970281459642771896419779927754880268229317805509472174903003587492487119151058498020660735343240029075939315344486361278563154710941965746956940200290805110476391606100038667310967784657172382792837624349930953326405221616808427170681977910332184394734327170198896689743188249655573239671499727281217100652960851204366994723112270751003997840653028020576291966246698249611037574138882636776427918048458231600791673632297157935939847812207998226763776279370524503851252545052606225820339276984684871064505679746973761011499097265103281360619781030861289087715019410863682947579027904215037352753661120015825055503211657232812451908940838010771369321638712418272720563830207214268495431628652805151007727109979774852091314124390798022117638517474812946081510347586868960517445929014495777275562783400675255770616336614444898926854004859062688870058596795586713474374829727494543544699076774866702980173586916100905141292771304240777980396789580347086437592207838555400893087136251538486025196934398423271520001468047844418472497461644257074406952026618145936193115021362497583639193099194136566735928978041695408231516637409822430780322536459221059465114001910100083246186844018825160369950600444558618520491402538857818708422639010474597227322797292807071921133722939888283835234032856114713890750224931696760907651483242952764781618537512360633987477033643545218874182340055969713995977717046303953492767288892335606947646015579921335635548653447395312195378568193313970354024972430272350437054005857643543197860436904095932189255027533270437355824767179597052311813231986837458234973390892848410467206476496959183130034277216835921307833628763199076521116219385195288909506962442360749439633864819822669955744388765608915633920225465869520339229117549659331816081798542579128081344334748662452913178857463140989844466431338017482292862745245269696007512562427916775575850753129782256244328674934211573234786277508242654016207250709276626840730716812077028938054195183265466581902315348793622249242164538330606434408354948056520860036081137029775892430852684359828723092873386699682530998664697774419840138812129894030151200025611616565005357269148492327025592368085940245715476675128806851454567274089990292501111842314600513482491050604840307479255582406908296299164592080903611631451051479276766776533826987222042355229245722244431655643617938486882834897089569763772514411818879134079034383688857548464569733391643759321760531022225285012258544009888708620909442615074806629443761583246365560288323471731137591849927532058569539282895034158808911256578810276881385044722007382797069701900910845077316153837257700187225722488149209277363470166609497783107841494169402494923372207418006802898818585815375470316566622901407326595450867750231505850750015091785960231657956370575354269255562667903630737882137559401231286844372707047509625686440185616717798277643897224477688749257084137330155246210317836928925923351612155802904075206506644891529670349461233942348336664583815411614634154510337502609921526027813263111289744335186176008017082454982221611420207339516494282101783292161043665078433936507730743817022320220465886381995589248720972956401671562346882928806618514262934993880309973513987928695315749143477681849713737853171940098144667497832531649282532289561862131689363295979674508388846237264885743150620035636703915192565543500622293155043505560363723786460239037011130657794020341573294875340797242542231060063941724069212073781680838185988661183042801686827503264894708163487226074372847305414945771962894065963812077875438127017567835618620673667750460405195470350419239614185649369574683774633792639559195733401490896784224395626647434372479128640704578552271631393096906513988843735649577361868829194474395692019899167359951006677060252678689023764163479749087626482609924063343052336863481735350184604292576462803180836485695791492188109001291573435488707228878171912850137961819214228489033980652709049498452155497525011317739721523900287028320872713807940280808859543830555269633479963780845490657036986313283253739091623798734263083880058900241872623758031377380949844020139641330208037477083840963917836819886727473503738032635582548393251651792515817207985314734471344025991952828873637839974608687680434193317582904123113455685217940294110756664435424687278106235605539648187807447232425461017763113510888646996317857035180763073428787870782095420936445873091415331068818024221462230005096819548723002391439936959387136405302289116534050234022010979942812264525759172514935040479714519144089901598954576258925585355425064162703149625778563623444685076733043052910703758920419631078556223514171073816655696561069849079408234390656921522555988594240186406761219048223451236339282976548991721830159869411953020285178475767470567788041670592857529152890728084335360376866607115345241837037457029855528296318334163495103141790812847172942312671189616824774729352466840783398634866522425656311308043730011635537458335613756944015798105813786157076227619432793905709390258836503643848238794470800553177018556821793349053322424021218513906147821075061419583321063579427323317189434441611310109717581292804212762536273947295922674518822422651678167213189994326782659948165648062512692076863081743073122275361230371174416371881559265515338442634057940139084377355901515184752593590985908431289798866221134499442979744855249377011124321809985198983397522988653728805823515112681975877248576421422549999935215611989300926652583471931933926463775398258459787034643868204501568027828714755061754137131910393443945962723008642751183660049177374594733357319920234965426099989515217089404031914289648681050257046044304706831796546892951264754925795990149983097363961788954537115269882339600690015206456261727594085185208070300009040022223610383890992131918310352222211953309980081866727617458681863500601184600772231714321655363147707531100952102917667072573034567173029766508199108354282093568546247712659020208610033482063293721878332902503502820936980218503158524733691913823122963132146273272039144321930921988356064638932512172983169880863319320155528303933059380169276085399588500787020690497080612084561637593373618046425724860610994755936875559017454917465052190740658808482005480601927073796445843187104621948400070217898762167780058328462730445918578196289997586864014990181084920811987536504466194278566677358531423133557097069656453311036963076493839108957096389003067174151522394485845372302348345091808803616745441421920254026967738958808014138573516061478097346755832133979461230418178196364377812770422444276869317287082300139314237365964106096055846364332902946105799888345930324810488496341373337320691394179798964709868422566681263978741109249834715300284508236737737352157198899716766105750610400050420576932599369248082942181714460909111753889506181965676840748133739232632253947974010594320196136747759475632855240608123066040007660645782871443260675806178917299126702744263880704197435981642712921467881971228678585650634240833590940019976340865949893500137440865354134134258461578764863045078286162623023072555383639294084772587187209285062991737980571967100813403506533765657833207742560064488195949380836267458091039023062219314199803987187143341279878455566499087027086122705652212760355361765258455128297770631069362773963905579301407559069087954811555630635086632830070619898036607362823632436850569976029372041574550278470098832142638421995987325836270003129579336156932144657947405824366241901870867954038666476762482196359153442075307518787017916322712784177748550160873022995050896666526573212686486836678929592624161840077875529907201048083898161234039565503212437913470178309770887121124228643567885551869165474243446346439706896405147192589045824618918368687390686054267244323702926360698533932857050498521458059541591594204383861350526652239302472963249721819380929233369093157258664730156285674527002937198009743942896552524671015402612989699295112585077951518238562663994543090400937259697234125744930753513285678696029874911771829064651767879409257184189750401418005216741096979993826004705162748747249637368827205369121344010017152883600004644380402357483165500480539539630626001045203885667974429898268968641707953287704230522361847691939728664085614588883062952571560989381886391528607643003163017572621467769361549177424563156376204049311784191040558779477026924484726777714021202767807376498663974206658914227428567170383457237485736703716600812962733094437641445161056518659438851944767114716097985190714794761816731903039442275154861917288677043966202418504272757413961780556138043322060275996805577039155121683059485901629377757186685120552559080931888673987357472109440965205738778596270504852853966082815748987218678793676275205416263419514894161810625664486538749584979606811261945585078024946536169322727524103398703920254643366672849557159858622658469500742361091503499886919371284259617148689196793679858352785488692056635318447783416229773717569627677556532208417873130317867493195350680875667066486729727932765142686691762846707000248883038919308628197205227794032148637215962327921111931626670519976868435917105213599426845240331610036125258272531297188068925587912034031102074108379519953285013345833770082453933274956200836792991940030939045983616270393617907032776685344170943482881149392515840097497691539756613263842186754552342171261048390569148807427952814129585918910559085670358633223332229155688344402448460143181263836456227938862454402023606013978956610362053453339512180928044753539552820913165161451298016994823992739126867039879276865899192129514461008593864332437810999383943873588655694638550118439957129875906936352314911979753779194750481103133382301248730046071385593440537317292992122117248776691613181337766862999180396803799223331876375839304222952157411722222800674112933738651340590789240461239501970657705560627029515087843702996290134756949894423182696723788722579384165193173644646706542218974889886662135799960486283314869696852508784216123084248143949475976598765830650230279319759592925566143528387443486919960688536893812144430580514651901852865826078495592358070899021335696467277865217458791631954191386433808644435525880360185012736556679343896674473297556564329986615380232681461732665146686417897137556486359479244590315636390963724585267993860239579780717213151160911100221983589526193187424917914715615550055958589479319350274783671811953702095196596995092204594162617476976623749409792891303998460610832446625569437575896618470921802602328733444412828974903662683293867222155676855079032205046709437787365987766438144351776164468391512402664497554929226913082479679877667280615453881664747482874461093385740326471146685850416474512453165511645486113814142617734938146194838261153410483544485539637606582842031233768757888080575262814829520539117654522743762907585214638851641383931840368577091646363603259193110363871088345004863654922681161619473955910806740230142938565255428696321793642276567387916556046453255650956197325994105628920142955851542253055361671237795692573311182469804934173377005077481280450890913127063887063352029016093919952136852737746446962190494152551491847550226698913467307660603816858541358578865074411690106668917237716680277288280366555930092037498329703817215077242819056820518980705501589046889656628945500176643603038715459960190374297039955287962176437653965731145381818287765052824741538245599515613709001391669187909098807589733293428487520761596221754715099850762990151319548941341414912329904921066625158751012102412240088054117069792748948344681614587611820990130146280527419244164703263163498065072661001831565370690446427927943637085818883162189833387396505162480451172345796397056322785367316301908102442141883137222578312386095447876903259431955320615680188757753503575139479517603333658013097098147500806578841491388242789438063241809081893566424642201979553608070156028808536434312575864051870788552190454616250423403332230405275447377436160542950653194203764357476109923516821272788499993897573636919847120841532438716424854334081047277471252849183341253204805386339602797046343661239441193321326591465936294946546804076105332794398919007023126030957220113593900132270521632826624486351535564270401901594484327112084093605539075193517980998768339942529599609890285432311421720093227720324195965795623342187356101824841108007274739408714692001581421802427930701639000539609250934394036640995583780032121579487495668078854105129772992216645412234067919844475128182191896195066840602890995828372875154638102505604113637254923343117080181106010234310042773152713288527547999026184638146103372095887261920637654465739508724963473356088034411699646936228122685657656156601499553455020504220195783312537019894736923383950958720757550598731051209201479369615942080126832685381607733953282012949533845671111965926153947350736171540631404359967264669475456346701460241448165829905718394750187685228713543932054372029605988318151348977599724223049946303089795551387020476809653196881870516945326450875473962934787417221386672478600560633433954789696060192771233718039059654324850976507510252129503339372301235167149167086499720342350927880280295160601297122102973061891826442120741243719833251129823953058828597566960048384179673024031985570564556612097453155454513508909117851283491470316793477385483707239608582794360484301106185860111863550703329796470535302234994138421573186215968372832670685090089599594173361994330194361486254319438969251518674032591535826003107069664117909401067107009278222400747196967954551856582028780752516770830578855905221637193812364265862279119536173278669064594319345037195650429480382447454949770990402842381544111265871829543551086231952929477999288048497024566165791015051516796997107324512209966384194937255684718197990539305988952366196832295033587263948964995927016352519887532686643277471834725431301715413777332573547165810156826986974910739591466992347132637897836543344189695570009129620197557707358270971441656245743284926966477933322703277244596601853395457341549583524739144133353709898227047676249092459798188700107605607414147381669972490691572008132834572141200906605435805168927703364036532651203699572238176453204026931273192199823158350457981592225148119259143379081365558489555532230189053908592204396945958946938668229863888023523168556377534944221793471874828019428900177335320844030799944504166218650640813586536537863452471259293650620481002990052008910475113665676609899476955366837553940622183418401515902933206652075656105082621308577962058596000282754178816700383767457119124966159176410695876361016423896487435248706297261564499990051181199964083254320269500030921336263148757329951081846628223716538528670912178921139961007109236446024728792634514160936138708976689770628538353231553573083987703091134429130494865397263569936048576721988883671387033599480204137618379964625554657917866072844154617010285072827594719482547089248137013340202060341374947747592349142017075724100273145151540902863757599149012046789527607882351506586414634664547324986914231465133445006094292075841555225046575219156987085827196747354545132079032916115472624700374491516420082163589776399641124164262230596807928756701356370727217443236527436949243630845967872089760241815105977831026120251262841529122559356613437056851991580966416423264702639343582048785307372636679385667940443463122831471138236333072679407600417954826331994684784507226064855856593444062595968953198514852423467812226180476975538302419367985444424283122385172202920382338021771955248491970605391100364153203105581272183944756698999924668709516638441796304675419873778841571609519767181163864643021731005284024726224980782390413254861809480193815789648307677235148020335781510112001900330704773063218172775971755958956273091696117223942694002803733739299219671621702408097489048826682389459009526824305836627578877770476067377824354775004693009734374948312233601792356427550083770634328118756276280547906372579736486472506508135593538550251947525959721439665695171899996849652685682151776085915949485815641695497601754974491540374308906574341313692863227558523304959628952114434229156220258117037728768852687040127444427568403641135644733706861063535726599201082892046067795301246687581177075137363737187405281069815597366050858296251124616121227731281119537975735016027821055784257240057352744819373889496543967011962015332535209597270291203194376257882561230711985779084695968279076311738573446117821557857582628907859222974035925391212307842595674699770789159653931721106452383455486656888059952568506759661626858207179020233004664735341696896904911595358725574606250037883234298018158555807898578886638154550626399785556540534979086174731152899566330245858112921467333480950025660393086909750015497590020898605457138106319299452230351963423063397359329494805872348741713581338470820103487035429352517039228770083070578674326192373793842948950933618400155378733909595965889717209372055701561211939916713420656505463549465325490047603930273790279286885440515124858134443595732093144459952212359759903044629885480467099828244689266084751869741674603813745013629339408089893976678913774950658551925664093649877965357776664920554872869252947138730093201310428455164846067878981868437936027946088876675190280441186864364803516837736334294981107905055286723392786742809881233279212111699906615983184195896351242245568251284436315972264476999578442311385987880265242065066661773753102634686946231292663149949999853170267788038510549072252547875522016262533702254686284416645796028904886921756263713266194680363164227953620931437809630803206024118982040636901557261085029601860091907407752272144730317457848041830378056952087630261192201394019519978506936138716795099857270739901151484201898378486872399697861888226628733459489243027321198426559808790069554932117677867828942455195544048441580640439265322763968329472718237845860399914908745084861132694629926855453001119045920651575856103718425924895264373039747296619042857099624995743268098740354864756572785713945553318640011778189270912376868070698112102848959960321624663873052219276782740214264479822532079356213543607715256027690003247481332559098307274701269263586330445881789658337789252112131141012882906885972935440155611074470081976180275481637390106459689338999208476103699744362663773186479160044489418427305647861128254660637252117905464656034617285742284254341418993255008180253228324908162337285845000283675765107667047590030486998423009236011533011218057685092798468617119122594746991809292385855838888599862623635494665794671914702678621106870969736745627881172806121068215506574247346242963914551835632031453408986967092721689428757558645547752355495776436870456933879948099813579020351106750970280476065362794109248225194570542342190840875180425687488816606674268169554053349391393483039350294635797760789724415711766868076604293830459953386100909666697445872251061464824676642061730474503912716317267741138460712358878189901003031379353556870170328013476573923366745731028373647335730593514618002898835559527929215689724619298179774971915914474075593113344470034506484995625831550384213623040494513192441309949647853916970745631605035988395351624302932694322544243637960904368462490176535382455292262380906397549875651195974879595324062856456733695595513421685786320324128386718703555738639550614846675068347587160522940785817596466112493551515066515234938031176408994289974189616517348874910740238807578104326005733279077956948476830676043882821261675788813638482864813771440123736376946422221549417108357753779153611362333392435531451627133643961759494472415845963483129754057822117847169413742794896924793918894645486145253340026981415690677819025514489884250519849296460325603328318962404057528708054275417408117337734487109757543794262338740782040424107501492057844806938077961243223836549887780302308041105634359644234939674342913376421472443084221932309234557528850140333338565857506361311616851592316170986303934659287096673648706961133735819785129062132853586351614237447768737595818505296538973556712778674900208548157088749501285713383655093029124945996255336104679130931499950104729567736586183676838394607007809876663764628481498540922687385648352254317029112775575854810259439985503076131851242978706719829313118148209174532447697496035194206179107433493299011594377154766610892771224683586380465339188552247730808437207337460293585193406605000470777363364734401252877515146677310134685195487079340428111599793645768533254548249314381187535432149782421598445533606446479768553871450914124972024335395991499295084742536241675114181459427521629964864743096524052348155682928354997513627011636052973953564087128384273837761266457291275325900982924612331083761700973349688333129952426959649244633678647920489439673663396489686200766348858158527053442305012279133994365141216110877920000336282148429652584321664181583415483682039679413507625143343138212008584089577797933626407155813621477175841575544249726091580483802876947746364222946179128201413846521264253327080868782754270019429369838281128317348450989214278507274084515029315131231599387606301628091956144365417767668489106901152549038059826209140748413888543262591151830353349731117612661085374527175736187085047468569692112264861543385993673257597107999665504307944387894368911792958622241409277007413604288760714118308000042415550417506027297683729813685466775516943387701004961709689744041901716031028472140389640597062057534281589048814540434780037821269201143963824928747028827581311560010090475558679398604383050489469092718500587445360447078653352298034756318483099479444100439013481441024412703283364304021761971617407701250112920328543060144227353195260276263595484906492147370215703600226818444595039520096619528925549892431919147834811314422457987249482861490910895352713487264888744742966508509053327743838024960238103019850356717130964665397375676375146682898472720337498277486375995132978715685820154348401744390593769492333682561336465289517252011851009404803540253039789354753072354578099438292321510218802074327296430061120491253603012181717033832703248549030212887845824718113880664060816174804121314976598016403289757847361642814906126029724550840703443580098161062455742286773076599284865005376602807836623590632795995938730124870560596402702299989467873141327556615211749205487835020833582356615525058994730078101101709349267169952545923177727490492180868656691481571459936597909727378308701679602606841656687450056155389185978043531282839886248586712513334447011657501648119070699443056774175091356401664098325691741965038315858758892035480517081187303247627602505194155667071690898582852314076094231696161634251397048621504505476145586685364782787081146639640282473057200361674223243885192272060912403852319095182987513245600247700250807399826663654749730627184377446568022489225528130655994966755192885939942536219031859417449980470890024254221518441572843806879890276701011383423368480117971191457125625817959431373249176724649079190134495603709896414321174229625971122279389918336714025554387468302235762450315905589105977913561943221459313284315294177150716515235826961371366864097333985309954918108730317351446879051504076711064263187986745501744069185854185926057706949573382662242429772086526725019004420912784039275388559609467358899252930132205651022625625882842761635523896799422836733647281792095593601754802496935342997221354359670948142427391072017085978026730086592468586874959973725613120893904447246140976189668584579424759291547815662898758106949192430495775611641140768688629558056135064953684135978634036055399363699578032693654970975769791006452683792782009612973195352375721739084497706456406397491721704620863315194769289291677216571329588892871489877961116612710767525526847785723584302949243609961514461348695329551155698584462996076087842374298438993607840704934710866614834337189707950891857105333670661950628486305119475695812351537802602001330222733408117388598500867824920497956330543099064331619318634153800474305208979514426464722076256303443811714239882256244922719757935518244724927843144368429353779866802427521515419897411695075912454031397857645321267452174494570229036822560955506920604834752069374238381428496683817923946799673013235952760671897433863612082498244744275921770572805790059705932537107156154186213777987236726762600669804731695786821737711615838690479585881478593377958171344821868607956256741665645189992983540808139385252129226801201300200604488782166314459026338765794850824896786386214939867379002357448846061248365477993473303430757994454952384940242262397418169436585592668336437121923582753719300749600739820221957608672762179799553628328982979699287309543461539485641387199724361758687783679865180357815798416367949577312453262962311468342040037170742373590387601412691160353158036526185545856263636825583053695238013184942504138877060630444355614849870410781843673877368626621118378607124705035127411485738549468670488024378456266768307657571624345585090818389622295221268045818600657580527352693875360115710527286137381054043673820428219150708351440773668580599701759933858574243928472166092908518463839040317359183635529927122983358840958498967127191005268663398614301699413032626294361538220503782878753700091168811722434514042717056648852539444634267731433233552000894276611999233187790615875212305772273757549270241999283771247422695672817519607129509629938641286465964377737530290148538873477047052966199960522178895502374674234515852894279579944632815447240633470359300030914841133126274051547772098837251389203149716696031169641835765117185835453368090147364148376714564519901930506220972003707166527081572059814192532184286344778079262220059858841472943386310136650979566808837776193747266445488500377641526707209081462530415889380777649027589140738196739058219611235561437855707660628533636007004725631430511074351505244996527804106482116966920463417990831035030164844582871271989378224524057663341585669020447742820198399391192164692541578307963469707067769711612454222814476042006840140893232041399628387081346922500577863357081783447638670378915328832140670665803644060863789621880732797495753720526343274648941589230754943500236828945212276718101941708667378423855643635801133521273279865375554724842380898740004676997125109511789540082850071010724563383334540130417483940733268707504703991626748973957084225471195756281569052837833861215659224978793465573658609651627587388564481642226411321230134759076924798461701922034488747755988566153727955290923464343480736353114622650005357862950006140229193786516666373602002390434354404533502929624308214919784837261316543650293727148195818055605345038469344042073727977723238112406619328683535821490900700914756746748911027964446885998480352718568739860991175656078970810637625261860876197573273561730025407440845480456473297067731203024854141964538708971659573580704823701158118429085384013032963957080617845132227014815244062683532112326033537281681171941543706528979547640233988682822194826427176874175273914819670136008728411441237698504196675792139113185119865614876182023246208687188517746444014245834771745939153300014465687936363048388988891924301493160768931359058449974860077126540367351644934433461063921695090102631828638881688038385721438737810364820877406457411391076752232803897865687656873936635524441310887078961642545523799108679679332854436527942960471103704819025711608583327818679700842284058838694493895608170764240374967721700349226080106982294260498091869195399712598987644574925764336067547557305433543851117861546693473807340117361592344492122367501155399475721389005319685720131422501776617475771830187165591616664783703740505637893468485166518942828751650781736702618187998038233018397060487670057283358831859099693153795834212630762606206868776896389469758725781317888882642426084703791977003267502318552784066756834707676601949563682211681597987127470789904730274304806337626201174602581308408448071429395523616020728208196958958920221337320920745752055691739076023121927627546392815355748484533992187769756719488275086293067199495128328832039353442586208637941933272585270257968555416225617656636967378478152552531953215603741723067113002941980405282900607894466759965119233865922299540358871083364856218292905227638732243902529235563302658694068027559580342873893475828415805184755937102600352866924395561272102707522320354677182051667462362969972171643640920532922475837205991332384256482167047187827303401906929289595465328790491513266790307740499035870691822128768474281098562436997320016242842485155209455399924226210531460254343691119014732537023994977973075974731613980406713354134029326310627029221236483297711548895387202240236603755848451085391716282420740088942418911269277218085723872142554627562510463235799935836517790623767257709391321043870461210786258361778097547591370565829525098754246585666539153008445417682391258950702233649965653398641440816029610469560692107149786562673234876236698642654753067030030007192003046608382816717358489505969605748744366852714735635284207880939722007129963732214848875899440832648783099382547065768884765771325268612847772521395654198509039661799114616422094236022634208509114584120577061509275627365225237634226186331983970527125181396571454394593546729088170748123639349273832826052534088362329543815975650971175812123582687702280181482412777254204381447255024518691268776928463090910370438563073129928516063266639224251573815443014658204117952330280104395324763041912059006151659382803269059885528920370340035197437327041772488015917820998353521768671447576559465552393570526401404278283782075909858831524762505474632084790481096042143336700340611404143052594819148007955321193716166013448932197063408272983784289934755288675744310294962611978172168551569588191561266070016284587015287975365017529915257600248481604057158478721049622910739620432491146575100794440632301321776044568054426528300498760681706461589427953905522835086303894015531918873357459094049302417392851673284638775006592613227628637404171479845688789741842007536434782468429967166290776481810831333797086061090424739823856310518691985930043786227662043232363132528410925217012387361967157005425138923648156910590508039492665175197009781754302665560701047859914828738314726934188558617220690184132485638194225939652825967094098581488249040827915558357534049993798366998457341797444948995029692782882225850252145244875389602127679645704058850480365420443582825788285838228760136202285484795555081472484806544411656222446538346821708569612196924300376978597113211158363825918704755208656309604033228212775837257833340443658089174764240566917537403927528552663052792513394207722068778119168463243006614619381715995530491279134508186203719093159944207576619195617007653498691807309807469523531715317967445456996093981042181642196247076159775335480298928982713283899030201048923484453622742683911748801155191533738519407941959784013199805669328061449197474833191501862809501953783987870040860142667262446367778844594513675949612160599193962466589497887781408454007273313124875610575021338259268630856022158462556934739295131444299243504429080211896159582815790642492137725407295884616635742316561466553078062710841444115410511970338221103703959093550437583064820066410785006305086367260023655819989675868435974018723586759874977107976704646077123455574274935259894949275230392476046290519832701004346741716084490551666194400847728806949280826730663224159302988251684994926584593857327275106805583060485807595304650354919549788726600077436358574044960614564159748174820573608120510789421717039452127259082602144558496332803425671318930111066769793914219327371310210083574281236670984509630682477162808803767378212909076292237136981834584330309217864437091593604845118656405502523506099643976105386545302106290094574286271156342833905918607227402997469952275442879830524869212617108496148872287446296665293890938894559555138502148364127413374305796391514568704531387280428665013768506219565415279657294601660339342659778075755508134568837332862391172497887271721567368996804591416195717317674494626323366143347359795503421112443797820952240170834939714897882746928686803498027796903094183507303457539717127369493136345836154011975326115252263988192036588022158054873170400950454805727931382308584531223484128422720847065851138849617439326989859429710109343424522303888959745026805587580221269517411380476747548115644201019541877254762307911727120071607432337218224978258880925986745941759097455273454325731836289334235572623005912861700814172255264362984278848903708599072243925780444553867449871627753825408685613779969024162588531068428719864245343086224278161534758785086646760398772210236632688208757976378473914155881331826729977100821022152329866393647802048478218855112147483516973043360665581954606907088004226323449497057596914180822431933580880674418671143436846749532403168257596688606709641722066452885794859326091961439492302555390539699719050508580628387914436875568457979743675162309744077120305339403120382161363445645665202390246927327922425813887859004848616720621799568241348752789765247093960319636016651963613007612032449553127704887834172985276222391310263891494371622944222537677185402686142961846862388669833888603275589926801589166070641260437951233248565712538613090295814826842532518590000502964701425506906215681351341754847812647791292245495956744668008411517435128218358029462263504783196061994819697765352450834084315827912361849880964540726320967154682198355078951711796109478507831025515320910619102917908689062563068896816313272464381378859493625759055963660871572176860947874599645532921593280873850678693433308272933856122286028908418438281781612813554054113857575918139815172569671430399149486703232129041425195933352027416013521308541451303537322773922300288399482406226373149970214776898546753867484745750383211522075067405194758321026413733891981146514075550335530604557315041983017323363323556449522595810718289023711189877820622950223001480321075625274987219988255798403768213546705453328343582083677482978319409591206076032298408746060563520341050995400318248416827670796631297670532455546439886527960668502176317535041317753467310200766673787102910818095725446370711723396024992522985374943329951540067354527507058694692521953435091671843448899444902493950190262091151820316731966004590112694033083291380064276367003753265988323902059849032177029477418727228209191077417438029295484053559975732507781106002907561624660937784797684059071218577884773681403536444132953756061167248189620116715541542891236358990266390163990546926089182604026918459220810093509073752365453685812139551583292253298659750825360206991202744900638910498677521540992726538726472310802392560920552013509909681882291745601903885787657623032280516321378144803121930327824615374776773625457665715872532445431583413198368641544921449714681942867899281729803675797223698651813722785279686531302015346355768109138840472932958373033433418370078295358623979740199034606378490530824577817012591076508721760701928533551545161209755641023647388697883457217671263751867291812551946543222082248698459441067936511780170366352028933889470183026686201761792592306816225405009667106073389021760131867907949622239637718252529287745278003199253838747317352571750865327099005342337593093332434407892456985062615590832932546289128189533368859292132698353157734866939383181992466734636969159174000282769855645865806811507025650991579436553268418474466374146224770610550042757117372456280769670321657378355262532494685027058389364634694769564988133211099733536050201388066067618254265320885771267980836829354567508898872044791262681609638682862061052222548896241252001467218469394268846129195246490440569333569689575536509248964247004624260905166001858915777574085338630612243556279185885005960419003663015602454096860292047347445886218449898949521080450707620626385018141043693532753919134859760919178389316908631725949205930203360485249505350360707039571969956774137388078035279688283153829892543711914576246691346266114026013994150599030783424851709081060033567160552149366721661859706556584295997430277063215777525079562004134479987140089902006803188363897395184682029680190062557119481200649970475162897424332952023615318539507176636090935346697828837716996762529628803750735877858196397913481772119154369809268032064702494005613039787097099065272092581434862816430560376670640355503763624080139615176816348047266905867607026575909081758120474790602461640388757765566966094908299408493278546020996316860883937004753904596734023314826696836794043343621817613034220122283005071085927853871850291591887965398793392855597835041931485725852944179321388310071972465560157447751805241075232658582423192658148293048662880357302054994060142802320477180727684476642594587397824629785079627526469458055313581325947830912268445282914537799963643342732226686124473583924462298613751184298056840472844473434619980524256391310504879393923035808856968940224852730759770151120698598671110789206014671999308007643700840487402965712016167989131859327378763546411113997920563608494853173078872282667177091561229807702191840361064995178422795553150241332846708201138434909503932492989370743202107579530254019238406288546234332803324784153740539234884720161899002536816371884654816974903436483185445129214193546729920544408058852740374099282062752518772262740915718875514051639727847037905067794546494803850191740112875397607888739665055660333495434050777329055653013926340131485817007103314554584821324771438261352103100358163298384335121367197257602019351182758721137761158089014134670958009391690122929523777940297342703271375193420429906600681934063094012411426873919831193247794155017215240405286976549103563186190839907067929034707866315631855585575620297371612308244846377452371126072674334744615155705379660186642549825964879759688400684907796281193349630447828701361162362241092503984825499932267070892531167220928661547240880595445159612559261762691215450330366011355597699253851712431224821492648397516493221220966168095015692432181723858663766540656720375611465669862331563528845799985263104432456911330386843643208749209109546612418302309798747333984440074565838622723139105057745822371874289377607402293939413339708532062715234256103272823741120350487670607397527634162748880029768596431122470906376952551313381161392332374625174960363444175354994356514808348624181799549591824358089687976475106320560277681981883121922717405791914307125638699282724777986748373104573960053700329941295189543242684383244217979484949650708470566668831658942062779045459676589634949747501866184211627739380111547011889454354699880563856798377621920572915071304309187259526046636938887834234060768862862928223396591341994892988136666825900821671774827141527824912102494054963926030791626530681814748398755049148935699075861536400390367849766055331325966070089088839033310926872799248676471926012176337793784456066227639912568355530187652601920094693821447023203670526057362027770800681958652710294087968927974118358669719375714101101623901067387859035774278135389107100940673358913708645866340875385799891147049402259762540049061498578997020202468568095845753071363356913402876570604351846226258405886461466746897526169892908894311754135089912453738111417766715372917969251470188608933985898538334309227695502106316614857931702212509221079165482603631618473367212834480790795632533293634558489730938748553919955706687956406865240207085148809792487481551521998181402206573441181096398144240109479985455789043677265404229043455381996625082108171247034476386677799017632235256544407830301005121963468187793377220032357815801884110041726448250436672406071941403958621865397391805107924397316791905980478494899858592572151334205990316627184523580492594032703731900010804394367299536022855552645177681535312176241917164878248845671229957682065104168696454087505833033635038343405121269670477924917059236577793498801993463677743444173777466239708412187634219970147629877695053294358979141142090239101962533585703332566090585713121467593405750288680332114812634567801634474877231779361156266722476880990787992185074763255270834653964377450575119555310069900614446306878077350459858651689627766467317680308784435964747938648329378726659762774908040114461676079532301346281761699626180298949555649614198978044537950703798585034339665555219382657339690427453284085074782160070257955586083988556291310402802276170784816645137299997921591214318192455341881332391665749082147598164246922164578160358285159167630979829914842991144774835422242599751398924535908819568171841582062409547706625700845863496491443987304410988284707319930895076889837220542873029893341234822499181918184589074536088536019624969777323124477709345781461529530966170902124486934660707421014016639884502685389802459690843844579050692473694743476879712207245958464470110942648294403703200123194071799754290490998145588958168472373056873378350355861546285871021914196110132872412182024884672032452957533183263521820658613689098482594181462942042541090161299429016221823370607938973330464356315183702743756652765077335338334486670557563171207683350875164347961155263280982125171441194363525671060915776884685334730141048887064709842329158821840895785236696926050073685424280517846615649094309071221377311060249358674988849009599023928406663089155954517100597947518849579117654835752301171179768831425824953052683799324330572642457932741696321141895687608671545925718566055668981285361189991698562368573987666888713004392637804215042180476180851240883385446270952888835702237509194234460291534869424795378457507130354582363854546454005359928336006124468966430723347846854044388037197952002610230867029680609968845571385110768830382988055575368594237701782085053064307338253133254005624850339630806151954880086811558920300640892205535961232496202569126319757066669643976744560012787532890670764923821344547779169796631144522991078383806985631264330526215695564029470951104723600107953614966968105803994630585272891765355858612319389286024104538967580521920305122126043217744230530723989818938263604931338248260525912465554897908182653558156240259666956479433977117298344090244011716557313301199198047990586926476763184291452170798728611727644656312076621314688177236277780049681168061876022976028497959387137744217115145051522521258156787184994371844949100075906955911551827587350736805216272148331268044830649656354687804654029462147925099258961304918294245382112241880413257264910643027313771833918380580706010687622613253412294111670017532735991285856037247983477111345001362059877676190535028068878210328488255794383478490496077732088128496926217211532662069336033818516081278660862028763424879659805617706939742312162889988233983914333808401871891748682854941452975989118710540495631441900251564176200990231914669286542624275389653728903243053161564044480990370786752346132013874224488003548330896380385754965101415080859799039905198573578352691166664254104120651577948722495642108637694428579214443999140641458720555280984308636906697027079091097629987643673224555746254857191494787642702030923988030149567728342425081834645090199549586419551269704857689892761796815277460824081482704392914262069186031836625877353269764942815728303113555712184203019510350673979422544153148261952698159737665510507178796981704464887384705241672694485402596480690726461364879358522373742365753324269792433381327522054084422041808463219254191634747871848904127674500390676632368849614122073673725009353248103384346452919507107869688428588999240856484454505454106819478708951977893260523036379248982074649106128378031574396468077676208277605759467304684922052086372245916630042075339880264040853180711462361444141187828888064920890682658619691404217175566076686217901120872790146544720682291017519700542921091180702028980353441426948960734768425417564912612335337850706637222221830800265785224099689843803446428719488034164173097914626418758721123531841471736587850932325156559892333903564268359316064462900402839843029168487543870127840963843344483636195582356011727779974626639146928201119335224358385323605853085110288372763453131922066106437025016757115515405342110305074255627819386895704275866318266852721723299290467563099798942289555438110409026153479204899411733114032303624112718788136472026499862309879741581357135603623589386799247989907536660085925261603090915789847275539731167880815332898521098407826081279842202729255877440759534450748287021807366364935202175053088297850635838766240916998562374417134195507906808893992292827450053925263213392534685734962574492037719786617763103654680624303767487163026847489585891493253649748299242000356511581079722191451343062279576875139683163957667828280049113222252054086163566331857381730646632041002991484869630611554164015658122411504668987213493527171298582820994243806082919760724222687341097272460146254303205249530127313595943977000543011401976811545411019737376605645446282519429933626160342716333006986053262690310719578264433494548135220790000010983145390118483284886996054521080766133334475353583255785237323894906242906433446706885371552324908897095383079226634702763484562167783724336373924292741487986449535048704395362553825234283477029209614860129727331736877830024549682748154831551984376264256934455447132309739136218992515684772554404397521717464171641786256703155471773934164772447066144964193557854496854952895764921050962838445906459329471288900093951919160175860367841848569327114968821565994954181720232066976491749649554826183872098154359732257514280381697362060104311350685233548314375069960015428756869919399255528453138509621517007663929494578969097357934812443006359135523425943985366680645345359297906394538085814207200050319771486485809972455117088855055153182293190774580118203281617892194403260439671110940825786749327071057060562881766021387969395896270973282564301033349122918669366090389428632352563885574135185878805735205024834399523425795428028482528390866456736736942765804265183711059723825716177988966018620583464674355498449517260844984887831757564668746130129399119289000969633071585852507861336241200099998012782644103835771217113061750202837069842540478926196658666103854460082246300091474260509231011348605140871828451195088210296313942739084956890707131287071067185734912456525023446167187427977615466633375951971555894696993225761755764798648344318344756794024456745437442360631855005784749515602839221370887270898576829152110681869363761372105914518586706890398453946931745130508560840876723675767710164145755769068760344572739203725012232227287241897538172846336662377732934937676392217655039819358927913085958435282477569745129882066605047646115832786278691291776237176041400075811291802851287403394604723996765714596993490918182627320675939301990512312315795139112428909821215810620836561627280743944467666110647287459190126332118009677825057107483376924893512315491203310894515133154072377700324343084048586898271135039695310015806118696877095327690473834804052100988376312121496532211106741260207205404295064486390609899735339253903029950554772666045547498367643349299215309969016220509738069561191159257939902991598261091605708508032571765009360620809118587375193636460984171745093515042554890288062297276887109220132048140005253697654807911375112190248237732630369759814490373119838981879312086212241025671653039745777820894672310284219836402017512404517256758601105535160505782448110192885170809664537101994997473493860479652490698438385770153711923189255031947475280645850177438961241925754071699504191922631022556083988093240390837090857477313371483494635266490418524563812348341965975665936885949968260188524461844917217245826615175565186164109839020297720996246329089616611155966798387143664715057945708754331992236019169387067037845264350107978336313035572903818454873895996844980835592227650300877475591984586468387589603386953767872777905807558463294291188884149734003856682264768815299470149870892304080757762167807138159301677110402533191171864201376782397793021094838983020492042546355823734800635511253922244106330882424972896731871145410088831849202810658730054728087638537483272438296011521682862569719482884932562226406614452859010114746407561825580244843929869249192545207339276612229956233925332194878942229056765264148807492563993364454975272100507926564880121847874856771355031634772141952192052483170442270096306210420741510824764656383651412368750657469375191642551581901189776934720175379288778498931876181864854093165059970808192377434072400102930666669274229314703612944633095915909091018715655133310149007976006991511087272685014696221608126300695683921390865982702802857143477691860859560981840839375698775331391635995997573869088090774350638795427850595358474258021146795922617744518678114308465144555739198444000350847630579728409284418479624173684317102072360216215091551235579106940473516397052137725528529247807519980534295110378096008411434238011987053456264473415865274928022443359807805726999289138073068940257933559170920566974594556529467115399227745964440876258802872860785188343015344745870690809062579904211728455304608224535911060846749001642825301533362870612280895917668019208911693816236589414218083098138225130926754145848448918198453572890679689926572083819501902444540749451803400403964675548388768382624931596006713335484831956058552788842040860133765144716928319164329932330792816260822574932800263936657033212933876262619276176322581524630851843373012026440248808367825617358266304095274496936231683377973966491217038627588076562215126038326805906729034390686286196596623258921897522101677489360279346710534545657271410946793043958410258550066944037028247875200588653298861059685609719637638891180687742214965406971134746161184667033067821159240788723245673718922375054716754827972273356295704153037257721070607198616338387860107493607473716425921060592251950261844309905528772468013392299268113079577152343243064309524515935449161868731054315340874793703301980646301906822765759237890864543923258364183777193780565473781140919044788261415474113654396595927420505184847645368961050156954341041707925166405080078841858754587642353387966115555901515410855736954830410646409416821493815928363690313540506923762642857779694715679782764956689361594048421935578188345131468811998552828710443151117714233514671118947501304846950595395327178177902416002233561318276374983246770081020260202711564230370741237598726445061943665914399231756549691059574719388638013610581450863828533353968113963414259798284157707861685127491140828239668029754432028732937109346041331726592925464276647890109045721739828569100247766037882905754970215020537566645083440438827724331428240579194075691024367036513322166279356288705143758607667812065805538483119468510884237824885931914499195092354877971008818647825170018135348040784803117128904690112622516221111573534758381652357409512822578572801740692178834492071948240979928910804008983581496589159139862944333791795606489860464154844328912453406655182451635162515507074851284947693012291818920253374712230338964792377022343748644944330993206458709982861155118299687023945765128374901511136998029182932402783901284619024520708597951134001329854216780424687210449534725668330990095703876331719093794447245375067734763631613118437695340125557562364616820123600844935627511201218772948506587106060363795109742027062656346373494136648221441582664230900620198285816667128667458682705902535919029162957580903464605670712161674567105904744485976605177291536321796201137860301675820321690020085009024233169283007962239997854270895341642633806865971614503613226482911186661866322122708160077085337343208790214830835615178748528802529875770661550524033795073160551963009638812508785079786516943546462197539141689869157225596817665632374051503756313737799820728730561759797144903387243142213007364863343611577570661206981355422242914641389259839535760981946203042716510175184079497587948380706098556122161316901197904875178058877422073819231226654315734300012169270857097094311855980683375742455698633331799853643318872387752053775956418073301791663550673441582897790194138455172535871229934926600791818203471248797330694099435383970444098253829448548888089917788731539822677692460081066197745331040541548799755785317814000945889408511641563057987348632465257152868077174587290462340404731176003059975353948543151793171178061754526910055229574268990028746794739348216578929487919598084128248889200590631614628422481625143564064442387557279672859967406935592382593154520680467902572866006960384151099465240504689959363194171373459252290777598644041854492814450629979550568394208350664038777093288779361400925828084889715306773030425551534683575669020317256084920082081601441160614318372970908278887659158821297239992062605195626571960478349422972763581523656166633947436331562569960826418622076167529934202126386632203354557968181092681882745641591059572193900450401161705028087801979666569097616343632598720956080689573531865744649481246856186882289266687459494818556922256746786813058993264071368224098994972881139730185216932214231189757438717957422701455885955852841656732509775130396742233145888326641798174145860302174917099115052407296646961881044079501014709176234513133656925595329736769871118729810069693212273346362477036783593627794586234734296411805461850966341855024537859995180043173947141399431004123264622356942289420748792017474682259209409371582817167746323572780768475479534911125965251934010867373645361269170372051179159966204657349541735095144773954269904415522958795450108171400783214536518007139316622566878958227137191553215624190705778748983945869898539239205553796211714339439896155331587025058902927433279108216732990621561111827653690302882443238628915908336162384676984261164617130329260907757867554789256607280611342214106618037415998947627716357842633349658362379621489610086937801116007469654788369671296351107327413435139006368350393334170203757432860119393339267758768774382893212871464590098237657889570771641119213043108898252541622126713371751203478765396328068516245246593154727059745846309261113622337422247597884185114300866019885473344241544877569799969416009043398984464692282113419817593860411926931205682886077277652217607583048964435914955642254909582798174925543256936706946252048035848683853657596857122711674195175351881849008305657165348618622218677530740147142628009717299973946121695604043928662517854914805132631864397844294277945792721950318551130924370320549398301812532379544940293908272733992139402523271016923062165360294713510091651250193664589456061695453783278626271272603238871097073427297282624712566202634065003550333911940780231873817936457037572647395491265194750209254846733228327225615184072590336937817743207493231643598250361103859594806498571916930311463397534252176763573246479629024191425576870382876754979078039483454040309648083076691603726481915577120525375927938330944942041523176644786002119334853604586028678795582722316185984862737618057478517540541811702218221582483163865032195012573472336682862702248114367485508646241117742019305593073140049745934989563994360351305356480044198954818427184138072119998339784220969850769542664972026410287849869590160875055899668021206584650670696571186630704473080963638953152577467717571791108379267560193880156140795187363914360382068570307102104533331572195528305945730897525856169476992370679009822528216184326792452110858942551378367347148854274196706571924273359735454130662058977466575993300629573765274176685610128821672451229182996213037540535394839387832713283635495323545850044529520887934580889070233911365782546755341833914200131900490009308257071552113321098898435699804658484875800067258742228040227825698463898576692333952133422229110790163231354108981579212315090156261788245477905065780068608536186831525522181619896264921594174979037688423401116712489274165562722060724101756610998142049340001599827227473985481284504614069646152572061912496313908502828041330572622990950571197765847479397008204929071016405528009595679627665617531780883008627774682517697416305292597160200140083995439198481647578073306469039036144936400290536275697702949522922333608628717474063772326851699230805380657902169095433495370480405874454643230652991589818536580276147722749006824462658576728986083859476232472309827496579021938173845465563407533847533678529249790267851076349637154213768257958063804638910817718108076625014093955479449917637814348934134402861658101232795941697814895406508387422179677110602363183730993121842072754503938815047034115182203159171357288097944386898940115594436237259055687377907578714387744774142007721672368763320962171369167900941299313259306407289081583325869056201992417547214410186964508680751701262089128468272250052478688785892394392351104780551458733751191387548438394040001449750866598953600821396801214363472931734084382621191580665395061603987221211204583619920441097166401900436144972233027457430370796533782362869044840120502813934429625681834262914492439216663745390957540571165917248601761612116211662206618847625168190207257883905810340591512584376757181224433726934136098244848659472872366113420848565104907369308362571007950332079940379176806005458331937451804571836857744432210497865715640807033408508892302374274513605354908428970959067934709077600927241302405031891686660778980052841269623618928971244728391614442763485525751361818937987801296718314430828243944808186426990385467318821204501119333904468862511738070871426707041593346597563276327548084115423135671841065684071553289817827382750138763610473333537145845204152300094047623266094744907760752161466753852519494545147860644007135286341343727693999207097111349511975455909784843533787276779487003331364481778849315455024744167863597989102034624216448377116630036271335742852679177361226322927970399786027064137824615643092058344565049936000364656778100612267306941086879347610696853634447471632074611513774879602185970144869516270723537925837899636284621514043990237697901240207802244952352099207246020198067697108846609388225121405559697939168613593791033953905528348801110002390461635930089419297605972101341133808906227941654128506949943141377079706598191969572167249643456792972978786142828370158070664311051510141217089531877597015104485816594196716072351888498843386578839416447595066774785438475663538441449719831058078090886726293305572076476013914914323337334922140499484799459356807886137346340475799891261381950846546328179350880702434737589738472741311673000683686546883731082755024029964190109921743133826942388664074040288723850692479182149000625246283420745073239585049087823098600808458490316795794500289352810724665472889471118166181214520454737439877346243581057521443066956747557318207160814092583403673236905446426885570714520674465685261835300053720759974372014460224192673853170089917360415573542714421785919377330119313315944799569799994105653282080525856269475023997959928338735372696352554002152696939398346907923410403524390019137056725645091218014998967972672895185404240469967450772359769808966807970585263976203292490184689582194840507567866014933266831465525448177444053601344356116817531381451747762806223987859246147373729058959147409920198907142461559344883781796635989797985663328627776840073078448298686143757925231973699647726661964997477830882938915743807753085201673715975326073138938612289284913679862759845539365050656297149104444968455443642711275528065497765318830809952460401679330386859947472612606225787927976069630501576747283066693959533849918206856961380142854417994077324626563774571259768809581462525580536626128893272973630040739921281658453315373461774858162948422572829075907410067640364829457470717825544092867640947976759423998384072328697397961383597663666095141422528090229221053063024124339755431465486662257357998816564897938474135431148169693890958935480807674765273111719952978890674506636142157233315101991505010245310712891324769331665154223884069661710785923544877598817906751595764407409167620360851062733997439504486217026901415062840196649228003733785660539463233955521441815974974814924185240713495240567246005414733231448130891223040654941496978276110925294494644962980486475587276117156348723379451514560697425069720038788444593050935538427090988441329160809241407547331329645568550914953799786059116522265135430010718166046031605920554235331400377349833748297175068504164127956746710285380032936181091028667687202448998087131720155434160262724583555578614403812160092338402723716073580815385915246085190533291788562911745373631636537568355046073805976399627859386323199115746699434761737216162008365869412797241669841232958620295523581235990738194454059188417521762122828085160742050728018822934989850091598524856689916854359537761500213561440321872553086324812080293560113244898115852096382120207500351611730550329273103184011649229372773032539690125963990899281747481097510225135668513463921165366633014145738253846971751078652566868456756976367251655651218719299553970002182107869173634891942597390361138471290128803046085349538521538722760926954275263086040401380772935831982073180329408644471812408702124839777565495684878753845788770240772767190220840713906128020873282800215699115872629519192186044739499149330659299623499215336749420676001162413188391734479255938080574064434219391105415652258044599873055688174152756257558652650605228979108173811224402871512940537951461305356933740685098645060288986613892118307334788750232250555826631878228281003975486495710607294199016237094879732923495641368502391461351930290441384868560353891210224428942879805315177922987084761642177826769370231702080499930110731518252791465627674978007601367224890659237483075255459858168451326621555747514064016864653817888710917079338085473518364939229897562449329381486762917967109600134918678970661872008731300158762578816657226533974968457591509981075724916875506035222886053267970855969349294933870359994320306431129078298489586467702248456175910627518171076379618098159778495665382542566273374212674284425464871481411596871433936598637649139139261739870523643969001820860806883841585117773978538533535401420362281518917927355886496523361356264336268251082769841268813173083995292413351110849807245584463168305382116843081353410119515221909473562913022251608156462123931838413811848172945529556621328054379396194195915163868544391940525841593603022378813624828341988372823277030952078969960352624951693632836164500711674973191208075362956060354045501706230580505161617681072513289139980927566036195394046203524551144705466230442676644680221763401252407896644091758880755919293045635912979553063009107432833606069022895282753975115067300105231999566470213790506596521282198745515678543317427991345421193498592230229653366063056221520663170121918783873942922212015818293598085783921936387016229773141130356894957392885825677460865683681979008448447521079805289171799894496119726572281410283091554133311623489787877482083517116037507733849338025616461207914948262654456828244547271916548135262423262708716260464419844702249495586276070504073242376872130034514908847550391141347938873382676291177328375879705384413836130728820948499765268808291689317734393469457111280525269974540323869792706432236412331207194433771288155350705344230608955684953970336719845615305531198722818064845101542703763428564559158953071751009873271626813341707512668354455036461397948666055208234193171478039533547858645611417738744831175428221528037265203093177429272556492814919429497834761834447509520560284065174699410962689538682313778968790200544273429457211627622837984305450531335441333886041515369436347692803185027813145253592989005558453489323901080163986842949159054266558265057361802685072847950699167225270105702841335792959239472195276708534598692193042938972934080586231417040164776171751893452131052181586614202285567671712936693655208722368426494899529742604305045963982692772016780077700149220637727193573209563132760958669327975769060771187641203228688868337305856887639825353233795796529423477727881360886209508494927713599267150778719264995572590862889901696761590387398868011585540291816415730604216892506092176191890798587324852557661662663956684415226779159500005711835053949315309337987012613594403773597110523527003836071529238382069344995243278960213314909500135830210676210334056546963063287722495491145979358274281116796248617737682642378065929516343090906222216998913329598878233531786601309004710906987455812872367797082930696003840379429289127579774356313335918069253233865590557624682524656629698407681931329298904611881310415971317321840143833089844763022552031913699216703674957635822657595340100751040002420391254685103569508626025716989913414118928299512738425388475728056134866912456310684870081267091298501582192831827517221710046166985654235305205375543756900220109696303305485288542486572486976718865403960123016044377567188904776498717508165922853413327581967537668454203837277896046810577529018577361233379773339696862452441471930307320710006225158114254833790857528245131281548618880610242490571834857180941943807149326700586808366562205748730265744927539027940119815689007892137113237968696778937821250185077126103521368711281614709760718933169378665226313432629985373084081366819863471612993541560995918184569075825496896391942249100990363853741655001761726991658194116161324633551717979918282646165083590672266050628646210084499559319282078126795846305425494882296722966800583859139559859967480064211386013857459948401089853195278811853081935878944789885641196426589908119575010234213834598441703413315930915991611865974370679030806122158591161422459158985523295136595361537421540881884861384349508235225385121182761378240431500906396021356405611759354199334500765743874753349757047818520555660482032154433285419204714886701311754397068129752405066028940198128082078954198759896897754082922220441355357284278029041686017718463006460107933661381071045977406626255816407391836426206174887398642951477189807304213769549085711837064446013333735848492027624466762239970978414326005136635113906097464895646907913062604612457498663831336494706251049708393833252189598919012109224110221724037246229620153041877024297400261102751950052823269761559107646279708977643675170034255954887178068262091220644290040792711966067350650107250083192078516332813465109837444741001916003065987962375091429902641516168540967298699459506413274238900033424881568515354351216808813787034903096459795644125347911793542279696399739349111943091183400696371859348596421015695954914899694244376566523110795701444518996562382940453440566444768821836660166995488342219189959191815054988858622091508352703619521618399702102866988970323972349305900938380754392560490753533346490214309823235377232459029712856072845979878689866785415386660112144728960064076707268586449502151649779208503740675907041205123174513328918285127894689830194777704593402553161258973071845195376574251253714017384381287775509263106653989060778378271156019913950843162345993836615929011031210950055733816626827933825565423464631668714580076723250299078951694591277782397978021554099438055418919959971789107605723941813178473440537800793999288603450256215020348097239160990202358951620490711726957538188798069325090065164139354940330273237652882467344007201554594980877290147472578935118940817872919084487505488402231350916576603009808645561193452821527597875780161834089176519251229132351304783532790283896493758873498218616374468094198321007551495550011065919089231019099075814439352364241292811482991868562339241792552951036276505859532782354224677059835786968880446420597967992612799095103266961986470023458197676767520036921261524541434260320001042544039391069063237402440705117960689025834333614240646826716331344257615583980319817684839769269923396410855295815720775054236100993553347912579873710953709131899406935594938566478234256510784989916487430610377278482217301463555076971900364346461572505027912315962017730222545553361696725223324889293842221533275868218676965140198474591408071732017215160161870834096133330526256226361126795639123101861646122622542873137845009511089427154911718509196655711496465523131382675723687756105573956166569221652021447845392454873083560243255774970153994324889738969293958392775115625728486707735084414586571467478622995437862409841019224549262495431711433851209429357351344963757677881951553042638088613464778269173378784848027796820745034186168950180220746010038186915111238039268934575447465510246963183129053580374392007521609066854732460929820864567922721115759161120455152313440843623988666539635490565057823918248377952250536004377326670849689423395410616923323483147668502485305970955122277581064356787919984254976459760646867220837307990800943716507420757957928829362419088238957345257735546977041066701615865452213240540378985057570437155038797167521855216442170115689209201436473146003769656265603598474427158995764147769796553500838863730405398476405888859783971231347806577650019347817869457789815914896119942628417507834420607085914179376654967035434555469267852340568961829153123632040359959991922514049852099945343688887069523402374955771623332493159062714450209251881948888106561206262338002662502602191054686769991633009570921790460357042287101273789959064512605467721152784927902292910983124106028227332171955308952501443308157242538377116983390506341538179092016638204964794504061394953253152777430964802448758913619306396767400233416274764927002301633635889243948133352171564524917281841821443691592784328332909160632791455018248158572319045407854809296562787259003204176305161983569349910222504234127161668400623830613798220145988474667594128905273815369793308345728001132988271290762272464138621468137968576976663994380837098362748061351864796491301030295156675775478707540340155837856980228040872917184902756187984904959934336968834762281316270460279984555234915022902754414880723141107305892555490026925303555950283792931373780540139841473655006584258296828832921353815357760379673219182888690869208786521361027885870295589559861984782824830560226904204777480440900173639149003214993004685969735835307898509622007085293252857875840340129288137248480345389176334957751706352721408672248733172841474600387867785455333333423651797613792953743021914272045365098075282101623420868799666352201695844995929451146893907073353275577749527657810188713953109848862815232487018360674887823184969503100439748091874558385646226629192522601265746977459814916440069331764086237933955732782978959490237926423117572322244180226391603679554369637804640763850798863438370697177082937413570573062700407578691064434636239721596812082400226653360843396891272991718390356981750633072393545655130454105912099187532336257176438861479644135646989674969796884836415872438688429189723886710294403233761298965227972114064702231065513770472885913884621048972673053789036064914287209781825100056449723010960346781186409747369143351764774017552020092560295703519678618566472414654117475189725483997624997139617412412333201693010349933018858948440037829416304993773097625835092865517920726403596383176460612468863509904730947838106206762237407497931654352763829397059211121436495747150846339201882026683119794840804173103857136905269938678982599478761815558426657120751893763649036604113176835340147616413289469381160757698992341704670262987840263737875489319988585597050191515134017740722570532139132800370235607808309438960368093341624057666919758033854963441667333803958421203199089769267018576950947933630190197131627192275261321081258660994469164805268211544328654459507475046876037851176531281460688671880334562951959464236662501059227694614567354933947863800343245472956647855708032059208441829370420772989863430226735924926679940035558916038848239954390223402048933842834572447666208472078154363090999887813654993087887150685130940919107421820818769784939015900791914523411179423933561767123828843515532152117381129158717683853483627988301140551419205980021510702461665774518943644444499311066408339241763889064683744758514889383609978184119267564244573015772322590539546690198435531484307122745977955061763334459611546118437615893878118360783975672530065655171002745646444200085971213871933077456749377795935421092613551817201723294048980145537912523946048270569796298288730933361201327045353509872119020888450725805545703642637511587065593043049756480762221761040323969597472976919906363471787565049035119832068095355250332948014910862049856350530176516059085454684637703094958444119695040326156304881425963640001338697387151663836458193332988095667232321825643266055044547258333985831358527435722227438493345228780969475117933598952630743419650330921368831346094075155516494781962351094500386054876516903354783033639080569532490954829112971351121645338513411063256607673915686396588042253445501866548832646501261851593117665530145227516593173549874674903459152749015031970421520415382875251935265219152527410271668332072475387369039384771959822010329254216599113459586516782756402142675585772842503447468432702027175273217026396725911235106112124318335029908997106042973628324429069385306806138788739185063673177837318908026756436307762557395763106089704705912780337758797632258725933124718041358532166017579111525331054273082215605448471193663678494145982974212958644063364612217112983189156996748578476682607127276455026613237606628035467853878947603651314541018787620559119510290716793737288395876885490521226864578065680528685845343937564905642897187402456779089693858374638440343234839836990994190428474779514428590810184360664719289642786714064349662281597424624352800437845757745526396523459236929019902181609864571632081345929965642178206745678164384321240065811607092671639718758145799121441537810490546238701775887926103160788838384708252817926024649142881211526907241461003282173981519946887982399934521985784218425510637432207184850305187809065785243376524754595913355734249516306073989210876234407819346613396774678529829924720551963555417778253070134571460486118266691988527697547132504976835490572637736451010575473181490116878068171278257286624783086949206886731402480948488054229476271682377329233636695875778468525015151419949526100180080490034147561213944459278262172346855514964623850699626944955820783627547849677630745819118839352091765515726607290380433332694131498861781128683902924494307013709666039668776393754907352564722873778406750470589385517188583813625246818341290347647271437673132164854799459144914803859359669584407848918938900624650419991585092666316808728567922337251093174644207502993437088971539504947576009518476623760022837735202631312129263672605937337635678449384107677139090637845778297742258537505128552444181283725000129343605930493274672379810169818027571703196899005685564528931217321371559278903808391289316004564086101831489588965635804572580108320505969853084311026786476969788706261575634743154805491810846949467819914657416980050362120204721511476999367288985938604159979643505774108629978652406469811338107683903168061758528962554013685322979877999988972233867184697597207582667738003637352597584287084510351427007420825523871388413949048962899638504878347926670572531276538973993879009248146726209555256170172390875785640533694341017755086236981981470084342572382966563726769061282655793482773906342736489441721547233812449456972328539430228361776302589286770799743333677817403423439418817805658311908388089584664920654849042361466327150289607568652164336271509403166459550042222819236058630415571931085008195716063059475111421906110042209837563472568978034860935400624962835742793539745037889529908308538188182768833187900997292486850961157313016744869780796142483411151918004286798353597420533974505631703798477441103344022043414806439399734932413270290861262532302337832201841229060807642852194236709359416810195007824835547495938573153450096947817915516626335661218582886153928957322106335070632735415871124180434746154834748446387455545931737026541931730571035689629054122042877753050526095359114624159835205807570634145397182728434581211469060499543702933390871589543622103406729929121454176310697244875722923285901498593136143021082736073821399549702036817087817207849736924310305206418954462420556308751305430397559318925189048396057561359762969198225886928882800080092182853877454018838626037099769709441420876459809539506857169819388632587290043976369376413123913833288976600676949879932522897284171121829100684704221267334916124023179925402218314973138036532510266870906896756069487562105563453205266400428512168005751945597525556775923524732324696368599522849374441529984478180083534353675593558536289660983715189588879779633590032424280056990795564383613488406378545586601086466898906948895035382725028189429444944119833051085862144432741437638834923336225428679405644841625751340772349077134293665693904084347392206111758830626508663640456370474093640363314805037439586509410178674836477880964613660451012768411463896421095826237483162576184037987078028126933945895293282743103600201045586847717134489805268875278332659743376654235041803133880646268826503529084530432279282777153365592332357239170349665330513973635396937218873988516833169459936962510292698422518056492381284818921889692890475819712797424879718438653227074532365180212326598472739489849052776411718913662536678941868167786938216613674755524729770468214065288740773068392821947623830070206826112111513213211704215074282501752330748858448678688865342103757355049912956962812431642601844034952918342377791436897910607410934796146486292985628459969434286695099239058695097287912011808586560082037727048213247481710405675424778706770907505408066903814848973178211842217154277351019033283694003830944688568848851277560533059962968204326824042679048081292834888483162087051024377901284751607431992888297322984521468503074531630318928189693537670287827047569121851270201115227987119160234129061872671518904589972343700186291711419356317030764118074475446934650531537496566061959732520517317912448072558368218973532044390161670295764801399276400214000147921534513732846083468428260060292544214436851992759318099470618786069226213577281743287206286156585377170022268384400154560364907255681145435711969481975772681631542713150846858081300399888181999373256866891517041834703635968527962067654232045661570772479631431504385541542523801565122780556223685835590712462077506532394186358666468845562729001028301521813239447361525650512346529907356702407687022276048940734860410596828085769130697225760891081434309480395411291395900831455494979809691193536683346153769671577968450058288616177832329348974046312527913458520284596716117615405607749371246038646389288968108933988742724470287535583700883753509033556576434158426075170039413400937880346585620822116245068589242250505895429126355396590588031837640057440871790402227179614904011079207268181754972446130977047598552847596679160406404804574911281845954923146661308999545991376036984006874009400789173863943300581729508528798959132562148699544667011169662273341042627731445660902750367796297969652644208316289648947295115270652406941046378401118245282784298675008314356798956215312096794790196061981178362998994704723914438543008571998317497899801181627975016659242036155320175526855965905054132584234588700167331232717257003307131710395565478145013344157635641985311511799454122667959420355701852345027903879396837552562620858673185125818136251083450292797842412144184802599524596277089367412495378051060060774601057933368751277479964710920312422121485730705436463077283456655779130238821960539389756548350646544747122310468148718687615995275385731415180278168751744890099345827936736189106893475565283555283575040308727711805314729812603656665846727922369242171350653336476473619064478960970973345381299267049505614640862849467848810561284096648289439278829012811228989762824225007866762415449591266480762648779649794647042154618618753043536922788944960994795028852393895991665571699207013124306316154146775071100788577279107026924448298471620142297227336723691369120338971928917359316264279161544877817044317324379573139302506301487978264214421304945751402310117738169881515802302103565786899881901896168101945395094743953225312893024182864432968576460980304366069015593038035486807112896731522784439142569664742372575608661596229584788499617563448763946887861147153580082932162478935124361093613897319822684716182283415628712779207952371468165898129565228283640393775941169721257940204649400414604542464834976764655733237397906215944145319113432026733138497285335451653811126232680955528746555042994386415945704111394022481058757304781554613580719691590529348102554711051202663710183136698883096164529116868632960915182435421589544570753249824316185332703721550275519733470603392027259343189336340383947650581955772190836805554275324689511805218413599850251802867986750093511786593175872370480578934850830405648820972520530371159446498319726633604878797653256673667358473491170160413491594679645364165709226094041740780807433078094202032846673024987584555605108063084627105076416093235519868630488243659559233774548290415605062190159328818863248991114682641131704524555271204343869699609087903671917852941078138637385094847301961140563984426817338100936350511990425680694755252342999707564559679299958293528900319297698766963232667449375976747575146941958899654316890188614926037347298725256583923853782505163583866437519292103907023761413064152932732009755354926884386321931535427625936965717252493121122364669986924804316195054504590233420903100915823406920307207250854998212300493434494371595790802503185564705027040481639528852751997338410555158951409035648048575520160126886960429478208717883982894516662090776788167963615058047268330265075680097172588492102380536533941365590924605105004531179403878871060273150659849137374218440242783967739058837643953515706442621916233618107092207976205601755755874387655480602120709059747693638939447267702025092864414476687237642051196519108464609965213380965166071921468469608141643711422332588207183734781500288512580478373033776416645972612759418811573065526100477645757339453984541528079676305085174069579874631165416912620745049825985050872186642174387064247845982666954425476193736717677037742168466289002284734345693086541143096700453035685957866778798683885203690814301701390401563160011791005278527899987844667683879100916482155208604199634864213091454026352036756648157494909727773551077112832416107164329466090710832980572346953758997431769194346322910581268334940271513545459781717973500037454918007100562469484092056798886844821936604594810297061719318623865017755202183063285881296746410549004750981101159946373207660959311085087448684786336673957952522027790911334042553463913759487013787747821803007304982801910492901370712726566651946666032654245039292159072499676319433314201205323143148347101158544037247298929304774064694859449169480422433267945153774265774074349549429304562800543322708625488172923792837698432839225656409496355585535557526204817001610509097181449576720822232415882444204976451887827307912220976665256208899258831970710573712830704711171027702779796376201329797329041901746878654213525353689064358621528056112536285712488799843546032746630607902872778476259264849442484126991962111149259075778252794837229508340056645650476911959264462390200257699083667917053503728189561000695258084269045904367238199637259434435201757481135643702294136263406020159270277077652119263488612747181681789349890809973420125132370171298457628392573283525985699486356463261984400583215502336815062462496035797236227152495861076218112319434478615540367262920037230602209382205253336129910541610449786677698555954648841435500216970639035415651950243382735191191366060144263949184295040074402599081152500770103688589362539447742073952030559345266267693335931982894825615336774169351422234349155548334316102783667754166135646528960275835283198033242608389361801097813992823134989150370084563756886218110349578259920567162868091259561254560236459088931008895357292057525318654114034532023715557353883467104953062250258635392215684484224926024197910513566296038328020880799177038431597322667694437195539712845315609776188787958027160217462714430190545338246577829857282603789455117160332376543225185698894056462722769788071002401689983022325403418177786192926550134467618976220371651455580079477871370311891458884020746661987134815591618835106598635288034331349136591272803192787490001947486297804578671974450789107655886832479778047603070057087295196043392982416238310584696221859329355836048759331183920595941751826173192242050402884240254803168765092928920635068416072138140376127680516232000529480845722114783540848664569818745052173403827101656507569797605354890545357872974811853569513707348456478079855619432785347330751538679281962892079237699411905273878988464414248805886838055309708762282528184423035114142877927535926305200164522872624234244700930973359110559836077138533194442311249872267293782361094798003699687401286753963137217290223696869570169130426359901390725510943311393845053487146760370493864331415113101911164447952842767463688806233389433476137595016624451193713540412476687371988146391278935129895688035088657396294470558917282038421912988934080677952551843743025117516305499566374005891133817751894211760344048476312656388206144658437656575787864360397955118407684923116959960121230258183935135283330851891264206406552787815534697357310119930970324947653323724209835767310910898993583720597003057135378478957285936872297476411776137581618561940310703148065133422198125574696066167562269827329280244173322589992200512918131609820819551090620266567684141070631066608228973758649207534977668402881305859364084939709887126617635662101121907401778532844400775912917311636210245750766704676487452172386920300661467760524001339411983679038849876517467568848429972284803469083992253423687892552529785593807866985789452488428765209125955099982863427746797690893683386503693970928991729317043862922678281157052166360212896813984476534791602731293206743827255952362409196535846139101599643291558895521437853422964088419894484573728788376631111089303222790694212421545612909224704966644567863571127331467736366408176017298546086213587965023704026273439641654364080132108598943372850491696647160555266459225104013557033895997717025542775312097825246812379184815178861464065254844530060908779164848957631051345452831104830891198109027503102726328666078480621907008655283934399004512319715796111077477155192845215723479006706401607920263657473822383497332784434351067023770451958263881499985781239628062407126254040360499927944869408927770915860903896121226915339182134909497549447344766996278942198248575644600324516000597406842584441669570577056603351670084885301901728106436829351111510495343529045026765688840492770909161691740923461780554613599804758112064205411839972254348916650430209840141501876593145753491773449803056036667687963434887670067874192114286861138781222610747720041437466660921568067504413393246778062846673732402043779460138059120875857989756055384933467148940006196978947780402739099747854318673830379082462677507463596032611375170294768669697171079087769488161294111885263599937317951201461528610265974311044361365292806733417629682612378148218589883796116688853685473817767480248709846215786668398502446656938045406545963786672034930107682192406007607935888889610482292085671185299044012724232131898542014216226744353231662750810258458711121163843173760187285772184434178732403332013594446101034666514183580898306553369520010087012965486467733327439182385144188235328315326644308238555443613365862867073478595448249581100954798376441982490444592709540161584322966247168174133815025130958511245834747745833073872377372326832094410467894929805944953601547557271610400489062528011421615476078928547008686748424997507142619277476830033774607230009171006814821836783398260042244911954306829263503960595943589185678077726775676302092144200101778407168928129019209250738411416932627754948512174536033025664392230835582251703309952701805157992558300222571284665738303953421852295160996899570225527924703705549553546071099169130719019025852482825263133122541961776965707456483336949485038019093239943881719144398005866853171307695263906831326311421442796599362888105869521623212119671759065991059088625875062039340861445390204811712823846213703265768469324121208393565778045723314925172544768907343549426830410515460391833954535620819717194609316481439140146431321674299970504268598081194887397730866311755676716296611766269511974997805604292651329357390049247630127195657502169736374158518325005780577911467543039185346026583498011372245573610210152372242104447282901877928861333196555083797383728339886130852971644521077489877934700587027842457293276207816226531006218281672122801559013182919444962650990474016992804139675778514430175940790852112282857288625280399064707623885510489466233716126318449425795767415042166658108249628146500472917967539917441708267527120717517234977799221045104389326838957674349884380172532616978645073514458439167388336250917003458987201296110284188579766849573554949166628492017201265006190004752478473020520994146899723410248542607476191705750972901457961046667177817324219466024477203301906540510506863381974805892091187916777736594477423542479562399581774294654379263969826199757912608163868885439031382128644861923208185005511219121008511362592021470486426246967583371970879015071017598363218918812724024102829931493843056515845522620805792023668216607499613396057722238545480193352824550433606109129028717405376280917973211413209418038640830858831905760086558263620804732194962471268677895760118156067307177052512019292777417491320452023794782298165900305807569022171913519078721740178863495567598321296967561188335291387871968055500286835375577215978479230481716289191290921672619352577544873802514391481439788070699004799286045366072099314759412425940684704992505551514867187742569406076351098767041104056148645333382252737346929597074331808868331729840237406943148933246829802399543400926317412858572245718337701740089819288893018565915809357856721773642720059097829798957835892444401532366620204513140189178915665464029644673997851492388392083146878777979771563465013916529021457486434679725522682657043371821880708744618589931695251377526075232423197299255678680670183219936817579012705687113823010088701321412459401800186631639149991250406488993096182367738567969204060375982722597125542108248049895871721643177093789590342011820758030620965391062465130478512441081118019058469247296690082518702214031180767096391543667320215633052284845855013369640131829685746082781510501462006527785198716394039485289451706808658497981845355969595053442547211175934335400520727626924920355531884751711558475136473296649783662103427482009719834924613989598047495598646876314365889638410825423746431886959214036178541303114815452754699096754667394262421947656622715777477948463930568341663260614530867459521754139080538502377448971832178095996168977756697172847231492266220715931165894021929754342439161697306977158740906635123620243301520929555297561100579192187048200098774922927382694136367515042048181541515608603921910439216868968145341741003243133592087821028147565459637338412109667027127921171059184100325628857417800096838334605790963748734315724433115331674462153651281935694412381625734707333467219791561772295136802280010694786870969959549134089674686140443660689315523313487768385710711978864532878181429331504361937072585735235886978184524209094659701079891955870028432450944597821001018533116019980424594763812335375567643074455097422406197609233404546330758057484252780952507470628757021821639107865857198147708784213156988179954058280985232127410324180738198479101079095797939005692694274001945468602711400890747778833368318325588251196079980432981060647744409886957166855248833535379782194776886507890856206745960483872287480182344381350823185468255822977952156461516541150892958736770768876777779886288218330431964324027526954553033842353980550488221041817065159917315015495065361342902434526789439988408841493838501060453949179203402356228016700172681139798129427391995983672947960668390195332980431080064571533172706157006992407323258432105950093220155258009932736791510290888238075827665036974400313054237651620734017974755829853169360009196549926921285837208939774675975834521285727608208790757027132238698883770789141285115233496589405499045333618372541667669200831870944532328599923791394220999085670933870368900692616432882432796178707288774380271708000653408474883904466146987713738351575804747495502537043307940463178350114053030136841315214064172499336205282655424611276906233789083245966706997851406778922356015121162574460604391560455195344787702729778947225660336695511277505643312859060207853078687676074194224957329637875476194753235109083804287464700379258551341588343036612216150562968368348161224853205416217085777088122956036019135480914891474059922960354446258356042777311697684940179901105935374957687275117335651367509188106252408675510008946341181783324414633671766459163126304540295812860697798071250034348734538222124390390652507521405951636511667531821895815886990895170240090421778770176826926441635481317024790616786155869789697612010227230467472429992607239044484370781323264883512525500077414544565357453084190159506644321663293992849231924226767599639129312952487349772924569540655060014625005658150963667298952726926267021498165311274554481139446009225841162179013240305476656062231834775542556490860951842801216784541707854645364377189348502692428759563262239946968834366602874534777152390770811070862188393439471607421170494828723657375431473242058089570132152194485915245166447614740590286887999025025681959114675589726971095513671529867253799178401130842494055300937064343604191191776245772769767710392443161377929376781332323895573019570279196875961741318551883422600093861896065133780004606605988718661568915163631629940361503287854549768753428845459950830241280261369264191562052826584935113277039320317584094891954900828935130632050421035132050223670757269759337082210218138123966358362253389095518479814217174606062831299706753823066274538078291022929417508005826518146196167369406080296773584630097761276486865591588322025440471967795533618963862928978575276613284443570809198587870318085930913596698141951834607482381008360286560133061753434607383480646721805296239526081351382985798815792022970392308831173952997386390924961017962497822899612016054215556397800194307808811200769869655737172861560812279998886120113221528181941698406179808666373735896371272659041800976808473488793868026821736249929298871708909853401445557491540914225811444411238380942545364985973427900898707234916180590982102693980828198965218483246366311018011804357512427105959207368839521792898860277993415281352219699082356607329670536326493757720823599727827151366475037826793817411568980791383807386946305723268610240647031680207867693116542208885497353782660248853245066380477638983620986740464614727613220908760856088929800335861357220746525576760703067500954731951795408393714216140196149161528781872972056084569898414649681897315787939942401201190743601394110609161959578645784618043021384027987515302114101144598685938372588885126509832030902025798127270893028787028940690841998627968377359147953146803038011894336056502509025540475431600665704443806035550348687077682522834542005783291067802430558774903559853813262377756898137224554779501247853909317826568726924802587935278063575178985360887428760202565750444809683747383499291898056107013172939912374148860004995925850203251042521144525005555963122003465307867643784508326126475716688268704112728674261575620623016202649199164557791393860351387702347157543208336217085889898247224422894451583200479835512853678585296590940100632481828351714331445796911749609991626040758299706353876293847022597345993510904330898745404326509190280916999530271867643089250371503725195309662399515416953026593460214079693306159063943585836413048247214808456044990826772100534752370186466334925034587604525599635067876633943505647401903174247158990307414278133051756647346587271374461210629661614679768529573675541164339275945899654989610604376430688592924255104845625773343528335684064499723282959138108445400542564143920833826373317193914560779563732217003152071671551068349947273886491119082746573586727783373482535837474436466009893467052740269297061135901594997789609514217410561461642532047044380545631148602596611253244758059464176174047271489561624231498888295147528490818172746214626517087166247437320310642424921943244444487110625748294373627920490038412146184086597376298179169490388437650894461992546953803565763278829919749971946342631258752246781939852532187611742208683571184141624123430115421360680934302271763666373723367391809578726782207941856973300441089936250908278497457789682301835024483554475580070729422984063972403963973200072774706673172333699247042898486018149780130160038482994787364706452172093261313371058366689341105335885704766349047202283279890422382537722193040376608042819497764388195270969360817375132804368238960160610707870221799990960333127581868165074934386745098181645981122929899815270908042683630632743219166281200989241669676245786791232565193222028230195879797577813290798233279692249668492426835298248719024353034895360680825067916444054095917338805311755678283312192807341229216367123154984806362483207718800670983459005798559506525192041623536153903346298301087683718803897564421024268048119588174188041892242012288308969234235779064603107641539199491516989539244631811713943113221827164714232464227942776490162405289306571320013774563975419172979229151230023167873481267955307620802779589530061718746722120252649828135306807890730084452024310815529028993495821974283890322300372081585556700858717604531480053843735600727262874442580828723802752504637343353946600250375166596776773710635706623103749759738341312976135907811305725181848070767177704972385890943814706915329845776150401018995517916311302390542694728714030405352049031878476359386557612027822844812434279046998213755776613947769807985106223654574224667130081411527650106489590768113949694178360855481604033304104913454018645880611642532106393012859800622798376978952743017049761286046482280860067473676219653950562748973920374181188630440125508911059761770371162187065094287325758434775896781341180869783440161763983465980250752106689631632603898115826420911131815957571010142147214589065733551383503355367748355849964016300832242090549159594740756096930701726236407368343217135564379985926005678683358215476099267790965360043126054635714552089609180111614408001335045448708718657082810492229460569409572941848802307447063896671216244390288605237157707432822930935944392260517003336113109581462704199085044508397539148986584632102724390426748385656967118577968592532440201164237951112432105988997267214294260340624438170975265399013752144584726181437269223742874303389364282653777513863532637235063771030569699449534130908440731336358096453022568026023201143615937188333984285777943723490942688075775445439482041008902746309677294260800592588230748092397685382682810234231097851054460529423321385318601602600445037778794074291900853031177897812118573882909380653024775799812947367222311747501124180821002860652904637545238849789651089315623459320330508849709606787589934503935598003710099267448933185667775316985443534349058084133508310765459074720458821305216011134652980040906018249084866619529790039127253959629538445078562254418898208371105034966363041709513255385055285786350569883433673005628162860296998701116295063166791476852128984121685569236862171161920482025735998512468638244891809535587051897088275354426109730765151179411207746356164182483160473087572092121397547475741279288870691712953059793916502565824509380547860260608763624453829304854610417439455525751754458657160208441724759567330797402309704136189759865965965016726685030660733391753847144416199343214343493781347322442081031660030880726037603081679882376787689135610708525404982948015957348585582464611752639627128791526803346419020707552764354361649090863318251420191222666133355379359562627734639316246269098412052009441872029824394687570371546575071411057426078586353841600879936152333555487436104655241499070574571466056906767023773843717791987764549664722221832140086609893451260122209753605964114177091639300349201361326708425031336126307300223727844755182925643845947907241719800323030438429248336614989239803601164356410947546671998890057335510325473325840692809433810432804343332050728096427720522282416024446050415252738700321286591298578339641066185627210227255854590180338417122206921249500574446639914588808762899736204974520592670209975442883200111302978713457470647160420274291131280536566119776908670007295815156247618923932229563673254743520626985486394807129383712617764281296688457068002461450963556780273909845998398865251860985287595399404387658708001211970016633096522723975674665416439957097416714566498735199210125600030658471471449692408609104017786090197687563408506176515683476985665906372065080846142036042537647970334347579410227273272897290281179578891048797846305739740592682969036968129450571486846842419060510496943077005975500407040280275512764083307117597985932100547174269925326513597155737058515915130148821699697235629188401971916515407727965915571049935094215162743548359345811365337137682620967114286754561546855347062075431353960102834798058764565648407931921322807011384625046648559339568376185110638412506893977120528612292036160808874900042410108085498740383001914038281658745158513535249929734787972821080497280935015368504513032330185853270370280423413623686904997655723619191490362998392714324885095119320086710753989219402183932100284237927224038064584507357027947079485742596650425307144397072327164762578246196390509523944157756027046050421692017029472890109463986344861573206170054220875774985426404540047811501536544618656394472022336167087451371541327744491358364369750075220341787582808253043195110101771597734898842073794503332573432985743632134072031331617793254337117184213412609799549200356874283747330007123209149088640593124837787654340336386329060066624942223960482359236483318105588896735644103543472017553615357722160026758436287607151972838541374198029401066389903518209789900002643160613792788985305911920165103962886761515667767175380821662755605675777959980850969168046983275565636087824578705558318180545766955368392754852074874178817753415170292295547594392993777230008816548491705282731816933732531453195254074923937742267881331894409166350831498863593742386130206915105529649765774235997178402775498508088059216823456517785000814324889776066843869263577887518064892846464839079685018032228725122647784986341677578728137279539601060136002990011095717587504747090715935091353192086741384668337912051373312066333822285538617681957914548252752769172722530247755447891344061318081700943529722894868577433869610158625419348110315144360291436357548545841406091076630925264500316468370751212774034206519014596125777325620820784757121221474704258069799775984676045353207467790207739072400328058873320627750375574747226253136690533913898036818636096653026401497706073227240077121180887170456205283285835490053462183592421879678553191710271584205465079999861529199227736764223395553964058915954159708158185079214114770119812723973674875886414322573331183434928419130993111679684640948952886013130252019945904330524518178209353809834319011008327286030430185444583911890639489230153234530557792710597174633410680199871794231664721720455709291403756754130692136750826550527885387963209883884251882191194064010597543113817823467677356111920446930158830907680603614066233376372247068689342846086092876137414966526392349134878823538691111453649829482822593520722836407321015111044066804464725094588766876083117563031181391989013036539514209698947111627050819918483420929733929723151775455599057966872129411772833620613931235708758593492712034375211306013680371100005413281289399285491232539874812258090527985437320512426546516187329320928762444917238033932341341931250572100835794265170459110986531579824288600234622973547066335117347335358308884079714520560973616846606221607064561288328628633741905930720185264135231576214586067435682718183816178902829039270968544911370061158089330513369105766411026462704951040985067372205484784082671518337836869319344796608500851420593468625503384613279373773127850877872381239296224250556200463511449624084599995291609299077491032094096854633955425667640902868303663599918274353074687045312725422813829829893038146989008525594895720856738599606035615891983308252024297222195267003705436505792161691673855501458532099124525743913369851176164310347550053426733456351975581092113139830266995623699183565826934587361496419267721177541118127057515141485657308378237290111562166025566288849334940113795883753514105307318599046520783654980835361474720565350986016835386977818939203863728519465012580503791449624144584421401608123759417240803674085351303265534386894779415358790991199632773321711181816739494949429161605346215632550448790578775483225090279716227033206306842931026877489159722474705221768640915060721365478289910620651361977077811959143623798061927181018856718641105312902970809538579847596102659309627088392758032900951472766113016691144047166187681606905004160967755352346772579704301968469429188483246296840945120376817608161907416774939829735363751850667201555657848529296174303909423373112987740076164797565194311246095111309467149266820715194180480939321929287377968319120281214709500840353669794077870641702891466056408561634988800046671445004630346217078480861781812908156727304277147103269488599572813035161160229728620347153196459568556918334854065093526335251047805617753920983219566664711453896351903710818630010606428233390240957904573133775459059597045580845508915641562720925792484042016016827444647649738848083323210336854692075123237125105142310661150620821383222968231641666201705449652857547490304939185002847379940878455278490386215599626953534169716136344811229476331322791837938119218460895236041439202035022239363992782836337880731728833458853926990380224993112577740806235132702957355440720508526897477911186090665682038234182460305606289979937955023099556114748270101080874248329371752384544631238385115807773541971612380492985709076253611480571145924482948793347095575179907177598995321583123869978132285882530290341194808549532100531542150292896022236782560191883748597742255131017118158702062124872520120512539007744901038471022826637339775262584221583699388776282380521678091777807793087362149220045291678289681470322862306926425915984524170284283462474160239511909402857393568293781386833941393005519887473831579938924292249580445092861828676878644496831543183180981543073337927529412148807124114240647612286179655041160448766156866056634515252707285168102890632850779240262632066778310438345263064859556946417767955751045496004713962643513228425002715614269539601752170124121006216607444020614862633142211380015049953597332763517012534936724937232793811809150862176502848696443214278310934761357978450313487519295082763985588615847691584638272962065351089304063519217326052528648797432887160932764200995570379152247409170533117335078342870270385676460129511025849067971389877779415568063682501213682153943203589843794032720567002443284558933258785294427002865578703032846314975977422125032399122493149751221191571062240122607162570726652618999097890339781495029854368737868382351732878562411392050003094669615353316826094538774244780805822648091923437260422104833399522472585936318712019134610497011979927204305477577540399545615534293846772993157610590967881924616178763762743395716328963992454676963391119738668747308034511244857715074786703026997943720454101016730199954612311616302256127522302864177998432947435039856408041794947650684018539283507607204657875279023789068244691040975410808759257930718890503544348240834848740088752273885428994655126801280805109489850856593554350380812627874535127070479070908002527889684195955377254102116363367576053562270291749599674768840873645405919428330357711401634028145295952769035631485841460426388791313722616822249597064336381135396815909217509349386596730819338130245333161038060776297131406312274179897491062193180176452926839784826176168855009388170846919450319599524492379142834852443740997269069736201878823173333024193891857023561866874327398298477071404297281398671464998462746014696492549159782135076928126373652878542904217659557009135863654076283120368241998504449158463357242817185767547802415875921446882819908331252185812557190617517428729878066912707320705716320825944775406218066812502671224089771451065589561854997344944381288018169154606339042609434244298413000592629474537574951065537818061451205217225320192500076878109512468270071766890668897350737901738394695636619502948049460856677126056803317635763041378493575394810363849681259527326335324572727131674073917813636708663891814513968294560071482878137091734677364791109160771681029791798818496895828093312452779260149223013306483178333768049507384453668596115314012409163622488033323757105748685092298070292242879212561628588914641632071878934297629840744579973708206224074428122690117987709693016395336123728926988648961734256679494655441667985346227507285277366450655045040132363861595283738885933515873213272737806943930866379294854126601125106182886625477031679722646841942937667022745523014219881124665536824424007522867983381081738884156391267501304650662056839360805505925892407500268791885238213080697292923137859335869066039126891035905039666008681378723892304400457704732472525698546958953855001246627586938774168345178759665335736134112110870049709956891285957715812600805689518583558419949801300623287598165761728363355568052616522247661273422386891961123169600623943075154971867976289741892252701695985790832005683826107625501037929063923043217903188685066658427807404656859514941168842304341135531488594151142319761507871546165697358905399451584967039766701356067925091108425284580693991195033778166181298932188937993916365899954671894662330657366930166523621843300589362907915579875318872964825747165926651966628428285240411530387291577547755868582393507928184346593336676696659512574928155473127596877135675298125531556917575929956054666952966164959920449329963956753071639702523424486849296512265905613441395986855212125159950162075599665951434353132342635350893757039499798182947027119145617089745646423160130569125505557467058903368967755844438202882599789484545602939010955096545777116594645894549078080632429785017784190717141046100368271646626949839736137015078571068395177512287591256529198505028888167273603515950304995716071793513754056903227955822975263256239906411353141672704826093810563459203188475378267662869014534030398393271342556644089027438696217278661949602870823254641344862318116472108432371498006636409057464646217774349140316169064821742385502581822381061571655994943536416422875044040899056443326043145213424778716745835647372829481518143984946907668575500224090040636484385217099351428903671961857835223571880064640257121269435478060546282655450264593726799263616547939591891395542593785400087970074503036072187886873553355066306642093451719767531178113306721745955803068579936070100713167574942582325953758995717502343886842226703767093452731748628225654823649591296200267147008813769905960744234484938682642509119768741208083284035650963177255540163254508504934246065485168155196314527883387205156191027562680594118644679257513717760536590136056982568531413355959573725055702093800111082867055088791102934780029039334607955971087145286226999434166476988940174601711924163361636298447177852135876753521153054125457177277212755362709827421177557491705306677372026435782413040127508328480760670807429327885401315313853977010174107608493764689120571278394722793937159506933219088563002362070271719945000442019252884368306029487846453439503630223222457658391189509873575241026100233303979172637624210380582428651395354338344358897988683922720900763574864173771217365874259183575945296168172200748768615411942531663133762475326851770263258974179673554912788182535804449942608255604537417507274489339616099069526230742143391536207900337761336895200172909664879704479439038247057523684035998476882706004520108513493223983685241040740289325521475167892847871638681831135912814198272366039551376743925600742770823171693533929051620027623099446399481782451797552352907714370666989870614300548035428937577457669502174790200675637653412468115127508024862632937201108533688079239505869476700477726462166140669308939371305252722221487255236942064061478348663595419809514704295317103244203523797476746215594769763045415848330838494329907554772743527127912070711477314142367483432335069149388394975036784536836737682475663498299908883428666179243990931683083668704181196113211901792415273819658803087221548607439761534406265368962413768829892670330828233866473055106083822821787855978129379214968950853958923359035288279254958266078891374150558927342295165863567454368230383984637375593661340997979894794548635185668384473246632542735640476117299735479773349490897512658189512527646217163846269894981543349327819473540161550556152417936636533326222108888258142921946731321893112846019253308417320943663202938532311925633185289488830743500739218591440794738075741316112134400089275813059690649328831037876240912727890595494604378648447828364582110518651370987828647239028338766353064347575084997164181519153888861317863845682145326521236476501100688340478249225273789581091046030887723702195688026884450337759243528661508266251877746635805416501864930151635928407671814397851569802529314061853422330247191863760170396677467301820179612337053949844127743563964524926486181484359019225172661239212748910059555198092679680008680298323627914341496335052392625352789723903977905245733663728212902910032435616328706267996326833809697829138290377103299600847210638369795604285126761859372005672370400651871323307067526052446388223445332450954727558784094638417630186786615719328605755863976969011371883154108616960441045767331597670595471859240116990875045914858195936289544599310375453395093483852324098024290520349498364694743059069230105375008779817354357642182569416599928267575620396566586009114585606227257717897038668458473908165374463622219724707442765424834497995864441340688047123523729241695570721810833461288636385587685297326422156923957369266323358629695282178625947843198293346203949981317167513837641164139681494865663084459416292242833792917435337981083743572147045410666477065717521270692492899524743936631243983994562608433553265431876056605726587449564418890961783323722793645838977305444158333632650702607705185422559136085788434536379416894487546408001873016386007590335937429835209901934901435315685116540055196892556082929252944857688730460223600325159405284872342556647267654926792203746723408290337538290756263653802196170980791811441755580336899739361867669132800072593441824946486136927517239812955156881930762120903515540262122350263032522727409641809905335257768224273836534561605327778471852537273165652285622352546371698602682824764216918146471529337669554229040078352078267101573001274633858437908003121548302958679842035025657191097893215353956466239849839714342715324643897660423642272746530058468943704829619615092760377507275059224993450624405271546465392659416016769242494573685369217811521509835313755305820463137414525331836910686721033203412562184462424981232216946818458767857023986787781760932219313290757832696164824327104968907284191735099239860335834636463735604712066990278140371565424113965587669105560613993943513997787681518906650566461951957804605628610712175901879327441594174270704692907648149720753512735621054852727405765085472085550588741037207360244880914920387649916460633658821213636514398432036104550431979450471778037190705847989999021814378465565738744459425173060248326308685144433921897514622388992319064968154489175351906051209814196397704134349218298136751924843926941368477300557905241542083439167650253370260651178035121457289734475955065703042542986360477564615704299409450379268724817259748544649729015011513269084366024511181256865993539018501187313266955307408911197753162507404750476299784847499129931528920406691872556837580388964275931631922499534405995999959768456792412570476700381159760058947203681121993480572954996190054154248469581348021745353202984341926296859854272100260870921680767436879933561753587529516046220148730883176883038282771098654301604711144571319672259279885690015286633157241895124434273096665182586879820402354583426397610779252628214651036423427670555642273022031360185287507366806129463297161347799713072466717347116416182120022580643550534474418379097331361981552616410491533032288765465225801473387505221286860763251415699753617874996358133812312265298105013192044570063959010873211730615540613442397668838411554027580227885760068805006822782611437806467385490890294678707864161740936727535226557317421014517751504282157926248927712810513227823340429137069092691003029231668458263498982251313438633246411203936579888348017228358256246512272110264692169329479231455982725202091920206608977817273250003081148028031233938832259137704306021356876106417140376361700721916578744672676984923230830400509419426046941687527415580791726471790276166220919740161749772914135903945787332446007215069737641471261516104176929066011276715742274378209799919014222413610964154068925237379400361776247843202151842833144066543954460427393663243049279936933170139463171280993455694480389394713112637253141282237154039857971618256565159189508151388121699193453682461162816432185412467118364486292783471519574516562307856709753018343324318873894739003669093567233694737596779027788670093195598359389356949298352619464752154191530293465894017814628959976362329789300960957219965771596402734679262495086477093635008813089808140878449083143518498232589674809964714108747980342454277509093502706552723259771218789553063906868097800340629481639104269628606722656579478723826536436010283610721836006728605726794045455563808112607814680444846210813967083449649651719807172352000281340454395631285373564373121233486751272397912163370816992698230684196170692720106693248578710915114491989117243315585046858896435935532770509409986530518807558615357344118740703912555296446100120485180147725799023800629923532290340369942217874080627036716954657299015784046221536028619579982263883608312585875172489449607833433998257586940475140028173349702792791444269987133865156679056585779956388662299401805070133105422680696330609858118830229204388923796094862270852866151470096218794506331214326103422042827010614010491640047965575915504857952489163474280665056812173267179789900438957257371294703190312258547697262515783784277341549651539033898017133458456440661061253555689379082810052508403798775305634726772720698841746970316397671380974803515021984824532521216142408310558209036291306989880412255239439816698835673031923144589961857115327148438869517522797662844050957515381328592064901971437773311900581167258905068035935241447555048858134211953917617475953466638816978285939411879823931813925785848987374196109301287163373510215908875038170515636524644045409488297304965117579341186493859144028345246277220327441767383954151209631835054116744868563015096354459059728195752874046867635789570112842602759990720321128120860644770641107071063798443987443853431969193697984893158217773331040821938053418299196866763248586952589522954667534792668017439393663412152665234303507519101193886554744697218151993177262553060339343753150426911677139969416991392256079712276726159853078218767305669911460718257534816478622937349093097730875307446229802277110729962789094820490405902778697549335857682643064828473212771498982315899943075245552812701187013200248873268316670897032972942422148325408019792221244514315663896486135942118703270496461314537094877810307638010198063891783710296426709728399462242854075904446750821066161143743589552723483091460952455446662261744914452752557550172788437163826861778802101111522463326016830869579112759644964228108001088286503227870413504356987715237002150304384090880535154561425467315685777865236919624474539173947491380354608688975492702082290823513901882200168096809133472170527155604270243383214730316569056636943044409921808722662052520373773176444649779494188570682376558816052495397036036383896482519756758136553020848166635058768910812004150021177424293222750993234436389259266061590738428270427350765808875483545615868975161967805175383002961427601055572704114220131355729937150529497827780942806910452868797147054978689173244285913610808924062069675493180358798807321935789829787856602833984533563873522268864010091827851377304254750554627694874365929158762085145520960934051420621466798184973219849882549915742724996157985811267778394877341237974986955952699337956875849350213659557565811998618553150478874732975275025167418910656408591287453047450914017728335883446551261387755718447654594663553281541139839401798504699640781803135084318207417397750738913848447646752603808900342140812545846488978187928241326939594680422370516672890944173349363639481630292664344383274791314060096673647830325539176923843083951375167219141765503776768162679906703131281504713388610077605054624086880981045058213322486217532025953773031330597508745628791505826740277938668243782568396621280393840896175906540763560404988801340340844831769529546038382948274489863411711809217243887931748729250892813230258203954806242245729916669479345416835565796172731602062009629937872155695089280478437160136309734286098982657249974240182257793659281733790134608307904798708882593699495585046553523368255688815892884708329035146509545683713440069540048226243520912828777079660738714659131342266596811426271603830728357172792090400920912595140017859607237332253830433532158442660388199098121550737005728472455228232949225624871092728349615537167772506349348795416419382312727487333556075320424987127045636689318276239633056393398426075342128721221353545719293982911685549068737050780145070362165067004989322582017221405656243306778387411832277041835786594074107650683696679061010513302955668955630030826306070527246215758031917847664611484385150574299868503351991540288894373623241942818338608588027765536482998462522292239177510884541101373679533091486238858574068646311582086095358453368988099326223323069804298589487980976909776405840565992257201486461633710821149893936930444436844331460860959799257662013699223498711102680596866475879575205912454107430478241240881425394390643788355282178861258670563324005927500856110378911765398701582539854244868070398203651170008003202558222417388072642644133104117242387559956789631843524994065688402145960563364954926258360390802333490188727324882688789347633481452596724608836487830472049580997048093912538385129755084937195076452644811554084157027226629587552914388568585105624348978369025061503381827239957067525270336499085533660646796692517079191898272694658099070489403771995374084289685994300339013643485887329604294855671125192000324222106730813862274430588229038787144720682927089011404815768781813942520627542865899645597301777427881590848855273503317832611562865138487672938101497911241425055055995810045472031134476847572908060015185734373343334123968535500243566387167020925667110920887944483826540979091427456868045363295560322433420269683248506311636515006145292765765095036938839947319734592971500939443470880787619692663770819230269528526247575718359019492104461024003544627845707116604838045308138870403589615243526278283801058422209510501526416849565513134061405329162345346675460091382464230936168942615883793936594800565784076181867195256504663783716399944446144146411815498345003477573592623135225873158943781459366501264903392344025223529562948031999842935604878152850491454706618562708982274758994396534544439813030123822263144293559035816085093183762972097041879279667097238535509249456286316654071282599624350835234872531250121347727624339035953706846475295113345056691080354067377892024338556034673813482548309557408020574897466484043085188261805462921460490077073766449545614388636381947522616809734969979475754907994149705824102801670508259833679448345028449297865341890177787612662441107154108106223898644279633132016074283725285938937563459446870893073065249926373389099925285786286773527653448466247171649881541139580403691236336106354885882268520576907963440908216873174406025456530745300548027865769173048566140681385483590060603344825933505658559513042881555226029336525681915948274474448638922616288481795850495714491653542836423437852046524773315414653630566616580918355218971149447457788706345120066627170275869644813835133028806268094457209580025616379055383667074293958312877565140505355328573167963113528143993695004388547756463149184571459111022513521098665369360094326913541902634697911776297468596127090402912923202129816428140950540492598318522130882268259022854351126478560050637212631359231722647578567487377765036190640128135718749013924023926043038534735255935619333549048795855719967083425490652218740448822155112677017244967880333656935869390633327656926449854193537299301682898853569072652856680260647772211424357929980909008859977758691149484709582284775390605524960395181724421388088637815484458253392975473526281943950225227025774286786725117640671242347420071785774407788372467716315398888785046910395628525493836497085183418706467781668075949164476914812376498970669955691977496253041731965077650503665858750166460073900818303470914689532998608672051149636201089397948447945281554784228861409724752443566669865551134582317134038299305933319540390390781548961252651643734428415199258477468808051349358424379791272934410485950173974162455326478713065369105415786464253226125607101061914843311868747666159801056665307602802045187275845708287142709951804952697368720782622526773824958317356365130211873285241124545609722078980915842606084733631857156603403331729685707360997005909990374735393128642174044890120334034243294663471274098001135349215022856844345749790611432822362151342433173448092410043882300959068723509250742709217615475464627920743178855778750951854183750851784930539357333132678546486970202696103049853498588058867725327271783511587553425799060077493915279967458418613340403491391200891309567000380076801912168322752842353235389739691969899996539120159876684781714288474176595723466853321975323727215317785574492001898100767338308510021310180444209364292938270125814106324255811572006274247958902452997067193795234768143382967717399740451566711605533206365625142623438373479512106058919099342728417307543312640601544262853951349838236551336630713820159824999525338759650938950150037140296029602437080727640156531772514295979691772694254954239785099997704877916256529039290659270454453303804230215618211268750727352570612566149924376495631526213175618196061489772386338757976886221521605211852563820858324580975262556697988770253071126584153889584678918142955796921304633930584194128082492882995357179294161789033937098327652042939470660968776802957720568478069581729857572758339391411847817167007744408323964253841483054150726912061039843636300308074959449849013837258465029865766657903567520795918367808762912586068297129877541972395521356323990789180524246135605398650173517092960113077839960071234277367002442768376152062796632771968648882995510287748652068929543678303246904010708622907476875841476135185869692864192883714710401546120142551500170052023452977467210505637505333609033596940396572723491661761937122997105141153600785938872567625105009633808758738324008943390191833114793561937893260040244479653708321839489058770483527859511501560009908761328716045703906750724346983431131002130533253158921678537242941195010568259879911658285544468086912419813666884455426611243327268893798884316110363575980353111400624576399444762702406963648579710005233583903380561330647386422802944467409724405657533567262583312375706020493141742686260579750192253915356774037594149859857458931689846241905229256592293113776043876895851435213117355233829698748233242663651051047361473975628597141766956389349487763711788583125662343111853228441042185322820329391235658167896251803096868177462976658238148215707294116278960481978233571257207644793028498997758296363642853390121858044790911315530958191498842772181574775135090884270121931823748335486478615442647609071526176944954286343786281361621143780977768816324963166365788608374830804775348694286899978492768256165988740777404582276958015059941223655503598596474418087437384285885272246837954758069489370480479245987943943858098079052476645268419082324992416360719480924367107406307192512476241302347516815268695965242895937576473623966213911628542225558323517731614520797298861093728092112291396490005537012295683831987314601140653932710032305046913851663554884706581042990042654062122214055567940570768314475528302720836487349015150301446123494721070599868115378514216215917560548201064582942717184505958429228630216921699316811332958135318221548132257489682831267293899678578500010435188056461816746792352916944919231377969228483185757698031858713624911562337656284353048392480936216491430727949449764666968523095700796967378994498973611059854362118412637727995644646074837973914613743030161247889740970053111349282032983672825388094108323359032248013398039021246371948720772885121385541147080765454045978955263146528060626366814669115263121819799970523486972493062861985781157970576103412520670659521250686346120311851545916969459777971640885321495438213195004590303711323568587771988927120468862330183414195679138979365107353402743710178297406410938420198220763575891017249336824505139549599811765823163688819358229856409571953946982389353893096799852788889150537549033209260629766878264959763010900129301420843183533939849173946501539919764887379712163399306106294583647808368769331657553728640154073065969959873556766248362541801242777194673994149205835648973270006231313286103922467191109765687495006352466107167238302356469417271384251995572487891360660411012238939865018489852509844190994501428948209660910878651851688645120393407096188314299513902480893060859934517310891805593501038009218200522913205141829704492584997836912119736940763742243034512382690800356773774524322960532124877322027129309841883823861475619612790131874925244930890278130285702397007779324422992627581742808082039060662367012399389828074226536634644203158358906053181568813968163800399649834714682771021958930992342302183828650135648753929538637592102642687228211399955464844405088105079682178134074386854127727045299764925790055350781210134073575584375965420590791888278297772972460027322551551427237022187342782045245464347899026744510951868438839495938402390124723165294666590053740431946301858389599884340641259033496607368357090384337910188469980474123636382739251164667888376852036745521589584527308659620897646510378528457110379726051838621549317283287762157083000596762149115323174827874476245087372636127173640048125400911417589530386629772423920129379091515662999245425197769050292744097289433604791874580213481773588988930304754239006619615030632461417523293133427171003035034350327985235654375097838342960115658272526940104926086856492711342761718088284860926999234501914134493161539133073397637422532183485745045153270618156852706660398034554686600880423381908606455427708246424891516120699880513046720738855694496227019586918757340995760356089940102483487312333988657209378429297696375849146102125370203135251471769425103759627285723402722737970290787260791256671232658970642425093953948564574679660421242502062364289142837556278737988313299076426681404120116782520282266128209619814494862884338327966588673372683861722945457268872820109697398746813084608784925260409814060374319855049321893613143138822811729620373168948674409157408669094261490512114069378294190194806231735099416534497856923178258801003568625811861793579238956809609320144778246960252564176802059721241286775882812021914658462061660778882445968481187955807302186981305610473574655913470962537469630727433923976270625133825795402698315438661038562880630579360152105138592409499142725697988743632734467222624780552055768284068512635645895064839308038344796444347022379728485729743153900677792857772254005850634046064178046509324578022254027844541667790912999531574778068376488181080183508108919362454490602922070874371173657313777270522412158433239040228298570766103801690480985633695328607789051308072665874044771237957350891841195519295603892276363380639369476220531556437422958720760677907875314460980592287903048725615750692472798883475967462196376522978390348147985143500127797799479455214489526340870262693337582786668326539447152008065197481746638451187837004542961697975002540617670627745470707725652772096772382981823868690665302018419986769034384909926829030297503075415451797318376247456363218180985786904252749037349766991588384336631440078258867092198680188413370793817109758749297515948923419187416558170263695708972201865575762927117376646548362247734062112548553513465338448384875368941158433925645796252277824785439840447634352979124378300435342529705307113679129120722727288865128634080131756702489968945157284761778616917093229479214397270545237855706513555807473407635535169428556887302985547961365684025103331067277629258018543469995968196340392263454487435293367227939569151158925556429880884879952761562393115712409240312575266755203149905780810358191103728125681438310518279162595809958804691312183441472193236654099114774430947022336075388259096217884207833129298383307539327371728678769511886610912612781649188944353036873033144675175219991505601848765109508522808117876889809092404376527186816152199568509003779262795032550518625654832599317371191135794265491211412205028067260475111399222101888038627021920467700971521671023051694560717976955078870281292253407446365775524666158846029330817882412423069687924620574261075726872831281629321080469958237836946862773690838469737114892559617088292899688761853053372839966163809499851781641422580902888746330398719808336092395975656309940540439032319410276746955616235813266044596512699888376017367133907850578301318052133675575880627055244890332679252320255646254069015344787371303163960711536904517936895756789856444598592941043450120441186623134722336760034968522962513205647951001485111195590485338931089809659939365587374334099816878846231929184312067525320132460675373562841425515024730716091676991690851479424198865095349755992360041018375265784792862500856633681021205110558029485224198134245686172520309760402254532026157780824563118926987395794379131933081231410159189556173566304422416613910266561516557702927140618239426148668198820582189703341973618371426516763713921127972491046041783657554069761466140426290367029879245442682934155324243580828169908174507978383130748513698057357563846262760997721399469643107976950134337881885359667237896108923792432947168236706293081671630051951610488392176082025134146219099622974766383548453331205560463808223000269133160992233834322068865442774587953892235486969536157517489786445861813295781455677708554546084080739646401529466988372544405016470289975424417394496569571150949447275511073266403373247231567882476479759634597763456436641717676777208520220986755790308631694328358024248361281357475753601362327408707580536683197621962403425274287808196189746974541132849724054948618684032615148482492210043734150247512399261447963407938430556412212139051508211836829409808746416617225148119717401581293198958085973948698650860092385229731610022618741142912045354503720362272954409637382583586651146728218151200309840697338874642562095841562475145066550220264118993407605175205120364230015120479558514109087029529439610890147715306750744340181482910954767136960077998682123750932444844766183131468416898314049496022065221559016159435463111669689453391964613733273649827159110774299105953429793799438662559764493892648818638778171698127968150939996887957583263558714632261513852384699618347362781712013183374250517415603040711890475078338479761738244699696862656259700302146056975368940175801699615771131694429310836371037293589574255278969741293579107200720647473311013816496589651784222516746299782924753942138215608951665225844382457813704046456683294685126739249454266954465844163631690066752201093447009156819895368349063875548851688481529717824445969238479727898009110028746020082812557469545991277229732344007588413953637560677003276332262235222248804160363310073373222616415482303441473962631912434524503940148810782552942874440748090803502983064179352314208458175890993053461710481128269026135990051352681834258981170203015148736042406819308340120618195867354240894493679043158128898495273294965651070947265227528351400933547242982747656659268549515236761756392839004461292221375678624064831290348995268908864777125852966833132899706842722803151583578359617794083224940688095774679585687188105411662798230720106374445832030394382689233247761655745460805880943219115106098790886827849563661625933492493259437904122456005950915010989081254306668700291288563658765600715355197203929045782824112487393611638304564052347534215789713674276970323375714777477787266576609956777175806353692293870910250176924875643218580130466025755396774116208431273413697798201028170713217081774592677273600040967521903095987934875634050776793589750162927561441099773544098377422211359511517945348636181629025763686233069540248278146486245249795918370130310588707096574789531799882065976051365005705043326855766832013784957407970391335570784736510850948161484616930530883735386318673218910769152088590781400388644538549652961049122202636021565357053106867740454264132577325515802966153583483006344658869590125001269169558693089723941656821597740480566854068334893424804531714745258492047243736764055094971001033749462158186338590407746599181449312640142619770977638295908345012229240312023288497892108956858004937661758646174053853105079815368534557401417980789670043812823450356030331761702821178345686379368635617365023422467414241968254249259864913749876235946324510073538239710543380236467824640556334077814627805504583437804753956081758821797139103870748161711546253091119488288698683838472794923624760977677328794242076439395891391009117079428106064265265497325782948479355316999362777828708767345688111396990555855368679233175790325125950157390601801047869596948826802952718028103418634242261683857770071495380968000817785251798160147581909634119739237518932175651076546905184591767381921712116673563840459754900336536686648157560637097292124049257305420325015480262802506647236930630732562521807504327151011961825778093408911329322224995388602749395867348975267765349571455941170048638995422615148256379179763427612144494715250611082073691451885621989552953827833487064894125190717646354170478447683425433651708991347723416426484136654479954966938497531785115990759993611385416802915865293093236259441311769860418708380066606159274711634304530244698972966187785483074234663950811366426033097937678779174709398572858813221978766750314607075872993187753721901809259643281092188244503965338206023437080607250079263905095276914603101885024342509843353110128151929557998369479883174659514300461364779160196669855832723436717920505754230939740502565266075460252105457764470303473738708793141556423529198173285687368216383492839616323487695037193007429779003264358448786307467852511197349815737435937767596196732417811108185253205786084635399777529132600432699769455032910070245733894165051449376034663121893481285623887695736246199965189493249687704091073917058265161020208349074527303788971212592861748201780237459632250361393609035415017295277325934520408216624896448140683722199204270893955548789790363312580124020379445281597640414849922275635164303586402291210010983431315951171257005329126132486257016465955932685453184679603095339117568658300920932273962778167624441907293547147020764122694432762231446574610226991140486729885050107874406202163809994298930242130981738692210191718749205024897077292201865663626396977673585616819380589814556727690025359127891520255015239723280598635543367805370383625408259899305878676217933886366250296945636113061821129070729884961683143716952138729353390962824988358441445408445672394673180741911277574658966815392138272178698765774146138684693174374433984914455620906738115974532622781115752815553591085699238047218786559016448016243849353939552331187362835517328074257407931104641932985085873601370083817491404174807465092562276293922264177499617334026337694270388170552083597289306156379613729281811182977216678676112634195527122887951489332782614790510214894637438474485334355677670500948491205169424181392188759236560971762294405364258458529178491721929091133816458354544197464292067661232236634510187722836872710659537833361201715961193915093563385823219815189583416050742042682188083934861374837198361663561803935522341678103757623128718400874431889643603144044923909031246833997828065795695511117723773275302317887680347708470595164800954675470355514289168490320897518609110537927241494682880789605226222288638143027974041419942793202433049557158543552336315087568149290626834052322094794897265173107394839894165649202822097536515989264001545936918130692090485726317581641878527209342631959384450189953674154682600056953500621978696086912827375358746425378117107113173153918463535482742978753743146777525907510334372796226848045535692453034248189647526945913121638270952156103143253159577260689139674973606293739521684574728473116893134614694772607317316257092487802057116760226551805409261177830658029887697856760570769223849492829739112619174213334757188400908047108086908348897726786329726422747934301840737600846149836898904725888138574906085210575404318126689786165100075028382242389839087941513497403194716811243648926820341820702637921774827433530501681920821177949638163931788672185976199381167721769466072341827166570773766396240348015898017329169758116373361901878207816990974175802643425578088825177246929401187465374182382546994388304270620288869245234763680446032499196254419717656744350187642755792526737608253140015777466468314725210461499085473415391682811535104438030009713802969568517593996778327407686941594066350846863077147015650231212706408322354636408944227164144117483136853733798913322132670488714710831670973405273150402069150608628917311374080352765953040736369671269638648381717958884306770899207897924510994780713541467899507847273694304565976952005391699032256584988399250107220603806708308994070052647123317103753218216880401714649040906125652229130526083572248518312925574400336495734499164169651631301343595882470311612291245004083182369356857542819502454215625427716147346956434354318978144792699628529864223089049158492295603322382785690728283920467238754633438051996819901296811844496437908573516879608404523817500378304295772503613034190412247077668404740350619761355289636058390135184317788517693619630634023610221488386157204601944912107917185935264249444036218861458787498586308430138495975768686372910724434631741707076195311676326754961564911733642909310519581631150859818408138593567353796315177812364913335561311379713542986154336202756129899395650324891682415061884804276073321953261626911106879603809941528403547752652292684363530345272756234388311676111018985112017670545101784635180128054138931748695726072656624029870100124876888584633009871842793211691373243246981512318889447752287154985932154451207987434202256736702353632893451775978189423479954428291976071878509663225530800762442972218098089798711833272861194033871759147412171172489399077146144451047231252291119405571168151308367946941443738778167387352356568635995847377458321300956413617138603308620980902218746278906096028429084948066011057034369813490300234581097246999590799853204261149758948484648322969764742411086425014754996755303579638802198134842917554174148360986167038571775459983507251614730885097692381689371834584531079335693283969600326191132583621570851227348897376457864989271134769651776601327406753480623565734935434624401329174527739850192317331615598033260310807999446066948253957189452828600164098409686651046193729570382659970951973121630143494272576065535816903680976489937822952352945498260514721597852150000118257162651041416447967346910284068377786329724615414412840321407323988486902799454146254745651948065187054827627034899723282780713071049187318167680102374509967294948053714850908091205033038287088084757259444124560305367206198109455075268007473547858730577851063255263817078146577673341642060282991927036494055305302997684359132893392955566912989867198668678365544540712651698270792715880997269890734480855527916265738229090087616369323872526106606982588972833019420029812246035107944556135184956961803321854313015670912618534135863065274343529094531735449143611645330822804233043734285501950103967508407168293477479611741704841764409983195547434710573515127519687685733102315658082574275991516877443839110439532202248684210682488650901629652414966022888341183736129242865993378554976243330507813002744801651652543429594985987801775051689070969399031810053158415352497242411255967898151528327415256432677341414593218452915151098378803270924066052259718091721499086007564118330247866038867956072596908710136259211256147793075877460290309308639948250311776033505657032725192221488164864900632896425776795084427043920325633125145168519169502429149079840760504759217247144912473762459394455566576737712341630262744030259805485671742268355617366119858929367430296393318204403709936421933009194956181055030353666705858206544466963745579864969676242209243280329646557230602625243373613034328786912601064404169177274241816913627643810241582592252858184717598987213907443806648389502606624510336777995214036181978555033311745186365688424348084735019705517669892894380908002393348402734914819642149122498264763302615764236788486535178119505465090676986088335737787475193397256322513419716082712985834204833175996371307593171738807632078728735739952271744832926248736129543341993219165927438129445061464927297642236882228178850643085091467032455133821732405226347162599463136773950907217283194580071626544913627419882280943247803252524278138729934169950880555993108355155807681698972925052817741760505429008084135153596734994091140769130381946100226146534203909892140870091026130461016826358308380642047336492751471673241295123101685008874734903961385280861625971297629267112619601411248464504861813737195958253981660258019248721528488841601994867040607913784198054778754683919449072508124419385011771738172157592205386720944852790921134801477635222054260597867353878271056299918095204388776559078572301992366045396900053667981552793083209155513599549703140085434121159765001624434476155458665099356785546621861210181696334069038261659917273981617038555075383520072858691523628758828434209734557960960322204528276510191494042715125069819256177966411935861394495045327696657172359687803465518940588225546878542163233631495455324940008383531837666659360215095055944503707668500222516499069319136095527506059494728136235390053534588702418308126860384675491365297054118685750580176823409434807140967836714485950057972990771403015885807028172953705147373410856532226068379488223906819828913481189372986697411680340159367704544143484658830987729219481004308052518870705393175801106446692679706542554437982754757524730831284085961843791098167124945946376947933349134304645555050766721481142840487629661598438633566075406288629115548646995862969275499332165131692104451417995386616081589486642155131076490435162797066700650547971259566458248683338283723104113527515619827888925828048907853050523951410833708514426736034034886011680812375262639328161474555661053249552784252001644599140265401699185885723896150641110451006556444249371078726885286863495015901219718968026985124747684268446937686651596234904197125310906680328206846277634213278280587251016075194532028727886731802129562311244099966480989388654820631271618434606362840022600220266288314871428463016918402992361336591554129797201472563872123967054989536757697099720480652111133433920422137348046196237191287981898141780139043267033001242996343995534692517308882836681563185798180457314228349755976390715818882425940507925855548800952899954835050956673966799425539487628054950972895226963632013880020715291473406144827958703416672179549245450363731234145816135423722469731144101882660000484129088586423866646961688685442565885324857665174362174148193464537390898903893828656706820142271848466179036441791102834451184825583173511879459967292107513194684009828885758021166268259850343272460374997095758589556455183921916933351807446609619524423384727438214376870990877123571047075476794374851566559808569254855299893484271430351330003220863881769320227777003833790932258683336129896146710473892091259800373835137236949080673727660596127066195008181625392664478077243339827419414692278263486777253413086139520498544189010171268096085587253426106955463935258915506571665588208810646658402013568859614934891342119237116231967895299937350201838914084838852775150247737349246892166989960196775747001628035384750683638278761108594986387238761387325963274984712548065003211409493347477443620109943123440469467647206151346846889077847923340256207331355448971986934175890261129459373194144563810961722310683166745772523175927597146895226341651217379541179123033471331835993480810805212146199549082581195086170753404473474506601249707943308838764538086103161514434410550801227107189936657532660361608765384331292430982981395239031414401194928165820557100800170999082231110251529441434271704994126144979846739067514662117628028935349517649734201279660452178453669960545993747228746614848877203943703130780890113645563042497353069096025514597353439313613695584884203436261630344808700819310040709220703879078546049984517479659323981103560187731885087023027738834643284328279270439617991431364928680337212378929347863269171770799701477201267819044139530052125571610482269123768113812402413037554323355768580335215439466008477175319215069552975864618776898324698336558687952093069715275354835614372631449616462534554527394349049216259037668756780658440342342269771789896205692901476708284981654901788261277385927269065442670794124807140755016975877263070583087219703702717980045557241408404323850317614692886797653256081044792757725503030700583028558899388135011680548491219535380326588356828879937455598448281904960202856590660405703140425521335700328867508150579550775281937738491890867544565363199135348836410288861702420191576621231603326060657699770423774958787095341119789277254483322995124591563876498658453165599331390708615912208630441177502024444903082679597464666125683573257166253028411509385733170258091142343651751137548511953724270120389522969311213520130635304867560800348058113136993332806399896727822921296432855180321864602759703601158601362139389463195840378193377077626535171227166884942412834502006394165136048213175492129565525698323139665502246217624928053069445780360027242020422548368799114533226053143697010396059484443089263853435931764410916820282273361802102809887337133160274502403972008636345160063199632685280852683695513730029639665846235524903566803566622731392531814219466100825880797816848604104343565283277613388546562158179703435515326439878082675703008102457829154604001776549146304891841392161710944660869157561713570978980731586236423551677710376244577983931697147638066543656533091313476064361695452459900761202079427328095753615624303616279957792325723003798271300683664104964822166324455529458486342578019947116170544332375004586661957377005941568055190402566817492380926235618836923620839421422152664370290960297817863993814896177231462673269586529899419644266297013895213784313072590119010617348286243981203339764741583585436521580929417221609440350096500402235680243249963116172181495134985920726408537873601488629913532855015339629067320333002752731797437275589976071510357091236896855933467493365260156176257690312526566197543779035404753713277285160902819972247786096262188060374528954516083494498436628844158052507600011982273532240407052359613335220591634521313663519328607899322064981458753912553157100571913277973393654298502482542561347148002354589399528283181757159017100654311119035017903242417401380803565830551898763157054757165010644497583591891479144658973761879767635065787526104199644279651819276216542232656533680326888490470551483249504557610747088897653889065639621929070565174956616107705188037864071352203502497412354094493242068016216587080632086457590038630634358811632277228060297600029555731669563639215455849854763618514239732065199305676424564874319843483211478773711837382977133770645651854082768660327203725523770901353400324349183025338214912749074256859264356444836839212182130529545546085196767200187653811850981594502184633505428637078549814255925831880113407156456590067034903394780300930359623651552048397305909857189635391419499869341850688269561730762360952491089550911251169832425858579137331460584208717190677484271944585028881475569176353272131426590138150807649185506869045311751617384317157522836715843798505616596009507193314861694976988607636951648086995209718364706897424839021346481585731180259608562228185423383350064469537001683956751343023437761726727570982358446664153938390022644315484004314833110649061727665270096863411254126292688748648883336208232506776093300307956404306558818096194519470294607002133748259582535516144432267819347416879408479036944422107557519404833341480952174876204672681800819224666074685699735102692762693186173641216181557739659274088549676154647768553005565002283200998123025139188373164439908208606091095118256106176557545066952666522940423743466954699040550033726128594074851609239690350423913488123755166702371480886250891669847074141493015374818293827215968019284376715650210396763088771674692116747740441484115004651648927798615226975286967460208367813939082593063665637530120234376578082185121700450394854539472360286509110846494904339047585226527903069065580596321793243765202561262102667968637355962808062959132785295841046019893992086368866149270938275160400354312032465348438888102672951073713414707502027712401000591113683459480152321124201610182690674220480480798874849689465079132509454123870006432492880580455734668900237945420991523323734286116256868911130961194321297224216122287228241015803117572398283237616931517981771109837158511615368338296187360095189493845461930103766229425069445413924353656450552590865112570496622443327426095558532360024059863037809823470397965243290722577389355937035192717017552607078302882855923415052774648608450393620029927997049756076364856060312798040806491857712426476302379309520863997011577675507768616667022769781787359479092096685930039949362735800039577844393141602137756190836765811419980388117536266964917368173703907304893132352102080153933514529605180570071417789773871095516359421067421108000030953767918954655386116670569303398378133235071666879313695215004684878607204692474179499193939395871878309169885757126024761686229021574334320288879042268296948493216263803912931604420913426266037940862304802445882114105768594703006616861543573161953681446861595965743924567744801795870877128021219624955280249305637083665914017149779118497902175918613198687823297839179796529226943483225532575804395905422277130151234870973255078540106772465308242869998200946438428326353812199071274060072361162588616317958965023156090697687912331786840902836118844677602860812044797397188057285903420527981103393496231437134987714701585245676226873629135631793953026622793986488178588341813603638678023684749707554167448192651791629698064308135943366299024832831600881662769513846048263481494466513571276262991331585643192046875368622392301468509672905726604354543736215769931964109426826903553633273186502209934439608685241528486889101300538947908714870208369235472405074998693362504185811819426573841379309344698506982806887962354955456629072782511593194515472159093665581687485594664492190555127328780913815210287946468173864962598077738049542886602762371922486116868445459055119343338916292519976036864700448698637441536486134661958942119899319807488227080087221077838216728163284430034203616710265257619242281889745978910764632939526585913210780361414049174862174708971872454553893141843858704398372443174457633613881229577973934630348247418369967790825143652933122698934678637721677019593531044379838858097385612348071983459723413619260350752847725548146774995208801173600902678337784550711259875724418392708513209030761632007612665735466972155908608928691192728041443315953649247935778694617722572830795049597030082244439955877639640974073014729811010563898568933417879239248552632085913316388543655245052573748024258428016689063656147236059744305775391004589491003100691116476134863048684750315531029567510901083731466889337304289471763943190746822024842954206359145522183605094126507551444542688095452446663962289522565508354144860380512892344100192050412162131626451486730007760195885461267974504854255493820445817898988160233400729301514399494779379440452234991820112119374499298783756697107316090130105309877996548499760319358666496522803674275871821817455392064183061798010307559339897911988678043639843548642059086398732981878168872708061327036726511371099779333440373291872503219358845263439151127435737378579985353045951367139322585777371776424990605838943408310643904098785357873192475775439228630063215075778239856530374738714688351505858978406397043380247991802784974984210843343939159253684496787829059747170745754408271462314857016861160998498334670094354969659759949921991498908291366883009967291129681864012085263186985700903532694896912258851092488571066333476208014730762375913735059776645016719675022204095888809725884912488779943871172357840978577361604938347391893580012246882478158139550892783731481495026589067760270566494698866305502959639154352669412934293386564225574365209111551961852471327469997879260924699315401978696371841095505153828817239558282146038834704485824086461485585898434393603981383376799484034995388963527101572500635964981844195412192278713645734712877774633042815560067532822661551182412649675305649691013658900743197233596510593311069731110112568560002148470849908234720260457451163096205217431679052978085036081843278744729582522538590264944335538156811491990661135598539054489370479619007244465549606111961612750867645223398613734619138480401062257634928969783895007378246396914948101741227935187777526580553397330748412952206619365911668685513750730664456001404097787364575389906873579400698797437294998960874853939917224056624745798092456294474829935511158828672557744797755689953537166332778059731306638259979956883209727034756545465030980150008046477828821615936903754430775071620013087342457346859876603274741830110430906806229060156558781661634565828137425828348247091465404479169971866072734411391344583466397106829883198731399760141884548799695242578773945282913812434992020664195305308959668187358084941448982619421721924305485876796478488171670667567749686652885257468265553766883774459788825594248473255169401972210185894296908173730792332230420351477786442850541370467007735706758873130541766675576276502471173386535528572613826642442328475580548430214435778393195831989064002847308816948045292071933986542864673890353790148164073911147153751369340097825734818517068613126831884044377680795301850468642129403807653051700778294715568175734749505974943438979071752314752534595981513295148501888211513391393783020017208350880460889406017492292213267450143147752043236031485137357134281393523240908266069543622933857716627099293874028581687126811374537353065995340716746371773291573569562800051791179178299638571616862118315183973640725603917451131548424430556434431174917305367825126832176360212952751171459064015067049236313117496161679449708367200919556333992278917264986781427942464118216139460437051397778566222791891148658232670330376936452195718760609720222512596424732973192265076215784266075933166286681334590822879848341743416184595871956690779753172956758448456415667099605282102015134938893624311036651739410641039619897440499522452880357778744379625534018987964208638745255227237271567883166070588110039332460238079947874011809506710294505258236065246897068810390481496588511863081845008990059352768492309471657827565518025089451423115529946437325242775137311455012610422408237468353855470214541922544255385575293533899742321285317675289534837643549010288790677775560836719294547506863666771402098728965300701685719458430434060298449583822757110836466414275869884583217701108955612749193257797048409705755492457184394433367805402659781911073938888048495184130249066673939802693864700567478230026083621226301966486177010832955732980770250160020113532097240063185644415803165730498341251993456961857193898629200689392728256417225163127978344462805189189484207326033718082636495268415247727102649863199784891109416083047699481726160333747429093440474826235409410446058702220336723413810046423773792708263697002998835869616935635850623864750745946605281999167512833617354697912586587783940170332641980608346670139225358996620459154072841270478410625214904560863697453366926927998581736049748167583196784187929359879052454757254471079928723330882622709914403884698943954828483999748267946508107463786145043443198282190709207739302387870512698357054334260937970229037406864501604028945427612374780104907154981250545101512311513660142935854559689104643357510111181145255936867206895371892816571260475122621765369207404340618870101142761136257458583541313503157818864351701331508054427818358630189107442339894852128376287795967040472543791785898702883324171353584031030237696186196501219989012986223925181180018221064734308435130058349780785100501347131153314473730199026456580909458684237097434389741044222112915900782638757285389536680834740375180704204221492375545630468624594629364900497004770301813332895728354474559614233249603800040615966537191665110880697123138927107613239697455751105033444333163132712310747366793170380287135486021288320324286409886959264480667451825729403486546905114218225049765520492676530734665335754777433965664934435652736582919510421713844305637309777175196166901187269266124399907415982699233282420050036512842469955984581754001807245136024617008395798646471787903640069582190118495963106732532160274667424842523873339894463748988456913372137556439113484818567710208606008277917207785386606843047835837924795504055915036981720770645222274129393982785702410674048438679740023587545761036461721814354193834916318526670336562744774824220463704395977232507690676115929805670238083005989400611697302685902711700962975453893401257149875089237101863857516373020212738344957022934995074773738865339276050434901506990031684236727593366383483936501745610031963608121358205304201139565359416900003015743657243773687614556344457898108857062282832395492967789847750702673618022618087732627345178704917614342554454451884879888688630448832825363199207967143493150173338458613270365950678165817740443690040310107574368770796151915082607347294012015311136437814166706656116043019434776787510057114460679669516582295776460258619286252065146066340673855502050576824975842992802580809336346137412673877123874126256984825572841635406640851860419273544470230562367161255817976246840253011173947542851808108233152861720648975895167161785032450624597816075047769682325545819454827037143015182391560351437732715889500799271429474581197090516431232227439982303425786345574819352983612739357877888691331495056231795233180603265489987825373332202432728892529032516010632571412755431454110732566621068814032993137055955989213757824726851826043208366816418973508135952715780910516247123401795763392838822120642832397030296117256682124447021967519093879673503220380872665530002166567326663086190589896684417967375004841922282742212435477482843910870650697230323424789566197217194472674108324182324017229092897480526364107903000374660292459023624931864467978564649389082236255558222810297354284650556555999397608118331616188649004140673672293164179347877314929311035281403373123589650697815383493691402845970164725753510640420019753231302509742331389782059581478889747247341552057519925012048508497244684538045088745573364208124414090383075296398375799302705477710706608717712258425988675535989386409223482086529218282612294302931626610485153271662187625439597246263026981385203337153147352494493195166421870209981743470063357391844308321033881870053449096496418596536751635334527244489000164011746279650781447103894636853423650135039874302295393638006599464769847282384502526583043740430081410857687025774499475916816547262555139869385501482534482937566417742140183810284606613029041074258598809742433057329067250090512008663236776822417688699191275539570092393455642883700148903291099448326264286189717899987410946854815853043341426266287726713106851162523493360252503516115905045364561564848383088881961074814712233084065896021303289959120391306860963970575459588908473431568101537482137595579342607410966798863125748569703703868894783547792786660323234022808115464251534110420809507070501409459618942782036497019678023370190324121855510945524220593729447086500066342137077483024603380993248780681062550728974298022066079091553654222298745189351337189736356666111224316316551362042323066435335878387504456552976473372759818514537667952715944245699449597038844320970278713702954140070352651729451568898611959140394513378697140616680226087635008290663832078652411689482150430186147088883573466310352303916632632269735144744316656422334051333018427706854888830650093384891059567925909878128463723287057514501048560889597044831217878697800592419990730605059564846556774272227328406946367180864505497400137614089662735290592584030968783066388702468579543109296496895461956017937250361184713231683364441460872527267632249290018871337265886925624629409460256109427425556064920380413322882177564084144004794867164130377278362665971979761142095543513918759907576798285839388866448176651280028092016939918544389466967360347699916297843683827241232823698186912794739693393738461055674816692088705101017225065073640277246253233428735085776656507151268385557021949222421293618058835237837170576201158179402744091741909468872124607262454239309864646822616337044808070204035107930682185991793261410666973611461436917758026889776127713634951877033905730212635149129899303324373961330897370263743071542472354954649495009991476131425551271019670367978860614564385179564214067033910123846527243461231522713651302606368561239563181747494312096635501436511523864261801648506467262287369828613335597318391173244541842735861707267405323885120221330220379585022825125952413400968684676515846052262661839133565905096764034165697729363467634207941697439924847822762731732313878425057374570318155035098054177409450511157903802439174567728013812330905495450594507544958952011519098445011768321406964523142310421803211021989801218035358760931745715716378527090204008905438295026204552474973620959239718893022573022220390457938400221426486440434669239351140279978555717265722360083573969413720607732672874560154930762130957588832089320120052095660676853253194416751261980541805578067618592447112085379994617539174791567755997592769118128178694443738380396826176143877069810589365467614287402815756566673841337123317782902627527255805095070697450976424925486356947073691047576295282438212510840482068932477418581849785738600564485013796311128294996209660102987587607586782940595128069667529776341638963537456590425315397748933129609200825189496797690531493691157059627882698286208079913689050304432365697101680889700826390781599137372301747853174549014928387047721641981726294640342185853426903351372069386101389912318109515713345067760000224930534242336983573331334200081983118821206626793257416407414866088125196405373414903705433235873704178748336531531811491123000979625285166727289387665417472845404214306986291135139276788292852855198751091123255865166646327137666032498388736126522270129098632330881586305359151111328476584143543245279925084152964822514059155115078626188555002798919097432796907224068253491336813342321401991737194720019456918213468398690334937342291762262958586740471015461435266821340382446559714803535138478752933580990958545589230836964821595646327746528161964498772901781096832711004901601754089456136723268171556947501574081559335740174024656170648950626169600171672579063607920406618424766540392375086274505654367042067472288449526485988345648300821054497120331614388228091930057043639353834314479650683776922597382285046466321885030401731520985612188266328191907850321976819586679558350685695384357397071387576642949849510881871000761104188146667481075971487044520003108796870878277475594155146852897910583244688930280295782579770648070217883677402307285801776841902367840648821876830109177256249929543540292253115388472128530616681845703382994556028706082731739591900383141944316677339328712410820385027101558511101040142270272563218397085242276607997424666928953420117275098667690897347913839413857686652530674238734791679236996793918299131685778742925280260501195836934179045379301840069860098584388633148165334679398574025795759989617071363621170984077740633884321613081618007376851021821934082130047579709587186085447023605378555235586290649974109144746772494394907363820344879566993910842562173830685314476144264545882647416740250547781954544215668063072763354454580211426444884838866836689613261519467203635746784691270688169791294148040581516069236061895309636092269156209822118098475011292666321825763885665846152265624365484981598279569040417310938083255932546741216555792017368389061770110446247981960810776002534935369451745664506322658621700644370444446391430561518127092871774737127977111640073485086423089050847955373992018379473425258566756442950943510651721407310690562761559551777279432042254291998852037454471318765854387291918197230315688200557719905780341884455351160658922221816725372526674290499648165779215635783801088652072225150989106750078459549813067755175448774490007467140597528860661382842885824730848764014273874779994441245834473765127968734124209772166993423565355117331040238247402272010474644392466340905963759214012277676316085046996607323386877005957613632303422871094031191459896742374815692331031633345097542350313083434208232797459549285532038369062846266614981317118507154458290184151635676812356533771805334278062527430219427381500883574393566260497357429206318085466147996083184394785166019098586032502721102098584642238427594484982930078303072746292479683315460033779729548797802739502740340508823089204846473997515706109860206285019421386461245071139826402734689298581709192259313454184400843777223209756632843375087319177995001876826880137714441135685962074501500311023365224993284524148842948099709712236033032578263047797463439680600634736113811330604614261423547157910132031984964769823526927186267825029056261963441333190970397147006910222558765633629064119340299568679456671880282548725843821449691448199304078618153351465217724023632720918247578150306419837363133028176029555415195410148844007229749140538718353179911444969106534871975105844688619931542877950440120452933509578977461991532888564493476690661656951359879499987490316072625553106098146362541160143894912724087068703243855746325321616847987917192410355853364643941061122543591669455797213877464326111570853895082972552378075492473116186509552961506075521908295905296055258332634462048354161275013614031162404320149368651882535829189334035383380386102097633946607797147056375590084138511542384015063684074863313253512142384247984617435317981290692413226034665074592241990108818962597909513016903261574255624876275334440084587574454019911008864908543463774707533016347346407610161869433648842297693018028154282789804239913266128928127366785080961132579336964335793629463758627663144756529122337962454166086006994094881807617942982299273562044521799580415966123446869048743937357493742688766629779661545564716411796981164935617247024056255136779941566430972760102960369310780643246337271452912325812550505629149486079797227832883388716315833290289390526857220999740990785596627348329488427155241024786496431330406919349369886379798806745675787811672210341056289853542924463775339443615599195758198497142722210677356264929655857257391216255935485286114440167356899871342593683625965982048634350719266704151925353800634231717333786662346761576722083863943619712919639204002846361682828313533137717580780091328096267880314928267223000045854921451812229154103999603224400615313332363306353389754188493689805663621450033506701406328905850270505804442213487861123678105970593438099706994416240411868097346596940004585652398801204372002819101119387726190652721306171815387510544668191584919303156244941206539342992229599314103683494085698922647931179647914683317702458049536359884625788134242330133931116123674429861681697507630100513549226871624981445796011692328783395135005150161935285345651865650926582687645072309988186756705953659287464670555829888300188847461373231412058336860357729811174344695021479680494616777801737352761762902445870733375808044446251414205987225652209241518836202934195841753202198970331183456110428559657359145366679835459436036581834162527734761127344770091469634005793903258366815490341747853282141239093212801115614623610451832048272131042418495206355019860977611786336682284249609651586093040119108180448123399066009285386722207962754605371398404071468974264910649773426394713612789742273956023479423129784935947139831290058332583540571982579290495471826412571199601615023826855655192572063732963815656989453697705341084149259154678964627135093470642529974523454298420259836476366482711770952460209050143579472655045768082199695570540004029398454402355640268085967447017576835729090947074895964498671972181546548919997794677870906012033949732154907133802729785599532195565004575823409960832539640248588933692905933653518349631209950115307198391640576327122830126749800698710350046928307565663239642477095483924286469254939327393500320929018792864355833709089611170670475086309035372631640814424513725012238597338666483996215520955652501339944543741648063491529635276866619606464105478980338436511182819938054151065758963997501278903380313400861727567357988629174824196284967696645035379952985089103795325995361820544083171264562218235349904246526525434037974655720686800022609386760711633049975865704639611826948861920880234166036815327221677043399529683580139606632126084491775404581779309393041139221931715210604034967814972776863582850843944771317701988063867930722252051443914966596471987316324068106861591417987610783831213817720603334455328541843159027598729662747718283012599790203729932520156595867442335075023058651598631748825195046733167247559128041683745326949099939146366916154880867156901447979292728647002261411208315277490939924291273639107691267352665281948553150832042385908822187468902076955872709634860050366924674894501993149061697343588703069996261012727395658102662371400614079470161661642698367487253730328255223689043201714980500319294009256557753955896427734413739820783815453857408360543546392750842789902779344600656066985155315387402385387253536369386989365806179338383251703848975712918055236914582829000374098337494311444567255583679449711806582051232749425616977653617690639697665232907650803478328784561958314000327608577297027183840800085703684738213865300027915725371530426070929562593967086960129647368911585784396202582761632940018224909390861121794736431341557553309010893915037976720327828225393313491637405640731243979035879075038801287037939933980321704049050644552692184778719230966030596255201576892946603314247018784741625696324901521180548446737946117965483252577764343411914841000273713610567689221288020729417912570759138572772276319638544988453738772522613584283307366516209017209921565203444785065036251743443070167835277933504940090235749063911451330005196057252540002490507640860962888041311049928679382835848970041487968983089748155698937662247714353682192691778979334535870309013433053495445176223494064349221746594949887981044635659095806952680750010352289629576769410767069980150202178803293396404240415789589802167323768705950182799486433740111599052716460411732305823342144765195308034865397846761596225997560905856712131922716684288530731543150162505478795727396302175842000334770141807049242380290387420639341179711365206960381817237277905344016722991540981186342035774540699267680142472821527110109209519087027639177100002654463781790563543204031356118517015032887915783662126006916687500415742546361300970788523228690082246027903920768445837605561361925325142691015192218273401895121961790460987364877626787157369559234813453695650893516962390973283019366314201712437818902037638692715718267168456690750352362688357027076265777172823998937698087723337565482881084968855509468344791352675693074564125259019215863954012777678322932951434475994917755353295498495324502306071729557807536471232664630985057438700103680195274125876543113750534528605633334655866742077595681984559009634378292396092905487214430881171675740778507981567846722311495632088558417834856022214611858478118420072161213325088943885574080657145720652034977594903308115591748095783230887042011571319353407412581565109238355608201194473649417541242162876964600461682264968434377235610824010954178552882871343025004115663990159552742590179698259288788546541519080173769394236374837167295600597349902243620989326078686882426707627234270949414065484599454288738446722256523468814079073755952217934193611671279105617862103738949411667502620262427448423837785567569955793481994475739811174415101301001366441010897654027177361051278586804896108922513584137447276548314092369433471451501829356147493996170808812146118363067703524897009593257535803097992052875753166392018528421928151928691856070566563948750576673162633598903196555220663062533034743501032801678213671494811482667150058831216194427419468211451338406114794454798560181134499712568462523481857746615648633065983335947062698081334422788515592972031788357662953147295077776448552079965026563933699203406011236370529427080927890970648167264533558977764850173051067762184277395536043324891475582344564781732177757267043284305633432307188842359409273794688808374725321605009389505676927104780189727759483417246280297287592471940753819681156096614514460625812230148243302954981831987794925509734211227862144560099121871039191670998941389830668405992771694748808376375934385111415446704448265403664402359315534530230162283890319820501356473783605482534605134930527271023328888153468341247043730064103508655504347912020222430257271899651975741011364127618708900168862759675636409054259759118662814444982239561138835087503564538841787019696837521271760662213027237426769576154671619695028355328324091517423796863894128978079421299580701213494303136836889590105798770006376342878768962285189670780567857458554920798867631151511896577326020807718814686495686152914152690812163965474600705064848565269435783093728312372371438011201637526294519598486950462428125257237619364358924590005437500459541602139019148109976132591986579957584071395470159598169085376929550102151470747933703825132918471087720780193518647089582679377991004118182363281975588575956435114465137017098387704878419837216811940080004938699809784230315555124520015127218561427192956108023010041666958489266944165495486905296653350817689039918234733249367969092465185013262057272544509753321291544653827833651088403509873378588705341615617606338230574879835727047427174482498158035499860669793006969764059956386333295487901465946495750274714173157110567193305363334590762105717631957623702713084983557045598455968012052056305748239524832548132888572464487400134625089311368676118811852697278166616770194209389594463328585339134102342727396056587831712020910471390768614373550603501046054921463724069482832705357300401152548272075868613612747082822450941161446314123691152816247904944577387332786546406320338054285756280042456751673205606219039798363937228518922137462552762589110486038746644149643008894252835905711436344843295643681209819858399956817788317919541593630424102046266415874105097068294808512930917732728837703957074497304804771338161553450459194792378307970919504495278469702463306823050982375156545150698392406310441466792046143339447112496347825097695256909369921496574179745105138096769202361190484728130458102843612099025343330632069800948333906228152728885365654347628568645336315262092346519263053198725986160810238282105938978328138512531764721560495968721531827263354147245354116642712950133695418939639314529434808351626596408484844377024528517049746773334494133122068070043083861048469121788693855393766241087284232871502113456824639499977683440789865990950100284301797964115675679162210006875182051076498985824291223337690592643590363920298662197185545062727521112101862492653853908829071832282308412707213920855948148492199901625182596076370457714177704033374644597234784899952880183812191950163777895398870872261004949618425610874194315240714185656553821233079998426400383518518844215276129989196488427494048318865168703846370780058059165983606857149377276249274127646427407101029145833063262864668619602813210672214159411238015785184162511515210506042192155044959093029847147729337904464919527266444761170397353453399481040818979938068824245648593959014821266874868403567332228251884322564647380861774730978848798210645230659978235117805293411088974191306283597329545384648589604030398471570010815000882518891609429261643110715154435125297870045820179889554065254072104296331301315430409969023547444721934923449602047320545774784174476209044464920658016546035762111648558197614338421645016424888614643019253843102772501452214874944492847666778878756432550988980866470616637774114032287720572051622237757458697608509710485478693474465577115019670636334604013128557470830676228933911759236885193394519452127363246870699501314793792967536350861740652046329135560201993303356210951036510541905184905070023109892974502827448504759289780032609794811446255821457002134933817901885000380915297591016656595992596949569096089237172730784752811108833648338524425088699709275807389695640070712401572907828730101385828329078168972398645099400327463264653498804864276260845464773773951337343091732900195130201113528303994479976547113322628287294717739155995995542265291145111022936090357546304059257663618646879847222535545465097782634090154119159059109276285460789632133310750600190325060803552868432476850561643668282517847043556611279096008587489812141708370987706862296775076734105704037264447071364582325994098592051145866291044510738789439323576165047858426750807809231926962220859954263752102464883968787200142887236680992390999262930361255425329339988456840337353372463764423661604467455602819814083729377782957838764354771817925046124210759669671106620198350268937969535728834079193233191973411391531374893138859636013594529964650240793559885304422308223185709824343466565204100835096990624064117127003905931926553521557977877069632813502493920807332738293059876283119482387602744874621071517788381027651847179873332447465794636608518679617597373328521775919171249349352355662494678552158734292816424181617864376122448172098466421626709865834779587156779271555402801535955206561136315985593109307261495773861285953688521175618826219085523858864490485889024191377270037589835406912221014488628365948430228764779505942115338472466688894453155210324727752242490030704335571608423488655052501839512799709508909723632272030455882995442271405860090624944494414995317398063667186511703930290625033653251326346096198227746548487790220053895900820579151711880217166322723994431527139429522934399081669660313604083145695828910329549128366782969592698461464845190327090584703061901352857127620201725080048838198685171005614802953387056757324262082603950679192865293113010141580943997273637010440413238935049812117968309003764998777945941124642501612119453946899905326951015802360036366635508588299062979828007573181512400375187344120727277317008026778802647452555214992701659110958876698831417428010227641900527574742261347724799371822173956234491334969070562283019761293407768790968266651344236043562442365663041078536745677686938301772742739166641706005126959642882832228186144153827348965459790630921776965159537587582609414017877478052899565420018785667870433592517419992216133979105176507383598019220366752403583747918627953841872319931647344269826788425917719068834865360425265702290923671074375453174481808253162955586105174269320527331477233499512300738788868252097584751636934129937801731021628268214240892395695307537661057618534934400900803208158488074890304534560095935640628496277597916764972631593124849484356548277267806889288679570139326288174612857163441422499979918125458704595139413271556917418208704338108134876157646804337732945454046290159636853903912659314068374759104984793219796517503716509084229916872950964614006253538136346538262903465882617896416930979099298148638530493051763980006799098760612114095071281341705770058412905388892338538676428151592877805509521846784772797193335694749852683713135423987423249425014767325829346344680927473559246947453673323062549869898178778411814786130147278579028691188908835865110022429992429547220106477040984243930743826817229515505229592832907393753881408504447184731134032180853488559417901559185531369592629429787750653467532268773301236896886426628042395992561372566577229338730285007855725340474951206523207068205040821496098100308106297016833533973830791039465484514117769699992681135471151251260047070154439899095522910694017683640638927620210905878784964827070633632938456959457569937911302938422266461391454517591392960391624516434851353234676612488274474232823081676433685461593957786183680903741130011823155471996122187251590249818124960074284553644175202210980982586378483649253507389849646032026012138398317242451843133919367480107848017875099808759509218566623827887728098924313720306423644214978523245076437853676637235182250690606526060999236270226050246514515743129577652827055946632499832919328936889753584289949891577138471497909917211112644181470831578229393883471829793298443879989112793920732108365128005689562341158606310505490520987248947472925403353420954890277655551349378231271507602136807262109515311379380570230236453693430633438191748442641378313132192556023071251423204380437189715596571019620329776339732814004438364183271400971454469111324406106826277946424631658256791064722756175507134963707703790932016524143126477026818831708933595585599653782252424636715095133637228782756178738597754697726795991411421932429681416898722633631097844780965533936889082628376665645155907155864883434226027752094309612284802402810160658917449641705162715595450436445328309415811133251349338847211665392063039299476034817186344909993027514708855596602161910852780206427794748870323421661704354972800930333275411141306735858346119486637992201108235461536343899072972282649149298673657868429311874807453971815805379133354020190601259944234461738110877506921158165500161429712090655097351775716964491171988263223470625736778607300768383669618872640620711369211691557188551899098355096502101109075551716843293148080498104947416298987870169570971134623560758447679953339058123915449717373766795347018978354997681168046847243451241397985703374779921922861921953408971694114835850131894859147864157949076472100517150234472234454074359740887338562234669006956539963841222015283431680226661161299514414911058455995908032688248679638251741494719022159591808453749212246007861542711762239397541309932086562944512909351567320629182107672249837960150933159591877042692770074058381562333136446795295339834253659810208680161119751983972771850471471390347075695707647166818640296626732328599607091224568240537891264542527766581740604248851120001668195772522624385331164398330965013434753888973899994920670160741500312732876457241017108448508141972644043207445015653775101121895808877494922084040337264550713132143040514326200889008407377712496303196590283656894060307642730991105685245805771867825336719571624568878539758951363206891957094967772570246748431951933514765783543878938214149023635265187760624378035903557528044525858052426698358280585507527560567276938388003376647423028973384706651190687358937082818925751915541392393527636537090590978161421607968333368717146728503657371046148344477686183792565241336100845519699516601833477383002970646923618440558632538239922573809263653424568338661060756488347130412873189524020258734296267499548448076958290963443941554853963450197336520398165905258241088315123001581497397764806822964378965604615258531592263966727712488630233284964809985552853297026655962942408296140562120454577218293514651847087360625493514631127933123939690233670870672406750242131620230184310713250046917537036926782986541258109550639348679962484377909885327591973113338472525069272326903985319861664665293199324315557727514755371271210170241291235952248302463023616726714297937897341884334414793578665342492196520313227083991420987437364663438756265786078032151008349392118590946612692112208061570290791094557609891175833690639933250956962875136802908370716446626448045322004785435817623357903724708691714564574320030040845719672281186459040169833086058285816684638156178838296428682924304687955546271112791730604364866074833897279874957872301013872136507145194289500715093252564695777074430970697801212529070976101810026545568651404901628288514615129181792079086417493792226103987890724008218071419382573981431730442410796375486839981849898167828147478646275650782211299016718256675272483878406596778735607755317669164900796774004900949012694267149672414359542027192606989899382710217603263752386582607753753023826299062223005581034457310533727817924971245952631278526269711145541395773454248156232651590849884446315174385511966908740288362471103987327030586445392333807334141696930313487205666831141776766269864303620448681814554306438212361833464150917917391550606236710198434491158410313242511443715532133804120955714861245610078462727124567306095465920274941394300527683322798649945604461166499342287194832710155066325295205786486377590127408099658369306877190971427543609265800105707304760801466118252846711061149048512103047143412331281293805963030503276992947935464365535984031200706253323761382522868337653190946868104450088522200582213126602350251404561255569405974867833876097090377257538150755974906367550076286575804125830781650236799322303997818252563620702332533983211608832795538789420138616661694461352057821386310219105035702924783666085227283114526943239518170782639182430383366809482838843131026820910033968660194348820663832742058008359225779685306439005229009097306123730644190882251581721669350379715327728776302166399451339668264185811934588788567799041838522143782139123462911691607447326583661717218587597605998761676874993420116695546434648467814119990932445380552879929563861340003909764892466741832568262516544676952340374594796566034480431575244736660689363163685193917970902145470778609978911706205724357250957742123795186653522151369937302801765548143516989229093092104388217831431118628475270028007394906985916633627480509195452939820961184099329211262227341308903052881126433637797661022254798541634576715425957809798771065659308911952553427545213428113312544519316547465535500490304875480155160705703600230211256850248029259545938587272261035333534265878877044264739761862097238585052133752206988238480376308764610639298287817998173776953405846341510414725034265849767439422435366339339069555769580068806821913621914716720341628949492106535908291894276208683143685608950344052540310799622688384479709775462426550713780926677814886727650608902008149166849860751879688777195331722292806549236319937459676653114806902439670249652963593849993951261769576665451663060390608007521589181571126477739643484524992957616795511964484162376250719976097374352886250162475069579088095608900554598309910589973202538139548914396722125956487035851765953894920213542995272666479660847230429918328252706952355021656774000869602540228961367203824207437642536587311247921199867706724003524212365971940211877982158147965595406396264068332151046908054219694836560242461997475309239060296284369029737566155305589358367708606717366695141028946141634099492723087207154845964638311801906031373555356254282038290874840833437834438910708823412860368455292514008250010622614740779589028698891261938248071448483926243017035916991202536325143669679879640700587316380536176230128170876204690338412425754639925511223149533479738751870677138455187333318050671723570961288264557905181686546585823613243298003297088354814094967234990049349831812354965996566369990167880364890360346541290119128078977429786955230883664509452615543799559112998997951658203072985169743958958358336557243741229509387029544991106943178127758549065423522742261571005234386547264996904874501892179093666520780369804022612501549983145711028717112972091705662937543160035461518018702683469627078077342727735135386932434439521377791855395423706950381163133997303377638660030872772745745024648855444192351604374061235730645728273506317905460998140905485287868365208478817032315142068426886088582042799295140677828084591645467313171214462780070931854776045540707551461611419672835309584988987008191095761111088972684925156618952295289344514513101622689367675039530321569428879886516476194522061552130236820534452130835381004061271341588484285194692195530959644660411746133710058597558704952136953102092284596452283772647992052186287108402798708990929678620338698738265024573480148313967301021132269444717586699795164117026433793409206858113644086796581605536749835821160207966166872077434578928524111864545997825657366919752681249373554437938558393725872167886155230778427955285535400475144804163108286526520796437787139202712807980936388076877871304095361484315537270494729819880254176970827139902695242405357009449424389864921594774826175355090200000227002840760960977685773885387755474146612643086447348459222083041894675378299395140614118398927207514606803173259923078894431797052348334581194935455210947021111569218497044905018685030245860664425696167528244623477881416441057836732565806923662184450686738777806121106078681343409754929548858852793661560133367197827837999353250168558111182565955944375530256314554705598744123657123969047966086274482712405157996874780739614491138838202465702508623910378666680229200983723063264055742440982866992094686220828997365314826101955737894553511093228743798009367923621731326412214534182674243734438035487837918554027250407605286512600396975724653319776183702803619092722587688463548182280832218057825716867833042262860239594878851273359282607380652888560381557517078231244886866043321572338561963923436055477108735518066885312315938294670497051646239913339879150402830495075226555209335408642050620193490975724666288851966312364336975818049752649368262094715239540635728694147280873024343522446175249612432369265456091024085199796565655889867072780391406384461909945874092720279723222389827391752993374704445307749312468402878727126795042642413935170221303669380630051635163694518869155353178965520904727984785787616393659244518844025265113910140064730947764130521579623087601636943774533661941321128103256399705457980935228124587569182228674616784377293510601604566072154431787629010448286293812062026788937616088051522924356315846851280220893040775512571756036081057332838142142235550090219952692409027283738861507060379634058928175169054825088200396899476392435932965292658012773224965222448553313462037790208183451555176964943718678034693069885495738977522582579110576113047751635026331172890840432226663274721114088274421445017910405373717095632623198343161127590392445066801027472883928587049844118263077880019727555351181140263434092552882189349792226139237949408770677618988987296377818486606276816158907339241966027654673042506250082376583452611636984705770953664012252492805673946618391209279049458014899131080978924679554565501460970105680038832009430774784857905775274766453147732390403193369767851085774551088272455384432606253096919317161136707455334849248527698994022701397012645161082123607535618187534960189403838489381162154544609902597893583352305714975445540112849423543129045839526733170672549716620009883550736681643897852719545942704188136380987993444290386419035618617724307189594183907306814193140734705927381038794810863494279841491656766458760528736871531244158745855405729090091805999263546850478304548039410236695960177266192655020250250472840117622462186339728465603670714439627709627351551407928747185873453290565558478095808170885887442883701615209726713628210835368411007824936324566128313708784175081148880923790306763811501864094228921150920852785347960970855395849375213594380236337035632123833674603009156486086197810565619299399147370191899540607432369994925181777185192886413966154104757254298343340939220824814448157358287431378430634422132042613048999864555348426377918459570712004173017925163381156816008896808045331425944471313900533071114392410822696800198145824569817111381514854650215712138861742348744361232052306655501542358427960028479805678456106382438163190329079169848799587607349016182718857410954399938525647131181343980579880533430714728736553830958362692172753897659471004960056177188887278013259674416095567300043443655179143366398573263833933131018232391642316473555289718609372285152268447638690293601362642887478703334609270601593229922644415262993138986358784369962780936476795058381002525725787881846124283270374559066813123100305718969945893381905128453397086983659905013127679118549067826319174231224450652443026429750226810381177660336358783374617008046930738365068868090809070924633383873320191948935259532333645020861982867275947821482516971809890338360208161419977280640160498830285626878564313981038705013745276520793701901440710159903676437404768066155854757772433554111956295218036987855482750345962410344688756025772627758147940466634656252974607409178340025212515530725350889576544342410616549074253881525743173721603021928546064431097127014314631308498068331856041825042420454519007898442690345815718291149175432192385752216710166852793557643636816013406757255836801564368159152346329825578045594910882887686407320168616965623020482196373906681738940612394599947509543449494443598428973038524003518275408200343360124718464970781077974392899702770365489865294982113939409155280902324334355636323993444912866498573912058599827327750859158782459547670886469889043916467654641138573258750609125427904582273595243484720879351937524790575722026332857548229185401033849770619533206508314564023468473307211916713476132229561681557124754610232486958744964341430229507218490518648666352882079803031415703172249612242384731348590512361617249141657715179153329226860824988962382339761530523474561164386060243323508236281478353028388801005566454344258877074673808774789097624360946975382574820298780290747296452729745654325589875110308075643888306815507462481901104481530457371225581818640289008191969046554649897716450376411689314139729386905058200306319571344638693577879142665073597294865688956989162617071020158324716517282130279354146103427008028736431880893076230569531902875312795939354525387950511142855108918423613758219040981147456481789931116375660926918291846250396118447655094370535460608382608301267875502736988781223457128361401217859701810118602807232965668764423626448352029177553506487170223287188150666207100242472787899989746123010207267977350974472227329655463170218150428762645301958823734763455138999475121244775425889952301287111736695595578958621943081769415653895737871066476811949310569110755663324628105179838025156918484297538781722799971461928517194127067360419956526418916038931607042695145171466523420389118127511375793956776000519280576967336446887578625326008912880209115692410950498734128706947292613141812176182005989046328384121491663512870901162758271084275160065888388404052265058818703797069207446470039646645838258316497916933056386202806998009418939719600756802885189744696311567441073921277964907765570516393663581682061866821265459617889532558352983739107498784339588852864712764628489512471687737297737505981369129719801613436637342801119103262670059521712994504755493840404402075038066065225275766769572345956638433183273707276645520565454678123698046901571500854379766677559256880271873825448250412210976429186568885600407477478449179926925418863798167946585257662863146150118694908614026080794577155742464176588444489056899131559262420596252749286766050930665615529115900868701430239638734053381750734141728971214386216234082939249355856011818304061644163525892163492047893355449126188798318323405708269512807847487697999468415058081127262890397835071565580066408916475240488383591910798693591996865830948466899663810294183110054025126279660244624069421009419455904880773114081563189842390986934349118151061462539371374321042263368252258397244438844765401424277743718920526232957759366210832254925702489484938103167607929050995130610020563781097225567357606503701448106257654826799452691574216461833208785047255304281652083685309180212514931949335718482764993873017782760307402524161169050716484383218155745556810205725496723110470602874591505115690617337140698305432980833263456011833540944216783018329837660377452395654352597980876325562195034306917168448077613728117941759859634593142544877786833957523757642772672579301899442509601107852104615577751018894018737414490033205113726820612591844476365615725192354396445709217962510287399684101445239216306432997126621949720398401941251017617989066631543805568788724842777161773328595925643868181412315305470053670818166411598884285062471547150539953493870931007663947664633706713512377551927729810041717865690893880674523499215035220354415358257166051300645427485423546934432744321122220682224181114631724174382957256027704935688076130791606284476869023919834412159990477077653262287019621467320260813215622861111239199949600274829245872690220792295417705060072402063880318978496593153661864657479868229622624359537778791651714696790912565861988335102395583367633037906492456477181062477211170534876621405053637817277476354537409335527819819986391729070782460654211224760871981462708266186579915520053917134876894511096747288583948670798338374035407012743325697290711289659359643435439487663258697281334120486919437211987756151180728437153036479070295251607569621448275764915898825612335842241897871472114561404459481388384425914181569588787810054840700730435671249519537654364064728925383241593562046279045498324495225367567448716017762959452078721631838690413930188860985498340192453344014918482191080782990273919728798847770928020713578543822727947773841822323751196100284461951275298814150122448328037794494462088916191036407707495216542013301849300204324246130605168968248605046423754759852583621309204917875145263646908472407000955469577670345660033491218771295095246613113097002966264976007293773798391455277025146373490777668559096384724350961403751110242559022713748285668713957689305867347422199135482942830274511968319845854659684066054822715172013156717714020606051256428030271990661966011600479126576945152267383074871920815350109828893595426823815078320035062245790087641829433940243204308293197626682877003436037272041477367503710850376313798795956201658455160921988508816462386878321954523599961626094178833144907041651215333694069057124099698965951897143990316700493119211121876643656857659799784172951656316678437789501342039906703545367050636768990103099225900271236151225844722861006257547381711848001832590239976220484865248241117092078467306058944169514461897967993995273953891732700285674974100139717962766386095060841581300317072775430139329342595427670393028244839811579384785204348791094958360120725420208609905514284173255185889130363219395495022539192750545414825293866002422918219933848841149846435076216092794062059380922665171905442987911075851904393278804573966315125234362850213014013226736340468649986668632030273586479579617552024690826039558763706052430115979225086917854712829652020267674368137308210142202196453535449834108793177626097210771404462987348949987056331278255457087075815196460689998280960015498629337604896337049664584994943157144311181264760363171727929588183641612569712490694099857094479150862531981506877262611748552079896437789639646674213698165703042935496738393750473043496173270158257172232381377038963010217665456792183651582298219390726353853042714660081663364590667494128091287080064660264182366200849766280734628500477351995477401384451667816145811664994949045388349979194649443354404987320798438193132138327401114955602914372334467134872465603172758145195275449327882867039718252278267320104956549444079845805873372720523887606225178603706410228442164831238844121053603871645006359394378908426304718451776351460838443050356310412835390705154018764253436799172821305761333578568431268962025964354609254565194030586534986603767496039901445404423592964215072361558491449847227875716381953392989244286923007516744553965403659956364299324028677333013044967114811237832146775485918090741649334499089399670868636043586735423348957243549487272985931703067385742122743842027947918004487711349069128961343935087688639100790399917617378538589067476589262330164227841026987313783255990909817247394613304717925329815996599750490587410193056495138642607999095596591225687769791568592442304944811266143166585040414999351987407561711689146328294283065624691381443266428239486738727754355794929621236068829016476188451112925552679842524759023907456144971448794634251799376845752897976497671691992736049960064007037314429967723756262353500554533743305162923407934961544808956243815063828411705794844381568783920348786976077690478790073591923306540522522612343159744277367499181052412557338936163128662744619425629643614407686628748925963099405283155219305073605933302537981104704901897682390526824932517727312609707049394416029187232413335414060842397900346827229736313507557541746882693074355829650337507404861605059409731264266665182586475771342205531520649018995972400479341906835857576249495304896060772456942719092400248922773595921335467928390265269292231081341872121839096429679768843838343657139895658270981767519868250662733757261420124159924860087916468472877348596483113443763951837105901291704838554585975712920674888435870099912943925889328701047315815028098040240835760937003252245377973128067113221931520676275432008729808084698405462001042558480261246159809735806920327451375877394451141625988355238080151599084204803900209109181060283285707261086120886683266574405727890755697774748541750850347121065473580261876018866632020301501880597570485750000990251345642886636013058515492048054516254004217236062748003445418548027241885762404187130518475531959146792441601785971627908557609572053518935581042493680727850160071971421158052889281759622926707109881316874570808897137687087724915098809543311385959672014920290953897868480945267828665434500762831938059903602689194318481966586240451587747892732248531019685174510887405492182982822356728462989542583611260530745778530405997013071093485402900993838598800600882878141512836277551636504373280936253233590209147479495009697977542434811721177531068920797862991209079252515142145443763174496859338099966662673958554240192204304551116470418940085720417158423921445985553602501092856602747174377895926922436390832814582644895170647706813192616054166225358360746865228809349211138996923175152572219835035068035423426309634977215560941899720968378126202661009433743009221292524164752070007042977384121185235624210133972841342405716471125269523370181238512497886920473573019177876491242475003222937778446111218643559268387707014506111194140458240561373773390505484962922317674327319385471474771104772783922438700275305811169702527876176209299121406188750724478935665661134769036898532562293992538619223572716794180961981480513131245753197353122146121774837952136106241329813229664402987514529247185340311010670649728699194286785627520928294363049197408350782567498738565535735405923709758715510684835274163987890354356284453782899844125362097799577107704483438417380136574570503526053259287121187724657337707109506564684926978163436208785639077919333962187089870285336890289440969408117729129297363354540980268026518519558288290972094629968893345606505444618906549860687750677350659492415825699344812924063160689338177254125134522631681680455853425472315220764143122007932137977018239457918191702000323099493914827430891474659635008757729831495462184672329178033725718529491037245540192593488827854749498068275158989673168135924523146830251723165012142947148377544290594286521154302348330123386180785346956238370045340376121812927631183604376952667581625484381892230296091193604426517663276923893966543522244261357320084052522739886799886547390848202964127942205882202449184814056157892362674536720987920949498817219531209053881691187765537887626579012183132391283869479259214355288338554112378697182648632634211729609373843709598174022877148992811088053901655577583633001396314068019078127500212786988134688272502453832707079718889222516378723981280284997732205274707825742959246991528077636181507877405196421275736784831340292332469706611582881594845951688262618097493577421377616165132186230433568439973665264524029398765074750803778772408257679734029976154462013038977978142947298597182528550824299706396756107969518422558800891022143481161455669118812058066384608527075298242661489267713883025200615166524140879681295029933111063153640214415796833883672442474084537867429217955108855041617282346806842952344197680076372226761185610475411620415267482646426927789567082252519078453557103331345356848786948690003610877972357133799873860172573510069507186501692204834457267164603353156569316865641097347199436850764197220383479047385577078837929834593510609792750785821917760218074472740304341042676561776038599162105173697549993650727145774473482828660982761287350429486891966839482907788445011918245330144855393684489592911062639525485555099256180252636053068834130390385438645067623493314726050245397013524700020125791879882914398950389957683359848010111437461658358445795354583199368806144626701794286256874590447606963292152578994005689490187838721984695583699236205418929084330540020117937729599808986560636588760067809796438871502648531491451274915726827794013143188298637067853675942369012155141055892095353921161171844367610954108768304521834286981952079886623187279464938204340305188053850993222864016398698238115636757203278058846829688564640497512117450060877838606557413799004834575631952477178835787783289230490390008068637853825088332244680017095961551983186852204751354908867115932540091869240261868885522217400133298708730174151350936483309445425115274796919820565328172529698772836302861979343962173110905109189157332002783120289600312261312860338647459088496394440999163144522058014566583862124599497428166645171409607662216144510933588063971853752614487675557422918081540891680706191212668846036081431552669756630899580124349916849126277940277591492878466046176860413857153069927204732572214343407870445907023300820645245042541778518667003809919920166902507482047772684926805419209575242016202801624165193592869720158675014480614815831098464507157436828703534783261806175943540552823573709271169059326435307997530205941876674869473330990573992730542249902261618053808259056368713677588230808845821704448942439254548661593928740700957474882686587510589680505091271924017404828192796011239836836401828679479159025563582979958041606179912831202478314455585538377899530973271249858214843646098669709900152809385511296014932215824300638191195133171527595745181805810037210424216445159457191021520006787628424583277435006594199935182287813079742899863952487426128417245059989554154166094663152975682899656054630336993644045507205916540865974105837415281391257268382135566701439264977368293699499978798984183543451916188344783444642419924921733288326600318896715989459321695608580648078959187094922748726105845409207452930594205234830552560479632700805354331181692135144589923070080976331157694058801521526570145932514984716379319172558924452878659983315086571477190926810156679676465510197350544028026131823379215576432136311569096809490306036256521472946930403596293254197157193802234566003656244383111885771417292107789944756501027394725120837349134741122093934399845408622578919217854273933826680243183670129579588078509431221279750347481974283521558783316942128807674324606003295346163984952298218422906852800545181164548430744517562266121676982958772738091594988204144323051883340033719151297633438545272778020042544912934672632877938278694100666072069580542180877673675355110492909520684313759520496334961910445954483019370082531820953551654430257233230506968991315575623581128603680354707651978802519807996471919075173802629177800514130235543191861698214528876423738467539197382015790726859072362317897156811463529512829720616418500492052923405436967485020940275392513563911565498000478411246168245522113267010559807197764360695232275733280430762871278429942644233306654998190959132790370845099782385283183371364797618170814391368523807632351470242379457977006489420281108390149088305270156594557744593904379539348366938185145540200762252635177142951668913209979802101173191312225173653432756505622202063337487602645459237082773384067006244729602763852329966447073056701030510069300079359839435036018699395394637944077083045319012812041696648417719987236584555172602948777006963694336811084300470147927420698777843491072799049160114873834966179170140281619978363926392051736652575197042995323114444403998020825476131638054535842562270197618517272034066485776752911770756079141109686518520528214528460991633565317270419038573311170276989622666504160634097955545662377688399040453891667983599629447796655553830449564533722739926320203846775241763449750840288896005718233304182533651061545022424408819123082323326526986815869819296033734622180538129924076493029826389289973395217151901354673477065780818057798968404123128507407985849526090240527125289096900355836005815837606477916240501347899058431656131391138157036928630539155607493262132191615654039741456808667326658286725833701250448895368087355213435735746217785878454780179339176782181318244546439474191145133152043338586949230817968825681868776865325400523465960229877946009313997709362227599590304016461745547308479786902906781757408387482014086516988389331825460169295783027944159570401938303987134491768420234071940908062301013062456291642285782174999055045102996157854384514697051082512118324358005559640795980125395428183123682957343257985680969102150118351954598522141211970052468418823154339441170376329024718619375620116475692661088575779009222114598622973771162368290408802342386741326543890560686668835643553955691822721841426616876710169764351887094871925472956926644182436673476241227571807045901580499712255410999661886397676292160952713696976044706032160881490985409777163194159368045609444719267316068816048615190540864480469504916537298658666346726257205919917451284913834704328763645462943501631427220778256906945065137431233895915299791635714117780996499858632327272465484420780254824476715538265723154730631917363520924921511909918217548955438787634343326487674499080004076019213498138676063045757577547972725916096615551827166716352881937745359718415222696731213224847553361785242970585172888110834290293274855859890287674903400482981327949505707944990022155317842217577029503048739844512250813712869976525836720217060115325515474787888742490088235048300921877512172219090216904692133206356699067224507884875864629397671588013577918335341039654346245948546663650851360213107543755513159949749646966729187523027394175985697669591129057142462638018885484399184015030680066454429705419166005984684227011990403886291714435414081670599863144891800202321240415012668457613517563314853448048230248062534780484367877967170990105492192184043993963435839654386201024572644173192255074631085604902883242454862513355019000455471965449822568574507887970627085926918675305278343238287066527458853870800498266259699008523781816125757816670512074212823762290779066010201531300121367567575423764403037412013181956602547794302874016285829772599752565378552530144520009189287888299936633669732954963555220554126587375665074951408060364496473937458252001658720009930630888164860480725921343745801023483612414854072274042063389435389466199162091558152305484597518331470501355554285191405264849329440072078275028352909938617050327456406111158586100459920251690456824509070608890739337536779542868556512374183726074531653683508840732405390406911137350525864489133918396718052211449439592347105845981305332817715777161472508783166407525082353449446802500339370914515246250025232061783987534669878705471421034876281878653847983341964414501637137135398273389868503733987780425176192018700023946558321911242129333021959156059528825506024836199160368704855422491805972900915878967093869198331323215427531101991380442425884347012254366812680042037587592007756747531014667648193700673384005736954418036658295731402127636605336039343173387317373600601168413811881964792103263816692006048611588110886751328098081020390422340923773276560737822355612047912387683441806032222394721640764945930007677315288956251438252988148798825272620666191558152854179638109319266043374010117045815928848532616932563528026705671757808799587154766249770827419096424493835170445204465636565696560853403099695007854462163038682054556965462316765167990354277840359279785739998627194959119835805543598457073055926481500936655468351517981861028805927372927226326664232428152154339038538817794945664328220829171613678799769872401260313689404215921966642041704297987748965464557912431924383466914146196881948346609500411320155283953585726532287836536792071659738813401999492437563248237976388556848258648813905826725305306842143136581956886758973791173706882222518511632132503441370541095980830694199723676900646246218046674048532424861126979855426086785652690214248535872876840734316074319592867481244767849073319835067718755888941749054574829695956884973942589901569235365119433997838973584698656467239031962272981918774913229448959070170139721949563735300110523008968688429112354978947112374444456234455466444390428024738609243772098350725422733535932000289704165381078909959357506892929557551950456368628564684862936537575740097509438415950788223716681133008558055439102103428371724464734135738828567469790308460115106472425318156229024844777483157894685798462341585151656926210675894831850041255770798928743885977236759579627640586446378844280724961981932325324809015436815598240391810156334344011705683725761430293268398267553903628379766236724842952960118220206944749684975617866434477273516212361629359440918954443675172533431146993838795422390029155403562405250298673997716252594487631855634065962891250173135178542189923013735616917492766044987344628204298997534265361303827617564971633702627838380827446525995893262623463157053348207104939303707799366888857871016352833254211045600115176186503732666785123914531118681466450731518404057246479052203210966110675184706668508010384861278107226931437354435695392569737658571647582177477519504414694573891398994563978288838755768711479719821897202599976280887821241192968873822509430544207664480656178196204314098433711760234904510976165778067709232666124991311487955940890657389543966829542727067641545873228508970428770450177997977053211728000103337498503237665911527866517297206844919088016554567264406316942089182919503556455758376138771926911363160967340611029165752317244774070866658410932486800188034075374907353464480126439362865965158269101067039912830768222410575994159550023160429336567598844639810753457688719100505328657384431112996611569231930576336029383421920396212991235621355619597723124809522462431782346856529558287384166042232830282478095296389053437808098753954948006950494986722029464825779664117286501207706267691388603511405630491648177685025467203017455434510448885726698185213873238405618269176328316562359884131330561840780565499742544169575198721197155356430762154984954282898047903821388215902740988834851814677609696785566504209217367800262196922227181997543887478544885601912873759934563518323561651000249761105631035490642220843930493228028680333565961639119918432269950249165522936336529229324273633616188615257658786020100622918523605807517349526598787419792972798465963709950373799183008783949246411063221109998360351129559886996530407369399931653528562126123022847822792045188912769770088578867589668886794460483162783202738836092388381011643043154679449625957380692110932094809867021714852678305219550573177441891496656309800029875816099406699087146206772314446085347822719581540508845568162676137174524721864501572121493835386942877860412536641674364301322870871328154899780119257552950508385822778706005789540248295284584151749756065856245251478644165523452064971667376131927175401114236406149303777057956237236830474621099336748657639345921277945901845738065868645776865694122141454867396492483118419375222869703914006029091983507943463391795235574519811992202255996365632574667814656099566505897174506076925978417959152344068183482515815729333281176563914402343127139227263672661204164289617842679741439742414766366591939508733616930416395373657354229284005806290266201271068056027307543194287641115123140293164326491321434161164593129539794251887019040029077054073592748621263750976032052353101945524664371372709751796693759863747967303714440506108456322335940653354837040399903463150407006300331867893653347950960527785900332642657895468454068252325343664143467366598612503632888526242001275219253746521522172279728062183063592914703829823426271404636625222787486951863879108285355724152665385579160837182349646310447205337228722914257644432288103321780756653365491882582267831752319257357746708083777803100306486121134085144095179221597722780340979030655860827275133852851909660731482369350435460068642576668172325675625280994082639992599795567251396236391207004341277355357709055252603481591577685442580786376845024256700324847969607670874785177917335754538360356533290501432664333456316492439195936435340328980489004579919199775877554394707537243614057097263947341423705196445743918774529421315067742678525539472727271340001453962478352161165152213839437669146549777456825423202247522292586992132377804535941488810864220086245320506970390038070184640212811537084357558298734902045588383431653786143511347121127983736889858414311368004220885860768875647748216157758012502598243607938782218709607135881724036406139544328226944624368407869196763765425764929936093126995210309264649454254507986577809149771676708117405649713656712664674377223758321098243055002408709268780508440477235253193150399093919399468847952335941486464141963050207794520524839808273262951604814598986863035873046400546624451618096893422838479609890362206221856047662848416355077838747858774409566717588396757709375101978304531844994787935909149564050146185476907925590598905273701533791193794920865141566860790396984866816072919683624514508795043889227901738272314013876898545054637578471794138210395112543764962492049822478765599620399684901921325363123143266678574747203238456374091491813815976274811287770545314969606786985733534899031040532114155968249882486328534326065814006653334484917013994859959894921436566257641475719214041551024312247091910717034244187456884601962600638926237645182907440562877751987063939903060380223699885837397001188209628357389158005179990645822853599855383338987835178622003805365616073899987310819060753909523286998515933707963153253637604004270484116351735122659815397473983237427855546261422892410562330820331950473080531817961295406561376527020963353628236230799106286311825515292480257893628693073551318517489615729330848529144809010145559850542202820368171672296824472421674483658680098357405398900262960340570562689340777075506049711190271682127835242958111085575383541692130284788002461305094072651415694613150857488025683212096464806609556146292438375592212133389113097759540061998423092611926346397304404034354882546006272289735901742699401620189719064923393036394147296526107570866938889444427281704795088897783243752654477528896941015227767386012633312710115426342250068764501807232906218996941747145187366907077735201017610153052490584642550586950014255261889151134031986188108393112986592032331174246320620615399696393154450685268056304063015521763521381372646340751532392325847393995836379422237721362918886377308808871802137477476399050590600233566396477581157007564010082673250935190368325118504877757234266554734198308409831219752577630711956229556833697193613233187054369090465955999275247623435281071184763335829154751034397113528635212420230274861965796665491728244287756317524156036264211734014175008799824437670218530307373138043317672588270373025950263001426374334412459431145487813630551899510888251347666660678550282391979511795925778166408697148130767193198837192132898764255435169853753531069263941344855696962464750673131300821192703563979987891913106860332245049778949443262212559278556397268169719001409397939522960597195726382434131101346224672427754007904775887392116712893669851817847772019601948408553205353283005841013629562047850159224576735846152183228642709539710838558834326609010128865473301841562807646117100014671130434876439825261464674014983732465703127032976632823807068693472926161133260812046692741722252220516105178861886752215710310971282497280200299295427503372315985381506130223760430131075780829472546084948621018681279625793816696125122372775601363429359073111039260746979677497093253722518972103350916366927904262880695974201709270212540478118824194322691138261007626137260634285432039536501757380242137932574063591623290819003380143752699095063113767313259068338024888402268192476732566862068442823142885986623400210345873013349150144202835286738129950079636713307311304100268835261002983404345476582684764918636313024729433253575001556823323946786604255370593293660135469754817932464887646427085410485691938463193784833916410585703400712172894375331065279415756341210286485382107743823360259725301484175411859871665651866184010013879799180577123181856038709648821911329256083009335667726613924225225045989761542348415259986478171173027696390158835577785124414014086924841020473751202511920633590583875638361219981468972897578387693068768109079087743351312331178933033342021766951469642340289636065859111422499244612076546357274022052974267167162935938916377749857553380254597548949014824986330758203146862919203243755104873055534103907680002223414011807838169384976899503339337639852707051545777016996765273555285984004523346569325262201914043054235522357144247949064805583159524180412487480079916684236688694914900467252585590528301331648448303115792558318747418058182348290123064279718199642902034570579057829851040450047164583368595072251759096453701910794467575610026875981344082091187224005139005360169897884212502272555465590361032863049876361917657345689902669046737346360717525467033678827752220516692733674086485194931288386027197908213545019133190156835155151576035305336659011005241026128661095357719923428090219218402323021860746651279813004856954334498867303496971772649947157118865553302686299479116089797555110423033002938791356244980790016144975066301501485716849303685658625521182349714253819711631103820369895110323284259083596852579503970084973047146917380035580104870237823074705824986311351816461693873604742466353821722160595274363899075430983129820548012816526430388174456814332942691396272544996025661360535231690990622933727260955207762056365112268730737843149858274764769014815006302050916034991506584035114894387622139243387178279224295439724788870839030509000897181699091701149624753801156528907204029091222798793983400013696567257281200518753053353456323287516017762647538851607861636312329808418776084677927419833643944033560430197503832229401577879997632508580609793159973247463124050954629963960538703194459413264413610067742027613743998828080593245730758217349483508282521845101086040084146727151694707277577663946122933852499741991943902961214179194845444378569085250205918063098018344653898005662678979237686814555366172690495952460242683932339503837661370686247774161670919691730114938195491091429936927313736329051981928554038792338617370445317555507342235096416016918100065268178707922204393172597110873602834886120959781248263848077970253840123226799410189745521701663887392319209805296082336359872948325639194596608252454901162226636593110198296949191175525087012641350999465352696379089592647459650326328269919417193165535761650863435896676089998997600228430997965444467428894358141736130846892822436241341676884323435889078266321515043175482147637442726992521816426584136161640496460518074453134390977153898459170382169338765827810796912250829491727512604214630427984375715657550045279723636946627802629577490692272684195362788430808931405470805717312776577940514346921938175448704037569187938837494970363440884692843235773083203801973308590751771721009599066329357359458513724819397785994428001875519186397984787382298726570943109328882658579700537091863981620789316218080317735708567385749053868653347196512702918417423135448895288643939391159768359176318267582158439548090156525639739203581858653950913786545838115448862131122536441038662652926857250121822141493960238935904074554604606419110160587636128765436227260008886851301406505989492525943724276444798879461192493710786035239973313977997480464879888514313792073200527817798248618079895232951432271954030904250234504981382782153273656730369260485091790629158146532978554536893389510079955146247877127498933188850554050911584400115332719938005770485289191237171024521942762510138119062024119957303377857014556238654946316446046683986106998812890238381600281659344293915072545821854388608860136145729308483037295519098853313133783279860532592342723379126044019736206490193243576994432796540611679428681857794083279747435534243480501174914697401877724366760522294695645186400607855583044896674485569913871279289514631246722710099131196194557915840286092352767514044266675849066618579400395994977830166325023103524415539328528212152723874966621600645186858584146951878105258684805734876669130237971692293039057858002068368703390095540888016829730686024217817068687536906577702770184004434444633476728552635771309694630662492353708769522060320479125028515818621867405822286840430735427622974838297841468654454194964913289983609565201476798624135053588674292988471362653819951943290164771698205548909494614860142855523341761291727014047958039740731735624275254231978669178625284778611131547580951959705370145960361791527259960463416223680667341184966532394062124043885674455975407636671213189025118451123732643169062721988393979873948591434837899670067712662602456587436935631812742760646781177277816254653739116563105863795999538544069977921779079008469306621413110048850167354966379871693400548030121331816962544510789568805640427449677003711590395343718030516515184453498679325456074647943633380445722898433234522611106988417167167979421253213307256609936928308547245615187839519650773318768958514237171488281084994732524837377144834911610961599214209772886222772479932577426007525890678280954373925691035962948035316363450342131164725837619308298327331140140861525729154183958606386794286431688633429995958185764543617374927739357731329858779704317535091875041143314425093356908001254798089155111776008864615646257108721753596125182288900181850268142171005923652844045140398245882455316541834576929474607550277922381822433187091133805795835534277683979250296302984058804277455580823273097448837542768858337997169901385346982834985450535182910045791018619147850439559641877341345627805582630843303564573291357197694759779712199434777926035403601606737742313318115434392279037187229532405042270297356291272107860011840174537635598548656020429451487145454228870514867090058224444983635582068405294495772469404887190694766786874570999250252663828626624034326314667892888226079672919921382012357223661020412606662119473639218508961413668466454622174076556784134958172010308761304117381714430314478396785727302081204739144995846991098762768579915945008003736290577587386973177587359432454896498340690959154119767380584990044285657695382306129271803916413815157191810865905440701674106394767439469453331139787524149682618628691841653384137663475885898108606047307221929608312957671896585931819512018016728696676738895979629486916958856368687513730400928998927964838970508405986517172315605598543972957945441960255702130933615359601646987095078322483323839928848026877836539975458067550807947293102322806049183297881446438450812768346512492345151786755910504292882337775708304058851618614799773749958217817076196622308559621710442994304163495987803619495578189985388390688185681897608687213986559291050551130751523382406739545610484184350069286281936512602259284420721602258919975007385912204256005327780144758946840006421124865998360244201851626609259336067287216423583938367685304139712823772863633360136213718167689533356736301867421222179500875255226341658946599940650679408630809786969358786820095973104490777819691844536510324266208055428564777794143366994093611668177857900091523239445941032372891632595930913485191750894950372304327876366741811087308233055763290823030244770052666800554616840568708433582917876692962407567799939758552887159654467268697465595515131591812018676910116470040876823272236063033897559749109725256398872010088246878191837319367155806748013988877965084248485690985541946139490877240706556580446523392974132972145642604216645045785217219997445516716319099763294006921485450387517207831829977833423353449970047882979718913694281879970710432061999841790628271109319812720056866036410977767700220667455549690938601342065999235540432645892813812434801417637206106223457447944942228581889022026283282514949169199128887604393278200409555183113770369901366697925707620436277291666043310550468361031006162007857446892567018642270923306610267939162262336688476643902550353909254900993505161124168634436031534494276440810346512759090110377020224444147986993304761964189678140983213357584071423966706607677217154877875467895448732075720902674392913955549568455510553186726676677589292606964951243840544936079799490324844711452454990836493340029231323813054701303077241950242455403799177653550665311086494530537902264676724181806603032569242855554409074467720113130858456793666721733365929069183001546780647887503093965873561486543446069397498205275919319571183648973624319688980791640031140041064811964445708597427375051813831393850569068586517824833962234724588607624613762320945170951791856001610164875153343967504054155630076185898136578901139173545975419446827410928454916150671080512524423585056906933094079996724211798633598371541540804381158433926120354275801553734884522244985299123234875104350481503160598641067055862475702774874546069055138468562674006593828148671292571906596818395127532240718533688535807671203406572083520930581033439799006170855424047200877638289407694607572000727141703905729052432763093495149072301453255743623181812601603023270786387912139172716906174287348757152977378120316323952819269437089624660752950591112628687277013086724422174514822074588246073790071633636978279508009503430161232537474912931070789192767850886695607236672741445261034534170228683162627369170184219060403834315775104221508617825085831131599542783550156084994430853856012639733513933381384007596187041318990953812739466324709327552313718036915548944209316501355010318704535904795209947981331582458036693407791257098832004604981254681624146568104170482705520223265430178041369073205278730213067258991394979182076841477984201994453995402874478000146906997826475614618212479267976720880023245003964813626513396812380065810853837861006210681754259597243900364950703945937372644085370958396707097137680451225770843469676221101085756441875095517495619489928884069483655139518723691120659315881700078117604186665092194851100943777680293532287055328823812988315505745435855908359693420727261735728583688903630275663429179146675582220697961161499693685257296475557248174733330053608720353071663183708709286362311716852255176899891997804756474005880871073190929430287566304149991140657856072472968347005939251602851379463697628027218626847060424855960210550104268768834852301308682139395307564871821064106546677940846040026803926012758018035056094483226485355744642865432394074520918632755745153060362115012645191053860646782770160694007796271004150067487433853595248483123308807939521220426467944969656726983515752123201396501322500550881248535985659920008283713137506294123726501817629005294747323479569827889884741415351656975899956998167522410578729961760218285211580066701248226473950640105810583446407410821347441945090035151006924191439325240467576428455217578504057478463089117588778481182479117780301574779857359463447929909111768334269775485085559829703978117225361794499478585011713703450185637139222925361972539276717469676049980684038027165558967130806026384660324209491265384488970265621739769383470671133502043857662130274798975135606778731751096050211975693219426062436416222859624052393685843787390349795303638089250245037548940140078873357654578755371782403758890139260573124613135120493135501436440194658143778673003873211995616783656762953164393087067526483801628021359766683640437518117498543404239601658870987959505068269199095560227036029079268686015266450551317685877983290320182840502092447977424347775829027844218576730053711184694304368321061549179712229472819032271987356444359947745403546475277532775237639720363616290693495539259214718011296208957624385068859799598941725296645181754547227342407820903922952267428257745223498634742047242428750481757305852143640764792787777552173424065725119679476713975470233742998993120240410860614480602015138390911283020749414909766350222006505072464526978911971500046088480676953101060362116784415692825913135086146253389398604794300353062336254326447595562123041534963175847041595438708841371775693315469825622682257407698268569108884735071896398051410325361112022576588154384364970167613238054702308074657039436249132129258207335254997698735946523108247536918125775389580162867409230124768537807629516980350895388980888845027840952895343100455623652076860862926199528391245444770753080800424424137485341433332607637942200817083412012062474033915337670668955568262532624588323330927058337315609488913525052539204349059299151798811074761514765729136663086377285463297840155018602786116333610776350950976612438137230354846151995044267731443543652410690946951188752541956275954802933514236482951928122599160205302111122515562653038627155320388823947823630304755015629027105983355737500575799484127901395632952293661152826782663869365069279068692396351428989052282533991794750717777333036330875596460910896958178299737300549727744788722089539871499277991131915757231357527720310220142207525481956915075187346348431671147689240852520128860434891101490867336951915422082440303815812940388583947768189648538709978248099087820701295212087141854991976301161693336797705220914426689480999905844893924311147119556313248823648523718136570946788758917576152501550119839763301525374784793187784997442391975931794977854277429767201190056003422574315611140623198466860718400611207251184365348411921993722729583300208658746600301143423154544807988095604448691400644860212404531374449169028822965592095159662021057900530551951176745575061632068918675290376404837526214165500063278308437566414624592063010774280247163292520203279087138822857580928185577396240037677735603091933830136715052670736294289969271248455370240764608278146361945054769098862797030574909830285147641209252263516229979008485227501210471432069861936257709498789194550354456293697445953096577002431516626613497470272526889935409854680563402786331863929669886444170309632588956328703823312820466843745717723373014376399463392879996756842663991729574828370909300491646868310608050390058271581810050979708731067085053861796745191416839766613290017319476802615900550516002615746104407100862958032819846160159458382706241500516730993949349782120153396643246460149674550598527871132250266133054620381595000881637402046517745403630126899270213518000352548006771709554210378530307984921923922378671314145398782229443469620300305224388192939308906093963951982670186187733152744797461015977810469466268428377885503970135824849819680819160939524046033536759460043989696747465773116320427312532465103236156525829704402114311588489719148457816034374421236734396908422526706174946945991100192203260763500879042618419671567873771656137182560690405820658616555781979803911739828986361114179385793578036082200781849299565924734329031461966812203013534637625567573191656041551682551796053606042641065023678925491940319808789218063283325674999210633128205300032268571111310207973484016797333550964790244429509243888683995385968555536113524775451123699777658895016893325889536918048403809353002846740512129367132840343001565000289348737769538562566199579881914240960792549951804827753937145692103552286488221172626478639735017580952280177046280480699705927652206217066878140402779938207952647169981581754765826960252420590849533399781603832173584564142185735816671643432783170178349938269896578288137220734249604772569876550414201918273849909919475612839704450752471942490034051017024946103189205397534468687523185439030798839766013073486209063347354422443003361957469506754661227026128414978609540368723909008148894483272300756922490728675014063389189507584647433532367528425323017653099642404991055689001105333573532561057978922289385257158872906704408123515660552768835883012192303299856926923169482336796822127749015022140757619520811893926592945276370299310524425738845241916265060042745181712030493066477617737795270170322717895452015832272933115789943023107741787533799373043101104098511463347571134077351783449080094939036069604223245505146422671660380658939594715953799328861333067773075395510407077587779230296322163154564359348631063609691249453083684876556462068149294292871187062812942654878330899476368401953747579293097934600926017186380017834906510931217920557192301921487102228214408303988872157996713677381954315224082104021100384991815662028383547022463108876775325034038190806351529513965673576433876969698829187754932182662446880671820676246389348233442151044105108823501065726574627598379808751666825295062519654715111409283922119120658526181477925199294127212634148633699542746265405299369252203366993954940076634500789134786205104153465643186860886410525543129240178124831419485194463089402779528630551557285437889343625131526112965548206622785196435427398655313599358201676447589028994951110466812508721303758802723538510171969804846902649690474193359177728103429337733457413026430422094218412155932184781209370000917193161796336316184943380067903778474898013230166260088439543395870934524276961645861842020050486382414670465434528305185743292073336600055444446259963523471266508912244311166997966914778148874053641730164194518714300546507385944584223515636479550503578704636390159588113492988689161209690906132890453451308498197530315024823836918015974458229839016034913473353134879031719814118031417077923523125308570466116254917943665661001940541305185063634408631492156071712358525899177094862907708745893566329554778052653404852505887993935040763815049365482266808253931122131504428475465247527595050905160030839656439846213798887581824266960740205446077320814522014919216620934746172476863622072113276807213133718746748714603301130692769280197817279877623727130801093063185483949208053146362696920720889163916600417943271362323541134162205970020506525356724325847454027298655993276812811636754084162164714691514458382915013089594964643532822410862596073046720708999359107250062793303017439214497811543877447903798552698231256460842852329484600363154641565213689305124741652572169037022644362528439408122762180445091010275293029283059038543904850621792593613157155397877052550409159253709741518796085379061207343360948458537554549691349168570483790014098258868418065094761808006716850327560119328942984405250580220530748217619768016558417375540193820421107043195070745532416914794223653861865354703473106422963073144389580903219952575800813281287529028743670305867943147121461750260870126366456069159655680868396325999082675329805847605688354644559853234467615255557985956304072663941248056071929206909717480830679163559537910625023875802961593778408780168639898251573424698144025382998490571335885488452719809544054297374947562190341899551474947159229084700425057760927047001698816172887851926165113259255638776225949365829016375635782607611096142970384952244617627410266882143175979911948917519900328843614778705507161697278410765213743998069865625516610247936798996399549766247445367809410510375469476603508663765937217042867246631789706441198590610048217856379543489566465315310906378564638257023749264032066408522792446997793192855680560353294960959508421062567615946754727961341523921978220698740188133711833888190385121488434843748773013595186432793036180648004986135273014748097874306702258735264069009853160649284447869975494272745719583999035630804535168522141031051858926441660779868019137521731549925714352844649211178419144168191833321502538481882028109239488397692999328765257592991662562733508281292961319404563953780095904650472648952489710081262445475038053796793325186572488267312816517022388795525812218302841563205213524706805043756323686486973169741630954047969924024877351028949287018433282209567253229616844459925880019511600468819478284321512873138771071188677765883245512232652418557082027004098154061559389310219080347893138021652438297717264862295621379366191950763038946475616101205617462755854012174371727189179952276232471635372020136912897916376018119996178857839385880718455590397031746918002057770649539237362625738391904757855919159157863016804352874413934301084353336335452463119910208400452239531884614628518663073823376997333697080429933765280603116172894141098079663734907450650355577815176747473908050106936653492735081687849790585834753659401725773629493422527726808540293934603596890720124920138141874453238449416948479626980984707624769531311810344995545430427040723937723453456423977232122455523650189121464251028640449570483602950412291201852247821815652698134294060069436338349402279232400581216487779502766853892513552216444594610225114497839355343839206595857104614201307588781622436349687864359952424305256049312938459692689815375179954379720006312538384807152492813625110974284285076800459473079108054123267151919219733440980944718055416278515566561949946969460151074172816598193689987187934319193569826686028143406283980482191752640233025823239568780253061265771788494034143073337605665662492670567832260011529318727572323209850266702954142861796633260337417527170473737248012450650821199460968192690702308243209819683931489499375392090823370680119776252901987114906706394500125419366034305530219910688331364912535810722988538464861094003026170245760890784459663696979672808604123881487422550465144105369292142829375451839006021423614142846344723840221989333248655358214451647726330418825089987373307690617759142391396505416572740702519525985078876416372806029520523447109676968761683008896684186634688397532083250727195567386159829527558086157791396898981237470595838046545459950020726118955477033499334299130695976782463521128658141124818797907994919133662564806950928376907009215679067513060839497580804261841888552471513483492077489650107963439608344595614582930202107818294108634853023506723093572057684881826422474456891198484887407153751405505630598858383570337538106212431711319247360546378602415935893352373770581984931908606587257099524380370736043493823114281539035729476699223045073635785385444879178649762893220040959953979199592334946032324796835039661457847770823193190167424923779865016126683657734648506978818645897929324675938990689349362647229587116826143923742930756800781607668206543210318832936421637393788005255791797585436237204687446933080816758733553678463164135656940997143136088142565509430349009559180038878174978584565794730833691638906619998191243439056345056751931977709371028195418868184081816721311104022424230518987013735266158232057563425542928678468982854386032058933807612953587390567866880972120827874826834574095309920023095298629289199603060468632689112916463099411791100009729184935322217968315558938546952893872988668843446712508592038297119830587012520723157015843451177367306908436494077632088847072445596268887369686028724781500061692732458494505227454183576491886462678988260048624241767209136367604435517942237806922198142435156863913488269277003426770204369923442788105558263626219152152787251092939931207790830911453448554548804700548567699054533149116422595201337568078433403262252313077141939827857007271110485965188548299382034376176879872883262687007149891168214594699752400597725374153205804033276979659948820925841878184988386508470825790709870998482744209007794272852354276603724699485591108875559454767819294439584726387719059478566179173594007859822473288197944208276452495351117502132096377199813288445408840264323160923000465141242893183485137536926621465111656070809701032018492418273971056383280621531767178145406468368058843473593566606941753464573714560478241332609351368004771500856415286843711123598903860818881868325649660931128356231711143580167060299004462541805996233067727226672216075096353322126537373687764048602450699680895090015912553801371728369476012750875197825571393618281472460536690893632985501394826480717496102059332460703151338973224410803138457437527215273644103306146235931891401700484197276128055025190567759901702001344701236139068194644547572566685230414427856161485998397010195763845405063985607497487212507107062561478382496150732838092352264845104313702017526422478644769496116375041877987471389348852785407302078633505475049289084598684205106636081110164713883020372389872326559393629180396199341529678644803012300509055127015902684923087400859367725649900518216130351106541705926343185230509877974170475594353768230395539723444777024876204821969087516525186958469396453492549072575666664793193300463814153348590400680872971926652044455465004214764248322073224329823620886633777918371478038406786188890627534134950989830306433227282581596122428219309176343801965946702895985500856763481614462852861025173236266634181628502668072751390328056770100326178518133301618240262701614363205925158688799948392804196546674289912916514226785889748306816075432025229073855968212015291759961494026050917716182593425344265468429966158336221797720231769137030927903343722089190923312078726686807018754288341412585845439607144512710109431449616240481679557408584075291348678815193600580892286492964579827305367014344989889229974195075013368943317102587940120309530568661661655413530220273222478634428628321698730034037206935830784783940379203762989500336837724236896882324441974534381744893467454948704438366723757296921264039662429427520084733925975389176218768521377908167335371835565217182452919420720303502652987287660377396452244228132865073433950238367545483444007340136834441823284589013309713859788555625782465878386596513518748985758136541237879874618912711375374956374788945548499266516235368576831057599728665596190795483254349557715513975703897317670965510889211776775936464907193022501084288556863973897088558311145638491949566827714596228191348122921462460157223943756929538028291247936796178511188023947529273979364130280755448233369836395318706283600520382839548563478307492567007558219861740897485689879632537514588778605224467204290574787483811272104562619590130340581129061742293436138379152139586585094853624020035734221830933126243488995321858341855316648869745768070353715701168201265621307435370385224857199882157419945751606595609860508436778536587525292612947089674449311948673308803857722609737092926095638990662954877399132571717604699110479982153231401930619202854124607272637211395546381682485718601040078939238186298873002298472069933808137430529328890459971914140715978755307945468829416098106295385713484265692878788795267654512696745644844583527496288357870921340097871611363901116055241836406267135309578904263960490252763940443488031154606840583884668168221357527566150258919734796944664413690628333618789331966168551336199597428592844557052800457580713332956896136771581100758817399424048907534383228865542394129763334150610359408677066660423987752762204829508581096289170279238899035493103310527863217465266215738229605377284291812426673702029224771057548788080050377256921489017235705637999778985770490291354968725080968806477048728215991313226768148034057907701141129359729250181321474228679429031174569542080206114994816891163014066816762699950841943276674703526566000047894865705703667516014136334008268646906947427298098488553327044222413100564778042871424568166215127027451999681994382527843801950902517124038766669061083481057674671804816362260158163446902802597155308525453373318847191515146532683532390976859007843501955646112342755047884243138040879257702845216883589145404102635120589913508898010028818902276431936775281079505617857003467989963908189172816357568287671523593878270187044153022400717474870522772427379353640642271696558782566838680301170916703056595966182176217478023868788662272094540413990739220919277407664948249585545820483265313896803788453809187648621377862001241661206197658479182335892524569313903584086734909388020821863810390595768882078705673235301588112016705861511207654262809786708795245120863352333584352651528279165998967245191730535150055920169132118973840783845262888064447244905309569819701214447138214772606043509960530035125834818503492796584047988285600469152638588691948752667028667608810041441076460347379710618498342660698842467149323148266024212612300182752456497666983785281827401365625287937015838310520059701375371484050087511332004665510737095880100319308454250406454810987942595975673922174068177977228008864278286450677027839359962400256144698574385807846610004510116437427357264547488332825814581362859592419125706859259204362914277164375687216762086582883276409543008919084129355052865373231823771306184635542355093131124750119264197680042088059216513313785506607153087110124857556786132037681602868692947620324760327535487297128965652869421433366355452499149779792167987060737049957894925363840931308013091035373030862039933067909064417014371737307682417118792813696523831722691661009564105913937370635173244870806716652541711250751539728845117834822162450803555479534433435989459073729760950612953171429654801206297487932436564203287913238479168055578273172440999078113848019356856871079815723359914572293564706139328697718696591026216984301884659135193122365348677812330984781143898104282025448230053375822710039771964091529672149246367485916866198899991998906732034109485674187097770843835054235047362960263683842723807551664504422133075892355206786005893002053443825431764885028559965963872496245646338453076108949359157880020692375118623590017777012715221911700117418421907757453882132377873836121986596324887494457059181604243891558357821032228751529583234181233385248410869845717219178146832798813712645781361842911818806784075135450679434307867811118711028928022447754943562919925440789861403303588698753501110088562802804927643336673140441453373118563581693696839701042715558949906046736165464452925980895994168908463647879184087112864798017396350812629808834342627639399253192699193029213080399142047504149459267609708000070386574203654556437031634535860704558429884721954525693124932076890992672998863062268713921777092926976646223514414042951173961764483527633864774284267318917646501538758848292285340593464997914697143065269943148381284308211564336305990469664268688872740380484937123796181571359603948807706436896157796580045716976839569152462016469908763839438465933270342432283211005859141015477277772424547800090773658451135501248523041361279138277978332776093813226277698679192690213299640837377786054966332078637424686469059458907955773330738231674117644066817996143525251943102916599449274936831916853287013584061170543405478286308281208999072314013571347385718237422263903314188204732308359048900716479921494609895352581763650669531371697183177298584526726357675273902611951007431310263474904535798777488485353245005339983090133860376035619428699982157499509382040731634943206047010435573417240027425297066557319028786296231852935485139617417788765496125587063613755459044476375781973847159800107167802930704924872745610623342186913741290054359316255459008655120828544280155647875627369352347277786150389258815173976563701316979076922504212818410931960479573386899686051741865865487110240882445999158839014171297153126372469026670505197204505073655869102656875918352263242032740434933871199519237378351504856206036471581190914830837496285566778364585318930272977253351090869220866042180314208117958344283938885957655810668007473682325372879523917864700467099443229545972498518858122289667526242660223297409004300476150078768057356040034030031540246523139652600329014479936810492901828060853706098210740211988013901268230700737349193755115165323044095411639453129261498555620907224142794426516082106107672406728639784073005922452873942210532013590492571094863589970754572099506163978974539800861944537759891629627116234559045131903242662800387899915411047801581840101442334271544079193803094686170157520973338356423179419934432479506951548502761282407992552182807282521033668289947556610779400533899671903145066314137750956942236328529391071741003803925559281447293808981934085560131474348441575034505955494234810458624215912853708902053934307838161633027039277937650271168265219547159935666690234056206372127671301697129448571487288928575680879083498356561727327527369400364234778655331799271717991993251553308879138937023311976561757752695855657062529423472142467793909181082950481445522106087600225822655231711535439140069871352972929418602611127991771310314126226446268750809379079795054130958454292651552144630268644420067814719323426768407450150355645423304427314561307155581290401351817095692924615606281780429838598219805097916513591637330469641776467633577504688196084666872906440371995950983354071566387660018941475334554096090617203061680916029955267181122367018242927285537709743267688250896046054920039384757402811936300864513601302333150282354808291705559316873494899467193223312534094818476690964933622444833896137472209594877396141703712980663882017823485962941667017498728268548199364178872579048042920692203986122188654545584358142461030450937585820264634817226321590563962197137677245172067592850739958809024615490089888774808097093804366038266400515812985042427584473993451326620829265348904489084141254554142265789526646952955977070830977824703436353501538876595771261380871866040867123720119133924485394973326375579222293886048992035027051499545637577825448752635411105482960461254606813312668105086817507528429038833804310837816350804800864877763502488717458687610419199219685380943045356375060796336112862536750804182275688966045817382521522296867245394069846233756687768273288058119457589549252546371991117857704918265019256934630504621007275544997625991404670003386798164893317586263583675205358194257310198117593144523599407484897216469223072997353077122756905786527273494461237200333356904760751594239694331373085315372147128039179373110069532780764425793342193796809441613388415961585101515800540588814728316777954563729487921037753015272490103213397146994562406398169981680759679611968624799061509643818638058138697493478221695572700269897475558531096517639341498350784436830693583457430525578399457038495328993827253050474106940275457244641110798644421236972155546731916736685216632281318175471076543326081130393908963886823641050854258940293352055282371581815029040302152028220235255617958695813958457102668812282865750525592037417219537903542624190665682293209549508790857052590200816958392278305580065789820043080549344658008464026929364023855805145627606007232159163313890079093626730125983845325571296187078643465826172609991934342239357206835287779449709115995990949784677098065898238446205568728409099990438204301694946775272532967627845369289830494705392636456386106060889757721960119798704809280164068491432373030333444931234081709544313469732771100710851224160841728471751408320407866855119360582831840759007191534643903821373592110388270134600530147506201854287541810669553649517443849593481076492153926793562345028353415976521274366992010563592653874099425858819082738158927773467441387566945031109300337720839926732045206869046675407779340655980402440978159229307088964556738176557186697455275456178999837747739270049416233109644500346641581445419533893948240638637502556613060898545690378589394665325687150900709211453465491731616495847054165490560848032917791249951935135451388117777615408055162523029668716898852820553758453550596558960480432616966839111647960003283978374646247297548208530972406235591562451664067253883245908532333239171266384069819971551584415272858111265106325079172386443366019892684083225677563559204685515847029320421613558204554982867462479596196097794289355285855878447347047242785684465268977425526604547024174573040650880263751303706895056697959535865492423890574144563586604082262510235810296795439143892225815280027759642977753653080730888809098014327605775475674467729212897586622106522237903791511013461347294694359226207956453641235092864571170095772239874381845341332002653050396883758967102987794503875763259427775301704151049750940865081942199847059101050288732768044294018848881157374908478940108007844851327959648020202258047665061004425319950600455139890999676917904658675493151524141853330966339179196826579561471510475575072757866928107229429169121065165593695812831764290924612429374133496089318457793850412832410305223831423326017120294135460840572326357291400585484999092623954147895080109372769100006905986878432850120490074914966709831188055956131530150865410971701671854313663920067584705945600258057282377733322226547638078706758095165779881135540749495594784389055035538862969239940852717279087213668694356781998750993595291285598509550247068096906399292230516668021020945869033097995164634708621745185769803142463953909267175344041980815175319408291097007084902210479150655194747900262032997179683676105368308485580122684147902701305869754940794531242546176478312355031907824575251750398478561740858682806089664977149755080104265111573930635952885201170435507102664326288122803949488551870006197325146777575259658280622539530367686534828611010846729350031365575698434060238703691324427709852930006358772437634846572473559809451593345431157392392250068715660106722612014244234461403391632818157684380048783989446181019832404307761820632574858323392767624484298123215637982607404472248884116491807342563563955785756842819424303982598828548543334568282239934046015509960029552042171043493515721616015639915421616596722439952521643871610177219558522539216386594977186113397271861863788308722042373295833603624841124465374573555198974653039120949266175173883338446341522432268500724036595356759787544539722074081679379590973447536919673679383839877441975547784081095228243603526531575586470600478502132301788172481312166267206622942340253310413519691638663304997848800730125936926947781637560627091974473205302829325070179422045092624152487390175858227213579978229760243940432048202056936501120133653891779233101844779136186059255777197180734642303779113728298907859465241437276574058468776756636281988789631977874744928142010151859622243111257657864619017339992750314661966243457780622741483479070676069219431222373657062109443714097123157763081444731505559770459693600587763496636159651761585191453695292895904755331320520216499388532793047052405985821966436776101488992375853792053422026518542599598073915692754851814564945917656606262017390338197330159426663090962558286522747011892584604246285869092023881556770707105178989513006420201333689992587089285941919546272106241034879393347386019254540036381700340208282158453784882572193087662016294144013186000112587228337076881187478970453626139168786225233694776486825575347802611691694027109168440606267296125888176688851585379544357008625618523172238942728517753807476036076179362031640968234842190049994486686773838549327009304451348606385174806627170489523657993096588136722186579882393299767611778168576556010897525666753111622053041046613299005191396544695876327587635709195301637627977976858228392568818724572937436121626598512760173664653634579912841755219477253264120268034824470387372526732582916780103967301301283396677926374806230139029501885534078264865404407087691559196128654493598633859820759073037362827237174389358589900193203750002647989126314163684487082294208077022178163203535259430559204951198042846217796437901029143121891844287820555731440681031588195953838036821370574445418829344085983945563681781554566971358520090385720867597195209956466559315803097779854867461113794687570643794409302513481008050706171197686877914692907271623231272708531479576323173977415879445851832223021213278354412703167349935053730271095808168502940399470265648256777098790694464930986666170156946094847606716537629768121735333595608365422357048503694339352386758838188934180443173127417601466903300614784590315454018606568910922358666333779133964120164313258596048423553919938293307393041567953551176941761040230247820713683718627381195143295542996608755086447157161711193452667741321758974561523367726275608501415928520858793995707812144626887648953467921648528575816412049082604518607799911294678745827738649098578024904852129460895623162518720578618579904214622607864493278404703480248273540005371145616618263788596851320231945535720722002387714018266401132828553833664680431521494569033723714840983164407642421654631698165508394515503997769271986168854340648516703618732698157224908513575188422458103954704957371659643260903561601727650694280416490938444479252003220331219582220034110121513456614199295604894864348771553856771945607329269215649539401194750271161287834072646730173814997539958881223561813396229196684752928399899651098610621177791700667348003652428116635730807593268189733250905290123235564382814236353356267545700029231866692500437448722706166073657574164007116127215294886073982591062795225771597647966566836284781451749885268160255778487271170156323632359935127114173670538455225236290140709554948535151038322606715585557608855118623739417926470331026280513519918566872542045624663806908558392845455841133883503827409096286143730465804497004719683243140770323856921988097661976348758183700854854809951168601813121801098477508054082978209951209039481121050269933569619943485567750850849244103883689582022914750981200691987630518968546192009200415485544685027025499753111627914405713250347520896451973677582323801251816617973228723296425025977774165882529284426936201717904925636273598308699497209465072728851990927316192081814608334144155516132263577252680797161355843258899986351336161575105969582212285854849849079314464048764578496307259023321331994378514814791245481079184149051649618590282012866293088609122405694152944685682666312671062015369363743547381711280993690638979545333255144405968976707717828242947170012274694247754425029260887828276426456983830494142201402263994140848680771772410144163629276333679617325617382228758424220881243288123292365109081320609691163783433605203545504349439770680961317361577590964089610208868772301809454880107018729142155882740490031382914628264727114284083680920722812582013253798165751894564532827104342175809950800078798973044865986578904265419957807141136614848836397775544694324950225667964887703643348205889777315646226421604530551545332017540758941575438731157108639525402258623134251109135950679392058876264494044513371089391724905430964098323050502991982674743285424271338785665890225203551178386224255619298645220997161323111932623825840409155294717404768723530458763124989370760343820454274546866040376706023875067403998260504878468510484119904547543597754673921705816178613288334904310354149739906002944134541248530071414243890767888374498115141788599957639452616483946365510436103121140917715501777292958982726472350494720669269862019650380594799297354730133663830687312166324595688817447900655424868148709522346720960235770537715390991974784116163771329618340794211280868837399573562180537777360462877673730193151127159646598022685171260611066222799633931006633133961749872189210804470241452365424678099247923961698924708894607496553248707968390135815723150416374579364908360369341475687867691817369651922681527166202861917295829949740211614366024689373343336684664502950141221440522224207432788134798916753726764049693735682369534367999142445791753949386380191752814427349249217011806093874347080428284569421924064016511349642060499004609591895592598527027919743905542799831196422902431696024161840826608323437409514691518309690928887552700570919041931246555114450776440184524569899804423080183830945031144305612033880987275495773070031428184455807285185428122924675802752102482511136235997663846446448010801940652569860342667081558524397948192740359215491528253670951599726934092595079621027520841582499515499881530618986933518370160937872594011687322164380404852267082436100097233504592118752235798904890018574086531299592483484987172650866732781071121344620973416374125887623988304868425309790531259896607428922594189732032003618032333906506742391971604198098843748718803753263554863805990462454071662154181803622900119473683963414967141450222370669078661454981284859631890791130043455935392076481546222671994774819027006424482116232216455322521952556700972211867672448123374837431805505857012796721908038982615563463808806653997052627679058555608817774570020314826147968749165000409750429672298407237491722230014786133688706558017207980995501286555352742071283908774438886085633077010296534482770853095699768484992504814275329249599253324986735745177446658033821382878953557823795613677406930121603419521080032702719776983852021141635019329047116406518298722472699597503910550270002808068237735056894145418309101518030738296654697589119069231717055216206269921190295084867415517516610928267721340759691175878595675169874985281339655913111196691619825977364846460928747796092460625100591616261466970650811129857105199016842134418122770338236031479056873595209698473775770650888358562298061553987030063742426401873019806644813138378208344893215221626183673317655206294782915951103901449724043146269424340300879394824461959652298345384400736974753347925076610439330343233421143192698259487109584370205534736967450057945432101241438947064677620601501664657284402908693552281401245911924362804111599570318813168523018233780032888126903385528260469544245527408386909706950495998805444271151285637348677976327738858095557803255919956370077385672399405364542972164525790864722763132820750249938681002528652155684054960589730327727792429525182722734775178685617544516069910546246238864555421271620345195699414953169886330887571033263049855918077782817212665129911884902678261070964873116962881544275316502605015354095014511129333717754954912580244973472402762619167402567373378964904884968965744499683021497474325121133108068867895055861156302200665592982040396575972947788703837290484570302139274116507894507669583099559208901806686881375838974022848545441585848400112050018841316678277311648768805843397574512024243058482013804116385503521758649842478466920572866476081027866320197310464270571755116533797964922385386014731541443303189228062576328000324588637401859465999905203366899474953951551200693002703352332407826221292213906910249625281980518630280095136366598203022540762590766093436166096548655348703507692480639696124718514972938052090950664505239159384570514810545242705639383003075982384655053931455184580367540254027531464052981142966958614825055932539211096874242505938492973900718799040980790039079820375877876911048127648826041350992061708619334345916139123974417442861027287890351821754732505148771476723841020290007690378377962966241326527835885219501571637079281177462934615432887261570286705653586437789420973503474939516870401518226411857923750624209685853112192165876543780469317396008536144476213404870314711464931521182778488659628384805996526251197409124689368575389459023222350568524495468782438019329242481042547755485825512721319916262632875374299289257385098177259167729856373549895256815824194886903047828051977295796724132821046034197154735553512537261841288513416837325785204232026329453451074064149489679038651228062602139725580509080311232016219083940874951230072803199308414369618116380085277255385344233068951736624126363751307110402546470856202163431539016061222433278525260954147393578316411388445691779580250631789835462940238803904636384651312434690667576401843056585165305230548648311397506691874867332879975723906246531161103118239847518757723551458106270518790598994418337519471879280071422990473927653535734092635772145460557351637935972497052218030509624047528191588903112785731408240337413164998789755959446863954491770651986593241432359060702830470702595652729285005977704098772115301374403705295275998664295593408998141970197741682090924484503620742163069775476344133099802372781016808293462918149883399176272562056155196275875324367347768653482871441819038407953910226472826533350254946489530772317466563080483056254106731934003909333914689880195016768502701975850593806260371468013395149075330597395859315077063696431346829525913659013313579303371010479879304778622586780857098791589577152504990894662839014109546644415000348102166642274011572164715302162012410330938101986220202873936182460691302031655334809617243373516478127432907029901985897856381819569562176026492081772410931815269750137593526960747075411146515654423079589602026352498156513441667224559034565481333544166973147427898659969752803695881869454624666770555832428277515182309256287143896874032368365330530851963513374268222155030220703681483002616705925343061752393107362116951142756402883659016054082174815887427878467771475938931870837798589102106442689849443687196556821092033801284742816155799912670485468552836843812464111019568315638784339216835701843424257213512144258910419545401624787185595838044963723328610940391179404822078323995529247966760305277176239449548608291842981058752307777129268291623684190432541134744528225222643350407170272518443947523721625161151163473614115314199063834544723433453793981864755022421310080238533633640231326095614036460655557319535499412777997358585500261677101898185589278645180590867374314438098692438310530661320722120439544769064866927637210770140615985389904276117552525339748416445640782671487419135552610561042640040473829829833440875529562946820642135758517154693140149585939262820124024294287929738860242183340364951835926785580247644260346518890198956595422257698223840612457232105548457841115191092180607690065817457255629320616241987099879976188914853378481341880812847141029990310927806575536844002410640070474311490084356087404912367815155814820085892439179398071548132416152692095326053733941792415049693531741387516428688356713329324549481743650719204238657986485962159177380683628284771050367804593567962612896637210330397967257409605854179643100874828402095599441282613353604045103296449476851246481868238704679856212481582171607075459977664690478377770983668150385099402242702022660009323583841113430914071969726193374581508514568474065031221698628243207861141515769370642816455208222791947315316626644995504531136420473455758253205470482435346981461995084482270286659538742177547471606959571348982521724758431443282777561815324279900157957305228171232201196326187528979874752507490159183368005030383367506166095524553815269154748857598574065930597320120972997149898587649556484651011616361415463033802711990426072213183239146542034803111950785431643403263123256764617825019452569533341941015223646818334932832725052065758156352417363797615194305164710266854496314218780857707783074051582103721296666082085368304073355328570014765411083495199363435848913758098836999778455361007859087181118635579207494580358759459672612180529988017511018120463899784922260402015233492094408689349317560801441436865949937812291593111570499987985679806149685771012816164629391938577588151587551077873609042391873623367152786887517392366263314238164123282473665026910777215401760650712567993924234660184381593680590352406123918582642815072958786761096691376899329030850949659619206867654652045482551973680867915263407006621089927172888851163546830371001103289464109936860897181472528298039141233704468656956121590890574808003601459610377086585638094085530613084631631106822899079776418026409675309533389573537346588475254486899733291966718529175849816806036983872397221670676308780262141496908324852434348802550029562399978764780804752288565870063270489148049600605426896533153962837705770650128145784439830835051373336676875032751455694218966572784921088911905002509859374417547867926107156283476214811490391570589643042280903419772385924819839422945184221705322390451024055584853777387702989367489752383613468082140414334972778781467288519694471900421771352918790547568108561959006072714516359218211362794408563477677964494490040475615863286661849082355779704415203875628923921085376404184184179671051170068737370713890154960203946776242503874765226443771555195811221587738249044677473683188146475848128551849101705015795951915059347471882233982777419104684155861082754253766865904400709734489960015052018881593406310111615222459801977458163232553512805084313236116444489769466952017798933457366427855883352279984003697474874705928814634541255258889479103049824459321432610891046942181068570482162740516033979560403462417808136060090155569309114030876081283171800796562254013644511673424940920704058738121165501579582185435542555085588804995450001671349975141073654268463157174553137348520936479466809547174164745276425425475352051761778637086174928176833428880632034577943845850514788350142492742375777693811219394350175631872486140941924373026099346302249028917262867348954582560430284001000956324930683296517449347656924251476654290620903198465639116244266372015759347354542898768156881837773436447350170276019012160678948656883089246466733459742995586837159447915675856684628745810038096070670657443994193583291338385061739070872650689374930091705815126300159321060496422596696756511071755024440337691010838253264779665439313393030231020874340626881330978746796514810343953704637658323907160387829265072399058249614700180409861915040184744068768448858459685092744173736907021257552643416260516099742245659147074947901586841060521920923414353013022303860350994647737415798476909590732053943669699610661032205069099151289868898104261266463257631044628412144004036882496069859526898574890323154334735860916947101584433608334785957303796244659053947087096870944834558803812329961093819313018804457415999669263660648241255980711298476765905989652649458451819528444087010243380867892544984911233196922742256263416243763325011755617093871286288387072842916444736046766569789174853376563380902901575522437746316951898859527248777041111812427105626336122540581792004545067439372775032340842190309676216027493462186600106919796233055036673135830827569657506086880147634986197204743919262427826762294972620203112526608291815571023708642113535827465460923645191763671271700112666244734934260422149642201376540842905010902667112732579384598189781796089591351971886103037136740320438700343782037415974646082696194741408721671543761925245187061906056017606294724654842922286720154749953088023843730705660791836454093388527374697827285199360755650921904900773785079776502436780554406095060389111872414768637399792834455473535197123433705811570871991117717490966066012174351564000082002973344009987976073247507838346061367307584020695959680389572036898627051281238690942882393633345272071666230487129592618165074399173291327545816806231663707151469181092392876420461863037003973582417049585653111336257060390178527383161127742536254048587461452348560956016806603153470133528747777264280646728082989368135978545574920263221200051415523673933846180816494263512462630394944902935878045162847636259301675656382139366526172538346884946530784366753410790523022228246704837486269479978021849943050993478315720625781283350715722361753980181903941840897058902812373839534634794370546353410168816501659674770617986922342424252045727613724382993219449922207039052978840502890495032808082301321936746274462645737021408062364183919594497515208087529887820603531107272002508786372806641391224263614199200417196800969547235144409827087262498720135333620004826594392964657870270558675195751820844632829705081027779487792685655810538491541783728860034998242057208434370914755742025103382001347973329075502449909717359057714407159942992965932366664210902908294684380391536986264613453844107414753576668108022493851017956169517244871785595201961798728675460478582004864172187944788748403097197539685135344196737137795914307083113326052436600702398169471828369048807518501074039058404213102668860340913479664097749962417454415915943154991058230296192681662567405035040530465419847977673171927482009077724101189635960623040153245653914027469316831242741316666687233014299789856439081162449311233372269780666133680667133085592531054444788425904947017627783061594958443815658649540903067318526144080944897996438898694895334286745914650306565007821854602430860650575942099630643468910145186579688059037964340419497573826858658503344983477888820039598159448455856883088221773013001109512424827374907061060457567612994572908719771071500225795619116503304912298925783507242595484056981020176025507853250692835593025434770010216130387922621799554552334352825809779720188938452886579818616425120307096810566099357675610778082446770643151080547519562187685724590507947385043415028120102223531899880990263038262429744376571555489294517690435399014912783562599983720170496085945498051919932899556231189437949815953618581507991315712517107487633157937422979345596966980161855013306040804326321528411081626753893300397198957284630366663418907862833046073503548865479251382765459658194428057167676718820880172903603382371041037152943380360483117366357182048928753841891578664890587029630597498218989628897975815001910845772581401520759500551327068480531728996887974059720721009182832660368785964465381888587702207885829603414450286603470762371356307008761023671980448952572544802786782042723446522478945754541401939149460348728712664973795542938757310609487898406425231039676825115704829945490040632075220130203260053615404538654768107759812828714816229320233665631319582880176619314383341020840364386292903192438232292980064951225245654627813649813490659046855745246717754958133436164666853045077703097081765082608170362683412028996327649446451261114506698602275864270492704026407729695887213784197103927945957970439492403369498222436733613663311300264174865580226629866779068890132292176141717949661226285036701165144551476955190188400746170283878747173788480206243922211598778495041966340788808633463382405774487903977924056660003067625513537370280780913601933071046008488435109977109810295662369623285484767932574840105935504761223819150044560783041386147317072612729921112548980653991521958149147809379023802672020774694159888139005097128250686932789186135993145761943681363645055253169499658815186309014880560667779130316515374715937537828428847041391364019097643131867498622268508161719310544297230198888762871702130589127749884028199509003546542999288571398360416234587338605568881300584644711067946204273344077065270852671822845590856422522601696516685782605180704552219089123365610305899082026297463456059318606687413428008445604580788730713119660359648298685601142167065393295257212604910828810715302083545232870032523351010552400094513277567091394787311442468868584790134597877862132283677162107942765145326965943386722772958025930274921004335109725661672827408598418291764026207100765631514271964693080061082170398476735437749596978800814397354804546200991243813813182286668626225963720060322681473377552181126144708785194860723202272039694817328159190919693253195722906072242648808771264617303918079332948160999460300108227129532372897363656329200574948771204995795373366547816698357135513117007837479358898288866755673593716965583485710533903976048998990896443766220996058567142173872471507297665666336144719762313569317519987098301159358195579774429405774441769821859590194115604997534947802712675671285543539854765737544270792965065807813629265081146422271444431314338150900318285601554415317772626307294392564753775769753703318361167145235726955474594725587915444369322367210620104162167751716054774173822578023721753123725084012763808879173501984891264523437137515113606986563315311822725624918436052075372324797149326228068332259227994724672496167448999731605274441090983613858735664104677731777773624859360134278269560534787402275111378722447295822962151238975784475689477518210283637446305327234198709914807275268116776260830237308762001994980896516562035129521280960459931752386007886462140686910866187010802619368815338900184947770214267009237690520009327812079629882355261401511088522696510823874021798667621251449078012703548279771884145252073610189299424136079772299038323664532666453504152132282131958622032688221681834122081369029760979926869330863862519377036570632152142536798350223474559148936349524594158857435581330452080546488355690389017465568399491004319881021581831631302477118805918240034836835610765428583905070852107136259720783071313482541051260148283055938399945461564958752734502936160940397312761441027556020905757750903436751405899814350972421921257395115194999706485808449569634918162961276904050240042112447699845542347568297003234137759192544069595868711635576803772626494505321798450361730889380667333218317299903394646872095008802009083118180287853613774626071776760821600456137429915990004643773509913338465605823604884162993457490987761236470284868908749223440571558318375806799573160140875447241335321957125211708343257579168463909385913533937624683502738340524612484506409590708408248043298712691563696955589433270060469305174910908267024241402957667180502698969142081503591161749438310075431155928436095896366852478321488202704848990396983829933100593395270400048819513252227541012802902681075906670986544643408678623952802615982798201125758523153016959483820298941507848653294897573628226228086887146437745942338817221648762606373711562055774141051655185134300702983147647648491283884538484994586927378993358791183117654244943975695007993176951924121473737920061705878179349535853296502025804799082248301091040126717145187797514035492341792549453452967052004439548126199793163782610868797512271936323374098438400765491570459442239053910268268489028788847459816107261065411877245743448598698380835372166633066220741137777259282786611638603844025130089871400963661622577718832109987767206196270485272417411683458848891673554199221188822010349163857387573180452531873476404899053721978906056559071556064257142669238886029503823110057905868544119935954564982861412012448107029194906710438394291099023277393390391401294457750052506641346093744067423546896223593486429668912978915550666310225670117293732531134373531261367819537693839125820855722472685659626270838985161227772039446976790930457984131295759445073866004471422690900440084671464590092045373444119676643026101555432358871517231559309890462836433182892022086199535524168040907681400757544882183260297286878102475424664495104161487850003778441866620947035785951612535804417820048486602640180975244657671920864983531617396814488897204211030981645763388987028762120690594762751027206317411824774595233866458827104900462022530690231927030217111703092726851509706706255952809847482877356003759315027233623472415847343613725819909556341362872205239479814553008561496237537836848506914851329777763221383498265999389268461241390949366791246435824214137697419726999428000210103021343208929926789670654354150875712500577554015666319493376891974398632037833258089369454074636903768141149517464347664738363589331601708158248511358197141682477055340371798872551512309722116742658733181215864122141322224393978726339909723939632920293092119053033117591805424725225263952021455846165242740934776858794907603021005273659908897451304506047640929546390287753975006292378209259690135541816972623647346207362378550814021702599304502493685547990170706954489303729732147679605398114206609091867549073308567872143141218629552938894649759203335639096691534752527893408056887408344273418712327447386931536477647759378422940545701176438650462844452916165340218438144936904303502256088320699914971862940267956173873191457682248570570572690808680242832077186360915013662989875250946474071329091102396461429470976415939742010320812401727891260573063212542379946690511959824491701487538429251437229369898062675126371889297009857528292973767491524408813989770707581414554978267429073850603831827557420312173264027821515816795026287374011144941539050129993811526090614562742360070911877547653237631008381848121170198206474034948873957732386531914443056495636896292957054182127948846721746884511477809713845554088799556511056802865526377219514500371202628711809169476661042643121279917615300261077786928891141160898789253653275786977182116737563336713702037150614772216969010277552168547647081931670061599869487686455426616369195625930087849519019699096602524120758837235798532653468505153957503359926656848337334024805322603988002624738190652065235084544439999668833894802620403983234392059453774273743351173126294351407505232893284724143034712481961900943061427095230632555930132609826933954749320349292600094849566041658640299791542074808205503458242383829018275136775105576948874056379495379098962069876886581588473952605116226317392787330497409968119455468894508893419133096032302256912842624730238417661231477990484840480529446924263390401252354521495718051481742615949349365134248780076136578809491545802711857579133570463072122073442682379654272262557329530222731231272344650359696050234273081260921528858142703441110041570699638310103797538936210394078995083128504131881313527931002194517870170520334936688831450825693648785125576998996152991116171165134299921887491884481443312923711738042134084598368565524946245131544539342579243040503804229498063958325834340235159314284303855757793969900638921626809959996007346843665297287703877441474587557310344417913650643944920239837259448462261188344801033331042785500303249398136092225443837964582226611323403632936966502341416199063288738680968538135772683026976019442384690693392363113534654796159494468654757475680841785052224147088394712672562978192190891567937095984484864368703927199704483080134704260763674147352999434091890208816674621812438477060853004094957349731215632077307199994758686495655585385410135249909580465614404198222560643625198165332345390655308101153959865107234187307603983626937373659359797421558591650154081114418327115189034022712868859618546442127972845376226620415442534183321982173986313644833200412487176619654242506259540223880051842281992162989702422649040024979267604654065467929791607175805833975149264824940961245432761996176774067848085433221310092411977221818077349233693436409188587153515364012759475207691810003056604096889067126724319272423014938060172596599283708913537378979525813921240574690611383101220407081628485203828672025219224628256113971349495207367254096222168424735298402932127014237481134268713692305718729818973969515342939223960126445249435473093162815340737427330670150622059699994892251025252700232854957553559104764490694911278409837640062778061336657353862836354168567755657836651276151047504041128989024758164092707619961913065276171319841916724927766337306808854482605698577303157078617155659809594980385991692398657394208601095337691080564295119422067301161460992023686480651072272139983395992084807000397796539761328580438379444093249322357896179443981201758654759698444157695817536832229854913014039739847639825307287889311787017199233457453611873661531712711412433113083653696625233487828557841891146555449176406528520237253947446694126153121415388010081937824278809606711353697353564445818644095556080820340811045972230668948624148297575249009597260343563006730768946675481992343626938055082041873354264548237076939936563679724718825170826201608532633431777264453771120056419169940353132039214812437612786333992630243588840005132025959634805992274492682814375651468726705051439787263523898221645072246680420551348986219109735489570064553302490561701081773260852177065180554132793641976338665405698005002369298435913389568134024155213773525091526367572737898026360391423802874266270301672292826054778893288001369231483992472307279490123106571695419184617763011167522071329969096942776411163294635771579021074587495637182507095144883840147722586263907812047605617383034951239051193611207878371696504793336087640636895494971182880109269509433519725225312622613745735352261137667090077188319320667995387815781096628949157446844154923094657125202049273073355974477928340615463911882086336188173416600576388922287245834035235795328168772213131665763391865195369158831363614664555309977870841140617780432321329598872338815032290971877404438831740765871632771559069054954266641141695144350769993858617644297968829659563169614845146193552733176938804754325998741664013747229026860555157287536243705467565220329610761637817254018899761888027243283294237568106593998951235790781974681451454672247379358360060519474088215497099483595611821782953554975492860529700224865108745469166417076764129472403279697564832011800287152523491168077354750112637760083885346343041818485200674992856771815209523175583359533079642547767512996536994741099312414519309260351606964871848112589167388560661174883445831467709658741711365987223891327187675526689949448429586821123980194277881970808321825492413017485648584943835467863846435417781575714907849667869458997331058023507078597248751082497342665808066597238678869119668850666396308978838135378681556913368413488872804188032165307493891481923777099728080758570674519099910466150592824927648924241293833544912388768332519047396437439933593188833297044552521875063477632821458604679150520000039718831524357863744473190567496400492740804418823356562395726166562051529059038884306722651822634129257532047653524010067103229812099166157206629520352898487217294094173320070903880811429063765380501176918734651317435732552720607445832225535197074053655716765235434282608006233174343677157237768311366620367821404221006958215095114368365734160716366357807980119643577869952437191680920510445618142350596957531183829745452135256828118435582217303365907223684010052023073568174905094507142066880444983194712584249919751403408270569128790563774327356077112600093606600218453963839777406935183821610155732085835342053076577409932237835664745640484389739714923204416562525303638370189703927096446565417926864105538626135036924992914082976475891169635855532990760644445643952353821859182211503679166877375982977519849705328044395542082529924816875846310238908753785038966740696003774039964419761332809999245975901403483539006392580566375258019863970448510911999412335761254891213329164339116951002001342112049450308619720877168057785700713941456712723280529985514758743195327884725090008757974982627906232248345539197821248610013141287998217367403424376948175940946095134846469250364625083412145267705579052534246556595131131141619262366693012348974927808654456790957637767076644032394583418552638838108246319600993805021679772006424251666673050562608355983125436607083744124343673478523768943935040593469785208357524444990848545847634261868486345477356166609838652992256237099514664640787552144747613240934959152166796948154842460268514852342743400888417282491668350615197837125393601048458983266647953399459562549597891107582054404466410233401581719258552040553062430062546619016781671975734527480150732206293825850068491966975554400126400086937649700043672759275028678653411006872667715372099365218981202305463801672074362325189692675480258231931241251150854914729993728536487133556336917749172081183135001800517702767939273653841339275625344445237615428493180333343649481065576739470136990049556679095550897600979468092186159363068324507270279151938822541425231664264693775513891371881461884213296861877735983398800643248209702840628515641424165456021583344569569370680791651361986600717981894161101032969702938743844396785226703708816415531505729551015955434692614458708205815094713047719116762629499863066114389670696643261384025715120229838887763180933145608414631706961017279722011354278147005288315196468715198549187116590158532451072177357871485462579994049327799124166632055222801986355645483524710853829423778251826074375647129669751653299179221655637166926310563167558389509288305482203943856550165228059522598513439177110364763509791132981798863873698911382775838342587207673989700995738822448969934722168029515164165926456565484873847172295346893017512755923830079101613060277998534870131943981551799856582106615387640911172650972684372262223999625350414901763434827987234774486722877452313638688486913138232632355539739031605502827957358528129858555230807943244554021124064551699829626440715103506286166604872790229737883118185293000404465640135154276819546985850044508050937091124214878745771449467826065335939657287821776020476787215498336702827162936106735177890911633193603863749188187741286529962232675970027382437241763658908208823023005634542805900952857917879668671661346966695847286864289257346332943117369587003506726546129822091458254479204986244743245730291373663824231758363745581814942317611155688603322630085388746561538193507978533215224300351978372232566713435868729061193899941808438309463454362301584362257844224907153294324974287956385252823260067080083310012474331688155640465477647923575795400745291203836162943443046196541215436628445393434018520769892901442594701452979619669114638772593741355546020135128632571752871544198039325078965943808599509841692686629133902074973018533709053168250896318163522019419300840020916031166149742010282545155638130233542652711186238833846803980959238033931632858495595343432921324872659248846226199304657123406218301728864293389425603202338026426340995076153442524180714096004304850302914722960205164222059756352624325459571506173487623322865868388154790202179493029012926368213865592154431899356707313828875599691005767950026536586207587859181834416828809034788474277948235090980443233885651834041946624704463918739903718602549050057091582826700456130270034462106160489025617914153336310332985761472418919526068377177140626468941131608157107376013357239258523775367647865969060525858987287299226605006025437845967921669806897672218580743635583393449255754814653255959978006736768873612836725974281608894738507405769985645533648580906521220962593371549653419068894651749290553674392677543817339875345590329840071977355785522847983356112664295186671150514700340468441074049434514132638031496365564901190831616198678522855573842246960971523200271115854274324133591986122060053793053582316737394095994815853133170375931124487498645707528188572232467119632121271657567154835077072459775658141252794256068500523259570769418066644715334536808440762683627246941545208193275445576223793540458632180468283905912472125583712991622711931973138899371087605880191167785963080021176724204442770358760533167676867547550440498623371743073137376243469906594390418271604248634480650134749960922274385247602556308517165102090746789787864281548926831551447647947215746831853621892764142694530157900814341881087149540577238588687995175813748356275327284032772116245039128861836333728096768306096343496980259597102626738178670726310095642486929483383413080906219014981732309322936618377697570429367886853129695673506475223800028809884861692091855478518124088498132847930982319059489429687729292749993824209974245204631517481349909018436927254467911320853916257662224641417690213504373553882305456679360014545489162809043951608780927454506524417485767855271369741446686218012770066191288504543405858049730917962856096977355499270998222066287712505167123336747677704044806138000151663044387410082907053276139345316990417743741681349257799304104752279772939243214429500693493139546438458553144872916314040515214418368021558446505478721531126852176486179951456163625320750178060570492445314936667093200089065271593425516750620312680434252430777601226837856877766972782231928801330161668962277837040167351499728474824095209986516279300462378324438340762578546631562805934444067234854868153823094794358171878299882265162575426593444267352897919260723968299435425749663625065117219125047219510149352478521962182411133911718532217777426742675901986786581400111785148218911260073440593749159751746900752679257765586541120381365727672915477340907789795561290102265414607898091025398840935164787910031091311850541818151473061160970644470038519903694511779604617563726037645550787318599407353328187616045386927777536006718538714038853748987600984802642489468495685445341001521013817788761564750605731081958340514481387135132988238491985984163909240278541416284033265625665232890448629649989464021719313436355353134411273878084541313939890330503821835286489766018558591177928316212001062813456426362164473132684022908625231262946890898882935384258586756113125850734653457578690379998202538060997886261371597711748755702026897569477221845591207101909815539325964434471117198423710758826843622324123446542541935576013168836165768966294039229373139822277298176080789975749807958200701644547925918566204914548961758212129554133619130181430553992760390516650556486106617982200174075033175290607387165234116487484957671117722419303032293420262034174204541076241503063379687356345997785618551321345578861627267864051555020957800337971700269886193890936311035606721117125140909135099424149422964986321104495229341079592701288213898886542414788116259505558911040558273998652771478406921940868474494222411039952550504703275816815327545391351395139160295998876924567697251941632114469607218934087711285906831511614811814281575894359548197213049508004316648351199024297353328645473220903348417238609040070696924191282849374946033095183425877424872233129138417701912762836985946916562013145408232527152146849575509783200540597823198237403173472833600947546365626673034868492021799977357504155472075774573493457761018097942443200752969357836951188958173405069902805127972089140696517202622196957506112474942067664012841096900104642946920380862224955390056087903785215498796317099880955837073602386179208146273158732149739129725799037426314519816070346578687091818428377427389167075644135822721956277561942757305330936599128714168152149212783171269927918929603152527537194631778526192333077025061815254626065143068660316881342608883525201053292109064666709854801612744063235273327559660994904727743167482529595030649610188419048515706328402402790768880755626014272255478171901309656518744232427796570062145875254965051001966567289522952140313046591933843222441995251260730947202430584928066893638429901785039568533671705682206860439536777364327142243895143206228712834968805619552220314764956026197323127226862635217869488813610102745363986233080758022154463837403134665733334146739291887505802820290255622128917610105763607380056836431781627774531760169096552268495188504777953896715878188952788866789756484059580157623591768260593669663720208426152685643854513302862881834202230910429732405665582039688489185645064542461569163292942967396876689812278686719419943204195431224051146087378817453123484280220613553287925869571524472017190564850485551009570651423516267623526724341688663995428258885531390893920649998359004495366494718483767266866189699765094257873004516721102185093832939075932803643637193286387327989982661329712504730935849635528958348416500386748884965147777363036362015074848973360115820853150175020372259025041681973326460537526865089257247180898019892228813183528592243971352001964583141948159190075399382299122759036304724538116659898849146951452154173640719374745141959677858710486324710053398855437312960909959796789545614280636629054594026961373058133077276630559959263215899829922255514950867100813615688665446164678977496279943935359201371611420892437540157306646908126263087543760185848367479771211189200330561312295493747725509439359555966942569805904974735348707929427717665232565235441427180185158602680118945319639644282634972198708529967352732405635657690753864677594768087625228455903911456200248654367515350127191922108132622140630569743249698095524503735576690270063737473127897469334001391867503122844986337001523253016690196129223966680784605669268473684846928009118746107257776695314108439307926500969034857621836247097316635263127455613555526179404856683229149461550648176839939855907225857448468443497546343756812865196784853696494141843043745360193262195037172395721932583157203329976752502225098772672188200115212822939500734868929247935786347013204890690969037881282622569386807280478219176322478850401112708932811199318947266828371662051417850198771956394860452783549677546743176359311198071543279392158330708467858594709576981930465558918066795059422075788514413423849209465013179888556758921887563140053099624005356596342485947145622064031676889994681789816602503321589304866590393372445419157659739295531125155238228666681732024123109517150356992087288641035820018352850117900589714028221493903614767117205213251287642035488432054076636052468198479698414288337004260819674475607924683395384562996405576422473801951660930092058385268607854661892281644480429726881606182800753728885569245967035046691046440228284798000832539742181687045634076892304243167042267060086003929856892569483123477658553412555460224276950540075170795468604009300184874711966929019812113316054330503848125971549833808666101807006670368290343802768456403810927012103019452340696586610737939778444705465426192180333421112621497850135086996105688192575015927931521149748683336705833004600294453024490554388002906396478645396721135998347328170793704441901915179854279277889558662445628962881500524057146202403944651230367439825278627866793043627604266799176360837514624638615355853082824845144544846510397851055782751914719601866216387872963472784570198928748536456062984005020263445282169652265751750176129225484868603187609241360072101337742702556956443757333019357416810510307860521151492751595847513189465303770378210949822428990554160866591247577256304853331177779804798402355548819611360309342382383697020908201484639838111354469637310185777712058999662115625366548741005618227958360252806161772922395318640071574248037658158529732415226068658349678938541678755011549213283807807906238187345600132211880894191852529195504070546379927540358404892427933586515249256752266720238093373300345071102324726349364628448934873417778169642242479354333698743609471075286344217801976121763268043316193359990300901719111297533621613163374617131472764623382563197462726491952660262803249864889659329511538599733135952442062054494319181685518938118921874492887286011167669909524568738983151276454578324079274498570696588272941389302813833072611550672375570613416816541066252556070889274522042959102749520521909321600517121108457293394125470555450963156183425515923297536103980795169087054138312339014039553554728110959290364027466063702590896357736676864287838276779960438012312969161656580015073519747293686212832081559793061042294407347520756862422593906177391626737345870120358310710549537574103179177986000321322461091247120833291019892854251025170692931484310380639327068812392594603345552855610335925173326972854817620219838393869508260167895434336981369787710525599263693365653292785870693730122728950184995936849812381174915311437380235435941590999869388428602186652747383832145765782588233676958708066242746762776221864551868345199330520919488407478494171243806511693955134479213939692729537809594458554445634143273448286928479663260778533986495521854140174417652334910325211034734071828376464133873212690299856494173855012425461262388078678232710358654610974336836993093121226876500708576730671839141606388292629377728783280938693521613763387076847401081711316062373693688247890807049281619027316696915164486796883779233210536830071242062302592380874953743751601278107318154654818492639733064830763328365671069783848998439643622707802821408763404230936135734811940187179739467119934315726815616073393971420459540940184503684451804617853706009813180917510293665670849644137308147018942574251675732593022152426160976037073702361577215170885773292846509776031041147361316126281515586860904224352945412713218340016609840712395879635732916624655386559436512091246561366028137355134547194852590814138762580452592897385786289855082222306851017544287389562171977231624986646006324414129628271964069015968042060783460460971594945239526951809125368689563576579182188156809225626141918622065212044938088615525260459770099944855621794481744487799820685954406668155148828283124598410497954305019517759042919476139976555469089829422724247769159419689041087031637513771056612773727642108346740647604138605923165448345200646225738498186327067544307961109625534880595482115266102538194189694003877520616656780460647990663458718197226152858286412228971589020096022430311751906572632810591322859024449723064592525826143559014215950315033441804095135789670948192841038193842680250347134075571254493191010153879013157083751987907106756397338034839178263818989257422915812785075895603102226003817655596901395612994466110542468042065501513154065729925088356784758079316468696482827795749852276743542142073657496814905909361367000644290376440127565768187857037540091201503905111772301495996381395535997742617238874012172181179239415750358385136137165699167937625575874393367023231783313109135581644649744440086441495115640115290477910323052804808908301904181824151766762830063959293244076422384689739573974718527582323152613865392349651171838229700787084269598691877373741143350431944697144829544373359704389630091821807943365884824629908843595051311453245331120764135519676882218407621101199541243923860695284705932816932627284499447853097230664018283322303954748275515030483485998246837807195056899513003780338070945198427632173240488043917649302442717606141026416267892223690898218645198561206094935984365715472146370861987346905309666579169271248195948445369495377544914056037198476620765682844206073047039295085952176025724431428008284890416610089834299908075243759346567199760255996569560367435330865853021221422664400667898511033958910259480260708652929612782219864159860673398598809788139963863957334741331899080987761729135064831429990205934920870445012735107080779223625002182134559806473713842182431831840450991494388974426982910357082036776768586779379844378499388158329586735754815705328091657748073540971223539521667243237365237624722884073234458600222214450569463081465568983501762814755999678115025154355700578848100281737223195878354883931218325241757441619264120899841862853424688269450476807460546480845439183344969158642847454080576406306506716735196744320199578895325493852987122665990651334427376228663978665233192412885984267005467637400896626799636743440075745380654621726755359395843334700915710090740336146991761643074738952447401300151073408648392596934762347900317575526162564271821453020145120464246236145319488300780515348039320312494190288453999226532101543616716630259803613344646937816406599500218102704863594739930448791718874068337522510174776818881986159890590447768809711393868085511346477337278664332962440235604418172950139769330513206628989221530747089292985285198470482208126784631005060127935213169680178404637425641451550723117293666378717757577089455502190734023408204209041252356735199575518433225375863156689584447683035615603278725614160441626781881521839705429026116185671679007290928426040817155986589913622313817046319103740355861834261632800569934800117834665900474493427016053596696504706157986394548059882456308840263223875819780001301856802334399856271043259971842485288087650475358296860028255711517097621706905664525243147763442552960655856422057116745660985039280672654012959589905118019558048535420677000650813947557717000395390199599967940623625723334539339202470277163460199747350702103439685299235345825248456670976565929938087865179989658874694544167856307765973758750177132212369912897206401642405729124601479351239025116368798729078408630319781369664315767932807208108184770253914072473986711179131027333518519676087456903985580223716897515228749567094649793564076758790001787677281578962585855209534125158253847615128428470605556464124309651240378305476340393365247061694739006791415005122531179524702725416433947665594668066516449478413706668955707714560636436147335451308054594939344483488048029382198990983974643849231758392335949710190033486201029907876635450967037382104333888774722778926622733664508245488059435974733657990310639885152799403395424657680007822057342935562827648313951025284714696050071532408756107734068895617060801409845723328398441227128479135223214992623197674436493134900950131554149348987282197844900517671720319878025680380205169377041053551773173132194712241635339499992656972876597649128202701504778600451977606504120527478165933047247608894275147238199880107222125975855271837430787981010623418177718497446901972839519782077383816807686794349078750727904771530044555124967173840053160424809116174459343283129185309671919704935965551755839905295919064639995381328852537831888005137243400616276830836104314376718502384953126695864049397509270895891720048803660793121549314751108014377533676472434459959766919732685270091079236975287647159308612604248033842463979611254157406026444691807939675917059680262859870000351595379235204878684357442564946482912124236316243099662884596965421694416698159632186302077389934910583081445738375406145709770786371239502725309545640485319413214845875029398939754704959233989631160261027789996832757672679531807440187574412036760588816240865575536464238776825332026989768933003987218537755282193629557851223743657463759943682133780081487854157044322090128417780066319807498777183548261955213393786870402338821635316450041292781752420773374549051528059656277619283019821386310896183274927099717826499965653885756225704514816313724584222567468271626527946995102056977339114941621625880129387598703051268645081033795404161681069231435384846202587988587827508871360943446074454318775830653283768459713075455214185495529939773421212897583227309521337582269666065437179229272239231882650737915640501466028368091314558309058314871971473412777692699582221596990899743882999194581761554076849918388111880097599251897041588777149172228939522815417113947778707692362203930857816431644183875891611380533047287756560016339631858848143602124328844331389866232814536367492281269932617393869027236315824725213923488768482484086913191471499216990264028314008062638833181049809302202525158527090778551689702978212181233250369223164194704602993885819050524357397282099231395523315578775894268418290400113794750787590075960285718800308452605205269301086398484209942454300203739652484994563607112720647816371890948513256781163981143393193201774437203926237680119925822949982554435080768232943077149227951513563569023841939534604384498024338707237200578557491121685810514875326597305578908620912023572463003111740987441041369015411889301630158524965482150970818099231925559275137570283038973106550316265735258229086304372638605046021804975108156809980091717717889587271061855854138429462890223031401110215228930016057996815891578269148689241351272805793256934875249315374516568456276796995604263073840401120539273766445275045596968172659228471493467547883743552658686100653555181987867838108180388624119719075561968087080311780459252195410513291385080128731594977506349306686896033986987241713689583582185963986383282847515364668516717521804349387502280486062781913083520742593371105008900693648279708180126070075464196387158065431204293674579195042969384480615637370584659744270965566507614860504698301116594362954786853469708206565656251833623824359770577405503484632966830552928450942981641403588630786633596619624730897604565264838685561768082245922457710004614520088182370880277565323516667654636486162718396594426851878232394132216643096318611137240837242230184403336365907834262173435062073995630598573694040564384963067669605642763497453407111688006700515649381518256354128319487967911367968312058000439900992538467329408725280776998104595109426279156450411778408463682011423613755440316313372277680584630244671845562424669013869013490519035453152935634079729698724831791736982538832411540638149816728122582058468637163797519864363538972898238930444171702303556968991483856160644910533649584504273752324396038961991904655193957401600273002934971176983384236281166628964153290605980649305021683430575251282795298296433849333367421565274914330169971350112267460211646210674108544101613353505533852208410727518643887157556070918078212112316778994170371193129421624941019854654537840701290647100384731968453298957899223173760651332985307957572605830771744602154300828526241971996119988866732133965632735442963834420172933999149046371810082185676870526125434529209564308910158680527282644279584983985388466695103836537519331754255867597145303372595027698637207589413873124221289867561290494579970322189042301605568764039587154286544562119470117823700822233993115005197681079384505806656199159825801319367784242023132373751357317093180052664801768567930330289321374244400032423231726589012195807025441238744293715332652750149390406991627154876937180719653081538846809999126561530894157030105907730726025756930328290296299925172841234392116949645416344219859513166092633989011226705391712013580108177670699193623781400901933352043784454394662125623574072994539110718157946381861723116581590339392268994979421147809930683319772759994698966904334748526831819549539655337246155747529352148535024894106107690633049317043268620548927149927362467377183947900079423058311289736937538917943907277963506446489927330599840558132445596527873391821638713909277020548985480358114737043630137580422866098335687989192753696343986344023700218789624877470014927554475543558458336578412361193390687108674343599938078287857556007263537098850569369733425084365084426964920556069427952675941191756404830399290136197447177798878184830079923158514265624060814609757204300426162849543055841557162084450135069415559200151458077444334409717660029647771409638192626921965327260736936344490911732759221990853919899298020156828186180881940122504370078426178512833429004862306433135157819435836336820738697086652023673602059165287694711510230736679341326966266567047737399136630395928638620367617208456042717056709015856107816257379917550485718680069543242471740757205726224322100782717893492212608192131462146122990540475977911435916660458558306452652738799995811759810333920323810102720783641706930582572131307728000466746130710602657841506619001867226292195189114417784345982161055555797433810588123385976042315968241290629918712803723566889346720216897713232480192750787209852367137254963022164603649003907889009643089929776110577921154475900975209292992362600196670404144472938267624931497675132458535950296361356816536316242637556354067516016231498080636273028076556144013995675330582576029175609130070300719098972025111619881623866741995626705571135056172601858465137894757179559093903672776455963139144275853321345651442106611687857745941144496883941517722088791531229306917387828130120709454223451158700267155068138334154910458169364872172629021597262843198008956061629359883451687647429548318940835980715248767479899946538669688687663281338410679586780119030335996534873917120624252117360945695527628574001157932961003814569252158262942870636549701813995390865561378223090082703475260398540935713380206692013428631607208504406122126373814389874201896617078032541738796092621859154299356964465068994909891111926643644834494808646160613971783281003410099365016303464630282818930308409707569719778462026396448318727968983906480782872301963493175925285354947575854454781788232626745147806745796647329165849217896692889146229892964255383060050297582216326962366977501634584473059621896774761916902952922841060874949909871402099014379392557416997806990400653185950510787695590172357614295957102867762546871204864725943340372304603181863590000870024848294876823771144188161338635775877438458344433317257777739492207323623382738287157532171705439664981683181414281556135116526091525591971891996227940337403819549502331252933795409928424569972118463175019572239509866255895649513095159326389899103772762088533814854452631052540757265558027060525653100326617560857584523480792590894789609008814703624506347401908880848853043155950785310752004323095034537951578661649426783051637011885221392180656149568308217119941128510644255679338037427114503887459919353518521200536022276417533223150469191857116528838533186548578337008952076347891982758899439565527724487642440120116827155381104134582985572063480775984388246185382863033056069089699636075104499808726106630637993364743037854256237489815453962718768478935163329300677921827451287632124095849545188389909834915481372539151168213043874120019783287522023060100027970862096592708649934374205195819424387621872568865107576277986124511236375388595210031255915295187012965150707774821847798597173435368895643081918611304096014895930529272412219701665314037568895946131080911673884034415790393746410842882690225241378661287838033490959741954200745709402407505979379062989416513044265851233446413407384025845149915801670728421908717533118358014115599289573962348799687941539668620656889454491758266326084750031792565218758686764653298143772537065736966936823304839565189720715877042484574879676985668076972260220121747434003314653056666942770539191046104433502949894514909800215476346481270289605123313415652116395600684983481121075085401977337259651572991908418941854384665265673320290570034932307082450338780467896805594845779149229984949837142791614824960989152920759095025386972759836039840559291916386526105859560000819610816189507959415609593177873504420544568504303369292673661325200877205689667636565530746801413728117749985906374330258319896986604897198403778202867197845768573975734629282124542544271265446140626924438133103900639630165840700053043188502408242565597677390273791900435332057184469420686098615320675758967945221897052381348008188463857335791229817325863394494486744244153389114376707667520582896369426174945400054120832887140390363143022687362706333122814448494151485229225750709735143501574953873962162032524073316951117096961351394733640234547914916113473255539686920387775677782866778780783949297470344698130199805333396082106861621403468763454412165215819025315829175337381405105197686795128936867904097859548740346204671129288923345550250210655016705348838897168496716221032572493573271938971412411367203187124360821822904387264358088609029548396255422528877537023218824353173264985426410313959369394727894063937784317209456014356843874262031469478114172497752942303258316636014145916322499496296002725714993275326557559207983352872979183799369799760417020652690786170302537552004072679469859517805337489334035765953176881997435264382116247743564650797264784566972748112936382100129120521961161103794636289344969261339983298563083678428468150719922155854300583588086720772134217375618143209310581468806187861259161239249877370045491454150795992365953352249517026274879208025347639175286820322616959125758683167207089992205829335582955587886669834743050220185963058948812622859191120332790863961211909053020394561655711315556781178197601861835638209514792439182293476777027524915813107180682990376049534669428101980297888586435019912764092977080273866652106818089795508748131364315205817537066291348026495041808656175035200651260706333981175016990287578871528488665223302447563799281253010681674432815098448677789982641915510140119909160768684206431317985302543134763781092282997470865922454389021421838760391682735791243348222780792327243664495650736495059215221479449140118170277400288535642482440305318123009471495790027203556146073108233547350948975510074537037025562477462201660492389537861714912352749883150371610132840657778751361862069471372238691698572192191485523511420718860823006395326151871359685694795923352495563379437462815969695603347138988485423186596143255698959170377937546927290907885567151048645066543715533436893425703814655701777337793216672440692065030688954616491303665013276290038293886492339552222691359527377190755941660645472075066122510334758621964435178331493028279069185596266577156941429210291209888881311872444565146575544056325253764677563369103842838241694915528259665101741793423636753759348466269281788982139910518727944068795743017308417346150897354102038896359656599923614522664725052284821159705601951350079970387706360845487464327043387328604941780633130958409055377071062082816569557360436535539993663229155109656082050277312741651371633225128011930540778682572012605905690439621649633979040963319690809497444796058882782538490976749015252062222730448496900986838460437863697038646736824400465790993840210065177946568309782222863057043735295642823231608751878700727352838435725944353498826270265218869273881337469356141116073278923807951314144012336344394943625460856131987062215679284328956484767364671141707608468579959451156963520730875169773481139341557935558355718090383921791193834305487052671735218251815470902611796053210574357307675840732610811675728000263899707252575955321460746226991604957370358578187798393273551032466459400351412685107669180957082204668924980219721964896525831289989678450236805900137640962649262618563098633747266780200844468159463900607515674344703106432329917104370297009611796059562334592540087323544031237966042646431452855602351307880089285012633048644748635223716585515883554133636890933514971429681149220124112658491266386222265848601897702859289026062740562260761946069463686616025601835587570062545911794329329972362459176237286370564441546023303386120055184024784104184833776740155897555135916410467521176820850902074791314353564553473408536034808594564535386604180599700592432208275074221551639389425847323628336740126617219118504868754425918531528385643768958702751539855533949338562325555034534343302498890748323021477494784065292134409240072203390210775454379995312655375947189276458464704138383005323657746147135270394506221295534151788233568242663741061312659741479371993468417125965651410523228939663207993550654783437147401732291789064503306547298297411093390112026252578201701605917080006271692692770595070881244843135807661097226840469507262139983223043946920500683358646458141795984379140898781708686434976732563650128457487001392799261867114900519571301715898582793575782401142984177141566538406160215930388909081524976726418451669943239290130456279719436563559510498710046737418662491834566592233945420663642603608307136167522262258235114118269645493281032257029499103860396899472967057439467892043824681765794464138986788259931638239875453899791632773078230577359980907864324385821698709156760138394345087178757187273728272047815883922143817207068357594080680908213438337328860743175385897836510318232363524103187264909822330437631569550043307220518064123575263174759143847323216383610098500903161130249098411723688105220474729905176563758284818692494494105243722659207917683566214310273119776851912069295631548736226736063682198469717493252646281261684463605703652741645959099500334954441930491274067063929495296253137134756141866985207116287759250766321557279498081710283786920807325920987438435402967673239095030933400277618866286987668101519073376467248829626536255606627745229799675350193560844171958586963916642719082514145615610129564932428308837412970974001032619143579999743207799797291492897693375711631364331515475524481606415741061555652524772845572747473966557811993081916993412816005966682315343259714922318143900727149661275338322835023351292058103910987424627142797150664101576854671344400750471757657375544683129502847914700004875319844037626635247657424151318240163929323070060872014954851998458747827153324804819215642522839214176187070533071237527224158900074571853034770504109707497657109774354342596146391255417461457829418045087773385063401856434232842321646858580240330293207263206623789358838008198619556614282317427205858602401503448636149146625559606334248743652957488895949547107344399794754473713375319092948616366939078297839371602734146635264627453110591914631655636279839571898871114112720326561461342627457033924243746866122414484433891444640745224949886176104381539945195354017778961454593753069673690457093620182884920676111885543789159297523406261093933645616262974063713351068803921301758907772990342242375522015428107285080426179362161136961352405075068002310188774609486467134255254841695567818143496765592760550221783793613726338369781687816352142616745799890510151970574642799827873936445094999891006224252836057684455907528746195279344268142438957794557587862152777217663955187143663719071467990505954205251952813908384249071258827864763107116696187130435140009500084272551030875051167975139908366842382650243822195723131669913267210155327420229020991324203234746295319523485470234423639898788466194654423525662770326864122070896265628309857289338481455423431688462479447477960147678533775451183713599013855711027032763839691277812318980929930037133868024013561810503077225428692103791997474056345430437664581613688823027719236218552612231907594159105772124901715802007608839509281511697354379990252938416014976510753341924087829724455791110857532677828018449508519345395923524456684296042489048442995337084964436004341502374709460608334414727213023314577852989740213972657835208897639184698759607708517148053539819500002952628630514198134467253044185113139406759483821644036767134278679424264861638332932328277306229205881669167651151530943446572583322388577050657010028305737578026749667163558252652889464405332334114080265425987983429412400120762320224499974541420055679628707877165537455099995358392780618259661176647395492708438654870375190400873391248464972693669945367876566269844920215734560409903976197995832272862461962951901769995079746023124757745093624007601399295201388966314062960250123336233195955393615742026405440767120846794380354514074433490817928301049279797983453624054206535977273564257471638453897508809554105595074339311075989077775280171581802267139488332443069048507173055701668840456786521735559117468834922152941200159358429588738597811591857406233577987219127132576778532855740877875128976604101877353416463861812111449243815344433165871816941770292399320814212588312478314489029693150965203934176808685112885706570103623186129041649259342373769154272356076664243916718195471800844731406747586273712926517833210233344391924399987907009328748003267343601731243145892641439554964049694200391311777878287235559376650089956595353189515838622602778850019050616716834916077734970904734052319620413258178225225927676023056272244394778535342015182987276418678051026825970120349736125300855747905119314778143089288477172464892721559101846657634734796417597056105099848672405949087390886069999202052857625897311273897876002913877052409227957738563227526355572570089605516428421192123308150228758257579746667634597702543692508960047327597541937779164876069506938595319614574515989268343238561161870985993202500379522642411864968073198376728734655434462084157475096700971281963821928027218430303223174206031653692219631333223261236281043010678924305298265378362478706610629662407919887420737402595127190712116746159420768585151341672543754259972687940087600706411807639261314397543955436131147920912495592906232992615845101211763158064049047267435668791204328549386636035389160750842648987074528157231024331025555577185825839979255495343339138510073565360556124733037910204218654584092828876406449425116911962604655884155365127641346115541492146576166655690658396076099791074320682232217151082768817694064654746639206564291107248235050062394227844718352498951938135379334408715953842892208808354941807132974369769260228174268870159398739623990305149176740810230575449263752084720531340162408619538340669570488095338504603946993582770409161581372488632821582104156141567943066509104743355458398075876608293767914948228063161968297430650744471403545061791927081990640200232741702815331443257048355317640378813737127657707143481159208169045803815445457956888326564840679365424002943121581448712888796305764368253086105582802598914822504780362923357912959097369710926724774953870417951481532923341024384016215388882936350358249781989275502265454756372416779404054638803230148675188274873218518972173614226017802079853451258940624812375810022685877466499271345253072832582215885929635412140203523561029881386339445261707428027708493624100602548018717764148122533390412675847397897585359344989657811875212487518596483883720669311079765397255197586050547593748664293186969670891404308635587128326088761763392509860643803591570613205172274891806963962802330829258885231717442842455397705226034734597892751092629275434791335161045301092076419487390538177149094573895731132829013503502999621647915076255507795607348419934606193812784554363043777615670091440696172816979067588289363135585295970664241705557288502489058084422386305551556870035334013957057613404961939217218900396845919483767667455788391426154131847630618006999173401915910128685846446929652076001250395246494170282568556125773649533074171273045467910785661845949207358478817828039015655538090467976637847812961991325834049318064159613282238672636167443395454690179387104689241185958779442096978906298516308996986446231326776152608790847834091557852266406048248074722662069920857235371792677943267723844578672607311821544881192789308568694175722735647581417825229604825195048165620888017711415386029200385871171708024294550744881823782187792173306472168251420890245420274459675997000142886631537376203983729695554129684933511113306536537079208555837256954833589993413806902824959154797538284644700095993203959678270507958581802042560245711706916041313666048342967592992906565456560608721791992752918487799325475824287879355962841982410444512203943430597220847889803896087384368135526729006039120604963030697468571863814849722628400954668896729417698516150413536670618253605135245666408233477184026640790473630250302146914041218517274883162116563968551810837727308128494862319820445977441023553252734691887548490333607728291315370808006776132861812800111859449760316352238455607556978031658708820320518987118193773386859288540899103621228412714701188796005303329705042749634981115605771887541468581241600319363384189293890561534736880007897913494230975333789047381218407900859583571928099605361148420476471661768845027439140309899058646552286492265412035989899793742605687824766017285193844755792257373311465732741564272228299582218740714163602659664047741889831738914235064804700141246884931096848448885048978642390854608854051501452800674068549735491611925615956597524875900979751128913888240546562256553268027643018434717504677464017767339412816471965715666951437847210784554240900130665886480613218126699140890616361274768303168612972640238041422112831064933259458167026703747337480622009179894691260292558086887997808884502276299333507049454092456087627688186732581889755196954953401306137708181754008729438399492227846711148508982287947526294098183742382847888011343721005273192357608949402066381296522743214633677524781143758598220083569713628222030476081681581532145674718537585020071806852654491733039206452237680826016175802681956902829217317735884751941974540850002789819907824208241448000340622515555836079505602139722566966835428201210249767477415192148768348888707725264118585786994015218415336214285838894290239989784269057243311296630206869152482754989318680377216741413290406577448349041058572301399107923599371224499617266019391497175998617306917758703839251999148668921782785735636072861626393848582373828625926335990940060632917887488171925011055880780812377896318199650915001479392538325431279001526784637236715185666260366652960617196977609652711286245729742220722256311993404837872531477218273067356460225865940971911317171961934365596916879655106355224028669303611188316015411354284751724827629645226969788642759448099178266067314259933797797844299243213189925265986728386476667958508996725313528115402028774969021254293583040480858664023718979433631675087855888245488317364310763199754129426962706537844088919098477934517645448240408962335881398733114233688452362178791196633838289517736562277871890103161861652810227581562875809044517335246219864061046766879951519917858086011274156863676150567877147198005561616152584561108680547181163608243006244519714664080300730288911645751719400786741977071617481561902588276073295526419063170172787482966665285965968955319833379991337944513377255467934201251105059324518320908880921577916684446509336567002785398188348398503485889064677760941121165610445949882580776718580419963495156152756698487069447713710469156617542020887793655880816393043306454727272612478169843822562607646061271710212373597981805105282314362155205354549528852913406518482253557008411997837342325094003288612943839242317439184395127120048928425575485947624016446724861852376082586084023358529722403554912507501024023691681867325174893959253148441206296576838168475317238479853040815401387006769759438142210257729361222243358638320804568108797067326404456679192510158063692240807419049700012630638729626463109094572638392818890797614062846788677631613848040059266745340410322190337347011379940138706420906804449311764126968452395534325451966303530801146094982318928729666030738559469107121181131403447908483928649959832433688554006080865578219384911433575915071208199069960427435429097840531613963809369508450264444456482241547510764101229450374096221361155659043306353331629356756607579740973548862412485709225141733437206035482056669626231828886582819748161048834968387148523575466284497650463070426824850023728179713038075476747863635294417798218457634095191542479193729065659658172274417492787308359412443343042013325938151072310915858604637097820817278203644675946345499605774569864978117134869836795098482471650380043067408192043225994699556995920167183352185742263452203635137477915471365182452143628277836441276163683759101076029415271896437864976315340322872018259894416294605787741387901833953500215173818704567107808799586089158654289170221486086778211390337858145249896555453699666102956176243851883557033769459186309347862199671761536359474830028888371450255995077888907027785635662827195611514095153816299358982131933123804801661689783181657547157908039079887241348192319526115229273846713935643354441279238862376951463181257567530221973629161137543005623288272581334569084369988735826850592892679257166775292904232828374479446880840286654007027005976629762781739803067631293441315767638887736623328479403884975244207074445936119556999536891709610055289320966767102477143785685099104704819334866620436442150289951097582233579665670875716423004234329460823834276859159321957623519258860859361350387894192145082821892862719614480715708796175159257189661374948555176726618237589911854519916797848275560950514875046382927531267737957506010104032744425300584711358683095532559267354916615001280445749761773516277403929851740616614958617930732760188157461402812814287017513006614212750527392709414740495158006907969665490556027149569872446513257283787198767236773271258035228908430551945690364114031963708828139697254269134694607181828894843154067312359871388165848838688511514555125295483723242113291147572915814928411793620176576062165169028438735619285453081923393711068126146689488383647951706123950454824658050394131120537212143658242872792158746578982741381550809950285590313100007808272049492185304627468092247842369440311574718919904760144113629004310486022689844452410118733256942185519609305029907310038856971236057764246198515351494372257474976573509003332647526181422965453811977882102890400766172720827946532394685256657639552161038872507215477914873138516209990578865665436870721208143425667901186280375706152428586867132414253588177775644239386289713408733672136384049989472504182608570039318370389581988525928689702117422692066498007759097949530802107766085871970081010347552216269822193980570437182195249386222476872998029884507788025329839153023689313419071832164541949394484534773450406742966022981709856338655008358017580569294079345588498422081353012358850676972048040468756307346995807346949110988651918193866896532425855698987880974985680496798617903996812514519589335331651070788220095226914985589689479546065127505439674360333818079249217101783755380801387563431840438249419085813204635257533695511938367071361554887508920791940594021896508278876701163107528621529974578751540709070291774886609420068969315791586689076328476871529429238797104882573172090551027309790573266102312856381901962374117966926387679429394427832926559173556050863093679322529006432270035540314320063282416845794632845710368860455005779690661385046298183399046196161328590495618584668242645457122591159576956336281786938193727212625303584891561453714141335174119212945586052911759885703376539250456913672677657411019226486582307151954167840795231166432469616372694189414104658740301810562717538482892239954648218189615037899895198746182996440769702165088311363712866701824546812956833439105386162120342665398825233202390501425936954691468393551738277353013872563702353648606431744526118987581558255849560734290521541610955708887978354371712870664400036594469396343479989205612861100592762070986462345377457609264154558069460132578562767601413381244073133736019421545579584523238347753103361735925825740887076753483600205030661176665134168827352453826985762301370083051214684124496546199859021610866206746674600574698080450152115395869077412525407222392328811257657319527269968092322153537966778597315492846110577851677853363037601409047022727640337089737501284617921210700284984783508280380797352775553983388354952902416337534211660709565113975995662353342831905451939606017559681120785865050089573423372095466467393969494999993420861374939705305658537355742134167497680382167596745154170463605666969798293644407909121437106350623377869357621556686320705390370090898743387304833561063486134587576188228292848638836349755247585106390657856528655809642242872179187328488376188764758786437644977475277340725946407146732062484404148816516797849745693130987049141335721914388578348050069660869506541507569368473302599586796155284966968263618002703795637761638569908850132814027502012093388742572357587661261908157453720866599411586090753334155725278346875779575844192300098155188729099047774556656852944261522749267536435903334390698563270762617491927497253978790582904052729504782423859458042714927300716850080334314936495179626046435630244223152784279366040421812906542774400371039886663708777402908842686053530190307551341571955145454103772804613105222858652000259114692985417205449281380028806785092553761949099267389233087679619662280805092321077304174832633444974320967026135911857849468222972345109707334681972853197005994540642769798608779792434821093855447834972896092857850854819176323916179998922874345251622882401475950747506217123837590845744872009300257349268421836958572472521503492193516182828784748679952064526178638724401741314106455074227803359115397656608411772067133481730177537678756977184492608279874510393352766830801288950632127858461367814656150715763871400525445329715079499751331038959151437603698553975975542292350074803886638459182943024241324605341516410801287209726521102488986538883953021024343584773381821994807693401668785914046188764685714674316453950720894504993396177696773794168416716351776119222329947095521704582078105416184036782787414554779939096040130773177718655751545637562234065388347758112334349230327338451174365955887877585824706738929639601209644600609074629707380701982541271186093647304343032450391137924932036364881255847195250904488542841801032262917814797757148395817104866779371062362770168490018173334166266515974743533759279136193986087123909060902420768902562493901539767915773556132615220615917011476651917116575772480755860002707317781141179638053078461751008295148654201366231706849577313107251994092547981500166037328976249172600000890010028554599638753661266860263160905489426655801225638856585782745353592204906832301563927616824268109153898355083229703431536038367627592217036139792737185499753532374029263183961929003199682995287811149294100924428291997841773953227825468922096012521400686033616692501927939681913142182794566841595031795855485313254076459115622978349100775515553233304632777354366012212022368017380200184419625662318316632327602561938591614616245119090462279471426241261259529886303967382831027313344231985789337560427472923466471459881824175011866525318667894061936571901503234829293355502067479838181450299753539025281818137372163112278131199100068225591379022183870030221261787606880901548569341995248462562660727524354060897292610661646952564132742636020139997426331889815386030048278864779307858036888445905434637372167567704109700627967614757033069685597502433583931789876324373871751783003170458141237248604310204636180917780684464968856136313058120405609769206277840960177286410655034138323943354132873940996724806507951910893351554368854423013975238098368937811379147267022689990123721345028959217179922671945632008084554695270774503018155728426150354722430252998861290371100789280816781682594556083349645866406159453527020022107874466862967618868294777253182917300424040744245765189059438367248100093990285645795301143389248472930223689065520908108271297353012759849979386476119745928972793401435833650179841263009208290581461718064358723780393541234677242262328854739727274278147476158425598740269554510609894562782332375601125906000896713477899566860173545341103849774726116269740831408661637496238226074364894951476533003496993028209663620452587251640871411858880106744342929647027204621978172812095505214905997531836773524194524535314036068640489708284393823073160697529113091610137370793910044095646268331821876397206550904766090602846411742937668689905311432984665620930504098881141402140329466767856414744812200863215952609037635568909894924136404673463954594757989029200255670175228278985003206260987274406391900050976870024818564115221092924534477815253684014624993242828309538310576311124976447439838482294893043626280974457192785253354398679006732112640252940706895869028552777646377378973645800142956219886753032166293601541584359602367708589159919609313611663928165109295333529377229359688510837641256143097378816133359415585616611470131998794154439674242422169664617228463463553588167309586113445644638994345434414451678366885621914301587612922941874281100966215334764358768790891204532940674230138259162219848342098913805933544857949582991172297047963391574889114371862668351888736055416260465420458570622278261593291322061630619206464276688135177044370895324159161756568532354385840446312311510125707579726649107996324632302354318870342254392557258331291493676267004144501953147239094711363967431357824285146805093666083015946186557584951573994976268268538170024665174313764922994028870819572483609902275302155336666902382105195499415222899302964570274358927304517556860491033697830470213662338455131696962033718011488755683496969294192179860572676941071968879205028254791028392638238894109743041972535648000458517163657389078076392363588850843538484643425902424630098287474187617264983625945097804276326615742817203125985786077827161774279117282260510976121503638101530255638830870939330714862265211311318540434233851214201524915083541396488964325253900640648095950710487007676644390980154539337105165836238768300896747947557719470022699973391512834158616983551968162810678017940503721097072181759982308307512417645735766816120640434034808835456349152488232432132361713682947681817896818432764007876145485402713708470018385392791409340972891352325355633034951374514965534653063610174509934139828993572846226796847880657527160042454896989111055998567082870074724152265905553276132500015400191286623281896524045405820814934884028682023430169681962388206061003181271239233902033522454151181454173555191014921256446704574910562356684588759130777602082077154122889104695465981671457220499317972813091574966226203595480684918672584473887100789090625644946432661472053783602194639600280237021360748935414046068892498823028008612694002702876402600885571980330722002378019613188311650914109108236435752346337041254878191774633053434019117113919003063954948166508067341381666347921250969460181057345854543489852407386306009168676018360284487930749636326437766503756257373142847609037991805129993557833912540135705481086927563195565626479149743495690702432673577249691956856741691510854592052995419324801376914437373763484667581950327411183711756297213252617528102837167776214039010184744343211021281350871030848494245814288076930298591256813621437878076507285236941402643931311595180394409209061232292279962520973584262592760395720787790646668208418046695917275576884891822856483540829339130872074257293898278970040835238591730850278675500128810602214991201147882516606462758992538745316708734866681229011976015525525589311933302681153775464567228303711755858086961040642607015591891540968277970305447865489577909083967039618949534890756705301615821649596215511781128977327157193364113331389962340961432165179377227842087537092075512489928211286312039618777659342563124523194044228524773905879193131127286336593849026773453106657667104029360286872023025738559469180577570217269409261130908885078645185995228029323965780529900819635251440437301485747582397003500353739154663631909983467940387081667802802154946866865046553589366436479315696272751028726171793590487742519666942119168893200305226596152334857473949285508897430037166862166082640337465639915809347360982199538583690648579792682395621962798064539022568070564908006507746490270302779012696830266273686408648461576687503231696103842999548940174433275346722515425425396490524335265208306051096204157422448883745186781594326103698208888025874938338802285223766999057379365071953823043423371785384624746607416645366539207107544074151434507757391122918800513300890039239036317979241757686470522196061974870574842532429610115159432687767313560648142049881655538151325672497541067559253113062114002557110642887065619012190285895201194851439785438745556530952493701151655206720569237212538513650798654210562717812737756115518040211767527201841275914436879652265796577457850931330946324951107662877568955332808236709462317464641709005168908290682823828565268393636052775960065146410903373369564088484265222924884530736141954104912030186844750108630526732618337318190091100455962487702439061391531704957871569363614519144271140056244541403641470523708557193444724698742814274077680537394533931352450935199139878557786066868170832380368554457146199848041022897085201225939230788006933264524614288953043978937983087350826460906243638267567075546416259005965271731533506065495483745466450804866478162000636478345785629003543221756517015738613872409579111189493725877127315221259670659944570056410765342822252660218586241683091352277247126053776876399912774150283898610297013954448898562301086524726102119407408597718186035168295325254199739436719268626240445580048331880432896153167454510671777473272270536421393618899887493793138554382251122811403726183070224553236009441505955299555942908156058327316819577511656429298600930799448196391151162404784698444601882353351622121071264176190330147188318782066406655451432140623976355489206760260954907539621981826578366751648087505813576072814745306576968776820933087878061034326188320015087684806232656926692494267847052680636385258003875706354725959917672405012564541409841246724014223864933789637772257464112297642052445493074360862234708008777596128724206713085286851789459420896007994174856343844607285047234518136795406485129039431450885012955291362180875018459201960737620043269404955719281159002536295924073597192429744177540653824671541505936765904941312905003754814845944068298289343401882539295250385074035292076675981926286482183405382319976362344804292823746446587333636851107672626980451193711569810996565068751915370577963931899831766181572866907977166501641257847447396971385131196260263074731952930876886002626688553451617756831990008442625398380342673922480973391143057961580672117174376241533102435163031746038088409955994764144563223324225172176933058228908422875210173519600230084307121171059661057479058769495026313383479624589887974405996916257860301389811045462928569732297194282278376008248449019603593315755045112111711049641841864322652744726255686265064358721095236039006462011466831823683690852376855285506381757124555141955802643868930885674124339167283245157155651158838181785858233443008367570080828180657409704520970202582135212445233297793455868526746681997597311606312930297211819041910800515287502194914687718381725008312022158916434967078523532439452925013528714728835655967884070754157902046766479288146657266152631520433550757918650041328078646161423725132470042517581402605926562456640003179684734442713988038118126847948193353402860560147472154249945991956717362631030346373050945273624804578316429173557306836752863773286534525825210282024882218139578607609506187856080941245195568616874107684761317345133124776232457488406055858754501571171925766286618929716973291846561635311227874160573396468528020802180445279131224241274479924237201596263245427007272570476916544040210147919827455662652792246895067671484016969724192129113701450931496561540667265726466185271086686339793993337504648490361750510299067030290709951013923081458500464112239151070405762185774198630741653474452177750234897782072843601676101229553795417513810837771465649013574584988968815554112596903260946927166469326550230271374976201727875670596192053247180580857418396380923587707412037649517460155364956716049575166170680874774209695466447227358715584461723145187444032765908328706525096130519134429141639807455936822344878835096017003106087491920676772172830331685741894297090267613829772478004901434635160964873578201151265322221315340053686982887416576377425057691821921434616085780428717386494037743336518681246919700727797190554004656358304039488578576845901946142128802460467615188113734193098210143313137489214129082365287114400033838176209322811596231794825781261795770754188201975810225860979696138346997900501953375432104864148260957782005438990590779190620181663918698731622655047305075573571627963583313444657673871611186806673911945733634893593761744518088854127715178645925713761488628653791266348473221404839224759601596034143305555191020136390427756672479093693026701468214705366370870282074901359447814998503377951408203580402747687288221473693696860041024401581338066254442431562660112429295986290392687718597328854760123833430964014083981586212258166879627980116309744696691756337126627248224625567860561328553275477092931573692827939486595575969299991474311704154314499159472136423117478840698631032284962821592872551295450722268003570146122336093774853991867326557372194490186469310718917118648488353024263690570344034964949924670607442714395845598768435007433219848758116033676918631634147608469107887230613341853766323615583106690453750388135105110669325471247974296304487369317329790001903074957467543710296395581622036149015512437847561617684915670481285582587556547952655494902584209628004463584978835269074683971288116893839636527325728306406098462132829237238101394702562204531582167626316042034946465476335591403127266274159018663212792859688085524377953919860407806862923482337609285795321991714965197686211268566871186711428795716337187517237142302117146312578907328666076099662025354502792837711337451628887328448660172103583813303717922600757352440028815420749636701620622830411177104720654023975228173308483610160864487164880901990330920409957627801741263778094542094262605329424214679318176702079428657579241179735553436840572044837247709309528571133917806341589408004271851829372771567461301601826664044117698097063969782342286000962551482012603316915311567084252931442402928635048200825266237075946155886466771840098358794257783924946908689440299701019967802357957914043584809865587870705964529946849664737606110677104642549393828127559567120216311054122920515604436236696637856319206799077405728749306390818547387028270089427236435252650307144914692179431284789391563547299465343221342613480046268977440363761822578856755401180554356875667161841289685799907013188724488217279603528026142257589766502658460471472798792182548040496754932280237195683044944898711113812644658540408785394327078998235805832022955829028284565356699934455942354543206801662041381741653776827213984528186532753351685133880229994954331825379656095084598260429052038525213318361348901689811977360154793813347328096728743982252506718622946261878272384221389003980602983799279795061184645646838167421431903429732719829649628876573958515074609817074121860542109200311946669608239938770511052442490240697773254160133968047438414781203078029585295453934587974947962577668019122538015402061918059377571473547724380243468584276092257967459662303766738219024444684111238149253105020779435540235620317338750210960691251624462517020748427131873614796628830759276380544733077191429646861014927116009482460637845234450095921455614286665009111960286782942579427886243546959601765919919888364799254006114627049833573551795079026607765455988303653389103363449742795959501185045924752435637169474016060232040620416012518581125231172108567716124912523806461866987827813618262769001420166239792879406912232468908927767373484689038356879627827871108965909784653648239596246230465911991556879504997323517545974653085082378194813492202049401725786191806064326458283733006895182359492648022022364469376312664701937389065952571568682678968042422472915721374040598080168105673600733531793359736859943527843565826402889966727396349262514797823620144882222077513623432305958373818996301164371693545335458217217750647659915142286768768889704786089097118962797491221193756889641567721542994220963015382328691922187212422995504710320734627631962601054797320045228332340805265299678928342633233325047692762382224923262932005049280054204002138900331484055645670337853638237043560612387879243602067330969312819927499782585484828877975292495544291000451054280358651889452349922978468389723811981185005196681599669061268271693855933674948184289051512174181370709496988530148796294028075923725707242135792151215173243460635995901550439212384504583506797591547994797026243152027232035231637904574021594108894671658603281197137694395625861608085876146082921417896658192085894239791902002086565260964876938726422678606057904042623711747514628362013467037720870464722071802345704911171233753766614951304993427250286669011139070730738221195946758704346572077367885739847628931482644909319709065429004969953719553869832188768812640754081964258423049146648899185896522356051960284117469433725991271028397816053030275991773389639899156341192347728500345516476341745168126153309931931210510181413819476143721615840684621685411514086833067642220001906091928320355436033456005629071371202017931403942211952367091020337111504274718070669714606281616952371776899471799234317881092452530211876728890774080585900337697109198123742536310741399986287685905285316664424574945827893730909631989698232724247743739946226233345565192589059414738639291059056380581053384418210167307514821004231296740945679961508609591400592596879689227093971082454353023266464493548704912161441101136025725160039993617095647542012158961010992905944944298196363252242937686065006179089227653494648012602912296688374944776261163796798160627882739058858364210715223228511180969816042249950365732829149458067179055023287900778940574731065831658021224003209296966919249230095136758566192512397323608082889897768084774922158142969068601446673374382255011469077858521177001045598818737804487703781396504502038092603891435395882551066811494708140117403667653581930166130922982310274547771460813054788551575285401906006607782798252063431534482946408842123935823226375758436170211696199359795030536192820582384045053894069204397008038439998092385943912758453157532035411054242662320824255660829331134499370967640074317270232129328485276491108045243135747858663809356497833968769309572808091572224525565860375491240513064303340275547566650457735003679158930610429626840540100638733098675546494277287253039163298974272289914387478677601483834355340927161449075258711415145119779232952641172017527986914358029523656759781667028384368859475172086224395111332802577552940856272871998136827788677773758538126754594100463855721090085874001811289027768540634756239406036409706526803351126463190621110895430781286298076043726598024613112840289429359652647270330176935395408213125757676087132062791596063030372637037682278448678998560827964327748218163603398433068053849767046177992995432656233409023885996275623465967882061457116436598101898392969920411576570953779339728021330921606511360231025330879579233743681160552872526098464291218280563913147258746743285197838884517629079625616492623349356421375821707740772945780095580131337705197955649207090834787965218099615674723935684892884502164481402690468156009405278327299933772783946870581113628206102791583648374279214360119743601956609923976948638754817663148588304011243343005058840523523302308346828230438754714759450152192954676638496819568146464104688452431305447996700122489659902451354431437140866276086812235555177170286399411698187002729525968392857022167683823041734706556298447381808158580019151567733716852728562860364728651235898669498198097161324865096188676821324844547783792025186246237732150392221284396760068388928328209561685578993836032338656642825593524915584308150066275362353830759079425596039124547024597418527523358114813780407885429786608887710750925372316613460196174211502442945451200489627733785286102979298415215467355174428329741852552952131063354577214377251844122764364646074042490192979636432846431641488541292844362011535871342695004439127956668502171685392648432158335606856523131918669548089166781505221862230614684737901186854778257283497381011995172684554564188516757045218984858810084997121885217029142371850052532926191591004306108501352943354883606970957747914709418425437155778150438793336519947705328977393811866304721964600282621520169734052990597397832814979546861061336274458535003708365082598186415203596391172258857005901655767439080388617217555184035118318258018812214082368948408891927643889296086833029419774003897381419526126146347523458373084263735193018579251190553386369764711813897330986425159995651315378076089327490697415575132781256303992339781968288986133441702236515419605291048683442012050572439020916551968867172251313328352265171191933736467740414929476620219054457244971830853907766957151361647529874149581950673529451840751524460865835161942002370118559848911105476334974080498079240731791352552859084989241483782355250370666022012216707672724297443112106781360032344514863731401404209636673148337350139670310361112968047775635126177216813681837294154985444760716590545867460516706920869678064521533354641136963080814552005331645415795134216297104604637085356252724971372479109753351229494731712846700785989610341696688033295322014737971026282029872233918454802101225254698666721503148101942565160031056380693148330119301962998399501581233225240421873357676674473545543179399993587708191207572301271076251751327260455154335616926105673109413353563330779569133248259063834121327786146905236681747005752248649363785688441043677781825878898978116012433344791598599115278512451419459149819414360775065655136919711031395634650276622672262182234712029244704869840694596043965455632781472607068383425263854024328648911928365761902819299449998783812984227332786463061224283652714460629922649155655727218551321623208124342266825779165956225604106578798146331399580167734863130097231400967126259306746637023766508914440544194607047073975534395944151590116358384081057756658400978895001534399765744010154842249556920207081540257418709716876367677407583922951444307107983794619096536571371908316938837699205677199301751979289352559939002008358643148116185491507538030996416807914061249457669421128891798814733666302844262147885772210158925905061813722603886447657657864789736592132537055004847216680002829785278386328202101161017891514665235784346266038576831392631824489606564254122077391248205528821341895629319065528957526982986543332377185180276697644845653640881968138964796827980981926975698074873803335197195553613104845492497407312678702171851869882666068317648009131499428362082410772962111097117555335806227466955272062485110651674531862288173154761351842030642837609961586016553190504025344283760914442899323524688873182123962147059815491737761665548129696914148799371487937687207471715575947192404700211767583086395098063659706911586438472087569684874779633853746011353925726007373753868569811902823001701192281755916556331811609283038712701456180339347188245612103221035355484300413104128908302804903253506106435132159009384893191925062246053551993729444943121791378355203911170806950464893713996840922933476378547799659236189785528286289687537380098269784782330060911613681988299624608870860047807995667656496112781932804622034948620652917699771886483604392728365582366870032069241751108183348163225008231361938069050507787063133258048288550550648937169900818564305178831600752674929505493212150900187718159633132389037933154401185532771735586391289318648527136336858602700262110113409424398936429218533565928576053084971878767518492587185169404153226892931043615577429661040535966245775709360132341203126961530263442452347472228086015186765090634071217581206225202342356574541461703374803836628786727053488714868642080870081064160704989650940435584251566732973277011094380572068416148077254567192589255925800863358005894449578125840805845042734940680584074482471500125506954397503901230989356202915354256654065804462363877074987941004774563336954763453481775780935609726536205671093481776554213880056220395805147731782866133051169782181442535971379627423277466382745637427222638074935222119818951514487397560659521993020777294901805229864555085978832516165652047303800020066509170940619805732820920364668777171172526342130777032814443399714063913075002757919891974652903067459492954666126822705754217096178035768294005156043720757566522996840198234439368989202916378394767437044613928514711799603234531027565686096494555046256901416423727183497755904119332964214912247183911541130635487181869170591467265544743399136527321434382798736082587236221004449717555215119873984011149443128842397517416793233099891709174040353953846374164481038672051248473461161665931905021261293123515334594605979467703318432745968721397176549263536554509340536679026320886198206115087251031183219177614831027186531643023685096634143686367259981610081341404137667009482027991258408512895215191769710559664724379047796370595583284773953142066621304613723017214466847726462494027309751137781090405021958994907875613892410271889575875488602616653713867724494303626927825430109754655525113438215882520533927975357219479211792264289775659676175845809021933039329774577599721209477872381728948519429795128281002435038062961379249707094366032654210062118828216597807982093560299668410475798502013791065385233636780764426805854446067868148982016383591886411322224179461083784241144269427799250888000082182951425993888181811342574361347098565565807444723457757254524122836133503795448916909833356280530996239978433133554570013532579209630231370054376019290539479503161753041963850379033728621036684596599369035137651318395597505723148890960266804710340429998632048786001148057907211560621298899171587612978939177520304854655504715373933045813492417972804489432347666262741780733598695986490181033181379312580687498740133401657359806337856908137595748849136051382190261031735312906075660466149339157766804321035888439411297313147713555676710476423321820890816374658757517636467785528267762043259643138699691564809644142714420008721655626125705349535965431262993889700783102048677075177647281186983549799468453011290743295310511241557846469293228784036109986502493607862485194323927040567696198078561568536415491108120566386678116327515668065203902637391770465959889061707860078283067464167908352944639528365464182161718395377736818769090013498328146103659829205250220077315932730580857524490249418376576464901614848396516819896371649539560497322290836007661698696373001052793787173933700166504724094994207804549110207706919145166228850806020387500767682129943398445286125630172843565830607450173979947806739538157483121760864224472507575854790010964539030014278539109331206971750062544048868422008421827127074795112337971942643725007370130604144582422504150982372971301327144984256904741340285276313932241811927127501749815762829932299229812111567551064107690935230274739647455828763400515876875631984528667046065134578878327768324714034971272297800937450780083843503575445061139712139634398570474614706412543706087305384413188000304507889585591059776292594278488554517787659277006671970932717158181113305439232345704042643075608663428974831779502871395216663209946483754330560748513399944440106580018978615820587059328679634981305346668694119098207270033404103107346565329718568442934178347006371932857399829245299582393118293068408699994317320124677194831668050208370174036191521070152844318207257644645810545747020816182489121237944929261818221636518985932876715382633934191681455490772025864243346862637796989749485584022295573554471995815223402617255581818208749729042142748015383365424996949197767059607724443286803227843174394826092055324007058528879852308253653657993261181135774097055239035585431533939908331050219588664686040255096544404831086568109162750393044740894808935445385183029891513710546975778703192336782607347689913110193732533436846172251373876761337607972014680074190950270733691342690718044169109858042127553293937418184238078947691068171857766834616501513667024236430306087968922249399551873183794782489034634003964350747042430186265118480575236647757179342486792160339062865123155094435662905969938339503705307316646948325506085847836992062184725519283444358401002889287264411769019437581331062434797630335597297700557740484177335798630978289063264716513936292629636398198017610547630123530323071935068769849263545215455105622940581107096542057935956238253036289181468381211007816903853273323766239144588331699862205947295217876870972346986670661484697187955768469322621600257300797487243173449164275093580636828015003265392067556418154005700553458591459740894190879473523086714178573635958820094354085838258350669200593006097465157647063718388208508411672184678995181043956591799542976853774725113927999994266894711098844560035752707885916115413049147497407764227087672724858990415225736404979280825158964915025910414046043792864978190792921445574605046228200666283023156441207491856334304305022462310290376406917938803790641866049283126537390966939412424745710390954247952458384598635494668312149716901468683626096749344436737391179697666797135530894811392247367862959461950912176766790434010416225744159755338100644685685978765033674397807058058398859871655971836063509044868467421110865821349941397293051145821716071815864022746556375236493277837241898413565736820370657632724132165551624645055937887966528695269147878361845227617001080779597073014853863934442426755828099816366388235566072144286887398428029673393878054166626394271842629926890199929893116363711404461101117150092268036028724620664444167489397391727107213211216491248777337489698166076226058484812294050181315646085280418830941230139520534333512939917144935872429226838441494719914264337522382624344513865398562351260886428140919949362825145303032577956110593014440283459022828244100876982186810402406935812663105053976949163650852954155401660593888306692842326481088874325960554583343207229912155583643707236220961720038975105114667309513591551260756613978237574270405138992186761827292151490345759039888134537492714225609401912086867506637031796054992909814848309135864380278862287651109545955798790200278005536456950741791109486635339793074094308166082777940169657629284723747519524364833314860431763920041241143944403999353289379641259151758785119369897463255292399555036701960633326916878376100368242206260153608684063850103566200900669788683646709246384880664369859178186778787775125414147896285840839717440513494587008148958705997167840574185673159502771807120752407765851356549318334111986052962860449539170263420911639429105062791453094301061791075583488965562228149463116377856516254331262615397333697839022308476702622819053554986529279435722826999336713072206744979939759777684295800090699112479586816605089569609481470894864814709562992181212188992461651385383803324658202126531327573338794141208189964401854257535502655730429188542274362727671697406435606782439159140008938121386395333873911210063292363494045866840683842358998118148353864546358602205982882545997025253338114121445083480406206196235444762084876905018405487055882420257553373011280650848292893269320777262415397182329286897786079414182275626651486343632673393053735988623389134881911784209449121151021335142012296792406356195306132638122309535752845198276897718913383575062896668953358394694039073382167520936786121652101535121832534881122004086825481516753921638440575999012231961005036564869258829113233596234817639104264471759273701754714415057238188194423309967589015132070600055169760098557839488287720718516930327724256487170402014229671928816237548721130804752713912927960019882132928568726457737632490540997967129518026038766196973849170685718574101765514602312496886318746930788703324482085296637361501841487108526361495651441561440489831330308009524338351764343380508110872726999368727530608371288485899725018965711510230621750855517267389877535659094785691644213114776739120310458605026815583888006147538170425384747103770202968832726046922600949903858297273202121434102713489465817132674713979844963463623409750212663783535859867654884102248737281303700245120394396819622128780735569424055804592602873901786623647910955036998374061184456123813808136290835167861491639546166051334958612778302695214175674615902717452132196732035878311213476372919098338630268451752887818703632392392151073425285963096479453735168796074352950595944256806863785119047894113087754641712929095832749077758228280303644092303295856695323127737597973984253371029900243511719127723018663939219920412791897189226826173162087779464264913218564319660660790090491562388185512370983521532645097897152495209354736634557904357213371284525317226204575494526360140153219620189527973312854126141775148017789616120127704568664895810110391066427942838159476186471429392257343037121563047292003870207915334262324301272850365383099925750942489359810175095506551701733488135403265734292866216943587285376509842729817487313334694972294289713927693339627491220292755585830771644642019764940682747818793272250231212887355935968957125809713525705120086702070078074086251911645591317060445899621711787437153101672584094335960802053774905018995556267625803287649802320503886173444974804431962728016368462160494475865375799058416957617500576642159728701969651951964559899686162893983780685678916274200905102069886543971286390719361367227085510285318191240458074055160394864532900038188058314251764098162540113252976622499411919024066209043835474717241539128239684456271094995817165565084866180135150067247056011257621257573640018793649826163525413252841421530775733729571260050718978653471664733185034370932265883094027997619822796459065858921171737636428258738985148029685376367832697830825154105407343430177054079555286924170720132091132288816019984735793320321001633924984970302430632725733842643753149054472765441045828329149447577087426062177283631898504305382101885013918546354500864761109222305698429128848271859584683036701251281899490319939687878185386107428889097159233182858426016705662441789141254539798099013491652078780890575103049837036149722433797568957049088665750469437743005642348543930709376679296649479364195889254239907231802211479602034608867600580605357236978129657685735518036053768187751027904681857942092531798056852300988687659836233718093639812688902744356348251547515840732865015994869079585618241508424631149002414925423821441088398788382724526508057563287306518050567032214331251823066835556004867443301335092597066075248365584783344200377281196203914758799809966199150853133872859254180246680111965205690998600118626149436542714162967738869654939325635116624345120024146303370777388061929261306433940493014236086342091802143602871490750905317562212144494222871455428228640116608109692838871460730946887046342730229530702739034657568431412407625649406853028113239000931278488344879145239395521765124540365509227607991288215890864618778302518105988598815507026917823000127802400828512167797053880690573352953239863133499760946292318621148681294990834976965916910271146678720568879526923898463611269264029899613616182045321269963846667522419999977939152541906144787796312482121682333565211408081700868964712087562700008884586997458877310440147077563810942352201280257444358467677924651531063982358792346072526637261806691072355090956346520048320171533285179994060587910785256423512730012667589052445203228416995782322135399865622842471880537767812550404963774730167711242202244015540675699035689118841120780459435769712510262938827313776049636832408396905757305776273880306740930942098540192816435296194542271746277160403451495600664456240305016014364502122141394144569777579164619208513100828381122563874898727781139670892654503688996339848042415517783446869599346674148718843702747958847826229333716174010467248527763181284325003456746708585356872329980231673142570428577306039114721227711373951944337257393732923850054547419784284856228326242413683734307923357037000346561747589530774972051986081789908454244057629066833485652785406587478251206514196356158764355602871663745541998668403569495377121108940160829303362278311591439692375734367539784115965329462267900684752245545483530008763059470917878850758015263076669757445936558098093493596774971532554488986090399935972054991774859440116597347559500599244070843236496971703277288354545701122158439239072793932954275378240031580629875326806522032289237306489398379654335847370899752191710227028198015468489184861452453233626141904074635052837066206067453995612930679849915206333836426093779955628947324286644444945740242131616353794281401364837426991169302760467228375545017663883507485067221705411007299296329400693473282657820754276534683284927217096765070928649321817653203389074404417838156745593214706183488939370561420950274805505825196244470527169360205402338081443980920029464850752702433031341574101932518437288393049322240676187571035783282447067806755408154156883687368085652901083888912102814781762515653529448848674127372362720387171510582683847005437578452321771809208380048090001838425309657558368013852281314889103192821017505874090398256787397190398436405650837001450626229018615595483958584751066341503742788540250774029787607920993476802699155521007691819507780475038627768927484319468805166571581367364936384327473045294056950416121135309878610010660829579084117351516686579474302342847308777457735264585180500711474070678626218310899570253640228029466873582935238330042895420893256902286785680880869480666728341834491248719413867244490148271645673082164250578129241511977228923181496190225922571059581204333962105698698777379101132413721920854531009011029904704845720213774887107507748029050591646714206629142982120797768163962794919833153826335457741900123158357171890534870792500525901656041122787969755738432364132013710679709779905387177403109891170324583870400781014385449248812352780071087737853729309186736555192534921771186641378193589674220342920756372085982178540404350508224446451860219472047855425619657135606042051626261633585555158901843994880361992634766117563970072279697920090921841592551733489157617700384498672120561735637013004356790237230776508765220400431366917454409601345126717364236311478055169607914726029840912033545114884335659077141547578664749292967192803929974517975677486869465438458612291051498733941335884610458709611445364512194145797526229042568590123339027990351714833880568339559873564909570292730813277473415086780025020640917216762453266467288636225944813624220153409602219469297399733466280975350141638387227811266667700812863744319544917211943648504864071551792599921406688612372811513872243264752052797297779759358851592708096576476491094139801316761358329544126395649479613356679027303230563953574414728450473369490481662856917877219312895034215242203240178818617279060071067964955822297137837543215175695055744243156172841658287395435231348690208397398372065740464066443020528114631376020172404182225905730089253064962872940694096170923229925995300891504126822557936340203205809641304852105403839700621830922175142905426334229284475405006451220125663957462199397715423867339730138888976666222890763685709653722305975986603793925235968115608269212526722610657031916252099180581722968162018507580443360393096768822093114402996849859086176009040544840965632870012960424345749392457596375668405419868749560507838068319697245195538117907357646993462622385735441819142286956788745087480796855472873268054556043043071003781894292015734327739960757323280987811170441919817340614156974824469926424986687644109210877043570431588211782830359467660097764643162477892872011243662476212919996189803773371677441146020225714257408571522112363009706325125228142559634113113538570180230676927778989872082554891169393396529736315482304507109142649539110089581760174100514196647604009106508261536181712069295894943199482970236886541138865677241548535773484413802193557644179909131174176106188251594319185003981863737274579018126473169495714961594363676951630166036765009957178487426753973170544266119977895177273367989632063677827296072009376526545816408377091543905909818959942983138509373793275817182267012125522710587957829120910264281159568297414556974907853451518860923417096373862832117742442489164007008974566382903690488096130506072825505362657014247151014082315070189101449004030803044828222379490077284481951678000659744243465423481951858818955903974789414137940149390556810574800623139824087376224252251452774217074433977735184704544483120603584297900450514360761398320310657868488451988137539059646796976497459135069345554486368093481360087220789097064767780441719654143055092798218694645656000168402039060311446663908335005338598841852618810034163725229082630919718662793111386236153894980860102512177480554220131432287050196704020389128211296147527590172086580428520466265091454661483899347717990885753518574867221401843616065030211055806766602408661777255658724976185917599092796200174428373370351871385695869489410332407642610592572189378556500491517947296276839387342065314729102730311177338745112996744861551846846318364188063551583252506231329519503868317522007449947047904646871917229235709839338343585523310509583204123997332940069268973930851840236543479207046399572799842990630021404683701758926060356510834982623947950249312285911469422781292178725145480981552626892320467263835671692653951675473196213835951835598212095809703924578994145034236651552372707395093263413600367373193351932232359455770905513502469520552501488252959223904480350281353192540547885838771125518302562140364457351826411739568619605618106697776907520465695895013849873011603053032410380809907971026068227574745549950719544930727776777654254204088179020776641308013610654010538675644515326931845962583688529543786729670694267152983320430664880147955449822129270482201550852007835798841416392077242525107766758129704107080435170315672368113160499027216831744864759874825507284390040344651291091518520508957580801507013878712892508160160993619935284738900037558679604931269833099633574465348897517974368057911318541426011819394714603385742692844238488614836152344358710762682729436471154924758555127142069024174828108423072741004163172568801962980447066362892387879093188800786550559635323227980164706140332113799483178577828189812634333994861493594966278671691999746340147054190449532143349156717741742637710939299257332314003244363630818459909465103621912034353595030049493345001101865459250954954835475962367628865911288891074594116240361281875349221921876329747769361167683048148923564840251718226824058143080911926291195346649782095231121039654711329948255344576560022531112078159232377334578903416781755975533260755278866598882381288122531174753048566488377407138241675735894117094502321285215346334780787692240936107915482859016356484837929869522208089822591380533132422055136421735442815866778261393370732832407788646729568716436583434983871208900381602172698684735331829572486907518769831863959522352225802460913148069872849809118656390950092422565231812489324040880166670111217751119228599122471806728128750717613819218355878775610932655020200324736067391756248471609773259326277007007268228539312150262758354125715605509347286296707704459659298182489178079866529979496793793882652184458469430026357141521910194743282180979552438616628444758069517531665679417470683422711397835762906007147713258616393935537975751679882694948854966848141349212851145468122154787469829891191544836721893422830730403198037502319655584343659367437671868621449747353885691789361452322977187035595403731932616362857675001723786041662285754381348202933703522278901084547415822616145652346992367565510693390663438870895454508386671410138951519110973434980107574867097874376501131195287528341172731102176965828499494548916707879409816892482612208136397979891549729411771685310221224334484547945430101196839717356892397057575636419415683702682167814055427568019784142675534740548767061121984883207207857458322103429810665156179246715116819262973732436058317114747748697580170064772091612969728335033919998206643374305399070231782893651252327710659967623417557678701679884737557079314953189099238791712992259664295902124059611492748580671413798889809998383279214090670990607114388501491948184156652665033436372899305817317755281286224167558092442185248471077175181842583923184006770546689202956384375045794435726403724411266401268496094976187000448954391440243833418707419385518407674168823480225415843808959467076975332441934738664579890055293683388690599167280208476081276525212084171532307565467194277776435064932624502201938209654954624869398992536150588180109864163189646478298039214369544768149498977618453589404404492945561586431934365904217636238920926221431188111360453163026093935469499713255863863064302965563288103396169555019118209140520336341898899517059000236830712427827986808510484894835308648816381702098732165252541747781197870809499237267979165524152898748299828085423793009984924999063876606135066082271609284918512368362068456183534469163229682715272322138769757894802143463986510497031952733481843258558526353485882608872802904940601197861829859140095612575099563439902735691547821578032660361248319627776426700469092633346100426506144498842437714515182213722305549467330361445468232593995680697213186373093114998579367357415513439195417609809034065096278905038090947690017580592693571633809473411488437686847729299256829057277184371162310196154860255898488893962748060949123888297004812870773940721383000430593435833841421580979160868947918545611425976961318690955997896084109698032856535764123348092925735107367206880824843209942364048635307884422521414752063761890600374423296504952952081393919036652110545011941962240087042254272941575615239719634623759899071615500712291994170502000684557503714520224368247909786460814768911524776972329848365067763112858549867292819119658293688401151215638155176663615958055256072264162480869911264469860537794738081417529273269281693565117412147349211546178411878979660698337898348321476434726708452568887325058500526395539331010965158707386086000549580475230650911513552168061803525368248703120880990962257355305007751562653453974295026122042975958598092110670573892689832358716724382158942332801189712084317505273770344223969430911936541435409176491286618708344507385572674591603020679728556098327798391094280075658769195986244402883902556069316181029457881804286983569360335429432779035643675078906576658377438274680309256352694210220809500031414825756360107059444412498723619211201597846687780079358779117801559805886985346362328716842921757241825557426113685700329926230774875110916666900486341659895381950861222533028165032995029751485116904558777634977374532861648248043924778992234285676170473599622406055142298441986919132032480807655573822015240833568577257416813913749218175758175467135033854983801951318531665075646241750085080948538500295060427736997029001263624123969023089483551752811977849306940710467911437198452580332232461443431363648609524982367092250122033839635508746541618585766883123309599661419216801598627356272271220888490896640047267529653062435001229112734342070956908407595460514730782352934413924165378551259127360500087920867395210119333057328423799590494596054531418665226224492026342491475250259484095562473564910803732526479427209477697819600995318961516036426860243637150434446910203394598807834351384266509994366258721968270755846245811126554695593508292069650338647595452173925027854375450508839276321038613510162951271005626247023563178299903572995321388664064265841262085060291038315750506872351402428902142767938903633672101358317931747050833320184382568730962471582524440262352174893788331698666486485270188445417975322395774142496051973235934146329698779314498043776743258118921604946499300287296158736854974174706757390049220873791562633395018506410522477973645328898054786958226698348816530907193455033634654392779859257911362205515121540855479214492384058764448048071545658393894680979029322368468086726779739021773222324523124899673405472750407734421021432445787772756301124180519564329149630713470892213453069065052308490351265243196013744578831527979341168107186776217170268988004922372427727637496444835240554233303406354832456090360609845101648675909054667916827213123780994110941975475955095915666579694272036434039647393573562352862684955347060611120643679706660882487139295349196391976557434971948517888146417835930701390165927415757194175167532138204606349114092212961300173346230872849907521831175114348174927402090987455417750012408151675062395755909366849533616683322222347256511628827599579226838562189587480010135649678992835723448964631158457034555386790641418947459917677749463127730729191874819252010656847076045524575554684670656511163609320514173202585503075526824951487567187840355351423924239933009114805987440225159214303430192110146914149380581167222396349129244278810697638485679686034907815677090144558557332674365290101494295715705409507091582109243682060656373108226817269666985184835041851972450145590964083050239794638932515510680703782729066211412096285827074649526514963266748305252391136747669747880281653752197927107396338764882504206993307061888540884963919197874935863311572002755790678399044171511307512457866372495254005735990487968340365906591116620989045253372856013116764895044641926071396827203193254125331201339070324159077197726499560962245072401202048268862791791137773183686074961088832042288643784937353151426821022047626367562974655585045832130164343023786168794189939503550003256715886794438663822604670054206251279175492834679137131147918563951400768838980754132754764087031283874762396478529545752522744915433755226204593148032119782761122289485576540578318028448594867651539597288034402668608603728549917402056777775516174901039253428294789055916039692998379760702432927842718858922592246161476628676049405229620287816976063865396472961253265892911960355249383216889552695098481435436264866185207472502510575082932476245107669883246577544849764564975713779770484047323937619722576894160977687535674028109320756197971244787361557584058488498050881439970137451464734141370533771876175243256115824317776159243412388387890790595018989109165674987781433088357905980634667846878001302687611649720246313276705226807453211253852113350853663778397496336974846543104839256912285814319656535833868865617762158581652462381420624143265287792654087405960646923432982443551040955250657787299404014180478721100670971109425064028337752946217868370183760829061331509636378659489137794313118058572800465241300769224153085374496808225544112291808959890607429789364707607476140906108365508873176327461711136983303446759119840903570825649469844854853400271731919922143656116703016214112202529827427991623865918566760006901998345849102637587321264188316486175856423093780967361083546733628459194938918401249588172159754500223235246744259959284658974304456993104472451162030929275743748722094707981675277069738513261083514551771883140885457093262174526102880597546099022163987506096634975610322202131081126634606436851241984229804147468900266385856700400644736379273578450099508056111454444566105649231151990181189577092663028765758415398506481962300025161912598299843492338396081911729754599281461657625113199229118712758287494790870872791888767370440230979540358248839034454624193482677749559629835258999453372168498393136653739833171222139699429527569304492394872489441288371605382512639506671110392080292589863290394826995090961033914740105490698046174399796483529233090239313659209509557216827680375761369673528049316824063478675771032241334220053174895217109435922600680117047398169071859157380849953097999544388726984682357255976987718867944068933947945828055982058168291882641277431020076576666272477001056195605365237704704779601164003332875467481185185757493759047286519318337960966399583596746306218326827256460713725322085500478242491531752675854966137307036244991740276391199587216363392284461922243439531135908121606797789410461340436636719262186706985437786107090696619601680667247134744400410866839974115066388443351124594947505728809344668835049706756662247268381704677861412525714299595260982995548550675052547866854806065047011359898086860372223258035182353361842938799067560503079509379746167231768385235889060423150106804216105555470385759750481110058620814947044873536224684288636984395663887219709594640343207744774360295571627164536033309644137079846825877184808453637167737359328620239775848566820949343240901082578029093284835715584465576102559593663083616224234267664440100234400963484968928031137509802306487326384197881766820808588778053383359339964208009922732931560580626447397260294083057967062233752954907376761533038291019356238058547849288674296104344417496648726874793824501671102071448336486301292494943732590261476934854514961694938711600123077346568494364759652005665253719910414803729585041549278842094710091008549786818501017319019443909013546003627165037207396819013645465823916495038311754210902184431317260547111696262478582320787110503199022511656088027464833236830034022523223668843990035872510648073621339248101119598199143810308178424881414910443354631412921889509684970902028657116859153154536012505384093612190584618649509197787437389816047824357173714838133465352400295595469915279544433742033364218529865026900187816740859073865238624056318401374015105956140010680575904722977018348790246552300876509825539226467039104254017157266978795590682425002538609097626438336094869835742790799851200343889233384354372931017769636038895702101679714890094108502105683676588491737286082052390401814557239619072004677816644597151315682013295425837676456567604763605536382966084665785314736043369517744731336873657200201978710642566388688301828409139831414076479526067420726911829787386645843886174360413135829634750759025474536255743333182544081479168190168964833747695467523043645139076694243799609526821142944662681928946321927686013125770475611120309505180957288937355949764271178993186512851069500380995845313124473348592148183654019545095699282613018328410729838472299022103063318139477510304632491432145575679752253771870882738136231469661817398426710791946022836908386806298470067390793065793796247398170241982939772837225177090976713008318981592073825729813712688597767442448021244599004606693112770814379044889565227015230314158580558531774557523669392257337998962039341795937091279782598553500293793763930472315602646570318406790766369303495955891208064644644550914317345998822391587498081338794107363951249437038277590844579094542393159264544505547944357955129235960170616347639454943895801981402741574704845029639525472942082750067457560728072352979331394720354027703121626702612240396030444579373239178680858544977978786293469015956782003971397283241486634242660094914669917632434064391164194075645392854534283086829611045966924289854998267385244717638855580480081507586221207216881134296569804920580449609692215150979751042456714533265797306796697051519328945508645601553339358005303474459079850351120836504400568656864355530047349330742153286331564830935668148544483790596471776584740588186809145208357871916914315660029034329735093243433698691681646986298685487095995795832977035773680172791080359151271050647739183789596464990956397494927345056385968678797457053460969509631670549045613725005144090012119043702605712438417682491121042430958398643298485995232058046001528591737198778477078150123818527355424108813811008734238713640559104326517440895739362420887914253342024718597457901283892815867416044586973976864357050761116521409342643611089441888772779049769026459915611812168231916270049679612413886240179199783101803561526412328425696327955284826981813824883938868366502406629683958527919004623239630329692682387504113850244883254686428412632814744461495777510388110030200046124534404330413545095150406004034666762138142002511536013535007729942738047820752958359208871642089163959754495460365558582991205008174628580640995537342398362382147220481390196837836264832939541333314969923738303890226138970554038522665050216759952397903505859870614356197967136287892763709356383986884903608610512815988085734166858964803572116730619561932668108317387707950024860317108118135310059761067515761372335831565068993508832859163830176957073261821722929599868953828874396885623908029469777602471861142010852434557570273805790359589875727808540049021438144365880031024626702112840923085350388115709253593004687654211714515354263722931289732132093656470391525755405268483497800947271736466723716323744858437913093983397821368542783740216417148621324168096337127331346764784337198932457133253581155047707149796089667769836529050184877066963562824494409949398104110653563344209587076504951920644373116532817012313945023680157823393361540775552786422707067352114333587783700693523297928855209802816560765791321408428678887127782651734234412853020385367764205527722091568696793790147963920190565222908249633815031590665430213678549956119666121824999969984557547435724605975418011657963255211355181778840992935490418539046854071652588608421646369821079332267741604184386124490625482699124084756868803102055314161202886498997171955332584957040121079102774498551606327470157479418227153799220580652893139303845814614236599184335705615666844478293920552514126105596102127191875605442132567862651121693213708820982523638669245601336459368638801297018820808203779996441157939853605984550017326359924430249754676787878377677364879438412315866252520325191611009632847806722222680806308821486557592082172239207328527510570294662933274755162551917841219248220745755040655129095835588105157081523158951964946386607832535256164926068206616686663245216388859919436852589994733367860141566752714844190134641219116304588377499815491743637270775737072476885163666129382195462111285288442306584633215940008901730700972366321551675535692193552557201840456186828016493637157745956000847711828624536154919922378154705400901968320328760239388963892292971824694047098613891428498479042450408061175688964449850087806760364776549284501956092382309098126911827242362344668063905230589797314817435300646988396484273930062901533730306213985765204827974385348204462984578543829148308432304386403062272135038394559319473327243751898328097843735381336903267237127503544796051251608934320737619149104210129596827074624211418159228344699913592468899072419533198826955737406789363693079378807456442612523055769830921099712874954441366948477546244858852499440019806015687235675547864874091544949007792416073530953898700500293765965883396788310552821137425642817196153816288442598008236542014713978784951835889833833180817679765444090232174881644475705619927660236094266947087449375379843999129322757438328685747810165796271858463261035102434138137733969322044830837405235494403557118007318330752709743371047961175876407657482965387186825668105025967680139610734814599596278925220661650060513004375242801459344002684136112070461551594342371410200695924429233280277258748661879997717883896619846569914595207416838852611770515635742438965352657519396006282831908183360008436130396337028407933590016923122982623295965594468438192240741826096853317582111655014227794797918767059847328719497206965571467787775345805215412967538259021808640613222590422847434877533291987080750875951067513652420296313818899726069469718618136741370058602475365977265385497794460018238245974913959332565536108576643741292462163724948077590126553548283783079744719116096947821124619491431720274123126231710867244274322043757313034311111212599248981634932173294350601317266588910803663442173689348160985434921037462336374911655607246705165173495031238128813903513368267260746361450389698599043066836197396879318468801495981653066318893443283277841937423689828309746521627245637746922801623077323781171814312967057617861204082051483207489856840100122723852088530161143712887811412914004037380937840614498130729036359521668188391488213717439517314719559223937477123077198893890975439036863336845326825124406241646173695541965852326636900360991958157287812779400461670078735054555161062799544059292618749873523065297646712791125739395980231751392606093112143237258209239072818533462067039061025923910226239152496769220097080247035672941946640716594756836046683579460793051311839408710408551604933835306336488465409920820430624594214181494148673817880089236172078191958820647399296416670832148284609952826738417344490783684281701354386459696080029614788756114332528748252147431478212521294547372143253132456373184788806393779385852479814688253489149118421305162626823267053763613614066595752979925255297658668199258903550539827045356461316428449945265860929447292525180243091988054836558067439761757866215106795601763824463558343815150586405970533765317377882934847743324244272596412994480090980498856333204393389887418866018492811632617896567549077498824055983265261221547576189888102929051170617667771938093169652850327997049675278118439210271153094948663524459728441428976819347482323394806387260977211901960267687344714324978112572476534143829394380076560374059464314611577116717619695386799584021969455188022489605563290437212979555729305170450596419026057995910050145427003153115983729147512316567263894589302437822519396662625581906608097925098367200516834947307241326095559896987654461590523903229050693246699542958253312145399120260950216930659264104527166961080768969337050943928195241782923676030083911991684909994455201544491164025246138948599268217291626823394539792479313700942828822170414734591158851945603067108035576494126167395257996897999141783484945040794938506185533393578626963172368635454776424852256362922104072178168837851722541363418065231602838309147653845807301467452687977105255291089377986088816194001021295803619767766030612136621680721926233474697650415979173360564723819358698355281778454019427340257366586645408709429391232683509915888713726569762437478536842763568758653917022744715776335282622049241780101499817221221289210675368621580468559407146081357810603704711705972665669977481864664531809352601824298066505652416667870970233253636100669381937385314598196005891141964980497909977667989042249293147316198437591662442504627079116913272575723548199313653596061028357138381685283980848093343334775444566710742607049786130603095266077710513405317001808043123915553758705522036929903622531819871717524338109888121140984006704604407477751074652421220874555473959184247193198334003525203873427839386959961962265438277640776359200179629270752737652588906888319440003745209572943296950276493544309447026519807976487735543308348854431628476185687437524744031343352761195735960538411458565259946797808194851412334863326281815008821182298466211970400037997425321927723006545875761352414357542529859187606227669980350180830155569613269165005495308869579999700802918751328318951868268064457754122179846325438471275603028797976285973737549518209724680508047273331610537108860942602906124420851848321611487242101256146133847507168832537064608632283518239223311225299054199510933747566491420812494615019000812638897669648596008346359426057198906315371132258585685714711644305148972490479956180423298221094480411148250513282772540865469898592554308140521084263785521057489614920463751011800586349316757072181379756108878581236230523321433118057256540374629200955379873352990658012386760571492352704421923955589628594565354970860492016799360588257108058945291815576362501827870101239253957442443405083108088744700962912728968108275636665468694891484195873723066753223575370773039981664733666178721940120533665498985609293967303082283688653302236182372863374237896109340160064069032366514778460410858041247031222298452474992416255520824948966442826360822471160730484050273028272819005005740467544205225808185475486696820789476903593971294202017443484845194254731097894242327429842560453560799619409305220552406408108907669655534357409412325174312949925006619485877780506837287882076745064239047081984664278099962543134901996557070432241226271858891057512001882646075996308443947672372195494988737930089252981349605933230313818041197793499750492382132705474180875237964937528033672542457360598309397156739169257130829046045788218062819304878462107367376786256891726055323783826180312465036103597032703064938578545502390507527275477310077099403087712865783243100302918784431751119721556947155254405399620042786604520440508415367367955764443759503173240931736119059634285978331114087622555611973335750540822293374109193747235214625921861199186910444663246122218366064056434446203607198237876011630330904900309157796188535598727901359238753139044059657184024577594804855253743427370791799201614735310103950492870824597210431066844872105612996123506279377558052952456038861852510566911008704782450047853067627796011151471765073501494778588328001856767350567890196013296593733936616954176109968476382111914939668374609021150475484984445153107471895241720009504805704008238892923447582247300678066422568101988343816651967161915916494842570979105459465210057066407667568453140964892801163698469240699345358516008885299182540293335003764088419427715778045953468966995038715964641072254413831569593888969855740974611950935772808055229706317550421462761019683286432611072659469996124753150848992730331473020900599100401665247600130122632559223740337554496279731328736494914044451350161533078109664962972410724618561882377602130446525388382727212115426379787180503889382336407556686727525225134640214018350045427472506766389397320962847167288143402571365445553762223353786720089894694066477374218336955265189954971392576151445064776475591483072843505796507243601493399239352246271783916855264973441382267112464734729618403289620236920389139131294943311280634853213086893282095412640342561441297654728877734783593906988803336231994165857798077089858731373785755000885469121434404936237404932896561362570291333260408441337977868593921791095972338384172414339234225651865967081900981747391499408729204219349872594104333463537811340407485392484744494552423079352467914880203832184364635932725521002526946497707705552738484750535553852690617637315432380056492216427986054245261734017671399858893876397169712613647059601872393837519463902113303411320687337972880799444052181877978849676689721554243851658014888544660347524373210028511549849336703499393116027996959205441159931734685636522703359233773316580841769388341836184739775010114396619226224825574785017769393731754028407701659926909923119197342498220862583875014254277269894503392013268510726115322283229799937360013294803153003342267509864760998869196098415007003215196953053915963781714304412645874022074938349325138000660918499880795553591619783325479943431205269682386341009846519610864944693675970415319741654770347995790992816381320834893356132012449991594116195706377952924959209415256029111081126281684277134524479251379908022202867897148421290656607828513280354850336484429110134016087945958789852536674131838272594819632712758266931358122998907559902969572744485808504748289071716829065078158829362058959675945342710593985520252938013986205772089514096586555848644652330170362755102612827599649292493552961200271454929206715577035869774337110819967772642044557043674668790452598287337747096656821323170244215504195999716075109024398726488870899968835545149147221923088302596782238386348425579253288968063780006098513668320696275875179436278909298401889426922327418216332642937611512968173426350581201333301768594203367391698790567603219089427465999388393274843231538750789350701809124148388519808292359818473258089720346705578241917132931140358382482790975161979424729663470846578786533597298126918068480539035777704714313518862752590203104394162816306620672869798761849321926716431415590631435110177815441143437837371879706302185380725061410491063303745397375853294507015007787445097708799368155091511160039416529728127274722855688661491720667750085728462736867632105742601790246394509797913905870311300488439156916970075037293506156232824928652113858983494714827407103782259021853359272857438670034209693318133549113768489009410528956921720992754927050375230704285553390140913517634357595911496848698740069163013945211746019580966802828007962484533135840019972147136114183786079368004081617004552888346627504100882320618172419492683501286028579296793122667485060752251198941732705873968529126459941765149986921921721029420028964681681511791072812860204312396340339095840251448014304749286615013278404018393242219397551766478868340355585306921676017690553793670119252384993958795153891522198641383359537228792389927638877538466973459192745743007210869459509629640189411189528376625490479349630952346148412901450829689140882172580681734483067550895862930683295718266630897460070957310399223681267619181028801580155063510446190351917504668309569639561828725158100939875832772816058356390145688163899618012322163159326111529084648763929325541702487385318569120507095920275902646102000657651054113857518196060030621827655195644657209392713146384948257463276498346263081473837428990062319095717838399239416862425258494061117525681195493217778992630889622000331331944488115557498962820813022372968862478896877197627988956484545370979081410239985205770706942392883234744363304985452689412585380007463515907425414638141989424480816628545897401678531617892258489375213802035778568128784797019800028528844289812104876599449670861415975101908944409379966411947794488402739826142455620034123034942073408849375312653591722510374253683633415414266508120149325686612292033659919636469442584949628883798306063909573007290022890525080483255747442939826788882791380419429581740685391146235860205567605581899408553307743780000687147676973408500864811432754797535618189512265094179225002922131405522414987681694485780720912356467963748754014212092387713173038997730987923562722509847225368924832832574762419223973936535217121284053639931557782603893787106769686726116372750013812032687223774958555107350914511991361100809715750618654765417175317399838018298860206878328566815346980504421702105995016680582066912110841494519941849825599269601646277730755074661130018728880819099775454959673988951552710221007857119254964279627667321229237086228105980941854170818765158620197940410840018862878741606927317930693997430413291232486135139394604868649136151110858038111390393523221858447123606977005327430868747208324974623337275638585587021649569286019113759248226330057971624619029016624728841180534934062252361763365297242281254936352360758354925131711904734663069974520162735952909218193324290527625071091445393107846558024232171830894920808818429296380004530975493610500767370284926497740840035559229837867451458482007664199108500719963605571223705603540524569648856969543429863995239057618661665895196943482258630866199635025998749229719555256232592667604521393992109188788248447266715593614539713756050987161574534260511414124400034196440523952638894646377871641476081702109528809803450725475326041274338794627392335265049737252432433202364782813213568138913174190410076427825748906560343841919517098436468746814827549329702638190921342752517719904008610618678075182722497365549155772229365354179481190135336655815213993697585831543082367811898072025482672380874545978943656592237223944162296419867086976417948624078751463379404454609820107408488291089210957175620517797315347729754502370888105155126593559984268119565952231411183953716321784276503605704827889182279158162061567590443500989897485301083307628758515192002351102253505694582096706135083518743314750298224189626608915771878929393906235158729346203864215933010173474682355825222468618929173174272356733204714822439153963729844090386323184236508764830170375894426518138202988124862604600227286579997978275055595865705759372524670473841865023739468719009678246203207314758081371986123578645938819841083195922449974482306169961809204684942343961058728579171407509466214146203267477657281716957900681400820805949106785861366129232692348228347936976194527440834999967896850993036142896827056153385876720238271710568983603278444873604025464187418704962739025007004335929856219441301829102677295038940362690088256463436777610664497633899175003313555479161887211098136366878815568320113393231518765639144215646929794749306954317115572548399375246267902907911988427722701190468233254426201701837446567740332870684313582226963502128925672469223884842802213249164978185501288205636710348848668133001036893355527491804401471038960119806559952938441344074941496220994323966567321221785953478124601216900960827909639448872251794104559068566108492626639568562920665994166286665078952617606133407104631809028391192431977395334068237613783313650526219422026517958030331922874899511765504264218974641634759383096104908351800587109415820092146760793640964017797957116939977296269384659291403638282571847322295975058705607721558024882053616156812850125346443255811566176592844416975157394255023121910906928067859181285943998637250512838605218831480941695022009721397351369339913294301394990595213749159678462875433000813807879038127647763606818398800928201355831115763070884355487329153266237346967414996045674191249331958902879876035653365628113640710416389231794157395635198390694326082804301007007971484171721344159112702647171970420110503156514239237072997551140107074537488890430507695067199332173895802590188230658369052250748464691966467807683601747734364851040879158824315680670051649092808215070129041985220680965715192427626128857929638061966846826067413829316462813698016050797666902259421131191326362709523438528037896894288720975032377558209080398015892644524793071111196713349437479167945690113376708980647158731099753719405522573932368303279473506323405701795206630151621838736479999611665493574831611702097822344414859682333215341710327156108102702968799263999492092625121339893038117081560348848335047562689036108646999936883085375513532314837955643292702822948906519915441211662470163381463187451743830084720857256058263532825144193979045574630256018947592890538716176582480620402986027099730751751214889798702877602363081558245293688983456867147314331105945040195710195013653960207046839759145062706103940427149136810348528196713552099006746756377547715294018057937246690119112125441541245882943753546343999729816378589923689879660391883360723170117350312518148487084672116855470619945011598221372982569581934085512516501991733313868324717995251715338815237531437219377410817026113959193214911957281950313402674985952436038176048815704125280244237820568453127756335320517206411433850299260968452681321705711007482483309766586849707406574486036293663881970546674563366220408972312602075801425352014821260707171909588230446957026241253880817246859629152164645048236016492231326670455855006193239299768939540730207355165876212020514587833820116205536349178717547626776256506179389963784039795344396076493550270634275746859442797099102560367383779050564280600140952468252297093791149499938405461315028190819693244051542176973498564430741467989180266634562328503533873756688937249946179920336063871487744216128010272233237507358625924612286387125196507018683823078587397712089566172604615725857958770563963071450077907510237609719905511417670980064752381814213845165120078116718787772321645532009363491057677239229501194265976210518718739402793649742154366472359872290015239837576633821315105734724661036817033831952494523637462328399140668355852709263738710875155279264377906770130815580350086388093476896644828038550965727031939987730576892319869841187345525438574976151120672673681594879057692165899440428151933893113920810633741638617258281686513147284571306374977282344852948908296979654766191896229006915562336927581592002383272071451913690102506338861156007033289975616727844630512798860471807148885013535823894482965031457816965656591877058394525049914595686312810173865191137641821281873004615254122650730116028473881204517335058919870602851045792799173777518714919192833981181575990587396003942288432904639448074938899912114883211772558128755525623377492061683549855770586984800659061442426041805404221380956978916576412935287726014625546029215897897533182431975407750092857658820005890254991173451282389995142708653446493669632350504942845602636706202954710350147750105884837552829163833957153292357526347445304370184481393503988541792343660835933189859542976844822244009203264243009881180858213667180206404123577214879228077820659805444630518791233716123657557923599891800074992580229548936027247778196877833779588780265882245118892204770408565100780750093312191945486951383886655565971360773740989095032053933185313373769239122850761665277263687345258882751092193331006644077718256621326167820656905608695745759281007604708166694283121964832666452053161213228191785491834643736710694653040949489372036603729026549778632824773572314053647454485201011538964996329060769659994604785214466229645207575197366191089282044136655747482684271111398943530550369827516335839876770351248435333376198124435841882403105831761594757652294108110094281350144389462997662946364709634659844397223927278736212561879912645698121245554606472602822322361512861573492879698333160028792923311122302564072104299891239996626568557030365836131055953087730839312995063084968949670639097506161454716656368392870609149070455908097138048836268876364432786424567621417856779082864159084758749152618405929331151672856458643597730942503955491701645132463350283589955018111240985552231154213523543900414937335309724161708101182099600476758224640100576065497826399315859403333423161302240984821908947826444994134126173944213323965674449773198235119888898349126141447950214217859531866816839748363340011640497301167352932385439843549153968991529228954700039447345444647593053619373031563475976348402517436928918799721384986872785080746254457778038980182412631081418827176165850720408192847599898853638777636965527188703419611809744676882569219652268715507059593675090640218437111992691571929960652903542910724424657727895528890626278779898951737678270891539991086424177294073626733865938871959258138876500063092224525786958085144778338071986471947004194772447187017308263111734441435459555983782187774553000127090756824073653196426872015002618375781271014701587410320381855210526802129743888382745348637528887087801006369728358065503744166098442282992180968889476041436356981983283696628093450645120050179577850404883005731120195909985903203924997757636254721362259665772237349355190879794896335416148939560650466567122087207456861788914946422318397032340054276808922786183148238750626255736271546574802470027066093354870191383742184343324697409314913787276502812836519744175222960420054756065469972448811009813993405147008804333015838568723428897786502077495838597337927307274763530799029159658928786050792944823303771096135812616084027068286950366335517099897774436275475079528828755048984702236906774692124490834113982328720752536605647308585568975741991422186974133033831530870525530886889097901185255335999764053689801658575593718754692734176123924944363410527639916994572369768205014363797454051169724484746243087208585555239969959351357072794768219645599658384642657134832855633335490777682898010143889401181845648932923460000712231355355477058682832480873058285233942942799937906802631805125045857050934426382956295565880404143989754825540104313949881572361542016840182780870298528129727910526969460069188734222427801009900974445646020551799300281454074705207445940418019005611819751649717127929454457848450332045697177867664730539081299804085101680790649845289034328770916023525119261939273512212571235090924350937468346660382344288509856252792131698982515982764479511025260686985632452531229754360295786633651394123206649633879457265726681251661032913230567712082203894228274101874095542418053084051056305645008809109404950118409440001395212343079837291092100938548624540782227159041481583000544531000187689250977637038915112726011533535265125198592542957431727842945458008567304491004310340034936157179183797645544889122673873593470722552486264596812051630894166162313388840347671892150010930862230223450603363508980159022256834565369051718568621642043633749529119300437247121376411135211089555264556658290462211135719873716203893745481938696459165607882404128816715119096771910405020738657524527886787937044767540519341675063701045735709186401525024676733687418307302578406226002504922528245201844428798523490325594453110926110891299982263427597847611750313760805789183026892746001527209217622609921211903688137790324397944861087442496215091209352215038784728070255696665057268020218892181504142577978351318609537814419740053368148781190656940405736030747544165843101622220360866149922615169156993839457880043788118751046284987864707214243578106157681265896518070604741732592241821312934399117793466650343524437009397982226653865219649174773233877304596940646311478672304380540852263212883777076183656253659820553806773767193770804669783814921719906310356106257593830833288660429571583897420327810224825469581350960336056187022381176688345596583749402807911338364062746308344613934150284065655980130761070802037870451134134277776589962154137878342367496590833936972205054338466670638366394540067693503834577560043589394918921886796625162425831974832752136661989425467449006080240956654186896170183625866979494265217393657595170967365141382827330827389121451696493436777792328383793255275960705453096010235464032896220841240272020578855606366947290329925491935586978061306987188140368869275053508449343478098938683378500258902105814985756684054313992028655247568543845292824472283797012435410747831648087302440431820853909678481991287514851825922445553495121336443859315343121898555962554907504091690946326223947200525561191248620378251559069133553382672685500041813405120837708985317835183469153456871454071427780379479282380864579002512487654438737547616012808761433117933046675563955550311844462234977195737760206024251044660258523787196161743918435495830353536481629309232889152737013549924891946510407930936234566960751780504598363526637653780409453440987175025928330128808139874377463916000077740274045789154629133158705986684073231369461102817787148417010878408992305520859314047029548240515793721064707100973592855697422511450233729346569385999579415054176200194380310908531303679343530175783872682539097987367401515495314179616011691721520165862869084396621620282495167506992770036943689948325636541156854427384937278209860107077786826803380298642173448635395328669690639590885833712580181375619092930589402186920019505276953983166127087361585382362936158629434694280375724740706351290875873030936246495489952546806448575913222782697750609174080686833144008842664883631291053473624031690645335541476099565173179036507508055945683190577675999620932282327745163872883698086564459390079067295425004840128749302686945347382195889286085232468840116196236423918902549007686952351515015913825485088942834632583774011001206126948481833158742573582451669909579880070072748343339734003844548451912483829378815275290734372617075959074417974436252243323880025631256719802151019191541702323738217066944455325958629197646132818697368324651817047496893406785889330096139360705016111762506706143653926372178877947448457289054417296404564334513801697657232447268803597177726549223460469225639357007404432069042655519643576124422105493146141664159437698098168461876123821675331572438492665828141991421386791026212331340016483302122439519249388889040498692868420964139441315966545477722937514677838194019980752627085097386795563794334457399222310602696497541068103889047042178640423045324874652344694317079216842212935863220080626155861274319937122549031000692729045616329864452610389491641267288338694434253449477331268336428900833677686638003161952417679244395401390158835987528502530402949774074269148878313901531266011342482669316356691483497014297937182485408354977608241317868373627284964400798095352853672123670199827895596667254487101633368586259706539705205938665839528792692750846893414857164016429067084160969784300940169981584271883170063825850615732121118444242099625900494846820382698018838659205296015253761497398885651947835975425387677181775173371944548127463105689390584131594088672795498791120856416864061216677035155612678335351246887181878494532399809694315798980922721890162930076492015413864354119649787648169917161667944426444136293931904062013591858839250959649159947449496868010401262107568494961708212138205232427601152977033898967041028041652813751871370262271491671920047024160947345376346977285695588514358082858658421914670442429964727577581965626264846609924605602078203350987746525715549956340570331204962980204672117655337548848830333177217339533454080373601384983957106706796326284518535709056674112283610466890811966835833767031073088374477635494340488937398264184552193898406258704665790587061946456175417537550849757838850464236856364454364211368379460586177313362771036206296111333680051999198575861948026496560410221807511175786586741644034301551580159152869004582444043329859437579144222876890083725197951846587157808579530459396442998159415757593034694307721941271506293227812410935533394506922237690153205298964420101092892207358043369579100431953909148986615728102433022149116141735822818436308894408265814557550339442117128004081341282243192608975423439834766094980297219823117421840203528757450325576716184193611502331810959522529798805954331102161405707718148263377224248268495882203721467028623477840344986350885984116313084062329069076471432905838970026479544775577291353669426712362488521755346222395883961940366067708688540186062801676223222502952576406816084006271607414765305433882683435646913699621464228365191415190987637422576345184963117245724797470519857349156580122154360284409374637026127894423394173872901235739219055739800491287239288170696582049216970952573177314097473582882221919167373104444489054557531288060898623170793750123774049560612876830990335029033171889579165902237176147853606819423608049784317033693992228120580984611891258357884365059351348059133296461758605997779355578954041478704229882612269046735711664901499262532865221825203415436981118353510484548545817214645632330446356103529443822688586919265648351089932494408680297054090287183628597968719129408106572523223759347166774754020507939026323794084655723294543723604190844800336376794154963178493602702036636265841851387300957255946102935046782562100342009508024316968075182493935220289028070485597003218108673861993000616724836205103548686815202005469491821937564069897098751098764573073382054576991897725340732298982125245464589379352413618294300503793223368312109264765075991638733212600774990217707619952935767950096546140273107931280480523339688368396437314420001881263593602243219912980421664018196634124258993216868204450305729564627309995803410082462669367373387074746239192969755643582759454791971866085442213244209879290026068515658119141414079418875759953015897008620165179922149391017306011981948739203075631494428632797254031489418070108625518608247311693596788644675083638601850893897707150786479307589429753442129969606274113321228479061432160819475681869558986900005610265687453018853753561104672325364956214075447307726633708309857507184979459664107995946045127026238125108770758295971393915181010538424750998643497448311142812408840778413758932829193733789482683021493817386400368025789020830327293270480911673078571926781796429870094638805332911610316848866987548518156475620012566609194064917366100603372421144692809902356935738039130839464982744001451441508604036770811836569007004160588933631029212413828977743054415306379542702722235993001719881717664240565470921547100887317935144674355174384795320016865140716869824179650725423397361076947646383278008440196998611035494611858866843213406884559958760301733992050698631011594541242094235788216642006931540476844227936741709831344578679746009715342785631124295050677824868412498966910587383165638632009102432168580883668060959592643769833390695192215874339630981585819754085043775359862057258409556513677984504129710008525388973851244304050919014292927802804403382959899774744743943541788990292644494252234419596538298432544338984422240736624720173202198685531636135352792790465857004254441809793936953441441508093764986253971475340187352139868401883986932657068609813081640331286594443361128802764398292616788073322156872952675632571205043300703738091807770575216027260171013397765484279978195949446200217924711857654005375617254121637216903730663291587720935437477489497436194045968939397461099643180044322268738308973212619289859185523347859097911133071890493635461224315454182479948830242238504371899208540511572298491442081800345136062438045926887478438762792788970673243844212736501441527156530229338379411817489501242632411399409488983371027671241639039019641112780304990128083116447138417668311181445931383373175683210491210266314135590955757306678942273961632364922257636631592095218196585704335433075705696169509419972288447712757121427267054737060870216505350694473026457010299490034095939975891312870939813064056921209879500462127331670162168569434960754904716453943524519343094698555042042321944727580964451326674190038602986251074452352872904235925112673650411608538752833173501096467381837088734553559897124374025324504110645387695823650385481241362268646085524856529076500312822938990164093502303697541444287776724476560657439117094931521687771450863250164109422875382181505626751847701520891837096617876858247932234269080426294205946586699940066160229010077179692972001435994471642585184745047058971313747986121222706843302666777423209455648210847357853041159759081969191006204844843375600027938161644091054883544535857564265425837304764484241835580184225041112884396704797474540594787447506895662000399082358550802416956721566776149408352851116903737121491068115180546725689771719784078229714176885165454103894350904433436262639147762763042533161133190866608285861599455271096081471476852857704727615886447385055966426991936996273975881357923189472564660062513801598673188570965777617046505556864361539844001134045118151314081074139047646330383181195419218589410470453344851023241915915018569451737719498853125534723957059305426267632252268924232472381308647588347607102595806977051376162087485525806301903200868142118760053835663178192349053308779621647393376401777472058634223214390011329494260860211647261219588167729777702671259504502068057349217437971712495246382465142758237232445007902820816399134778861513230917380726961042273439713530035424805630550374283874770439576783393753911377312931467603548205305171712765703652059164321354775709095896946204851201158708159521971439211248835747618058357618993431689215419949644828677224188524258251308793920106191953457202771486146890461720917109440824951046020157966514773451487517980049455946935953318657579386753276133141881898927788727022793447907881655961445881803526280663346822773339606422672317193617435006932541832005803102711320640286691377151579953562045407688424038106443568565781048237251304842038465084149165967678932680009965768229957411505949065020374637409970937320184604632047808199533641651072103045716877540041308684499236483381551933196587645753817810331927225080660431322451615826035498871842249611963360466398992935196155968216146854225580765257346947351133769578928709222016881291818596552512147883873265319228788718567522016488171347565906185072420386171604560133589914048080552617379780569869271007247079780764042225811271733204208124027012948648072240006923334445852952531593435671113098911156927946081948039158051654091416616488201086710692678535606661781878686548042769991916674158154078110468425769711304829496051062109196869226102255951793610908257681410172290994267618555225548285064855402938421544482126863959350506234032571430236933992442466455188429717622844411264226577232410095683158723152287453888119053739745788150165192050212732651320743492051260629890104867163549128498299681187945416799374228132014726368391622994633615757670948466678272328318350154737324178356266896000703743064643307154425527686285111408979425788703151911603025644109113943921847760232279003574139300731033390758604475796109979272146270235471461408028241756691421990687154874272477869630575047019235875064920367515938948256053618676208328003551985438511194159002193861246079120925335512620031642691381916712616073810766648871306035509750097930557572667178223280531621453050554823512371162103877021748515352837777629671384906053385598739218401345441571992576900437832562234925773385537515140945221520313509005017763579954597313670122699920522303773155382035201942123826118403844854583451933750547518233959295471229444761143374164198231490617386278766760698273391452213914420499217373022052408665046490221964880622835901986786093228177807773780196014858998548540208612090247464617638745939038967449631167402564547594926205135453433922773003507588590243696889481375124025198743430529125328143941441944385748309411591419756194630241880750259026816300778085739418625119584476920387580969896352442891506014362417061238962314404814064204038044767488291163954571338117193991632509587194813979702116975546673386664839213525491229097419521175669206355770103538445377691704042146155270853728371761337185756048027227005139048548238017445342876585549964937041425050772603527039802993049582481614638258609663298810815683839270342079441208229450547740169211475873941789064074100001972541994109520104951692001842416060683686859250140549979977763492212340736987550621774331682139449728688790075656476538752465260747741004239674594689496240304115798809375012257757878069407645380640322364752644707129268125543144724281595733421291610443375884014759250725540370525851815545447527735562314639904270542029871885055710906813951855256669763735830405137709806911747780039452492142778810283168020304357307335737848462153300026086198039348095410775713096910639798694780906314771198492554837571413503269962029591806365734659499584354481552127961019559191894678448032167603909094182593726654661224993512054313016341603745131261512151777920292223929747911228032780053947375740443973299852622154929498559343089407627908217089059707205682715951143781869194948709186695085716164305440890542545425455536049084624942957822811056409014076206064109518214857647640609316660933027780980427532557350560203667401467481165923819209520243882048814374530576495131430033800458436422980902580491802306623213289181895920380926978884619813012140510107217827078826606818539679573728522053943680783099047491495540068493278197159805878726946154391961677897206747209809551857552927633724988013639431169040899868779643195201857707622296737489466425971994639608033025996418651448302429950187872807356929605166624987815731186428357725009632445658685348045358400593137656105262999610458445055082204318114146240015846532356634275382021848416399377120976524790323496375693437645730259811955422444560095941544550144821036908312746958896584900354763314174925545773440611124104579924811011456444512806481593030707440163364092188299859094645626273733109751831675816163260266962592225819479995745739225935476947125809202704264231815250571248061562442071600783726915896189758535906273664033005237350390583530626962385360286424931380642682205164072460299438424154398436234649818245349336473226635233654601617909985176785609193475044161433651052287105358327835971519717999224828092703604680627868607976801776419580846790029941211161895665612858830879378826292076932173262447590907896131190440631749000943145888209833638880284654161409712392586416758516195990464418367409544243749927975026051095878898548693678174972499143597562888120130070207683723985008690129713050266123250521585734166599332498273209112211241089305857622341565152814512696999366029646694753593487183786753870274262986888783779565530564766384155866992324847828857694340967248964975917721669529450252705881150956471281307697506798778974880298690025502873358550072540312664045159876048309649586699293776338625807594565184988588658180299817332748951442266715948618710191919704243245822432628521605254547644194230349327840338490224500731721159441269376005977636330281030126731817047173756688796895141608779562002468904169228859667251118148888769487022888935784739403092864307144657677615364753826242964783871345705918794969237779231918994761777030396046586987146899758250691210644077572160562580467569475612728220255927440357224744325512437610716781843441290037197815263918742851722275527206864895408863138715368138117628587517885198429528324776023009811746528943133579384471016301787035026093329844448437865777938756167231355611775721400666589874416720932225381560405000432289716433908817568754045745421683142410832855175345206828951270731526839558377057813478852703477553123147180174468138846102796000971265164058411862879646781988846516969929468247691620520626642817095602939352417540324994403010889152297570595286725391222768608832224526753796738509495385141318477673805021789041026772156489597686577645604906476962367377994736857712862314615292620489417878037744134116691578979074799366297256797472518031062052138138079070461024408707317359715777117094005266375555968664403985576949541298443635739398995520580038229565564250811308591295121086306312636374608289852909531774629915879799619107711761084457671903734024551499469076883127250476020374955773478303434004663728425035145206755480888292424100621243821289788438152226703176473735532378521329127087875622539565009707737847018234129552149292977583159204030603208337742769158856833648344404978416007137008023604118745430191429982140072366032184132783061808324695426789980177606270944862482779267948459455764160381888519548447861838065051580178862420521262392245037167475413509819410312394971010464210517954222310386629110167152205320533461198646407163580979447056441103474171640764565187849970925921854464087599188380533628563028280161601820939630502495478316634963996031728653277184865780900418066631077278427651458127946553114452153740465284468441102984389508855103145553913422817056441256704671211540378079748170846751105530328673698775503913139873562048373419162910324893919193220543853316331033504308099202264910317297639348902279761328069085578023704765107635799886874999981258983286047867074347461226559308955436038874976881349737261049013152048260074197004668589516170299222544906967976262752523361892160909829273154185856088907478305399889560967575432723438700367117801565894596025442519466513600825914880739985809959743048161975853329562756457588613267544964358454997104045500087660630396396830669814701513906821072522384086105837813999017834800170384554289677176514448215379305491908766204959666344221845707814426131683409379789682811943488945806786797139383886571868482072334669321356226984743157333943431991720698521465842087720832555831260482401523821511059819924277776205784660860701851124456401099993078796784528050238122234691682993347500930988678256457651676504447169667304567085710517772201373341592434017577120658029205511629534548624248886674823340923395264955477736098357289105331521108233273317724642467842521630915623125610664176350769036743881874983277425805232021349777353753536485554709935757439130607193888807586151412417602450258612646194281072523008809311432227731357631045268851060597656637110583119984045423481869627599379997999290666977601833199444254078505690701198116185256776368233696162330026325255598385480365329072953831736638399848904262794578577562313080926870418736779170229927548441646523036264920544554738752255907187497097937449434539940321198013326943448023204185246245561237419097614840459765489214034096842822379314148471353925146008791679504567059117334849883514176455764466087930509588653913721425513225178326108323758881594409565558952466117311019240837783206153638994249894188117472789670847359072688569884636035255530192336015816491188055667383585964269227961671948348120788972223352177431452160319708388231396965620891325852658105298364907714241828472306256554939170213736409715990308328289492612283464921734132890896531782762803114480520581142662135414023065838252422729047332795114001557089312492574764305930951645550790957435459092958624205435737538941763130275959820245417831535962742311870771959457408121808540585193718571079169636256087886941422924540954817079812981931985897935921054361755621698004792857446693393180456536557106008052862963554225433179384086660438033874426666485486126539425110932415462020419547651182044855119485068884502879609487071874550180636694574849649801171281339249163874641956589113620721227217152998236335312624022244820747664538864868906426336462899363418881624061921376003804483158044164538828107802686410167096447711033513404981712704026008872397626372571327818028348309473348510625909989954818115685873580871546555496190184067487699991706063893452556766753348354452777389810718896669480257774877098434043387140200824361983008194528495125421970537243701764212046122514820396467790818739626945179808721373794189060225378055765874345387221485728894149021586295311461320151574998511193317631398945900573130970616883689038844462399910576697100683370403048623558363531889777850717452156076451700116103607480325416178402988895938301548815186148346835077498547411169849037678391862845388835172650914901500872134622835933172274255766580172994829163109978328333978088627328369808236717454232885790433940426840672933572554116424974288562126574086832474916120811035566799693423815601162947036104275138105914904694030928049380649282983685849547616292045607406071190836332017959226656535568722149622132238131827806613159644883744488092977048947628685097726196952302504011359336105549614729930091242140700670354847918137331214214962904798735591489812846154363639839285442614198710533250909810107423246441289078002664006468688337424847578000823496178247140654149197629128882422625194379703911451324941502765012257755872837685802954980152754495301084651013849595920506061099303132922327000728447568179033245533383214044504723528272110164946968383683203185767019689108552252091778224660307530494487412411597226948256314542654091757009087998118157868031241125839870367842646622419733353120703856229370708036924539273088027958749067855014539209809919267210935544585458059804401692294147912328826255478131042677542382943402791110263680311848505459102260668222502679099061292201486101258571899508925990564963100427741000489837282396734468488426519169350456328049063683653445345000656573356712620511453693337164158875439139148787649309115017391422188840732322938992077553705002504848353598268954317688574857969693041707560046081957608460588157440975018992201347120357692630459245127634457906156315557649809903880843649503785187566865411507213984503020481347175918769913566917794231839966038204748019290669691346765075416422973990596578205074374909342760477518253981788478534152290739096477062696819547220254912393065789845439664013598606384586706170161186408036544567193136714007868252842618855942417149627923771045018809671449017580964516413742213692723031911248394020970667429594100680882685711459201856606323600530407696087758703411069920556825837247467408122594509931267114275620460131619527648762261334752520199565526565287724617434070325292007108211397360641908560201624363210339939545738018721309809009974640335205336741309594961619676992137726908149733140149798374130358390346811764093609086127519226150559788924826080748844054224857053228408996272974504074755776996996812950143301446547639865915132938795449901310478625697199239205334862895540568748491146344907881690140265086357006820919159299912176654174633276263223493841383301574640342131103492145095647340658068813154680518569048061680873135805255415102538617707867839020408396624764358582583889327454767262043533790464912354704187049495500704286276046430379637977725324335423495789821689765148165504078878426991789317565654701979388105304970520071893396600029873652792541272135350923985484681975217059251447793098964722529165381413245205000134394892502976113468472787844324666021165582242216290710159125054115065218665558266453462335543036326786264234259337651464871973876273296488889390341659311460060124912681197695243613360456893956017447119307965078398773663185954747408589592970187755303213853943774865995991263292318313101140517947751912574374888219865670263403359085234433742164233942624908176550708207755385249051269052555889589470519042979976489004904530197577713891525533044705576655685089802636889997388551296982381595815584420965413498235947168440381673441031280415338715907789411893353288120729585631545828581451365445465325238750663231802445736751833676284121996243912055140282666332803225503868873168404104076227031062440008491713735872188169214953168281179433539835110095711710822400949688631299912681228351134705330488848187765178959586160059698173911994110426708227773249191646741003603768224898750322457465356374442466784151861857980293813575947401806050032977070178521228512172791620354149902589610721105933732657661890291724096887886179945984388249878922902077259795445696313034460900903019870746934574887808741101725413023672145780961218602725753715928418300298202280105055175546801638144865295407534324516795363338518418258750718448148534453205682923193415959676045893856952303006485499257584215643661776223201061002295936976221243014648434277018067177144475540672248177674132866854151683460743651037702964558616516729327989979117989976797238132545452314976668869112238679184079613572849946740009518357459854067629909091063729300800869071227601588088320748205867225798144327142311301245782555511891871795422131265319461639285368502290420894471175139468584559979003998879451660187845852652515682238035242103717936487005874147307418766351557525016580835465781169354231085724586709045150643600500916109895228966280342967712596509685970529951068846497406063586553547454101385526431196180123648184101813889147206922558557221364879439504956336685560720350592189896424033291524588399030916362027351930146972924688925014949744853927391738725926286946912989006627515225900636874056903242109496349408756878635895710171361010586635654364779351922942182695920555003226444634121670825635229350656628501932518865575029853180721452613482871964495142533606552059927840719906276330995419381682921901453171244687423769770281853549039265845903972772244681902189038897130740768802995093550298695055645972264696181255764473286043236328809654627243017062395669800498158783460286556053561187263079158055147304846745355469036889472951471359326053153567346220416286508820936133112092881469821268336432790127476328485274620483088551538075404226880009169401886265089558596416368778293456074009417856691736787199613720527306731516279094670295095914284734562985129053827724889331502155132848544578202011951956576644172037937290237248850328415621655714334222935450340392128944336962355719582130501739904496017793210686574989443957727311823315956221852146102583831164971254138125583161386386272608146294587108700648912823520736929370903975317322116989271499797999707911749912233265837741852997687562395367029911285152293053340792100244825359774660402652944406006834367341309379342593334568639442331343870215724198510150442546608611394438369690923352077764399665305857181117600420660769446418533608549008504068095465289870661307367481136183353831950559323118919026518259131377657224894022758949742150263129646381796932193386935642960877353382166678307188090804073923366140610224771811051118297748840297486658447726612894761561157596280367667945419994931133576165171905159420017026268021307267198405806035218422930005426377586585984018567305320142795371188654388908486796133555125248876403251614952971252842405963798056798341747704300801339780561342492439361607750494858059342981189305972322987727278827430855600508450117655931909143432058820176755110064269922232685545720875186713434924411212288516058185027900412394477076761914312582960052078046248330440426519278280889542070344137925778269304151414905713159333600262634556440766098786277712881696866849599587190769255063006830987409894946178018490039354969048031279950123598009907226153930257304092570037076992044719980913212584252425825410082257777770959166104109485041323090832237335343976480162450884726602806133289690895583809090842853517051148161642873318416160504386123793757849638417145794560377201276363851520592197708701988741637616525885560357809224392918790006454209821099888322458400755394943622372317167815407975617178619648164033694969368059500107507703975555613638707846633780411987528521795875370758214181365311411748678259172212563923637054817340443062084913699258457699078784184001746157772083224525263135471692204383220764610895902078876397946401520608989808972434824271070448732676174511036517608485550061048502224636168791588410487140518455641858723347772633435360110814439996091171356336357135467107210458235852177093725810914254912070184458261713751285884884535241935714066957040606237837142032955329073715218398029774099556230078905424592739719830737051322984750992890309999403329273735710587447494583198649898631800291645318503806900306671217534935118947223377624043157813868444874866188358304508736051194882977688518204207293895461010195930734667146184703084289034010285357448328940075964697762833476265521882207944324697014517343838245113201924961348273663692610559991554449292312329268063196931654908424144039616773393952729859800374075434450340571125059771897332550303502441743256421930250206961608736748909291475256489977063488134085117778688007802586327747488173107757950869557859564597845185656110935248316205900642807543943998460344411382272120826254308150917728338532606936765050543500444007709518818151528584028020359935784404919819035502571286232540298110478603817731895809214338615479451385834795245438679801169830475490270097786728894422217603993836756428730730441347911806585842433840873800494696461411984771955632690060826024352416192510529030435831996918641989222053490636147345554689636164748969067195141981248010231371515140014212903636928886623299367930268109295348107028709499447785434656495775136020085468729375532047950834080393446478531513817939914203006903891916781506445591421903211751270609414076264792595614054611450777321778394542546340926092582344245511298434632848587004849774597748164009961243329789656683167485781288550295328589004328594104569805665318277963260455221966917555899663611510691014229283833990431268545909090960175883663494344652762613083247858588140045681344073321562314170326393123280436271232582676634446214523891519340784783308535672395750346217809786656944720723953143545388837187139522995473116005698303005350399605602920004780531044423158168039778599950761633429198981024384983454616278428577520419903204727785939004262442947047181425692538898342817372441082812773054606986778512837215375820052715654777342481610912434575981025050213939572029897048315190128716434265321376043990901040065231151117143918251146470667879818743580578052113903655592370491198416979532395969186293423638956616612815553494939340598451320805416727038001618498421022431741735471138553153414508625501095523471053013893791123542908460394175418542244707663351067855917155705816608914847380360170450393439666716071789111405781229125560881780533788940090246537593931895121917497272308524941569001472120780208430499320319425661067265125712177552581855074482065052033591450339225495434460632059298452566951492741160277816193456900197365006102398557438231519089843920778240032495781785748668316602897952671055150078019126629816663334635028094030071270498955412228289205452468036702129918998587238752465152268391116150186718422525087619748211703552398721205821704533350376340329287704167637932552803766811536260820374267369007860887404854591372630297612638061763788504614847575183604690847636540844958600819479723664860968109924527364111048753615165870258252745891053965287090763525766607339250086697684221991628041707097921388206982706618730571193930836149599372403000895442734997726076360212862375402750800334775110763097211969277919196084358766355053877918366380766696591227924058423598476179734304552386268780642492994469932482463756119440330146450845782839318508542514010551290361565024076280123594840495492796127953510827141144154084522176971627251801682652198066479946261171415719200764267750173050164797529924817585352970422332468133584830429657007088298013821571631800201043715023087086209111452649757565121391242558038788140499613267488903260142625165431237989612231680195327572389521170637335095811113822101350242604873138784440726454368148551087592369938996118627774427616498303461510550541653499427451823732415209819469794674220995347826133126161175852050808117608248589250285226250417703813413767884990029374726092170241074884073967980090501412851999001673848885030630944926677404918913063402075806154720282884161311766374633501686564049750716884363923109009436453752646347024660586272227575514813541331446844473634840064669275663953819345381657845536806860317894004673757861833461803489192862255760658744626376064107817505999022526780818543197312955656325306806619829298440835569606713298909195411428396212538705594257927664932983147004199241675494237845755224999655842510583836529138716125815935263379858085930132878290227147167418455121380590830273614885910056165126689687883715782194561044226576582388811117622292007981171269755144066707503806355503667595651971947526116305603417241420612300104041718655436338669370987109362235771748865042995549347620067695529241922902702935260611812932122567496167007236291407376240350812631035703036425550203709709407955124616123990391312149951637176505128551989936901226460360600528941457968228153715905343981363642599512858960628665199248137387796030188066464021819979075911147117400318720354478739656043258746125531801877272025429151995717147411799569006042264085921429504328191784635014299752075948499460233533944272524716509542250979602058727995178124543841449645626967428776318488306468317205437380134377033480844932524101810985411356237629153499749056413253152283670603479688878451423752554792125846339722556162734837746848688863354440195870829266915172274651031589743112333337747735840305251513652407952984099724917387251019132373120708103189890130346117306419754745157699621670853538761685781682385591855732882341037214224803490341463753925396007162710828652073592137956845533432470499392819062907804932788052447456581221070005205975123059478162287267964754208677533601992780200544294413131123830092428717256270080325062322482675620837369051883056225491774771090084711587662760058408726149688258887534750147286232518156426873030802589405853090221049998234946466015433809477397585732293498877914452266963610946465873180379386372177914309704792141273061397711630618194020077963388844820300457729999788988985987660945356626601270819780232413556446732837921569124929358804440637544688472259294412923510355743657736995685667246843227847965342452575454087399401267577107825676051908382599907649401207097117083211166094834036022364801129067575485624041831519773548759601213413458844284588879466919742651910750119060871359218836347355528554581528250604347395905482599736339871989663425254467462717163514095190088156739662612575562731299558310555446949874250797260192567099958479821939147499722212579945669601809083345104604663629624770106872411828765427800628714441792158161222184663153383376824354928762109460534968890333474775714840235701227820849625409044140113808551123584284805236396529051034545695155214801832740495297595801549146622263694293467417201681505087796797448910487910018246091568797837708426830865255532032454382753790040317397667623661272451046448797213662922964549198335673269046447730457520409810892219105141800058395997740588136562286358120799918516381810851888688823936957197212106662309638546862375614517411935463475690203764396605832494395590661525659743235782012659573703792759598357220730698721151426339075861916226918790345191390042774551077155074187824922854261523619121040399286403032050040584153822772461334765558257062849516641558302763645928732753450876639656698084152457981582203915637664185845601182866825146001420148843325637407607106679169668190306800680254098372933027007224821458800475056341055394331607161227465828422866547321223486013089333343291995318952804957075985619559619174836930928722064584165382376419064470473618103332598860783151967623426577797661906863619682805896438898125498482947715832181271429816659420753332752010443375949990582938604373326670804781026219094138617657667359213774422245138826847312521743496011180248747923284648569373746959534986449597266046355871616158360012717602017711296197010929878175067683385101436942223265019346736419864883424589492203259423473869626830505430291437786453303674913344267766034500845595915533940919340911518888154064725423685257751007926381520380244698788032961525211406530901770433274997711906988678409150042029906595871287913549415136572612424826845358099394145465937341690776283889140398488514287143357750824761277303207293334179357283625438284831884010888093744218253093266846166183481685850489838225629509332775487332141991622692563147980070006603672515505732712376234833474688850835556391107026418120104277193881926437407997038853183892109609759053064727035819750213225023945641957354366277992070887478880624575573097854524905764536739302840763302374085435072572866601810401715707427516493084254238964796785158051427357914321231138449853049052798888470333874647589856254849813268930481915965901794763387004186894630161567950777096677511203185227234072581955681068947652337189271701066872852664137423380098948330187334726375064175005788317838892192753710622342071871665688289552778709307688875139592598971449510131474924990370857970482967792669611994814986553712370507152775576840337929084326313873366721920019876293967911234447050318441975948563682608775772236333286587723835059284588161365723904686894020667196576722069669640082339999064978081528471915664704731904907647981973340266380957583986225905854416223136925374522176226983197318294942838857531186163031124947040347548234106335544367792848845227872113368724063187052148740620562766119195749957287672800401826696068538219090679934267100840382596281475213981802647587842827015032334468410686781795466873954677046302817540698838844754336965790800299643514308159646221394217676675919469698537117759576160633821458459477233078921641636304162890221694435441795486975340548144793515749842548033011623702852327460822985154981156522203212650292438475876567693846657803831514388673566474879714599397758907443762607176149309650242058257259356732972031703340610955978995816875247475417812323576299240354981224239971761085221808523240585738600290095797604514864831760727763483058531470268002558555986970329626108044164260209742350737374813493595650379674125299854106803290527423449476091602330922918562105508062217727563468238377299544242725467764200936060041027617580243765557508341638958773259383520244843191369909901598608054989326645485078365393779754660067397386044167804759505723305854363155204728139548809068553475719706440665581025146280219840486179131904886096771503010699650545828940234831698938532072328233131698083322417183550147984420804406079371982466104721767422899653967417259600095334526054790071388048858412271649886992536400448961659902573155388475946742230477657898081018399222215589155527008519387726495757532928112766248461426051821705145646108788166436367389425355402986231269230185496935680789876419264680957764896976171428367840056001478853026997216925205490774331489662561620856556683395019065990984658999329324558193355616395097247516392473256582289110639409801374995891705277852981940418886782697085593568119678205979803868951964909397254046778487332782415702686381012925125491562885860311240207242973485533372676808569110404054317435485321176865390318638410894786231429424480043053356133909837436469916928621510752284270520837773360181022566487814495057940810570684857283191210813548407369942956170192965445399422585005931089614844479055358872589800669345055920001987736228776367534169746652261609649641777196380093430940757896620944790385460558081876025836961965368712085857373121263983898786666449880110477490596242383467324177766174429513372646776531745229810378895331889572886217756254565548324596590973973408684218941083414196737942176966419149237606948463016460147416315441362690009950816479903316074069999780045086705421177114705560173364131550614650126574462121016461233640363814179862922799992063702573204843678685596310343642587699335213930785918323223411391881727499006788975384675282636496970284700115267421989486279966018363159387614898566011689161293241434186413042652403322347102627657543356747165936752360892551141333988299376574570790773598054294429644055659624468031872018261148453382153357518824894983317418832885165330142995544882988032147732520026518220923302997570552759448819337231059145013782261081252679607188780923281329993034968169001410193818793393689816895833691987655844174160608018255893035295757098984211540928471062327372604215865127151727148988145472419184725178316676237462185952610221662065818988561847157112519002005736635968434938325141565959344597790788464609354730704039760787586486124678399162118828702116416310436088015058194640857520413695954787621337182809140895891953319781110914398649656722719675885574244195277062761998663354282794432886111403490387782647225360226977690887155181916736763227659013822448724839336202626928488319805525970589554050872654751285967897240660186487808130405285189530374751560924475424742580603611612751348659082166199744995772339492274912929778945455444599810398538550019098202140651252954937395105424600769550440009944657732962714931534954577852568624939726547616931895524535654717354866691013504015877022705437491721991289242001713366226307556257483117338646731082955909605843661360837379693742006020421283271050656663593446982569014927398546319065842795586880869368868432869115617812860425856739368028910666327741430285469165328857527424035388992477817843328748440709003271655924202880114605769661199553389508763773027504858405297722572513033732033447956691605313086260053336163348396501465986755703688931776670844818534825910836423816202367753190071535324524504772479241246560782480759535647619318106515213431263681112267318782437489343952908708833904961838753735052020324013749540328911481315801042111520139211965813909308518950118552216764054149176281579572291241406708786467774453508657315209669044806853581734991699700515743519430910136819549574150266357395802235573175497503921917720991899382540508426524346831341746225963641187027822729812691331321259480299069602080208388310791247078725496459850884342712889916511715843992658720720550995373047551457244309367890628751286151491105428686108788291212215029250529655968707253963776321125964124098258294653966025421628520619979922664871122232304996050145102582039761137483687364901656170084268872822044288166405073029253137712711591466893472797659510822268167943553181732564828277294047013870291248954809677599966474526055042329422635979622894836561395563008201181304632966735278750652209468630793915384152593482279720083088272974607416008467252066068660833317928876223876974961347977085795298307260324978468586901765035673524570967172847809561173101045458445375275495877627868558229908908050643673809213158625374175652326876348759742751922390932058262514249564692824941546735609338310738069577353888243181234881577391310900921445921888503346660303096534947424303822329752344065515671399698477572599961653179521935444724651097897417783185367062268330186188413383731033414011941355465549349737913512235721321028144928228325079190717382292776535994341190232814423569781887247019552729660292805845129140341861785987283753295807464636639980453325043200925169399279169902304822928921898322058184698320376156015143359999135676227419032335249525849401948079007099265028052096301846700805018201285888808349544241596831543061775872714459343984850549412576248896828020218789414077493262636867629279299967122793886137713102163410574767409789796439716376726791754654188559614955299481346040607676182671565099665307048726453234948174504749410777420293889869197613205711574118309916487021154648752091770248232821762249681696722659722629787020976027500037636715145417058934740072097492138527775264781552462873066298000627617614084866245879145979695333799933885470484144840832310887883727120909435797181850207089088940144170800630137764115096066487226562628736200932631006442287250904357780807129339611828427777415271460284489810275800674259909531797031656734993288483362778204969042264250594199009908147477116132090537440855150533626752704454441632984596517939370685104002815963707321718219948977704281668026180234766866279257210558235220162162239453358590447128087734053972092091051995378102425386379019955283905653179852374429503605577300403902840998928891070404720450262480997921884050200584614587192823727738158033616125857168103200187963241046059837024827980963663288220657808571372669970870608787212409793836511307622150167286288812298257361065123708762110128182669611714262567512507749590115172536532878648395080671431311584604254119813190271911513475953841358768716635022649297260179707141018792075114442374047321606273410844963248023737649787236448072073425977208182198701102086400523801459116882877010744225122682833944528838261539166033796282635957238500427802478388504422598457674156750316774403312812435214665754698023657478874654389621906167357058316618870631896267582956817192584386719184406583164691353193178444988403161737297028298674603793092376991627345767247525311801240866866412843813266665811067835208651192600908931057767895607671390377452315337220025068486530809045895572183362608091049593142265623305864706555568292582147840774425612647836428968242090053402726236178251073617409765905271809104036146851230248119659969297452498167674377526363382134608619563559342344708786609199316240241351954446743495934050389092721067256326869142739894837920666317947812179593436231703917267353393243102495963362268699603847168108103272092455148111917387390482102656966894321140551639178885955170769163457531332408865483993410056896565595779177411920997936971046491689340994807166103887631134758895490347931119846231597476988632427954962955785834848211309738886436407039992359475311489133891197533227526934959686344178813034971711718298458162288478200534295556242965367242316957328482564079332200049906908603795892493691821192833468673409106717436286820199961331666077192106587001082248493234249246778177949575603779797604985089318852238107620740033443062448225785596474292068582261956841528918871849539795579723637719558969963326651047505346018030618074181642462428509183331536823218591464809157352738655755457681019376962354682641835575635583342187358689203746718358346382910093682409357226769476293186024263310078451770030445047375957466956653440788463922276074712804769988121921935459336021620760914627188679546192509104022525184594292049357800489909721620833510984144401969443474140387565533421735966861679505678294811187153293329315701644615175971314611926853880958619129431412829326606603592374806283747487663669062693976347560646116543270886167815025026432664206433680841921825682775374351777286075216912926579986856579049279234402859520348881251341078529465817142563058473613422773968425156537206066378529686501177211126864311397956711494997414153741367577485000801532121417428657271971551434817090342170198288177797920374472736868788022535457945358080645243053369530784321950530543439930422262927218641113635059833186150140669521589328645238058994683055261063567833085982045185949459189547622584863677137945646296562270391594660212540587985561941687459898231671145260203024789996163882188920465301769815382228785158599479459980640386873107355781621521029119432909508188708295333467965138047115704009319002453283446911369044604467571480740737531719215893127882618671786697892945947181378416039628748881289604259752183909350195842273054650514187907564059152254933888330243269949201412279742965950773711818605023482251136850996517697319849398987963194971465351914088805840722158235298545189735487852580191945808083308825104671325495783240883349792792332737408419888675853626574691248049835458558075975963700425075785957708564069504187226186327208841502684804660324948378346292195655009395861935293685940618201800060715599026210769889127104141119999425993277880351374499593393609719367329253053928302917294683245331413061875325778725127411380129174970263879876712430601674432168046540154114783163812444397086962385957216565942971666246029473156981283201104172249352982598369968220383335633500373735251606513625349248963651828275582087883960961661664251871388029637980900669390757094050038989629505323160958976207996620115614634051172263610067560901774810241974685471626771497650828596738208991938188576056416652858397890793576246956127218039738148160411561846972383025347850975026047751305982023283002566156877124153238140541077922733129525113867588222656518982060450948764803727632266074208339586860357575603915380701528897896042430941524658887023478632646664042888670626126590307273348771281957849225917340891439992071051154156478000104762420836361985544467981366460607199731387955384263972887169332205801414084569001118584501016975684076803390998552901181033248675123574844583756772798394155172044644802826498368555176083954493005558652950863326684624498099183380917684230685422679642571601193143127422506614623006159238452714291146816143506900226155826768327302346876878673939968599315071869002587394858507730217628620954979842191220851285249342790114134759481497019829426300688646693001888195030890511583726421943162106812292497437091014257044422722958941358114079837426187350837207032064107530003330713884752555608795371489681568042679535629984438609481485408049934352308321156307220710324215412501876187893530727035433751641358483600457086423097095007588987651737460604033818594999339025050460299314756418046500686342699875821777099281174124289947894759116360665433211656863366077601129316909037590716151639621746916075018007309361646041604849612797284670380449701771805229965134743750525440402619937528858589743290173717699317459076619687233305334016901024013350466151609465271925409909904058120544169310913421542985872104945192023084501560581278522343786567719709322012817975727271819374775960696585771585386535674747640361763787670043012984797049190202796842344683053838234585316422653207752371025151809652788552978487526563814268872133808434036301496609334658750925669639224411002300005166355254760277377418909001755013658966411293276672413966631879041797981095031995558290157007464364736899677408703296261877627226607630235747246049811904420762104299811373122371330281002856027337192698833798464642580135436805238477429651659464222372295354230463187743501982628856625157218677071318202089810604205957314565606115337298822525175124337348342478037030089551962829166309258082472787226102904287012848962558991667983536612724231958439691025510879632713779858702351401623364394747432567106995988594114878339469902408584326873381428606107129283845816688903467842652167218447846195845448539737507640801147402591127119183914378755886258386093451712784403644368893761852638074383762367722040029748374247528681620275052936145114016353997390063465709631212625723144584328930624270759055875284321101082955279423405880623638186752502582533895376783722871223383798289950864434074546361838932575381660017017754755502089159443026193020539259402566643433270338602301632918649200384302724150683635291173819547426229956048298436207033984087213169087055173505857674729118870868399663148299636551407353539408531223083451762605767595064441087758331833816593494789960394764305209257797694922737171589012147135867297902009212926407252541395928625790546583160759497823533765646658115167211072272703795480694371842161644288521903843730172027041511274404535880069871713382402996566447143080748234405595179501269549457186375842918527897416542671394584716246462145873820449027646282764132438573933800914042121238386206387072928442959116676968285943493749524430409750934290033727540551459151869010951614299119333887766783062655480406643822042059954573905260364257469222287752185465227720691502321549260403074092368307974180936970589249499648731540234361606161784646988562642661170521085224965420750995880517453244195916845222580656267657327957832786846320134292140310562164700503224070813651033541564091118004254088735964337036199202394406688210524419371701794507204268050730342284823218534357663341030809530742935847947325077621525771013797102017479136043162179160955710969804794399111835156579737736304916194873552557249117731331924114804041731282236221465762294696594147169575308791451381101532885177301166695030807102251693961702032838621928852600251189670102924243729998921477521903340688479598971225662684760597796552648967266533171202323804091342105486312110318536812674992793278924550287819003761087762790782774907469179457097828870071720580976432647891795323167172401978845168531138211351389605626030341082835351002339240202387293890344116644943652016373551898347718726431516476382387865883361384491599250929579630529680108527406004414620149846806942151279448137316893090136521234663146771256422171775038946559688667634023335471314635840427653351525950084582427360423990501320361218931145652792511528586523447926554414541719138669174195555594646643971601869387578240321516371288035116970493802792663274672105126873603085656595041521821250937733414738097912727159821309346800339849334978220776358210196896888210954446444025472127203545389192379811778762782912689994810356418106214004039873258333894636470892035278320705580595210357056101879930679863048325902327562756329547914392434907903738344267980763658914470418237317000103194273911153447257731996300732275467442091084312164410267199627276452800746811447392799765309822315498296703099036210333011142149871933421173073132292864976157839238088465608846786176030275969213337062873790172980431754526258683583350921955391988703163085715363562602958957421774798362118168621255669230427798833069601080844833361608136473788905389695888745595882919375581192723926299290414252122660402694422841109002322443334846637436202171842258091379702093622709120163411937203548996656958883092294855441350496270739825381998982553673646047384942743497147343038612934799158729401170684307622726588585515132889668955848376707427276173957010011967588313537173665622141312673275632250140878295883285595291860391416366325630997501322585448499776059402149088367446429923442170984445040090867142409602825675271182853160859905596869229661429889684392049980923316890998633829519374463533415096410985369062296484361259013343886128088556553331367853673198039995865984319987819836051281894735319616449832123225564567175658360875215297878810592982605951909644630021472018702111751342735556188087802802257369480209327762555260613137801660269129025617105734115444215498036564732693065207051408493543855632627429711230104853388502571634809539946168794522417251010049102361743776143165653799108162592683222590323733696678130074296686470497843349352011754627159366005524071188673798776065501451090523452920618820584506723108395199639045562103073148166777357821129655105931416799914978172915981502782995174787622217976675669381042395475149438210691818943138048340807441534262541507190551414734542662031052401942586163402163537140890534877102957658523514275982525935744251911936211521221839880035192231304551006570516002340444515734717268776838330171461537079937863932329363575407283983002771883656364726557563197901345499300740769031294741183078512630890465182421484623055081258110772117812385922003329576385782130677770869109505907165912903093275066601080650308745786216963368200822558690126831080069255838625552458597011717916053707489729214708037279083970136813164949633499702077081605137909738547014361895067585865035790644419846927442948219829089006536343069249883953865624834297636314993733053582979047703023415855170973473705657186375636280460300586791963992497058923201342820181101108781313080041814935120721710792839884647539323186658921787720901235514694465623523076310671071615942548541058265563088670098901554953143859915303385113854430034514577701906683736843013720931100213639566681702784552620481175141154527737367369724852053829070748962403168416441971778703235904948738369466254924925158142337094675326601802726260251756906078220769459286476997298510081507864532833981566626314720231837519597673987642905162321555944176545840194261745707689379786206743332946483339500239909130306721213646454744095196810129884040099011092400633068415956818810788719583986566477476858194797739719141132571868677296079684938373463720706112063224692907329351320558243945543811202223828775044835316487432405688913173827752904309417324403794109548220539065937357417827859665699671192118782905032347546818213181624323488047347687394349765035348701801263091904379671100974028002500839967814612337624720194044295932444304246631627927658807172019692553288002798125031741905274026380775346190536352751277709756295458546766543651153889190078189048670585400284724366337394949750204455830806782901620337103379539341359363492728304880851753088172099644247317097145656027705118580041579763793708006146951762225653694241239889498105847132641987021071229314205248245268465528329598879609474854194882511109790359598580794630433062257394403123231315971027007793899858927230462598308067492080861046587300325499758823589519802960852810772396821469220057885828224909494604536438900985670332479979763778322158385856142498309072463708288099321804768562408358828742828431908135688799824619726153841566900645071356548150897191346383495587603559536695431576856146179754026058634108957081364519116038494116881833374326997387221827364673522934574629923639401982772172079241445852812270897733947811041780702857393941381972145412684474461436331449480746499072944414960852201886299476446767181261253199242471484605215771847692177207787014202006949788106552817097798033287144782665195075578293261916615907194169839207339846494885564681031275281822455829481027772704746033729416309517057961564925378589976171026560186963251347511297148931332177525892719648114606118240004500793098074941951861554907565721206337652907768313155502225564158630146798920038660316178459284612846378442275598400731509648974971815047849519588600470274072391582869529245719889758297513591309619438917961370277215557413094026900584922764349742965506687335781304818880820499373228566843493930217724232963957662694790901574593918843912234700399620952137196665320144059534310695184378594980615483242623972535518806324755548589444450856287033284886725957623571458383022425256952121209385752599243069691113553218513900359100567298886467744058512275950537693603557843349956969572876466012936765155171888387710895190975083580955617447178264558235738611621245574103139817541264145273536827870770982623065097630976931980144397525046479078906734341809409494772047494225369112755768438986376119142043024949252998180441651447792843842176158610654559019687452130186855344919927773564529492373229060425464959836981046212152609591887801032485513063705490457270652751083792138956353066035663907256419451249465647800680256849252360102307207059901609203772549417043598435824066352278313672005261946837966322534216211643287720893944606820063311216188788361376143743903150108476705133401684935699109610146549093303127691930478294602036884419548582844653269685145559635896409396594681487191223030210184574834357866246308956903722365181629066940225362454519505996969245517135889442288384261568238370914729970040170362038971094937987339474769415056486639844436563641616450159453542362217312745951650965732183497808913958789762897263536409472259020983966752057297736893185339694955617122491644735112154872173833941047961439305976753403158306259609496201030330522615373346380963367060753281504740383034809289687257527536498920871407186236075786048216078644247660428514685118157964379800943347256606322098847314105609578106090148442658592068615926982123510372516513746330792614674565694372308958029285788260975360702982888402763323514289140738359769986799507345562460661134711693277429273834525001411564700456477300137746505765286297251571895654681205493958425915012022456656445608171847949022957599995272990635401546137758068362500292912552737182020281549143227286309501660358639609255608843001505232303438885241484693575412592660429536632505296893214970511256237151751147266006348191160750993722717160173698085742281208124318695419925266037348549527186842413525207681075980029507452592988634682530082015411464483558645550289839549123574409254627254374494678471384718133973721171307078208607589805006505756420497557867378032734181061412219291683216143688484288244824256130360486865468586837889934662969889193512939898446076210515405713744251644449994058158992194771760263197779508473092773537271159143411151671709174358129382218322305282165187099268343144940518516397736747694038328840788074101624035470349709242966527129851349226584586666498313573332608639385455540254681745705670554881828831375101118686283331704733287689554081706077135720742961104387638216163305824176593777435481182496739655336724492114422636895687441598607745438958248664643052106107975687889358343065751543294757516198775350950034729781454247790869215034300065730694757756645488527211623345226043027237406572675157276308820242994410867771776305198866243375774129332437024236400963612123599817763985362312245366595080439008135378597015571973735749616865371753757074551538943574256374474102215367161860792533623871476443404873202671153384482772015488902487031487942115495904399830881179259349100130515378014128667119528327690244925152840143136073329686797239851668762255711525089888501850513487395445391384297461312523010241253143920072992087770983860348436476920266693349860113360691112067331805660005460795204630845793805237000424126417857520272716243060600656843602771648379357666706186996455214627975410076948053426442547973970443419553263868165322482893067585653879565539623907754804323395800571082465019408088731684459668231147687271049285667491239544262863166467554366890481981056917046958305052777990419544041230074773409660126125992414496969456629308915971346752212574083367731080103022205066746556952123178310941911478800212005167250171416038189050102841894258766031242185064153611083008397290392150996027610991288171563136367458112927493895321497663677083118443549135107617281037083898896265667701981747050702137033749180837371789702343072810327203449632351005122557615631740018921600513769920308224854281014600341185519347808946318247104173176479466111244368288330075287943889125729513177745091495709433764036346760469435547406182875867917540340096425793858391484583253245375234286756321305117529627007841326147769889378471525903074401755448881994098123760954990296519175516166503904800552501633304890941640417078184528931819327707603954035052347944700692237027477722333809663609313930532148799181783836558071905557619627642013937213702291266142615454602844145058557491182125500059846337011131483783003026908756672018413742442702696902079532192102480862584272891455619022371277120740254540565407361279734317441501030770143519281323034878985341652210761018005925951636576265243009303222013023105082630791930539572565484933363126287301385612234001648374907562719635877771080005527520242943632331756400643971807326724460829130995417593496925087091214868509955149344700918619290375479623471448142550319220577542281024439219405109110185729635364496084080369307459427807423727308925665729679056462088779849253711688404568850138790710284494822688393409211521045445165539888592638755884724965987392969689337917639319048487938271185917331193765860937915425767685052054794057221459262111785581157942456632453621464883368407850140098184967300899662657041121350697186362216096152889779245899493456696671890236972428870844925493018476055028331850112972012107773833540684143903480521101046596302960320905377737741247316503917522775302890081963524206048135689023329408391691799177497857734847375980176353696732960986358946359429150020958222899709566740372191107179531345169784519482836145441554411508665661096605014217582330078861663057574696534063167079063105398779868823177281280232227033067894684780121462251904549847374194749276177114842091960383659456018480183167825248079201721197815779205423144817981869995216287150550638808242598388361220134160402147782696252877235161831706313863605573885351888290084768718907752917056136032853021500752383364485555587819417243314930106055474621806647344410288743196269694925059639677514406560998354358903142348471581097006826802383975669866067190241702420589939599882300264337125088418772932890169925901790098928337819669943281322367299542868695981545098423735911097996297704555350900663511991494401215495325828589820799199211752412788061572841850750656507976470281083020670586650959040112664770048040593586516879289420303545871967058875920919221227804696941121438601212113697025698880426168221359569639593653339932137068142523231691169969342507307693647127651866999390534361068195636682593536377410272771504047471074836965771416790436029150284463957922754037371784626184213222350416328389109920897851962433229591304096155451851272176480871560858680617869556806317233019826805807438201475369886202864977165717174640218713279013688575928914207132095384913709557917165790883881672705944333938882132245645143898132932560521203273752338710760056605366071293019657211688396590332334423001296348357256633694309176234257710230667164587293685192978578774362733826214656327076536522956629167392290618463756946037158728878410441171303820690635220180343280128432157579717723434206622799323327635774215724684512555098763114781543473343658925407074620556279500522508031340588612953393338682065522348729601058784951461248907744832081984393415482648585962125620150704090423325360099698807967700581145024805278292020626423833083420677925112588565645641820565964336747696359691340483229828423602257291289886995107170952466632573960148604074908807360323348934962856466489784450212934937912205894143047350155683940438550796989511519988639565871389231685105605485873913698634930012521753448478988091698242389900480834930382328292707692746614132126385421126957477218716951619515629429935734767772021766799587569226575367311410833010669530261767122084514194024616834215743213455641242265123356625060597059868301617670230793776488971661406793805978244647111194587242148354502278218170409439734056723468724026988074129435937683212324553344908187777246322779324691935615246426963324286043877213867423177612516809855651682516265057900700292652082763192948265508079010473916215374016990772632667196754873689558233540411844632759085701170591884024447702172403520030042725811214900171553858935612671100780475080943697482342874474326059436994517946108718845865487761426871493037022388538828096609093336325882982076659771960174428737821072825472340595552972265135461841718800221310775860834884672847636768204429562341618024593529786088553328110268126243954614373589916301669083203720226306448230337283578567284491150872817014076660227635476841835564606072175142663751815628099876904783849440916352068106261892986511909932169881136559767490982776767706668229367686283226951951478208183936107357080370345631998662489409552355904018972937177721603417402966240089184058834839571943209378172259972920315447195419642313996961067252516024866569011021639975465041889320872118915470869438078210452172474912439309486305571055962321214429739574217336321949916718465728777357250119413247218279915576971498955043488227253664761334530242707893336001438270947125408811379367033027266347363940739633572147556552004784933749486459001100315070163189699381754273497735050183051465360413345688004056742867579971070691039722230274263538686801445592599005726903653978991979572231540206694750136124850523984273654830895291779492808930516820172594311134870056398839463991491445863754985721284456485006443919035799684549419753450980735536062549719518084633013728597478418597331984120133202637577093203364852723397858275940905201864505444926446185385644961312302334908353004375823236420555075714271783611986867326633889668705141906244231873876575213926280923911185119623764519742224253199374441955231563010381821693660538171194816919759569830145815042865592111891383033180426430976301146104002932934714362958424149280731262972031220574470287259705336968597015500209142840153109852637853433588369236648942534059119763025934507089801164701927455769756621362211556120911414047479993280932926131887538807058031577775014014415637430646262184943656282362200358134922409717059248869935489841786766579824855211304451239983290018999610159312441134251516847893175180920074405495128625589737111173439972687050432181423576583645683392194981744383654624070075374330667749598942038759520761161524154535300497469772603781369042583027284903718809946781520966811914393785938841361500073529919703199318523962585717542890118461851046772503762934007553321503741164484157936466877392041884828158305889609160616243078356084391843705727361809305620681576497340883703635294082561172777070184992889054241535194036703144876092008078461619069842556538090062216300832652131850676143311005477485475555276336393179603754435042934390391424400197128831350577053987828075812547789269150469106898045045802575653269693433356328919802223027150513985390220387932784685497042661331673960931319190896589462474979768538230743374711552799698047270499920101389586132968946561833919252823226285898230598440425128706536963718929382926317616824546342869449948358951853874823279134871184795869189514252597429856220897301037899929301994484508302939024448180996492345058076531692881974775685094295292184111328749347501356540543011947314626317722533724476801804945037367893729791130065710752865504382203895741257115452154846434494711556983774827667686656611779877024444586458527409181736721942949229176312227031626309552157204312730130547135057479274318268463725975032677468535330440546731629133144698635563264782756158568963030279456704524281448383663724820251665274172061464976242039036868718349430705121284775591475309761894651003639957069057286776682663130388916354402437901452476870216177277567758554410409021992336779301157478431519928904812550868065014287039939458440504160345613848425014950196175847878616016680581591020743154350273190871411655672912172114558011291429497109448453279324836997199622869631914151263189384414094083994456745523891658876871254576924913028987567648111445000683734764176095450089230952661958940038581060371769562622514959487185713110632877608524551907218851060628265892155458540049217200752371730284109332793386658334449376104056011480699845732251444984629798957840455645769145195551690275618157276540085089796460984813918595486282873194134141051790560170485502434749208375070923048021389505026129899222304179262466821017832961973983505405409735543923788907702284348177818791336025625560742871220645664955710733218649616707090069468759330233067973751756156055185906868737507368518846260593424919391973446211584271958299885578901110754861367369021572052534415847954332140616187036581442157512112780312102387354783910643768936342463610507964566931883443547212222900723040805637133150316461552189523580258855995665379446990031576431265488245935103366440127143207186300190465800274571265396158886636816730265755141694534023555252055647861588588795128425933372997205677273235682937198435470391342206812437515703228588796239205613106690175820203717515658774553255462731459924456965399913645244631536702306461899922994695463481396891910481152041773172681184810074405348921775520507822053427788191207543952081683370278350989072761763663922563553890840094991062864503768434365127844866648926028028740116464455455511809932780841678163750499612104047343714181161841359718094045125027556766480959380498929954751091168999047113154332488662320665076958492622869305781830755244123473467376682698569401045853103731469099544504993571110474879287778491080532381970786586012215753391601627612477107843555853554107538849569943441638474384371109506173483790132716953495475486714043247210838927483745481497543963416902153974133785993671962077818294728286505859670669636774147308864499455995869881450478393615574534469623345050665559056652980561569739767886451818086474604683660224754865706949924039172742475504818825109660266469664657604854482952813921460510987970050971017653576865801472365400807090410707646409531231241662376707315767977946618374275226135682278971406494371787515350028363063924976213640628608886761204631948567676451539500461448429079631959152828279319201986099572856157991741966933437887695390187302343475871295994152954806451462622947724699561322268912795030567923188008282893438469939439132517031245824843562320640849574660342088374022380536340681674344035959436938190860491561318876101846781910643901511948851472481865760574058963724041118778062869276234954476983695290627502880400536402183542514136047684141595054016935091886499272062832069615575448969732586721558788043185848158984130413100921856090092999501591130072268502110263682552923112438623143786549876544032547977481462031493136508143751179557633860342959511553326840263172048488627146289472832373650115378371183381439314362953984426573909326898580830626366095603640836239198451394771822710225893890171593192203157574605705513186602343432453781177199122711984511316719496806570716462795651784350111003610148521693188152392976260152202412391046376147087019050350056561770591202085633155321319619602140717223133443394608487401514561145383855485077494827417401888017703079585770353788511806024210682717886646335136972089943796860378896043869426835112890249054667049746406277100332432413808235020313265121548670967283844979689610859305094884571484270109248141525385981661241176907394642568762896690314983625874621549908689358360888351663069663438394455126245631335107953976636237315114770675428014188965520108516976502455798331193344970315832204982433843102184143512502518205994302487368481300122604380021205396190172466315253790612134032537684140716097321303292198941846846747651802764900694305282874781551906889562693386334419559361320709234187603949576767486590405480254654376150606008065028960454511581341628568572277066749067197590862879904339058642788366436805043195429186704350163621508432364507262395944883275994774062005537101929199800581556384244171651113143584158897512054921473372729941862338553199581254454149188342157159791945690216021643067803323094040078842252296128258342268857942037542104469147464793110434471750443899913617176089902778196346287303444063936160906040395308048529933925189747771652869813293697648730806238966723799994225126786316909043188497515732730417143036713044317531741480158717434261640311081435571571242967544380803997791254268518306351427695114411667325575592170648845999769497999695819043244636294019177291698344014641289011157245954749374853911290592316454300975812560204390110515108762192898691962814658016222265077187802031891149544900348620399024355885800943352283060392436376498890293778023164909185603544799543650106428331732164894978123249975390540799752853992881756419626644176007310772712719938546298673789267125416305765029446190730349885718565431418459472118521215493441508342197308732220667625971650822519729118168410011784119572050356263297689007569410406922928054644397540118000208593162128553410794817523158308027136435796502167463666489853804331322135314134944801308090457742093520845846750638896725401004537260987736718423095273662262080700628459578212348998299610467157828824874995598896425548803291584963157577546372695882589608744745844531220960102132298222892518482107508301697758789072522260323517392377292214505268165551206404176552205519179905178276968450619324353764367779524797451297071756338668925912311021980464346999424976939184059008545864855202056645871364298716308562975262651027144863045831936722020282302170711589184324035571470532264959046422218609819819978848694414713735007560262514355120651447126777799134207095183465466725694655002982377275867203338696124371135628818949375965355135771046699137851790259634021867930150242957364404165194003015785483954622615039111558719774005460888954602966533414707463078069987743516969051767379083924999360841137334454453211859147752765573754341400934916352084242638610038284497802126676657028335497593396463707739205136115179832561375492049623986560293632261464063327467670478010606739318164269917740235222199507538685340903700891270286492171833650181495975840889034627597462250835856629212901412130513220413564672069202170812211346681736536424971254600753114468487793154841652283449018223424618084024639912056661993762536729940003316793518657884042641965954649320673584832588690947288389930172874013379421535044820285515623721454027164425550057407016461886158699185521467975095290402835478392121145617597443385420232610588937643492720582978192318495204419754337375516076469891780916419477857372525849328225934690657791573379918620814459341249704819538370962826404632864956236913295489228848473830961621640866874050334641247035316152379171936446037559750975658998810777230968903016561258946707945409448318323223545731723595493543217548245244787337559522816252729581712904877812321486650200909937277498885923927739244102483890445124823573681760130308214866043995039335065116282479666245560422580236420164397808366769259890078116703904265782601854377178556898130145153083096806564992561387375243469235522046151675580720856455550974204387777162871211524809837389213461417175874704816170900037029795495063629155365949983943633868205249261052369616471685733446002668953238856182724588849490461619732329570616924141375620377613283206964043639925376184218165015817523679325906444280329877761575830381426767873800937493017449765988048687473012098760765210125856547064263393459150971492193211367692388276336188723439725099178642369877677899387758277247120272293130278582156162457710943459947521819971411968020837044408596865036801593914066518975298702540657807557408876558597121073806319869236113871562260783055251326531918325734338174131825071765114008562515389618742373551642444751256305543009641261827067897171803188287186596941625218298762458876658891277093384144804031274387169481211518953567458206615456805186573427136553617029493470921035353059928531031975967705459449138863716265996526806527079339902482811429918838339639845984742710892141685376842064503244559482624095981752847076508197329025944426249403241945111741158498221313238730951196677888173055250028754069934433305314653623919891277532602183975821512922148616049214073896348970567692977549384072995199893927661975893932410687273413599997459967292683779048122736406204018195015957082525831222223935057413588806790828301233949817252030394286010004798467821381940950147262113542762183605376838887413514708721144553821040349529710020819672586697002244545647715601797399205640914255149024090118302132605742059868826000653090159399198609419762343007676020872328176496613678772065008539889514124457810301963343892645757149564608675005725428472399558590689920643338514524605685236722205833472071290351330550834362796042008629955106382828769182156533492592374696568357293556317596007795377551777467884257470680542649734355905645406358223937228711488899748743341499752550209796701540511054417088337432819642034502027157966766121641477439765212348787656244147893951103336714472244311981986870377401063802680767777064018735670636476016822175047516125323206207562300330798070731989119009949573527224325389720881526905379678171992944168484013002822285595213470210939370024142183804096992662110392005529036276662997401157353942370891191322991809714673991735829351061757590802309809324865051363321180706690277069068029900356720572532432855012802458514150716573678346716938271079801275796174803192588598219480843740800136435739292855050810496585885113972592557873017172837887991632109368716401150850434332291221539466147977218695600541552453261550825106582067070730322994478573952198759980446866320443329567075774595627901649030757665590095902345223572096903744690082576264088938765307450401253072436124380351490140354666972833798947737845845224715270064559683443558630804089629183750566593156397384415170371785393994227363607347866759869668897780508134460414809515142018369713484106594301642128453895522465964573778531408811122716145776035988084223747957498593496170570767395611537054437723358515605270492953963666410481859223434934314098574725604703444477291455160115008782629632967719474230657370806444370308037074310789264124314994879026586798543116295883023733017319766263221690828297192543991959004323227794527204401497022370331612039208277432279359368679077614697212543176578655408029009506348997256468412772425645771770386837354038216343567011579461129989759491545911851362526074550418036911604031229323433307461061928232836436684914892237069664996594213578008269459729569211847399669661338277471448628657405957840671147601598749242308319285978553843816858897739209683162071390652230369486125191751354877442183899720334018293640367184171316536118266948995974886546433983091548993842631881164045195176363519902901923939437303303767218822383154855258486809973584434970931595540059686749960598088966458827248984361087959225699873472686162362077583850769922079309211118754030457099638089147869999944612771421423501980174401581259954939366820177043646770617791435486223322949345381954671993222260964724716388908098096909032676128685622023037902982870499456561972197707674797469004559141613331205416885987861754189338455731022943540894791962868710370650590810283936856865210004741203965057252466776954945386152610032951022312756304489705543431918127788951137039079436341154135007490326215908415495991354873036874026497717175968732852443093181263579363292462492615722508986552992200556919063679722409759640124743909946194224800255705334816536414220397399131323329981536133727597331211482367342455169585793884314103413726152336556588669669446169143992861703514499165769903288391586101988569479230398714347266296583155535597857455552857208021719598204136516963779327360582208874361250449011661999523841777888599628800231108796028080606026887160170422808243561869010496497398453171142741671378106033664533058969302276356996467734200940696383894011975246229837583571133384566816078687549581338415100961651921610146897842252940909599021405409718153146148035789269497102800741358846443817070681073039912237793856350172685444745370157301687939562502156831283095302946873480046966938034273652206329438561650401977481412502236903784423532429847927385898080781653670230649253314918620046504122130896501831855983267053280244839849047578360881852201497602054746284782536011791102152617754587052210249185121075825954873264279147702797734688535585249310458465525684721750764450450282833931406459193537743232798040141210930261464911451995018336316801854708519686896637363244690347827922101923461887477295984132743605563589006146483720437199005680185424781162862638763022798185692542398016461809610083297443461022053305515571930954394924839744326449738140601419165943885941552840714441902887336073138097070479339565030972383812647266413510058487586254886628808308300973882859233476389280741921726883420230360489856725211117844547631549904492475903103946823814024513345507661882594369780214772798872247820269240678015290096034596533444727464953938961074689651778019420117223562230728659817281971204874786174596168478191535609779326734429350415400199137931555862424438021833122439408375465792048098975693664622102776410421720326426999553890197010344609881120666874814728591531664816105296425730882231645092151876256906241941118736868754261274451954718026243126486642498479515669525486411182392155117452108030603150528177911766971188280518121354985218591699305580892162366583067211743684900709016690349309560504028703879572408702804720297389495859896757448891276194214926650118058959620502604012441994542766528822612246204838313869152580036720997803120605676808259636834894782164898983878243914529120614902027600743217524406200138476553108157453725641424406009704173162498999557133400493935329183855329295924306062415246110108785208459635641489011530635492873658600124147498566053557617825278735840014387859531263417971974365771746908260641421038318455143708357915389966671688053685893830627429838613241661921688144640012840273599173688476375419707095017765047929335825325450832991554197697210116445150737332207613719588403896319125994311767834185285554793130768250543019890380700326297451257995728534373868366887210528118222310963232514263548507586002399565154386657043649329305358706729976865288903877917918060493601853463808519146585930855207527764264580545065562619561101364033838296102240963576906142774423340922754340709590764120107682960669212135982408562741107191894959733073432861383975891674592492586756389239294809806977523458897644117757919846527811339452714481137884055314571901683340009080831193998135539996339812189358415129873529581393259248343300995890468564556266133070537933861232217411962593895690004200768153911826510589293321778824821696764679509003130294633496822804986814923626200695110115463359218045387559675275657221504224425080596707920986604838297773644176855378094116425820875172850826903322935282605188082613369619439349612898795641941128182550769013332102397688336969065217617985327139961787097805284680579013080009350220169553755867756113948493557716879544468856585350685619361133648190708576995098888266587754905230975184839409513166581801497165516299952489838678671486449652948286723372245722273460049611772551420197059152034397713057503981200011267241367737339334978864428537324471764928539209008650258857931462684721506633624956476343682589116523539063206983889379359498102436501688119923993840749914980723004124949101656583846819933356142581054209269003349281163447075562424037768288351943077861999181253881443771663994125004885936835980207423299516560433293274996574587875746116239827606663842696392264945514894637070402261958034606189056178803106184057889263751149827506569708958953140224651102885447559906454645564161044738494176981845429878000448208427159086440240611092939241265455233582235211702038331103816313459803024147207712428624302106591643488178608333226322357224829251257999848912997066775517594435444285029258153780021221052770065372463966264646798078757580548247717657663750724083909473105553593173413819286387217927590564661626836534883986767493241148947589450971851361451768143388724006469310433106281784104754489446492210794786488551907580179958926886859643653193870720117988164787168712487937973049351214868328256260905738833321818764892098480458962941106064011427686376232800216954890565303293945537633511840770941365656752226130603063934734374432638229703318383630209133860910641320943174291172012646994119913414120518699359282489815574550821867125545016063116771016026720375801317870160269865272551256697735669279984074216427965446499160329127660627187916975787667353963534774335245458526746286715979708050138501678375894776370928012595232872032456723438430650957191990988680481480650657079410927051132288436381951087307432613753693181531485676483636868129982033988357299086254985127817547318407676683113328777401365006499552981366688620377661309448230032458394773647384908329684127500694950578340079000298484792845270463408315200552126441273384301812702117830893470965285514601757669408765099177885612319473302466153006915121816691195829914015969381160082280267349099553367024264206491719770825774977451317453114070979476737827532781740869377232519178922293549617744019009168527687589336848161379589694077900700285229847493797904883315239415637378920187006769380010630268063200028223544065304089511121209106896247849803766260000391903173246439165713097194228252899079015022242226340289293570663700505063837892565511642686714268507974424934818788426497425836623448890012966975830440902358813102491373310832421339551447888069230064003239508527775669500976211715532856208329100120121843082698291258687133749703426337076226740730962991640863865303957659051800476911124531610156979613653662984122331109819968162706980330048252298077318517641938309446370372661402201054695080558859103248743016020849286965209975299857306837805130912347540340360051526545620339791931384613632670339203241228187346608938635230781402064326931951861430121320059818219490088774314089476099698402166920066718889158005465606954442219375746107914972710723057960359325425702067594255697140399091518701770427856386888642222248647009531085168932896992750391473310649689599951733199952630394459144081352767037176121664778737417464736374764172643600630901135616834474838275777841070468390768580068151867569280518683061769001188116645474001366791844523016214857443173211189520165128958321620469596455855418173517037029126786146684696333398662307684913156268767081525745614474471397400828890244612241226497509134706331140952238251498186751277690522807713293416763531468338146609695371184347929387942964509419174250563107492425267486579385996170937056880000467902925024328225809112521694908124393244693055617318178049735389708873812086291080941043532610910613764556117579375497222012696658370685150974224613423390135148369845560584283620116452021000663497048853755645520865103420557915438118039913247968037848211350840371251809306812023609182021034355643467053654518748570418240350886865260364654350253455387760561746992130863645540670064723233548697912306550414005855691220272747507331800492597336051091783508844783079862256988284596705651921977697700208357452633643903030953499957663321474549721665644716712338673695791086629520254707197579064959132851108889130724016934207700157907572289884680807607634375809952645398815342799733689177054798832426202600232398691165089740768011558140177979019946665069410403567064024049860754257118714922032407894651243243349972745760212156332510886341519061064397186828490518305214829433088441179471909824312234272080642645911398565143378139271638992805400977509137294261198196802268503795089328905781658331753947535101078542446923452898520764097890832925661728671382374115385186700456292254340622243896497259538677002229059420081390228409494284247552394834826718612810647711260331909555099541379471157227049500265666579899189152280225459726469862040046637837638393084560737328063485144202908641416052490614990982468302327602385453176290146922608568993805320096055611068157341125302247114379801238036922503553138387976867564457437251668444456267852821989555650956023872522786908801414458839519257515542037529705285953791819344371581045650996951063813872411305389580577230719578791014441927420585119743361883531406191724755604335503556728435068829345034907589351466164032039300473432708385130539544180497983426070363635688690156260596077150793436417354789379273987233429780963359226129703774061711671550948827719748987589479343080662318627497878676682754869462443547344449034483746838470622145681915003149138019831883316002873064127545950024889133120632420628797084059940225304486911045282346584011979196599576488925029391834093515297051928948637897369010402549455076842798700950172875557821052289665561640189960992785145087783549796279383369871933430233027701952001565080165905125866258609164795054667272695560363813882956932341894518846643131061385806707911800491165052581627131249737436508117273356581822899248111775996651128056682840724310328543047732481204452132120160728493145626410732631983039462661906468533878309521940382348006212500456251645967537168447860822229950374275807213359050000418579261287936870083034142306126212111950765942636998963683284108646968580218805645020343741271175540854788454640422957038921722911970564975608886084129939572421110106302910789036647508136209490472991523610759332210930399668150317881855494029616310450141183239727518525184353618439729011996316358582383496004706788070501938861898146627314715358169639119047167023201911324101863230530031712359816166763365815718543701213495281629039492091174807423849511650119542091972517324810758184813322391448955879181760781142685038611465664878385425467251702756522357910382534795456410706768736083288586627972933389083479059968455907571564259889870608293823566901778734652956124517863572953800964093928667284711520634988135981873481609394746821023491817880422986130158828250672058628818080260322834628176683183504028227514200994489489478620667261450482565896604363626080939999548665441701765410527799387588078187739032018140377743404287962210442619212837710557244289172450171936517722415155548756627101273734186257464657715294196000525703610435841144220964127275860330963035215813169026847337410203939810485153253447371607429225181600951814653274122299733519961320562109338095107420066180145234699936459531679115648357472512790323228774908598541385406173587143689861195244632359645658064637901058500825175252252712368178306630660476093773068991521263139881384199917409858775677174790683542111786414553888205712991825915628234613415278198425401824783560594599652907217304880099222712004896092612781077605831390208508472187375006212126876808892613271662521278803797301806616015195168880996511387281816891905124166763195119973933886422627623756554909392456118275713510043027215859572710392158315189522300367841004120381689806469487367415026737857556515997542912700915997208700046878361949163748551780024540418643601302637084042497426234768743932562370083617536037559922385947845074975371033473730600240407418607507013364044496307655596546047474932592889626235193883288700474790161177722246789851800987063210109831394797666999771575298721681740900102908036566308169290475512772851398326540299901026982567488061667217811389929377516565218329071740043020971889137143446470127348909329265523724002539681756652384318599617389331687741327435615239055801235239544906404936052961241526153082939055924260530203455176661500200675626627332445311170291230517810048612702846666122250230965856364175911899345714982303726016741915972936954314813336797189042840480973016560575868468770894865547228290009094110613015785355099192980566342208249416345558258340435408932429782891570795137972406941348884978213392352570346763916184225240080709880282162115912093760941562193407404320927525963065016795299467258339141780199114684603057253003883242550405237431983040649724177434289645427550828082946785874150863271819299267452139198440623922210855562883808462386887479862914907560801705416832271135616375793804330290020472424617636226789052029365311187504297428882775481232925461894618010512426777216920568770944349652285074605303564058766599658732805311568107234646772331152848554734241539507968413801154990148665996276286438465153183612079601380748382750063173578975005430678212286350910074376614154516081678580823433662213374671911033144321120099899799171071581515742429718385070368771650515947986389941228231287437156129594686065441164097516499526717205157825907826724092218487409563275627791287562779937213966171905184438244335175947687337732985683165049222101743598944708061006400596408263383151666128843826574314591382750341057640347675119093263376857354050206299618439351092387035611224866578621040863200732657189195355034485788074089271131193565963119146994220574454443473821588907695360068778254915697476303498411356776187003252902810439835696184365546583015103313641024237905768198907779760792326040430410114780405792816622099909672896185125465054662122138994986332165662759921595051529207358529415652034814467096414557532067505603794938636986458833392456923433749858172722230472321022774341203131782911633453049786255135974398121673599415249806310387791569635032778519395941638946400769254233697895056388687917218176224397809152190084048668271002741532653568682411632279745083234982813463329361720483176467899444808685493079142475541997433135698599262833570344270281987610037912358239319592692005675843860813025059842606679691472759755177527885114102619972501629296776905353001233144620457405974363279625235538590401113756292883760871836901002916448352585487139332154568153752834134682100656677718579426310893206156072101386706813673424549040405217273951150678245589209992148215329684826136112258358696244188858462652408370028686313345681442115508829853363954812814619957000930444755594811044991488489045556942511748404867707895650263206718823512265014080592211812358754693396007189311422206205741904788895234212396489813763774765912149761079528070088787084859807157771960560946192187645646343080202131244416326133974245329102962815251733098276043263655179710209775283034925134959261609235861756770839981147212728231643019963981224779813773976541134135229147127180652313627994095121029753132355668879766242118535602787279641108071385483306789475184197926766617373319069304350562059413701089774803550793083243990550513875396380786055576069175142784846597830891679975029576071439080033065740659295871553816343700698345635372489318818056840522592118837163126652238099180524140198866997307581364713478366687520962347515245436611581531522926277687915650167262494030876989308784482194001372445223739777600133726093448169712634590198523597869754314724710133937581053414427039051212356470348761542146742274733160753413437043314169871911410101889460279178555316948112275551096313929101603155268958121526578229278250855844419669017447370504136829981281533572583957713898558887845795689037784395370060627056190732501918973830311631717262696579468880723479927727617562963530270787406187407807602265840881549966577102089256556716249128768244476905140705143110295330798987762194884682485775543481477195386245726128417323732050907274509577277086199522384235379814654889030879101726405335610705371614953771776697055544234146195961040125163233600906645114603646197078654506693306673377202295416088000985965578937994152047058072757541846344675943545989346439679451658452198625789861077289411211580002156364164934529005706510182358323132249697198969430177657552200722651092809396683220122641162031359125917802628393764900204116849096195421672192872788826293663371091375647449857335262480768318647275728357273582970284340028536309515256019346601292768983764394344578969528493567308804537042916056149700774064633258879794152004976225128762386813854817683681818579538232173443687205974169997330444564728333826486075742431187791327044432284082105088454932893340773938413585136897099359144645456746725700042398362340937260203831114525837418720612795240325008633115066960717835382644398070375195226513068179947696903029776875321407475419470119721806659950181565254122537760706161754791884405712535197295464099498148509810164098737375310787812234643893204699597436762386811955396729087708535214329573705598743545123856450534111512215988923803043495587077685367762931952706264255574812904635260332516906013595432817435834560223226870570489542374710446305822002784724141725175871550112503419217258088799207223960201237102433276246375520452987820615923957251883062865305843866846233618440745280470804902429420991889731333251339913094232991526052273903355158724445995110393970511634417951988651870529243594235184495021135005014599226736226068615032972263562673140489649899709830316744193452050769335251840931951381746672385599222537564606125391652403205350996635613932437053329908951296281418527408839366148164450839341678784369053565835886877644503686761337458718552796152279013361630759273905185351737260312765587179976093307538411187304329822629167992797746354209039960078123436144263509509452323554739279032363393375225224346690025508450767673706990231364552348621575753351208115664928507544576322798143219308635402615524666717646592622095917719593730256845174352068806169049509108734035263945118498514607660521612974841429842387511260436951614705173559035733117809656942050448903913835169059327719195519856239974179364993528584665097390103089719080304228956804817534064639372142122365645737574927763858433310923648815870791657647746885953530784778380277097520273566425736082626454010916581761196412515330533581549587146421279950632201301016321365241995989993505381252030396773231612600808383407807205605266986636823050000228305282104875835374760824610376649290349907052531528044632331658455854342252796845136413102816561423942582105143022035700080389877804019586452432784698582665107076607853494853742544329356613772934774620082618156006435291426236941800108624448102762627980503666214290546876294144530350038963193723813982674836984042338181953782056960698733164134326248901663750892942356681334780166791079306750671925387119989247489527682152790061078601741861617393449290867335567058011874739862422019999531774843957252345291432417934241611420225924576476990802386160900264879514005956387211344198260033342655335955371131919618456056371253230128802996028502521076029065990146506396968121686369593104904201072917623473849213270468738225502715235692827053158384382714208896724529325980976306629928527032335391153873893186611673415321581671622430548295047852174403507911688336909860658909682063691749255481962934176759514914174303863534066213229234839908173888715286182005565311051649099592444011961359163774478760990633555119835827875735926004883585630130462518875496752952905798070339308678256683116194733077033806619059983786056335418176931588783561112588070627550785954383518419612601208850401200898437331015581187078298056040310410485444221570210199656757735452567256714665537913710221890654028560260262057542611718076972184536760368010021260897122004795400508235522095356205387329194037809526775309589013152274748690141431513445084516515982077081851905743231258657578279110574051365032360475662756767748667192104546280969231610559631879824964703355341860232251455587579713868804367182266202512455215377191162041807860309668050576237751582163694813412890321063645767517301285245119117143365729882174983473370361883399898676806968855137542939629306909765103226056589158421738359169355592262438292431898130013491905937746588649604855521972842059613902552425193914837262803306589293508181138021353307357365522713338882291378906384408857277906383951355175123323780417908269299670038556516022817304508120689041464593790784921011471829637416133989997807507957872611476209490775873798412673731728377998589350273891685467792266796090701807561335372495787914627143285312698738732083094428062539288339283898135183808309700628817209770625970650080495818364808999151221622793144978375005529743831508499088531950407615489823523020352035312941190978569566995952222673924464744269086261777778106810004287956629574055421271646005098065419273871379937370305001869614328730458718353470305011430828579245463739640672388408563590399830966751086399629261940321917943662078922670391117227503670034104639450135359715236352672856253936616987406250875737735846158580597239969957740073514946277809088037163387491346536866178668561966937777778608004369097295394768366018050848132818106951367676680824157495762759031678900422789572617730500959195542969306010298850564725856299619877560647083364050603463419058791473936596871713255348174635488024068216726171892796345905039019896403849292199440822128662978221682234580513440975487808926746955040046154252821038733512493916413332403115459424260450287822864058804665699504458353914525278413673975634597634461720567110820584275621020725029112994233775412721044160539950551248820066359883675234600529469720831351978287871471380568917591023289127273909407160172589895203003525771167486659778683300488717778267428987054063482937672913101856015185177478456214953043088134012603949882739276831915740034493631603088704406519259209324399993106228589879801844706759911188661836279300594416811808435361659529885751594084856003404444332346913755972574666390302213359842127510947508358511483077039399275252096508197209345917478154532185531997038482202824254921510459567138021447762857965873763247258226493933027598034330483468873740274874561091374300116589964497349229249212625015282269515974121995544279286335139128160876434875073276367748352601779621237250084162616714533219518951089531689451385130114269638227697179348880907275059994005093857283205379115786644261892552349154697416646565183563407495755165543551446625687995168095970785656214329108435142683661643526476692476235466903547278670767822341452131188081022887954702449939440710597397092906548343991248568271154509743534399060633602697510225534989885666307393666597157576860538925378665251122098069657380933494549587219534451945149891111534247029384768301251653943528855917024597584454364119785858060877529040267374334579210430345498934920524304917122340206345589567533127746937338828150945518782573111810592861926790797345426811100501274348971981480093223990147972810149544375426062778882925138082189780203044289499495569393532894829746272772207581787187269550656850145518473019818987478894428134031798886565448905068867114972436557509482143473173258579653536361293873232359238680503229275058466810317995902830915318763172912090569528215229546802090646930571908391443816948111690909120673143262212191441933353391201663823525305823371132995820136836620420077919384342621508159293042363745410736084209242137654854517065543217102033171874872534346334282072012241857014989400329137759774497646841791512049618672371739204162186948365230275540321689908339071159693614003434454295096699525174993795773231291675653382148620830621683405455111840835729014410432388065390029967199709196514138567722385691776494105848027622688782450332692994631405806945444853884144399756974616362716671435735922635232033498982127633663000645961376214209848441730211345645758818835464578394504038108224924717673207067883460965558561554979919555779190230071518184864726337376812694008223721350889059078136715388064755542333793058440174109680262340883811280317648205454209535447129975844590489496741160208867143892276088117351531071609628232667556802736221404616149434380530366646043098268165204230134262329396776685852678851788235843602418569922775355832520970966657740331458863675250282632102374297285561115293644499365350002687320622902762665820904664418882847003934428048621919881889290844844313361922395860293074402699174272642626584582876085714108330461211565188061024703620084385150766775097509975192327881197805589343012978299331993197320070047371296142295342705838396850065536458079281839360195185197185117608341550593771759046809820964502508823859231136324360094626360672524857448108201205861174312141239625639030875340887081028260063037024026863053387471451102770800974305257114867332236696200851892838327221983463608721240428399006111602731426207658833277090832423491151342915863483551181453012661877844333152548488031157466317122819377989133135410131899959380499446985326047515778112219679060257288938916538263336658463979547696802761555782629926000820929801376460713716451755242905277767966108628349756765792600528158742107236219079387120385077931775043877424767565070510110988003364530368307564448761381166916587651684987635152563940047839085572607472928467040732405895269212646592354324257480686064856860628783103402912358204748086814978702710867842371323379580267877111019504914385508772794096884795440646890877319338722719365769120032977983170088264620968575346880658680981071006294101879640405900201582969094070199965898541668399109546186024225651870370737994382950744416150386930626878725754747211734444763248948946383355201566446346328223801031817943774223263538368616273132876380795435101724337441746234819719113629663272357437855538036355065665906229138229158362973473253591788031864399144214236255429631727020482105793255757879839852058544608489355742538038955290092405319341762697183968096333550508959478360770183094188090953364082964289653405906976517358452155054377965188583450720724787112186089849599132332762412300394479105758388232778626728994001966309094416931050539033637998545770119033278581360116622462821602622698479071190898942290469697237599296978906093663267280717806033826440691296898728106638135656122656667916660914543782064483762586209718294901091510766093285232720811241591397994150207755797214453437641357371638647374074251804241298338899762321107685223721659942830107274979987783239145688990215755294041302048481344459424235533832023043849305927391364485699638520227380792322111381689207405407187537235128152128592925798152488945751534360273558177814329551772351998217721696423817169468560092238826780693173937758604038620502717138005741951580284530599935338409688236366023352452176192138552505961631105508843505751253113894527161796160634338756513494137485005390045098728887388884240489262442080728251632150848739764459026001942611559436600460220765110284930014561290851877930761585929499626605540094491776493173409678586461250289739327947965416521703566258662406542052347053165929270233475766294879592854901505992764198971547242837782185257275879102799935859472522488541322004626752507727625025194524186700469237044176514667026945429729833170548322526856789992774970621449830598584483905852627314296079783038300300600123539249065183209752860940903864018875561667808118929943484435756868279788659253023257928300990549135287412740227110760666413106009235731358408594828346056610150701160038913125941279250434089614757617840377584942725692610268884486963438674272226596487066441295827260529389749725916136910557602346895025930324491105655406211790240518678236904389362004267237578346918451958345500252364297241025618455182308503486962382394851427632992890363202448966936617050717069762857287520839078018167707662497349811630895417434040730356084030618245035599012778914515289008375223168176391947438265394262025995111483932355955203777855822477878483690237657067489812060906626640388250681074380953509575038542575850453524896561999248021386256921485332112077338751411924881890027007935121125670254502175752121133266378773871927206910634847311966332740931416063718624771765027943793619918028629512764667385265490771188806939225989254537818224388580818909357492063035827756104521353015776213085173696724930423872728754074787254116109391945276665478840830028343622734035278548147894311467138148855958436899795158381309365656732891007603743602385041244408762794745765422590311018826958114749514416541975457164483860011434068661076518029922081190104915520641093551831619990919721438489789465437749380653183541074115583087918586242709785706605054443063901739537670202873014848140800661754340460306284425649364890132795296104248003187979745055589950231520193776407051537710969990050007652527325009770547781763269728911251627679361494263695057559690725317608422332631307087971864872659202176449255806465052404499794784806668873473741091641196593823538941616560916769398755730610823696898830573866475085180999524650272337991368333429139126402894713188393257430980486158138153572134259015108975640310868638063094654914172050356523746748542236103950805288710996076420402580455256330355246012658585330933501488390253618542900678970413745927855607888422536760938513838467997183207027895935972020149003415382377600720618984864429432089856464253875498253640266360304829144929976714546261498357580975994052103291673208534276151704822694507239579755016838410482340698378250187161687065570655325119131965114371794741123925652539207005903873358076227209717312941313489215671892827635657278048733253053020447197452877160242930357742721370820363771929547419565176727627773117038057778207325133289771635965691951744425363890626497097172095255132852988233005518677761377475530907518320405040140913893740057757835004556521448468669378095942784969618783463144545142186211955176993347455432950946360975535211582000285589710443342964871140718468659248055507293872680276265883371689102752304743629200297576135083473593597138819552420905881384043227469478546934999944928143583300203275427630664022623207985375027763479533358900105995538450770986707612990956174201696404047331633390918677747453910544348040891194712616569433678005548688018396471687823467433924479159240319876426283627936864285205842478087370811583807090417345256931956930774177152737978920679948619974727910262604415887950727198651612562051691970403873246648140036484518427811842595717606585225108480821973892973780505497246111108856188162893254006064410815281678078032295771923920120162468933547928235002807715507069151311949543103976178595150826118577245050442854232218820573503457086781930395850452759557070032064591264960821864876824457803918446768845398321661325220426625611661792670988605486098173373764332397105427646376417196592805978894426984102097170973829120038687550245820097902413059979398874143372586875902187989520959478836279159083858678841473050749864009874168680686586826658517053363399266007938058632172611295864923940340973606825862606913646589511272447354469980836753881837222500325059686142446603762589718508012050721750274632278463288791252688037349335815278274499922530365081034188931483876507240872234556284620092616171291028117836306912509792007204834058562976286126462034754194715673043627468103627486387590574185600614269633273755401100061340054116379996104959240853059889227889839045954639703635291394931747858808980756876581238976937191424791657623675140640309569044620150940347428270759802414247840481048729208520459362207380141907151053247156048241895754935103674899197262234168976118861804325755081975657865084007824047322821305313977245872897094482101559852776649679545033710058344322017483279037260065551202037459592269914719469864185935434921085330348339787873685057374500761560909248369994000652943618189320175344176895051275312481857201367664429490110912335974609952115469593089273394260784561442919398932939981362888851105541205633531045784208808336151296127274982939645254085181053050061939418861000101298931783167820643012696210290765892096401349473189921783379585034828003492825806749737899387763562137499550374819188796864379307941352030215644584390792387072155663611141094622225204720301348636855278079656572445223550038667060095366837740527976441553019756074064768235825589322952446584993224631811836295207371439008576235905966460887452963549072344130869366620753638583978238991391736549103549358237457446131690726194452997783449584874016548619294636445719879831630015140871289564635741456533933208064618071515633657043072641517545130874397889854241607406231006272181875613109483130621536751326200420614584918726559891610051069352586604226650671511005783616690302348134946694374631642848455912734135913215830101795358324994784187519506675088756911060279828424449635773161239778394378447553182923805319087847255808320006628879555242297611696702339812860030504605431007515779733090719435786807311650280623906798822505493645064486573098519970164796899757136738971075767986274559079403038728218617909585888364397682139623057158124833529853199424564271956476978227069685437468328080018815422164488482166494991696313805567346386111533541932167510546071112759887830540907512421671897369168995123411827325046161764366325516497055149718404058451741251737554439492545415870118217134585270232915110537965638586036469426487807565920346835357177190306909707511286298598920851512908361148302537948213486745786705629510418440895454006679907608814880352499839986537536345373961081213124535913788308376730894728175593469028868614108198020843828698344280431574460167515124910748743479385146616353040476595887426080587271779825910332255355771943991106467947258316866420945113109549755342755871164966185156155083135870029423101166758766269717802472922729555476195119998976361520857059253742442250590743314848819738276814517973903529020606509692707298958048028932246928841268585275083867247721603177844459026160188366544029557365934751569001396501900651439091191795658552770519866856234133701331560906042278511780341406950550694113996409021129596795783170568347430139314776770377523666981983031062235567219681423395124758327734555881164238466865501400746446380440432078007447244077201735135332757284319614616740933746359009288558195743536323791255457915223848505516175881507054368877676482455060439302821401490244364518448570836957982550069035670094187201333570116566596061084572248579498854529630950857410447158123330886898728712908603645847111258159229208454989859867316554497875986665984342364689154172156341379942744539501715384877447719471609755730545633886003051428031189480780477536649991088736984749649047050264860268057499906055701419264939512581789159577816168001599785514557788351860078037467130655666290035146045679597999272110783110336029528269529087694815088674159563520230940193801474569052809218761979575109789187060144511128517734308344823133542594755200723931946670568523072470126680639751559671329087677626190568398751894831295512475764687672844581698490951113432995490565721275960297513888538560091507425060483118770742443109088759497142776490340528904427391752570605682114480581484697147788425434129758761933469015174494447840854465578934267569396110753967938384794834863376234179406576441671458813660025283251686901331327451504971587625404762904444786026593085222071658495974590171367460867995577373590178036407853487160934537916232473416189973247972119775356053963591209841255956670461503999740818982921817930790681655390876021423380142454610589243331487339588331631584420532968845412043536343890434495289976042487712614639531293242940874662502159855583837633451008779773852994996416654217983236124072338289789034472998937179546760397326008929150521782589508118372212867344772525913985619243697903596448290037479745809310257213473148934783898964345972941415171820094917750999635288588707125620545561906462411258026371532119529668689559408343610963964451023212471889848117756771587381855215552022912178129695688239669632451127314031773773145743514098765513548617954526971347469564090905607287236023081510065905491894713281200110794947478523530529311441746193373487371771197825064691889314784054344883221528785579240312754861506953857346504869127870812010829297589932681367790159746570490201784024545257324998817936837247528162460790036901762539778518871503374066212676609580261160550836321937052627197534888599983107785910685405545408434572883551235399170896245993058780075137838578887152336003403893320829408505707145738122653204157687705501827659774707789956440585726689452132622303399262838683018279623607226355213270348503246922258030094947941129197615234886032748459314076218892979044129806355858836303741910067800908769628103123494201420024874528130614704256938242151383416134843967727329912172042794966554275089764605588009648541863110514435860045913217650905738849037917331319336658632816178871352788264148484117152298961418302405189768963769773002340658411952902421250426086357906941815529862209486500042379699601898415374679658803263210207626001240089275493992069003849586817514571714259402842934287808160762166055141239859759651835706490397952253557538430460873620565197529948714062439137428102130075930937648729565575893519843504110026733844318972259608803312995425211352746946668406089745613401067259858475982366801874982907615510105638003414717631364939228910533437535006636110940565801284302180144576164879039283198567021595467230015937863882554450269891581660972067968195312067155114103338336007536514682572922058010242060575681271949983981484819198044195605554318691877849590677179395262488365330688025809287844592398904130827047679298051989886600875739915032343997777184617060972411120650508942922418338948111283265076968128785587012698927206558226467277680274713776801777858600171077792516309207201032581570766851973948886721804715337833831973602904449110183135169335175029361753600813173871559296857860282178107024545134790776804845773089058025927109146130462347447582439447033311456249385749251236253413871951648643471908802568438473507898514236830715827518657045625607373862910515783935632005178377547837427839137994063520806738681554308535347728957127574996232889806420944433913210801274768462794910351705262037905922134259078047798052225626155243407824095796186688690133543569267022208633740451610752373214994336194659876975089813871733355440265945723418909324081905946625235874187931443074257586400131084641935781512889895821931978841747637476750130727149580394774209900526967149482075019143842394387022353828036458326858226771456581620654303304595510142356901546709583295548894464873478215056117340502986958792802066782019335864780267289566055729016689523041132600558267967048091984552800090008738681600165892299006409362336228904286709002472125821080449578262211402480809246347347159812512795132410786789864062040206127150714045640766451089833104993236189731771795596344790854352594865087937148995054087326236970174796028341130866600171708751105150811688233193842114186312757461112853191314871826890856580346709730974241562872988806309780159026783147680355441958985681572110175313991935061301123385647798425328234268528884061901846793478038365829337406900254082817329502725818227574206749071692355095249241731280437607016358671144518490957200513786366412221386075074079932876364791464486118539003496086991383647119088402336470618884870125757724682423836844412495517562184901597943975290472435374072851133949274102812525354085112148811197925439904192692868166655475924257484926222581409100740428326026082242235519789581362717270861422537456523534910789814598208152471759777818977692180601781191977403521146722597624810576375924955973414576124778497375541557339702740017479733610753495689420624742386428316601619259806709434701356445513367552072085358974030598736443024718943348656384348260950541594762033398539197361860900424588973993092640545042740776451758300374821747519941064134015341375653867816823008109125245957775403392649556235916542822365085322727731435245949120206842043929084614698236339410485986579885491676011776762965633264435484246762393334016557279001442224057759159968253936503785653941027771207108554392050404157970801314217368062534173686785475632688404950582638604143012012266323322115887228953968247870739965047777680932637163552710704753353638239945084425724756651429960856211487758381185959660210476896078803082745133286624618992451841039485735836294310520693498497571649921251251531578907812101800742562238933607734910138948892338298692787833177563240389845250349464815159105475462416886730376223508357814419705798449220916966585594732873613480293299903888429870622421246711565895953817805426599037216191330930326837760827776511401577866807048289192509199049650506971281949521132599733680595199867354457441555433402628845026870154316787216729079182160359377680169136437830252378248001251375798558929277311729561508515877570385643100201420438760512448167135592886393596195015819852950634942229260287992153143540323874143026693718399702791560233387214645417861834477821521435788011010800552496781957421930922173675812538721141752057151972428806730188844459698056401124066510951189955911223099224311932659757545671719347278940320221948511278832489243740697992089932204304413772920758886915639649128105045722970950345550912999202908962933978243193315377449121228025378374745768305484226337094291900970449301514056712224883165341700249826378180170461930993192985000190543376082246784502735044535713486554919439387352911341385147787196655060869632087259704091449337351327044297478379556861935334618969724901147086855281606128331087307285171085904901031523716124297829002880715926035499594595088888303999343844333232748112484338902607689866714735252656122252899505732352044913028019965271129587766187363167491322030538113899914953878543202755463529953281766452978349413250743222571006600222111492472468058324415485645935584373604846163390596527585532723695724500286761954944490466042493187318419489822860242017797957555102998476898321107767390086641630886514427740863910236723986277095541498876805139680038328801891850408757529325413070743332023639144612681271197885980699527435508253422383164887455329509346556150322650687784352817646190518842816595956591066998712521997810260663045682037888458386844040247571306674028060430788446669926998246037533395338421750023406504666178831431498442125925290881473784894696004052544543107386989771234278202933611043779444936104285733832177539792392917037651496097108032774782484238158269920139682995089439291166925467903033254661233150841176996629080799133519333384760728309571193349659748087298101650647413154213816954811131480824445179478911116716136781791179513570796766467087696096229224503650177053774905785109798392941752174695409114088922508308085995565643080717472761923969995901672375675944740608823423815085820727653945149960296195267231175470437561631202801587533273024109434798077893105765834404383080994762566558420162861158865301093577025720844396581986342043427183695010140846126484705945432813577920021656527840562044835472223822553322838557998756735995417122300498929008559770092712716167393336415632885951319022142758233854500913600244514035901731789258166526153303368552445849791790610462380207005535363164080763914841297790985174386003470904537587710408684152183204989570658843661166474052762258329458024214655839783580651926042098772254365271021348606249689861073880630483580229427919751134528035921935343702146306610968603918662809046809808681903311275296489178507785475574677622594592499714842321315329790674121896477902145711203414870592104556000416134274764595730130396648286572992923297021409489207987445632947583772415853092184285521557188024930198982299480498761531003850003039971574776325124612084217642565112428847048609510276579694490860518179621227307995720392585294402090228163573522486494344762192294939265153458893325124749115245129132314550081448144948899245534958777806599749464999149258920382331407945781578879661546706170941221133169090834653925186499610671977687427225815706389987040528303302868768301132782019474097792402207199184260944899950535544263071969551954599328036371824144999900247160586077193383204896097199900886803324723048508898674121695343282679402237412298334462819987286755137595407542168007999697465072441990593723951788111598413555970759004983642809611195164195235904571400829607008156926507265069885538036009396357677837885828325379752510217344508298485967293973736373564535676616800473709502479056586282098720405396353568400937040470733610785930046279773253050526978028745002921753768928202921360965717821000830677509197210734598748738956955816938742462670653974923535109680416035229919485463255884984312876780415635683452618868129826229767090810640952951498451543752904209822113237183295953555579405510270048703069948254817771952962438367145510843664660917345368547579606546604905105498259623435240328411298119083307402938733981582803101855474970941823590676978039652681116238448470406692878710809244087110476807385891885069465593660230465354029433065304322887782862683083269989808892748876936913135650881403708326812363739441996046533584503614178169068810031928351296507755508576014566753035917851276129939737149325695158647136211532477676549245122952729597621641785304279338031819785865643762850552737600199780036104643264447048435187007411821502589471698193911484185405922958610643877091935158379795498448750022018730400113497523113829395267272881975735451841823997647308285242413665605820913465353714275414427640381837011775790078475755680668856752183267232786192433093789330053337732822378127926777429774825474098641466084578928727899205907085024077192414724446393988473203811736350202159722770855794808118222644148990499634067977460976242428350448820308147770461339818136841336316896190772780121367114864695672278798153471104461200986400004924860229583292039643795910440062973270933941571382999648955758107623495221697479762724907056126322783341736634423811695342272456267575200361783211301721364570287162009815825404767806492263435519925096339860687673275644417709437091049336958280759614413636468348917842097804271913804068647474167163005040856149496048756508290814358181682563324418567486646922469270992559369709558116608290515977053512796264761836242329378798495060796667762538324443515523650782070517385431673900742662120210920392771639091500114699640904115867969177143690685495490754451893000899720928787561379492338481649996832618650941405823153203027537048992656096280348500253184861370521475124607398236760932320344899471841897999690227630116745627069531753924440470707836214898656353494593547659437984760952744657681989398942211558319255982278540585567619919792923794083921588154575265503502265589499500803090497543980160817078313865419620631086030245608750749496599836246871224155358306641640409735042522896277936520798750059623424771679986821919686642489585715983098872727767521268543229948242682011336060410342579289339967264044119533448589611223432806556587189067435904249229454604611028557326932236818407241638149781458793012487072622033390454773207741461874947102441951737064189144693235217529704861813759298473988627688397863897048160775507965622106588981362922589302480244521250934114638758195562902493858614125762740255240987494194193997360272555093058275679888427075069902884555658632508022216754618952071411254317863133639015956942269289494335350796698198315264410055505938715408507354895039356663106363042050941229593944560794145807168897165987414342953647821774414548439692642794147942131579316861021970782739997797411954540449021307492065264721004714795078727440027950675372952332813215019225590530605470045250101763546449353514517306561107050887360951888491936796405140116574454272605355470671777437756889130983707124875204162356877081202445454336309794730871665331370865544402690988382938995741659434069035196231614080154777161085458473386216975684102934273051915306738080363642516073468931030992664678305158770178189492686419178553122482443244120040517575810919064098994325434462296808145964350528080469313883507763144481053541275152796414899910157939280940614181475083943290280640827318955778008224447725236880260647412388284165487168927562202829525863874580547662394539256208058931079515840701265126025902899812426800328770076499812897695812421704768447648559627513525529500761682926360715395612379791977217129215043878230391426373056143235501831274304235421363088008536096396315465774364309702984917556173058348880256621878596746385095346703905131839787815148380389059486564916758809361575490601980252729767248885012085850953112574610532804206701499275684418983483524932019356605908110809509275098972878013224349677569859597290853226008824427560998976382384836762148875301199518533375561938573076751469092771251417169943144668868792424326803498682528371520844398986766616092549202900447382333744665308973283969566974470174540004617583394338928954255786210800884206710188454270878655880110791468886536775202536054215425930024140541353472086806177713460775991738211926289289111446154782036992552162336708721310603085633594338059008184638582039879376036304806105837534789537261884027850484874442261651109982698183725152163254073720655753579910181235241044332271010177340177007082716484693929419476478061967859325255454274200700296590409440113320013185860567108684827299003257548717969906651149039693416616888246679789855470405855825609031273861892605652844826788841564246688672446162988015073765959441871407034156377735494624840633204586113555430650337256629692056016714801205503216449491136860074692127753135121358352818376235387470233625110092529994561825082383976044503356939869946037448499155413000508848243184375249926762491705494176283743313600639830888288383655158242198081946071731827059355359833336125974763395279950984475218290689197499861436231656991281906211606035347964346462027959301478145101709273581855430022281223919093047977158252594367807878262114145325349813484879855144693186465327518412595358688633526787296941685984135036571406094749488863227090446191332652671334237396125088432261598912198376883263738437156176810312795270313654953881987567205673996093404136219529296761537342977003337012196950477674206345428926791742719370612398426741385677544939887741993435876559040414586641761977396221599279923635098897476540335647493252443778191533724437589381510965098730231028257732870336135920127234256694761742389454976770679394413780058815454924138967060881244657736766462698300608445439338180395748101066533111161952147130570554222379676748330698827920074381122977976746391426863046483215978942705433813768482359650452416869529063377813875935380303614145659465043686777233852355573155610335600136444267486026527192603508361226145027118525885464045009664971955496040186699094514168373114941117054780283618556598863317994206247390314583338989472007367480367053691059285904457019574233284640874277909891504052802301047159257234041242633343096047528765960958645745315257774163267631468926792009725907121250574277115113725655062968213946063492865379108509470052669680667071446483773168494185125849747127804697667465441831059300405947979588367186727114491533316440377916646078917576961830946243972547437915430368249524454145418616355969507972339383505890663783553268348086502434322491291596952512520130770196389060042260908446526654442551043938436819953856727820090205512960119597194557753997761821398671658406384446564905401956117937042142226591516632201104324827780999336134688291418001633268674351195959898344684429967474499815449918775249781298012282081598746524268781752145991602969453314733122404131525668950159397473525771760173249478869517423294087130636354928814519090528027446354779585904482198318009957995669894183923074267552525070998682073365515738881629621157281940689509864959183355221719096845671826082755318748060850933751701294226123717209081993244415966467281181974965806166439398460503430842172378346547158051793944130482201923170582623788450332137925129150929630504033875718070456319677593528588436743634834871138012233082908146866360457391013777068595064020478826376609862430580951433362566684345433324245826802239915878738563235948742285965171788846492556602122084196776889091263935595078651790633141608859208537044708719316222933610370167843969583156361305640851010450073595585138767926960637181771349603405049534282397340607135225233098356156557478011094933976490669298872794217173762432301323966683354449411003629367119654088233916745789044851680207577611136556036064887111844603995152125643683550165708639807482735188826532846520976732206615095271687931546736031154102892145792498907965573535049275652315526802403072127968827281122752553859748674035949595509303342263142846146940447207310946576071186475945560506007211813045837052378176487283541471760427686317318304492408765977478686169836084050618130214696675863717216803253341200749153063410555781918501884772001155321576971961670885506880538211817638522299796437027975708468305692988705186080079230758336310978074749334111442655421561729201609698971317847266195890352257286970304218101385613521476325663620367014163769497141854340942285619658887753797430360177705200286183556315015554484397607164970885466332797876857310690600121970072738623420833748777932622695252939860527652824109908328981555168578454536165317279503446473698097302355935623605113908783364222064570993442258264145166382540365219640628829773157108974725535623359165832571658551687475515684231098676773575510535991510562503330369493691927349630888708712132469482988130484769950991364573581664817776609036202454559614808894183429366263489106009446906126093557986456594001188789718867227276421504196610931172760591858915779278416646112572818447099976995445821126365632552821325470428582176991371193370780061064947147650413394925120577148241160712667727151318222874481398187566305464173919650579904322534533916495366449451272326796547161099753810959740187321365379010728420399084304045615519904478449226163543121722704626533207886006444815107330775603405148890271767504575350976171613521784677087417222047099493037898138421188323342167008537512574300983686901808128397461311508836075713574245933965976470478687010359748068691604302462256681109800457938488355396283884735670741727826526001664712372206237798354058009674196511741661335484992850220203099073823856133570175762904944057588867281927401724172927667942908397357020131436365337425264648067554081940050607997253591618921050684117115784807991577311081036544961333792647598000547289638777396128319263494922856232931722368149851788483406630297664990081294636647713627662706201207090573884770983184466703044837565561763118872200438196951221271908528613110017318450617278539225612546204740784385939867489872282664552568177628812652884770116621222502912114662468096959838954129947019091261836268350084873731289220855063977664702741219371131964698147336534171039754422875567296534022673342278952034123448576114277574104824476102883828641504193974044831828041047418060200139124981299337115769002860832114476015353858630518751528253500157854422850692254797128778971013592166099255934208980094186127282214076854186230519745289696886889019004673610040048156569858200672750121104823288766980693623548732285026208641132332960644179328392946744279266438960148445382464063963821560401287443040620523198782767886902738109952394939755100957750905211863279126402286139714880447486468917777811564629322781352426887436110335030575453181135675025455604309940800228897752999430128970983962481484977356857323670064421685618352053582160123560315441693285750940680418821878489531604265069290000039317003022624185298657800349782801763248997468149720167765678745364944177904799699029148484301945863789176421957962336452669107061752722095124643659105562261154731942569062142949454812037394940821689407602646175037444414924396898854310963217613251183667640175812117038182399947678008510627846426392745809930145624815929141339121747858911477156575058203296669452600311107882743853102676729985017561830533609272590957459834375262209896337573748736460753295547289267318176108072311590160648606613655236162060781121090086512492486412623312346307054914344255209784126749581787122988084799440409853835947883742855166617751242486215187813088302466113947233438857115204542573670851413319366984500172495159928356568656897054566827725171744539275498777311707672363082494732938271310407529775688089287497883659056872667822324978735023196416876950874381180032649234474295099405973446957579686027744739689032410494078128145072728130123008443914786273712528519755040620695277066047250276765400205522804515077930592375590478698425399223011690872276752216852610819034369119975838877135249217653708425078576974377743685585286065872321645117213976795029399956258645325836521153619981821730847917848272267856946198639993679669869241944568554748121653709296087735771188008055531676668625395909244519453222413326371400333334232274718033128539806005811698117570791990289037160331748032191213327938147187551985424487099237019776518426314733239160213803607261940892822901373562801779860436935407727541050857319763377285976167052138457784225388920707487829824141885872562532530182645215250429094389169006971142617233926882970075943873011384289632485278701655500947308988555626853959574658748556471396121068370427221200758774431911986486046819353344406614677709798702040530313683986638977558620015287988798377067047410340239065951117063376635281849162111149545770146052365521026376320427180390500373502863230296269241701917413770062407419963064132330398505540698435588307442164678118234368301309821349077954115422887507292299543596357060392862723453874112351806325176741159720843405927000896668438140908367326765715790933341604155906314501864917542714057288867347473862749882761555225640655977686194202435006468815922643768751695440246794911128099938195096783553232699505360830044710630739858961335854212797201404662731471288034478405460863251859412554879699834191642209425985919443798859464179440993953448147317574697162704601474588706800094261836854296115543709004003843599071902973549047266460741702488523875943898498272979528990121774803196265076220471849016772753748917835702914825683231157551741638951724793026854422425056498262993135308053653954369814183013012686193456837607099542601058957144390954926569767045804901207476604744161000535377211717817765973342003016211384714951669109051405878196675831246924571581784086935831019546798235471523300612543832282576571064911402037652303621988693266347192324467540957414691168060326488582550611886153729443658483080115054907740663187400798869217408167217687079222677079392239339068913584951300063404521949487679114839307741679681997326292823881286055847743296870520866287228262961509626085057208596726051510191792977202471341778400760859734923823610761439921514867333692180772811266025442177420685191201403883779969058784517155604637000559380825481044068007507708379096517471424329029291799931457716517392137106908501428808273707469022015424579283871336013940515240922791949943516448253936679848687632845671407266293026255057167033749053266911037471258336076643395343431166034259620005348132545587677436342362844016688686790532305946316699945640258978732158639665181619016384215622180675945945285968925295179006249757303649757341265589752795134756639568319045075114445700322684354386112413183354827614238302493035630249679088650922851383775272389523100055827698250830720053423734960711412452365263246235962664354278591668410319540290612248424791356671165267279661982476006302203546577997858899740307296493925328661102509815399019388962796911740658195920617915745007938764774646544222735142870279920240779190505794008735914587296142992180871081125602914738500687837555856777118405858453449605606349160654714986691218270600371150776485668775581026591390556074600512528876012239272855780907849674173713026109327575740364576085580973883514024349378099622951499443321438198141311972702173450517737858029889617588452096308287274512834664759932957270269760527091397084199041510966722637772513700486359134471155657405593096946508497356247237264119733383820003343274265721915979809897726986044480500815783145186854640230152147152595337462461971553351134254519474671357333249138904700173593452004757357801160099011734580367474806711669892794915964867093001422636388970583522973385233266105451699960836804108178490148656965021436858763326880588470813747993333128764588472296326190312927710283015070211365190564794941915512418433217037282004211426391789460276044197548972357377492121273190451994445059705259811538828072288660579335586668573482703166338403547372602597097500228887048554374296160999259201917634216177788036691020741517326716424200864175389395274662318671043792412195989102617844992482510933468877066849384557454317774827925447963952452035358635559425837522001586376754397198700244679993765958984267241496897509707765038672587276186534488733880409479282824372000394252722874348427555838406002578730221378273994445341767818807997160713518202201421956360374710859503046504367370726952794389550800429178543427938627585255837825586246549527408704916904402468912716626246901954929842094860825884202738770358895079268480072346241011362659678581514934292605385060669176259363003303591286851859664916736560521692043139670621787823494597584220918896552186187788366232724115802042889267335855004151807719792089255223644778657517036061917733494181645269914588655974670747642239268507781839702377751262613503926133320975829549100381094485528843642800372344970581759800286243829413348385252368869630417564256331138954849335823609374418038199478914831454811260940431806650858432531174718885892457350984065073846853675394901663819326830157757059395724054690741292129729271356724327777332327316883879954596660515144254667412862875876215971606924593451003879563602108622069122852947972227956428617353736263635431040197005836029345626819248808890057614275825901900256420027684727873802104170271928359100066729792473929619093533314295816917904872403733439069845248343747194986151799207760606881635196456111313936328514969490579357511213467726642380987196029114828835039266980544595061661516760207214829728836869653768208951666314727115452058595446002265716030900229313924620958358868235037669170742247724217284027462652439505135850203373051994708435582217660073834825672035691817541209612279253063180351658276749182391308776121636443541067219613732454662550588613740292524363735085647474891435214985095936699637931368767758133212038992391104830638419591781984258543441328177328727880586506950633583275192254282822187938956269803408646752084450351383552599140493736569660785948130890041097054985874070308312412098506224025453214815852563202679563286231557489354393745212059697987290627140086853471356964317732010526671547103311914802307326149964180234171411254890656656002469242338324461012991258042200762155429141553770659162953314554873150798861203898038042266725948611130416272726847783574000212486237599743320828014277697397510009388432912913137753818889997352837201327645887284965713947912432067386164322166905742106877957709631765336598969799020666501021130305804730198043535640037657211880571567930891617973674990818982498236885101227292012448014982722039025986358201275221887437672466845333501578986949189443039074918995096982810554895134360133679125867643640398688221361494260772903865382968566643054290969347470840177001666448871742255212678820835556491431939343455792648636434429307800443340914599987070089887502590909084958375830639670766180150627585780737158777181135519961220454621571493390056142145522185344364913372982468614648913531188292474248983462183318489813645706496742025802404926170545752496462897385813133110571664237367707558462822170484363028033151798489932629804353185771791801531606145888383336723058229373049029565149452772332184903767397744113401878279494477503481423133477330596002811163692947576974552470512651956333713081518843338775666536525961518471880162219948134154398795333723842306767704358187698561089454028678946568400094681510409468845855597893383316068661534200859412297139263174176067745734618932107210889486466421098933751047667794554637753898273573495028671867235071150591326080924665057630999435593226058768069603196477738629376254602136217993791618850309350974148067117295399654220627221753640523017722176232271574095760142701533060943665599162517361793365917433655030665559174012879942054709228065433296270376227317104356372013165586647196582245521824270302805484254750863025129860676047267928122016974219556208856715645174748194626772896499612283302637652035917899453746582999899895057509777461473287501627580825212540971080417106988311984271362144760601791972588060332579853265984258545047960923527262635204009858374809974475438306466737370680755296285225262380698452713678763908506449350918628572668145363720032983914303246366265632710197222794615056558530755103284357690432097887059008375374594582288932181709485945374053476028283749800124657185775841613106987844242008824312778327658555170783005226900777599943169137557336693080241257870717770345567405451513203650606550089491052420746188427126853842653784593911407044386596647433491795681747814919331035774110375605411826986451826252290105782395607141547421762021514975550187318801317893999834042631119772827505092697096911939241907433535945996358895858114715905405233297964100175302204396149922817711922948967592064023313028455656888198941673626925291176628531091568685035709125810171172449105523110295491014363361617852453462630177198476604386888633454973319185204865903463873289130474957471947309116875695706436795261687653963162925348897269895088746805852923288358130041087596168641813842751781920461939449049892262418224090879065332440214943853674412486623027290280971240168252300249094457052193734955392673084260685816524264547636915395550332921472568913871297005856224820053422858061669395022760312135856562831750141490501051677914023655161766826421573582261358949232005074492257641069796730781003789124402120352249544899041344882258082436840340243318364627703329136417474136669810126499367567572264168001243754454278811847762382114241662023316715353238916923831552157156747494779154473208355758809910708274582689791868977325011346858326296727118236983947934512856088379380400091041813028035967269566966785102739947287225292941581437540282146903834702113853931829677438735476491189843990360830428344501050420194861833268073656184694529499452277109098296528675506054996888343365790495180252729081480693044982222627434863117149394304928105289401687097037845417106046505466323675230179389146616226958542471472341465583709210523770805415759098419630535811706210747666167212174262759940230172104613342966516949607439474957584522547088891654438908199428143335121302929502889976392182403432186067796067891489308966407613076095087698550444104739779315147207095065930761444070287053883347897321488889074987892554329556860399577365650524238951696169153471170033901922579527280189812671573557929374361842125631901985049484645282514189320514887313036105632564843799590729202618423471818272732201498067784097962505227377926125595147594901826233600142310896295002979345438659852771222088601298365578167666398878957419341356126736279452021628376846772686956043789173733374401188396136489173956230077102371855699671469410335506407339670228397555512053952515472449665678500330659791469002836444086557705087529013374960173270457192599828387886971597246152256199977786387449207480606590013555197432399653381388492570851688525028531264376943685590217472517783292409484591737248320250128614115114280909392251197660590391266112415124225248455512985923352530774006926182190949204171374510249233381608253191809093706109426462352324452376916572669962003463439611250643536143968693880769680906583956927401168860877625770152541909847994324079566063255815835808471302605488534476016810892251648379203469826927102038339390664215716186173601336740800482983745513045319853111194624207542300395692691163641566064875608132739909147727747969701059715463995723256286616793773035886800305452966907402075192860076108336970433906617337102290426523532740299762982895279205644929193997712651728043183509713409022645814366543250391088997457379267582944012581978988298504708045502418883779120651128608781947272580109222450456386142654796917047411543227038946651119179676871784809894802641872937505538061360232868181715820370479300719977937938626279539184637814892200509077524982789417585751521795106329567210750969630425641219727366924467389877802818339668462689066851910428933597999575907621824818887217918610100006523071720299398973086188922362317310473328664978348554433495995152379379536494775839162090081498182734512711891877969605905040306767789278884395934756359799135133025545354431267922026976356470755176104775208353271912222774037147615987428396031830508294172285269528988371233884526469483672164193706053524951403980006496301390446317418358419468015923815744740561797982984070296136692452735812293082732821694643030755031137990183102672678471019851951204256551920671160023921070415468011922732050200957829633071127910966922718790631716523220659340438298779687672781767569311523673507025932418425020802023520137458462051764673673155256353750371550963765130871947327524146242206667958007122642289306854292646619822424564400382014846270861691934456254126071856923663876368325071291268184499083735868409526869674359685020326205566633543038244085248207735058881229703040186215711603429877653715469883640937252250488256979161729266976621008534687013140371674839588005267787610998069596818809448974613708559724985244150275264503659380441663716475879185383597045815536778785245862452809442768587689868861230000783615880543198825428874403908545411094471410109959423769399994210971699959014661478112135533065805038075323686213014892215811760707385113184601600425887378685308647142169052536069434080350406152814001960362213196592366364912183453634704127625240937998000252754329779068080798364292079802232553107537760081346869369824831636482335766443322929799980990497087430306247735368404220588699789803611395290374159919658739239382460572797210569449889543934750445201553599466984735797374805086143556598679904913646970760560090072777450178804217467818508360392941455795585814357164119209654786350357664757492526133118068967902667824098395568764433861308474083940005446010372585909926434340117618587397807366291479807409391820291942182976829436517725578132343352335987052411959734913610945115203349979156293967398460650336116837283770772666793700390051864445807446978844596373333153684797107233724585587848025421733506034403149369068854694228262506485271868648784392387966070163907124124762227480489848929224043686389814244768716099370820045183117578050032399039163647463805532614275532922268493791488985210776957316102134470099360093144865693965708991813811761881347059658525265182217145083720969460180532244555239808784954276588537335156494381285761551430364776976968390186196296757192641676144457489844710385026751307276713629623880833638905256120816155349576926524819845104112052058342333057377375183918748212183866497890333532554333427429692150249603549788449378210884008502901309415154597465769401934785199653315112829240751963970698672087805795380636120864975637096718556174873606523798786863051444740882512303803920928932250462763424500461905237137710293738689161217895266727601606093188466780735055230326063263950100884439271656849572950070897921727797729307308547956086052091714842257170534664797434512179627811444566618362088778654346702615481623788837413219928264319809176874060957267218020351089515443204496946277218519530014875345683779123332683451367079998890417150253802856207696743781450368362419662355075166124635953765117032340548560232477087537627620429360273676540687888728014572864232315389734912927284929336438127390269766712008380108335883925130791984097620199150616399461041203003534754896841959569645030741915866112699962310296322836815910021792587797935058025670862667538839327916535634697896131875133807362031115729622602044383182517543300695927205527999677351797564023422026712494713185029679930237666502394619266332525168945216194471078563668853427008616665864715816434778749025775209814717832955124205776559646170988140758733573936848606334252701417086688131550621842812460488809137067025217757655708440867386411950412766789198158465951614573168312660171128418441173921844439746626366446383619726071148033277178968461798182153128332817737925305803925440049209640974077105106014916484996720864088356536474310989281098543246108316336831938731433518779668862236273215288258558753436099035991194292600729682527109917971098989983440867318294924352418870611249746724568049502010929408588942961586848683006874111073202926535868838398369105330123528662718869010124973299996334744755145586519363996306024148045090875045748927320301052371267338630576559427044218695996097991730670411269591489722748790530336536480257555393741522577242690983811478799414468910306112820031280065519229799085049887421147798210558119650074707655538654982318702162242666907986621347108829551056024006411854958360267730995445043952562174272526747421015219302816138250688415458943112503774596271938345660013020288872408792505320650245017178665775136287101354031555571959815687983975983062150486618420497126462837138170629712153172026194198653242241783302680156113529131595372837756033714970210843610008996291192348149128043237460800852783905406469391676433770577910127122161381933247486255803631407547072025632775140520653134966268893612688460661309359980482835891744430887144409360461642801622783061349551228110258160400577332225251721236571083025130296097316198633746904264552961735959554049952432495050822568039047110094735098009302111347813484774738116838350435545918329334847349539312921749317446426341428247126476993381218908239570920093135499842277297911719103668248856868832251495778863700822340327102774239309497619152619223271204942106593010422104531901722111880098802287454702538011106437673564402614267299337160844778873651527954722234499824497463978933273324474860232297530495544178076441619547251516676261632822717580625488928396866352031516686092119941167023433873013763886849615594137828108730563097593038589883580627555437175518454111715967551682019436601816304254292497146673254314509716236929811291752438788332364825824209868100580621102307869421783784165839126689949772317721450494812897404763274961006464851265552446084362568254958049704143663457281195871155623297880655289223204506198465983671358397601401266869183107900155884684242474549925189461900983623528018719650784519528111948033690044321435677320198131656930657522052676002837288566025278240457511042827434871737953788948085516062361399145185452476170746408114767751731751965280286530238501307572482299759915798836670976021565856570422447678887733534807420019175715826234832438245990510198073329512582329860952399178732135088957145220860097049912899717842020088483629046425563276176899185729744563638068618555806160435357277954963620540639691866674354521704615121338535268302017519613557221614214749159306132634874534643865826537215172576236312307640132244216483303678290965227537839182323861926406770978431763874104414731873432221396940536369636828632356640654938041077806949185191531937270521242900245411221473205588861380930899313061644186882712638907538182967457270602537019127356287924775316302336329848914349135918270412666998994667669181720326930581550917889485497737563978572581753274262764535231357919485880107566984693020395292615739988356656886426139106051916703385366821575991440014937546438007030222080636213709585345841085817730498118968351744326698595043940658988782179366389993212313599086972091705912732118107087423142231965865493767125229593876210508844561706170757564977564106635610974373422980929188415489264812414917098374109583344297039842634931888251620032372086055287475995582657070113112752477621779407043077393790136658978029037909767832229285747924556576196136166551895868038188261540307334980286404572231081122800277007260046065336824539161854016873517823532294445485971507246369167958019220217661576397977663266631737941350280465467346562366916601449458422045451959599953301099240238888461138776517012956529159820190738632228119460112205969676053516838963735758517223573731494372095513419106690492228194151779946279687453509467770677008198734559363900545622037071886177036444925361301636016072181204958619980003162391621072746549498069044336516684447682016862288034647583919872155649551104012679597213558897184293480956067986242179828567979483208955535419755873902238060995440998410712642907240109832452132566007257295665258054870846898157704006410582766391184455604696487473293029037627110807441906441412335484559007438060387164328382146547184673730560546701167605763486187477249525892044394878748248784821505989046995422320729416843893057640627503548809223931825471090734390158292879812393511022707800134081194075949300448136603335532765902603893419679622974727109475820032414150274113347824673631361882673331912895065794714774747489348804564042985945562976209646999434393748934327730608302497116877679135239138248470827317107130489501841590428175771995761644688930109419289923819827922917309500776791056005517007338626002856357264863820025163977845591635958332278098596878465102443098585413787262955067885834696416050323448622035376797362947389597576043491001938113533263502807848403188994225524438961751895841967080769462966382933775376327652758462310693130142753254703527890582520453344900343935010581133671208256288637446163998180516034563585795353991534243596205257333065664381520047138479409524522273245611977029384170657470433189468656181110419483698348088142004616108339400213853554736058087986956513840248732604441911134337015728990715974692142367697399075500729905960394488762256309995542356629997667612680564584845805877824823529855771536441888428422995599118622359457037082559820877405352498588775798590691342457178783206328984032934148166039549615903552346282594819926198691633707019964399330938652552905346608099868753235930639123642853666260368529884008401643661057887722618914118973140514889960780660542427510831194947235332759878143886023880923666121459893718793120542999695807651469801243170340201646151308999405899109881576950867233590774530302858145471678015474472237248942735084259620806886140970932764948060128839812794806580389152158508309248340904677681246844631476362982715695326860183149934474905015331105597958156166055477667623012305501342572737213600559963082185421984367866633094638612356262119543058807715816660824932763528295608292768536718568561811417840251128121439241262322478775416122657008204967797827773859633299565781790868699742305756521351254095985297127562744693090172063291698856991480166282009143162242954115286552966667644174499555011281536384472519370471359120358371733023233613590117332154479290878982362856623152958446497188160303892100629922953218198708157700054169552361248751726418476758111151179529731339664330310022022508537101743336132328279929592133264347910040442973349006707359053413570608032924578785686866378104779988755922000086673925898171188676162126743778687537459206933895371634177170521049856368102824584827314536156188680384535092725151384453268861093650078582414389876595295668783738120837648340783031112777773730899264919494858634948710897882943807360672114916564790554154416619141271499935805583850671050089999885156383950648791583251094542879961898867962659440119148021564230519350636346150758309131719845865085828524724930855290169692989977082433301279276824027761488897481104305020852124929654915760654922432624187636854765389698276416109628310462310474061126144285965985869361506008825579908324575017604924939862589076079072203210080688124890748018463134063607226836387135829612291764976193421709625544013573890121480715024700124686312198214759775277203552457456461656924568098146962919645192335350435451978441896632118355457980692300255300778912835276175947225888670192210290623890045203241620976872489203217112976416975761994080232860081616653964982119866566171368806460605993563010520896637789240531989355546858065533417842450455931251511948775140659917279252638627045916296688313185650486291831794503914802104600319560622379720456868380437469747632074472352831947983278059809154584593338224028469324880356680240466722929007074792684964912133923270405498629196758312018946856573371785255591192367890647324187227276211298794006943457755991127140226605605316689307740984859223547556842828085838884028898106553942970247445594791258957775952278137955256961002404818613487238023511091273310365735422397475177015015350500491049724574394301899574272689674749238701017080008593410039011673830249316845936451033870233958722249444875442787883407944942696886213979271625950278802096811150688544887936057740630888061058909682677680780182192389590164758264980303696813716276440286980322306897437841489842004587346927043387843522448585322434487211069663953164852869237634753774584546461991016579062429859349166223706287561610415042531677612631069022719009810652537868746473889165481115868929537280361358369173578760281930580373097064217394324530456905205996479478945378205813373102536740586089007065894696140150018740906061592364445779322155892536217273516993863111459128646143076979810701822565270569614915811354236077563017809352253352798981185217531393247281874652099286506333465357983376823559295996933068929197228800401171575252754367528285763586457626767031426162792446108664523653958746190805502288657155927992284136459424397090361573693348993146171374284464701407480507769261773192171605152636199009381133335629739614347233791797944539634728903193017229422396738799947725967792140893691040303040389504796543654480389426992436596948839480215372912439284888908666070551541370017057564844891809737254106874125924150743379260395750998417396691323012599725306670215812983531779944321737982484881259031219620267232366063268651390779105004402022504355272303686603906194307362033820604987513821029317341463400473368568904294530757119864628027227404844804475040646998489171220169151106361730126047412718340307925992337184561451544786312437467406565708618008356929039004757880301746675745343377795837583108023232890851258433604531748661605264263156826023749104638064104249386481310757906326016063196235156965172051799785607927789349849295425119466960139505088492174490998999407092813393176099595534685451244164277969731869991110391139979300351574811482426609074433214478812321494775543722330655941451605468178342254477101018540942697122208185379668146981410701043937296341247742912137594034498700899731151507761629458722757843472715024523804762739784015970918082658834442195948268613317135919574976673908475644821150217570546827605123594834070326561207726984858012276399383510937104402668657439151162105312262590501284017935262957461634409592184989525733361785853622849504946495447513609510325772968145504266619880763540199590178963597305678860944885902808549693992575747070240937357865340923133100478889777039771998355154485813301498174524312943946094604303628555689595798341566813556170365741618323031047438695066264372588251112798447856224315181035081516705181946267688878104837572227597971649297549879064443370599147646983281203426318105544991503547231448485852361197396661194011413772415866561415312828149194432481687351159284865428385957809686900361780964101154504882658950984025879944583988220261025680625224253433941208445411313222414078044542173006603966751795036728834072417021806336168639559066708396000559333459094179218623734535389437844133559776562941147662499049870069056170186580903504302043232935464783716359660768310728122360336931193653440493240869665021877325998906355096735193011414711630733867236514073345243211433228193339372843569012834621468798233493822614670065595094972797107835724639833460970813819695744111253991790931733516092744687092302400760791816897742606022676950317084936695856021401418403552815493132432025987401254884102317085702266344603031076159525354067094447439324090537537706945013560806098101065006825687891181874051290409419855072828325147499679891109151001032676852166346831713097795852144475947574129138825198088670334157330506509671113909191307351396331158337783158331806540217015972960695709381075200225476855548373604349078625776450782581911166880331758910568964631016183962333722011161078520691257090860850353198896349855034505760458569531993861361452236687146392380605161592823793059482100313202244877667708014168422378274611828189612215228906645743839930059056216164786750940193496837781436591347007714497749987124777043786552335406461915523488856401584886129378036668040855295345408538234158593033040847876630355618533322591927816464667354162599597683909776286770555621408337365340069526021683064230097531872901117803787614264037442275675256321279184982365853567810779193956578618218835103715148019374515875395121024109488107786876797047765912819954136700150708373248651396527529868029233454376950189161440466817916642988292024646530066381257963814591615567734040724702345871193888153095002323412645829503871235459216047095345984953710455887689090451765499069804411182613378383561940961868595860401113265789884670107949008013750617253025196679585435178477887343363019245985629639606351740155419808754998028118748229876816529469441216757891656617997932091151187135222869099856865001674035741720716330268313488234518903306619431065678565002496146402776955089909271211046746832808673089585712087474011168383683892551480273162345871659540027733967046040887644111667745951205355871047138065898780070412118573462920419521147654918609377320826527231588389704488637947701436556808475063462177948342781663517610638958168533610554482823385034152515096680911225240369711746140327127147740779388101382125186574003233585073538459468648509773178707718328573069545440679952830489054808300281183492669354388690451853599906369044612876903382706862230204193575336890589374933853209057386494020233779089141593392837098338282941964157971813964671565073697516287607861737351013127020614432035771718443568510606702751127432127771030916987417148016527437041915998060008296324970729116386073390407260716612509199972095843805829364469347219996508829203846910845875351805036790005208379456246804489710041733405879982678015996288025271598905326930505069455580271140639222764713708105796706330800842721522469864313677797336295312135714194205903127294671775029829542410374009170047643729152600247803103933228461483181310232609478711701530406474799983206711053305487714911039827104826674264317056929026036194051051958138674884249820424054058355089679165791144114927496862628068728619159718945639309419007742236990766396842981260036284376553532503924462611979850929450682178097565875940990017342015895623201199088930716812907306982777612891714201342771258166627747323007836453765474308591900388271458428779367837638730789265077180370129528940402869229424717710936719677382185825192573794042899362542299710332804381201403277851909334965571173333013839094837346717266607894036018471840406118589707565622275107796880041514679732307068201991712005216295056750375300963273964308586495879397956785611313352950531397403225718029480104357405079897678796432084287164288114072501588666930410780923035800199358862071168425372258042517432684567881552552942567137160809203580483963877802035744542699574793741221307828692765372256542288957406207759440737736922043931210469878755634624277740763410877280367715273979352848099909827623202066441764584670322157539444878312978516316265014579146350179027890839364571669737333069651309509697985513778438922925978487795620639055111235691223598390843225650529978132175535742705731282294150419352315131185340697688040548840765596897587270712488699676787337405342808968101037311454162995539905271269931908521971204615452998010498139612326610246037900757829349892711698994794718177243729916071808444025884309340945414883810815389783375139468050744009337070180897640220866975096016721966987068976703187646751081380810831723892972284198415586107412774742624817157991365605428684608871448804073865448516000778273032311541370784677931696938341966872428000738961271549856820683001121379471978046133025525708394539398471390070282364836179740096991781902443112741582143315053670739984958369857586224934717308186325321311120815931014838237307139127113902158521332259389061393722872610418672585106227980054378574911763124149458060585032729604763121943113516554282587801136203971145398081871593504871299109223979467535333301182561185996287545903270173408870839892790828020960478897540310840813795125560308394397900702761411698703063928365939851440913780311238978375657813894774580434287359116921370523717181122505503124135564863449911053054486436093932828015925561413840529361275644354635878212053468308203937015826334979780593175642998577401628872941753747059464147736783645978359927613420570342347602672944263544628453700875119647039815399607788710595822502119626150838403395638189235410338109483406977127895925021307581351058492497101629916599979821426252916834703225129192609763226933091246259011024141894278590183394699871145436408932182864276588563621361767161420951008521632486319698997541103585092540100231035595965064361458507866650600031698532632101025613542738378912110276553181742914441331901193094538564749553272792195445046236769634104616869881525785861531376739325395277093639940241185564232792859856893954425713799679082235410619142972487891578565429994387934009902174054858058463169886768388264557002816882907892925659353066465989240831240823604986951277192004017151714414337582473962686213392922762274041178704174453055838233030262233064028108864406720563407346152581102205229300443009297244155657084374002633435630083968091822557255425530829466302004003659798585208492244792249452816513001612554641249718843109461556300963729083817585972595157024145054585048742591556518296338145791878282843766218273094749963560547779450711803453424795344310902162227473363899242542843266954244738898226703194707290503958501565656284933646165725372751525884374597591433102808034936312455168101969885681404737986509984822018801409617448942275367698575242902991362165923760218510977959241422930630908459928430298244696230557097060942918580339259528435069680741511043669112107401119566645663251469399025113562520015021776091301859483863426138172063725298472657103452355184180116739696426726629414459937165642579480156258310448165114881455574831188029307100821291960953695530770312798693711067169015080052658286486493434770640676384408914454071995570144881303125340360196431315267756323858525870750372311159788350135530409720059132207607839707163971949725269526548503314991152086079062803910379268844554923695551503468306097997577670572558327266828368941458759927702980288744594187353077679387998223775925693976185040136947723200171167973352230697376445080348491370419557598595997631488614528424573966256053983653687766767649008339456863344725143956970553510928123657866750885157381582946602595572641473288928119254477904916403662376541560846442741323944894999266517308497226717249499281552404553785705758450763960997333273098670832546118943937633420663362294883054417734460524590810434550672700101546050996389538543275064224745825999877059787937047871296669784172470840029452409114852340222799946115932617373668276178448617721972748330786459055788851506067189503374645077157212375151989599245729745031019576355621453807617156826308971368952209616705772126919100811571219240301777220079477302675206452944537860989886763825091566929132501364108289299745688141561544207726214403223580316964839297627777665794440775594061502228112446743321298685875506983286538257975755756317738148152113261610220927621497064617276055027506579119658896277690675299245700739715426375185232042289032590198288954499469532541168249512629298184662436645415204455691837046727051381771241432253938235522732497204047787752286083301555596440464198468683348343655311557459971142359475095957719644775243066851486904218872582224431489241393531575558253745427933968753813364534717803297792602505995272008047889198904833420342684582238729842056774244282257883853985687013442912285618401234760676064128852394927807481895799582094064322628677653485546850564975923769172990697606480279810146827681325002434276736937919940184688450585760766062171693771082820051057357078251027928760669339391979020696335838009633165582946647424753008865172408778885810732461647735301441558214945159781698201420139354931004027173814005814236721632600422055400898134053025571684558860192773584357982821857230443798093971324598105432420865444166958229520410337633486230444478773536420729604799270884503198842778967318397980022790916547016417494135220179020136518535053675897003752710476844403564505568445972081870382660301961324082972373567224696369355115016898495427756149649649611118707487340403922036680934220000488428848773041234166337725391201052378950928896584803865668014570917874858826689369946144110752725931248986614903079873738896040534195765492409557969104428610728528128191008778400115826804494595543085266160815128051270503013952600107258704537651650796478413416017284196699354594842401691424098460535745312550682997571520904019516689258683388556069159662105524589810298238462808830203416655651487515489875111071583409359511010752213958024469469229761914103429500921528449142466277217587433280810143460749218912202380044553098693397602492198799966600923095826339074528679843638492712231059415904903506830980807293402476623919858259286884212255479861403414497656502256524766726699661375456227140454218186357193454610374682596925124735943351575753778527072110533238773959985280876412163497967102829403692180933531573055416000966907083094344835909068980167212321270979082410773093800868676999738771885216220098297242819589943483680298206775872077051021012803732435015492495935726025264897016743488006974155584610426379145851882440095373589661294918334742841322358450701771067690678831788874371314489125498669311302041148112335903808179651392910680451193482154496602083625591669164338026722902971265171632602554044304673178224340135753359457630346413383724022061341484168399696201432331743097583845712777754401436227768281478794791437302871916403092116593102426024704040400173587163390930889810310477118204160871395507232768703150356662201956769594865958901085090589311750304826600112196374522110413909140753341587325210189306273815816683235135161613334367310300932029789408121155826425342890500371505551316722656650170256551088129593624896624208086697730548151568638845579898540163990402658284446338974520332253172877531301079580017645732922596661152708953478226923069631776495277542476643348198429482385443711417248985477736420818049431565566082188470263013602035544323053912772458410475640740249505101442283147724772599075065284442126674651219345248383942325014145920014392834499872320088687977314372289651650245968283140757969447266540198216614215806820687266171211961585223714765073117361762816155685157954119794634820605257757347210088380870712782678624283823614182024802293156795825169268342827246124687947447229719297402982606259497453715523460742864161348889116916341696191268552083355556499080078259372996408807160289899739373697006713817070442494553414216561192661025114554144404606654637131517692260432515175185527321969409962805857435911436415785584103340248273972130842897724444223561216893591415607973215231064447327741307330232813184835241226509797992065198229818363909983649309525554272129996453515627929862825393854180399587535980786980099120971349800126118603317290619479191600899567237737713942182692588984581090077788253395420659158641229601897563019775997129215704104604493481769909087167253187472271118599068450970152244980767042902531222412098639085526082082370988937744902251053164316635130373217431102284328992981805926591988353509917572597722227188732213507917179039128114924440560622105945915625557181103209295357597777489428426405902547480258560174996368634180431020777833014939917667236187873369773516432190830426687988835498781889981573536040403683753690267986363070880816863049082122688398447297252417405674534807879545243258939224707626358561762677439975703631200977817573114489051776393455349882743208494347009338458060477006448813878476308622406829035475005162431639172376787700973488583275511529665683024246222899558993869205584373260689884763894317513453446199638433680076996700841716488430101678553267200353940747160761496485457129624798591746502645273094217472002886483442797189879775790997342935531235433455083610056767919302398186198738482305208998116238433836045641743052259941168516183155814838718680804771507357745268443644452418314962007326532527313555790523073611623313567347600827238369150236872349178329343688555875761158677426897506775557772228588412169138531252208471743742006866122390828534790729716322259931318295638083434650064356306856460361108714132796447631382074907586908097507222647280135253668051048694572934729868374503106042283841774351909012446064940729505022318914103819647630075506783845318543413522183560721673146946781502499106861924074256285893345737291802536493724357151601197689000060615875740566081976668211023797026028413990051971261241183219913669623998296706700869491030515040780271423870048886582247921131028361994562391171234068683204824712268246324478406137967336793777991321925346661341581507324693584170481315352962937897733449446506064903577708825875800610646822545245272358694286692250015540963590676148700168963172814728586745086243303039458074630985769926761507173766014859853145165923037176482539820223277877659578157328195978716038394227696345847656641164495659295320378224821183013719223028863174846801596884655656666254625162543884258790585262893744698465772862722791146998582171434741532537122309957855058576194142797692184873303839214645689725906562428772687647349165267678622925295010741763587049334403853114127795730108753252878261136567873038567806891373660170554222455742158500478916172190301673382532355233695846002309144476867400006289338256405279243035018328750452810517699095595786831128329299194903738355519499014029657262780599923457644772185641340795710012817412202098451088694840364938916099988759732771820876774514337022949886062861848538462644055266632038478331711295000667636437792202557200846966814950455639080690467238956220334327987705671365770288900320988320824249922038517799502964408581280770530153707179227323008888634471105672617434931200430366788027055024899138084914287456144077284644545964078421319948969362546416513780035090060399865708412195660578053355218596975980671102186846805349322207970372811869343881126842265742718714230507413327211155396996352888287806277962711800166944073534773606543608828230519949857726180127775132370718245423735201259565038435186439989745159877524338101484152290515162456689126712028212710031353022946113431320027917676557580049616699740492087792730526449864994037927167843506815996815673608976575246538251228661612252346671880600904144688683318542043725649002057381058902088626730149581771506867265631555802589557796953624690301210155812023209112649139059066760168314702993108678906303099085937923351580370243195981664799188585976930099351154767741927557205097668671714967168124152417110454745426882761444410103634892050324152703351165700283063406524083549060246747715933264785108569001144505555851612154663891301619904992022539155778819322721958853354515939627017921204607408048275125179084346572158219557814125410219102868888422881241546757401426579736717193658140708182322073078290666179608604013987176629965925979761935015878770865351890263062885119905557958419691499549944810104017366185920038700729810502457286073722165229670904571749767096790363987334397614643148156065261625560320508011455893758318962397378049895665442463949399085745189355054737959365266138661602510985550612922829295934497398278750629861506594338595613883425544033411707466145755093944750875106510727164456287880157970728536922825257976446254924548117079646199030277071624682152947994640315373010739246677035169263900139333101020283111884172763555564051942823161310289487476344219781619861496413773797820672647072490768622496098462218647909130239847367468935940739436232830475479434526747452769424616618608641035777889870405620987308340373261593142672310687847497638401179747511426931644462339872392060951630211216161292574944864746750157719750304087754026354580143520147873252504789491229276089971890124295099820013992808890301272450954524936824932461229846498612471103792126607858492828023874006158448184200254636125494187252549454600379083570500126930626564081817425714110490284838828916075914117473302064546663408240140143366176577098879871713529410385136714055861342511328196752705876937786629538807254675743950655422667964160535137438258115439625149522096692095191119228419677155893168423257230493034147056365305599612488065689480273993067514853826237448950173208064593322869388969790551428249036757962695793214068496240355516454584974131331014659258849711496037580992835795054125530249430433926036951766059360508229977794352623504375020405684336632429379461629082254326070137583562323076670822775917431199608385887256641582234149746027821774686831013778425853626253268798789118064488619517141001081505363331365784134428809251766342276019346350369782251887941484694493665862418973581448378399905905199476519438050469505531454592309979546426538010561866041237165245302272062721646211107756343251298435080643310896127645384744570634186461204599991168053090456872711138702391214629369345205095854576765525688111365032325126501177182847934794015964564461320097047629056235573752398571511802574128441054075126342333428751112280401406937725006545113284814420944668094823532771984055133420461257907738415143379723805830702818132518997325657086545849565488413503791043799333450415440920742437662516935845254274510378856990421950132403483752967215109838664249330697060065343318227792658890517696714675629085674215190854907806039707798645765822835628366564503575109376037435786222992665261549477194560033074366222169655697397874109200824705418994079777104827951927496294720956492326038031926762611076507621009661618295749642046760057604306098616357122084325319105813436612094425236868947972075761424445135809071273925465834373129902312430318393766586821411331821611564086594286270690730502216377909366040676487185430873732680459157197744812399976472946748485214986510825800965960974899098165900020597582000500206564917598088120181375692813491140288717120846761673395748832287556845742499228870471195810880175206491826008791825582733483484832092503808468598438815082998949301557848666570624966857279074970882399447950241340772056621299778777476094434080561859275487176158817178435036926086927822889294830271335696308070280232076320109365073165347965933573025763943218001181140416271235276360902782443014415373380381970361112404676552733984375699526156014825426921829508113291288774685823867767864205145603057899760902608138604252005054581218082521935413929192222605258388705618853265019844786325263888550481315655490973017412235543954570281109031133118765530283268629165886139076827353935170150436639545481945132258222868346383571527821615560916316355904934532139562755087237724310844616133186906893299442135087446277999345714791819537733944820779196433480343813823084117099835499963706216344460568923031068416328011019157882950751544541249796386133797683062128665168226948131216887992693077874766412354491168031354475139291397340311168107462054013023389372629303519335603478604868018215893920297210897631918443833526260566106407232519091485985444765477183233711905787138703385326197479637776451071912828265481959623390217565743746905875592516357005131271310425772641899501850871357234917755340792550234849843265957493011480911633267275429657272953663125204164528260823231465983138495248077639649982562125955615907550360625849837751252985490830251187987022891343017149262642040985570896572695802124542696465741436092165466742959714251699331478278695633135129590480804145348053639367003271762776556930081661293670838204937058454347382976806493449742720634087312431599488175914719098489215192422578485960966992199238659767109967337330165910327467656268126685412796159754335209559803013626600806127969009982632428560994486486012544419927000655839704534877961000508004054725281469597000909488480019841305776971597058866585588512030749274143591263007033497177633448967898336852106819340726195610281453226950898822337280123800563056063664798728099213031598005393797536241733316000200878883230936464690111074360812142410812724253860576899622596468285371357273701172095052685175684136027917955929275267738879377922667170776158406663839946154806402369568731390184432598043585838863893237806768461272019598139861947321529546369902854491488127490484726758735655950465467920854096048225652091140447671517008973481808634182803027242593432575907903211544699389909178127195573762965772032233784136139554531993296924759972047048128989484403992817326641664869690506407765484933568343831470907304625662631685425720807469114397744257806087333079362409272460514885652335238099188965951978524498292864384443647962736494011775300550384831193950461279871806500194383422653332624688069168222737246513350509722600265710137000709723438670153997598195142027364594989455949393588721531907325571737697642612296358130822592107886321842065185172466582899649851111606986482711606783080786723558376625782469630613480599913608579412819026733541912118039952611222774272724997015345998471083539712496772613565701271456040798568362222887424760017024047631463415941611993623529920724363501589235603370274445658747380140409563446000985344071265913741566471480635934021457266130431843567952271709356090731405261047485307018292028013068485905103556293607718866391620741600415938530080702228245216832446817143391514291349838403221866190201144201590085509930546143757520187976101831217710613446494724814158470408983805930048619655841654166903473661323513978957738732917122414530355387041021444730628170619242061666968905529984670204836662360855495754472262369025247795837398952959400449580088049820947058034368671510245719231369768810823124361859456456789755616078949121536205038775456000551140663869243441142099307696456698430701774379175100640828862037499444718307385915387848647173803804970231660912924366782509752294848684392647849183723727789034285946427444655735537028508587205441418191048740842015006099849906485296796202689816794780592922442634238399190522608778191511216060908541893842414308371109988176370365685435615317089947686125965965196645979629869524109938185544188735087287768632690311254448667859383882299179111198459293019767990929340678091661354549138840623089938489809670490114156370131938503471760922365226097335734073354033688931840204511935955414812277414294420299399782346544845560363062088035853545155558882891275221960747156757324300231441945813111128541125085242713231758540199182196056915448405686374691683431821899501488751494692393003964950203342181070510888407009505579010087109485662469381668336249510719241532692617836212039406522333030675074736624228957286224314824385743529771027767012358674148500077032656103200218209264843400028131912694019528334633204259984936058928025064479119087711744520829431328146962939016490098261286355943674438465245896810122342308141788637414820112480045940588724614101732491967519548417569511952722080882540555630293654483457113221438197613336509884707364336622950359870580493949794369765019503798763360092632722783436253209104909261378821697136890329228028750692926353341852323250588967751571511337816923423455787777695681256793566903476781345369351915206859721272542567197879353348578017066702405210944025625208154658285084568139202834540374746617221869116992004047818802789305608606545607638679449468274282704781872315711290114244142912758765387058412751621341009129063456087430694624446495942503392306203129839129636822104303888735523915048811337325807439186476188931449702443309695506082185673846907451849578493234238806217302201883316327196126485046112915716714551311043387813190093943478737611389336927629186004799466835334890615159251897074599115924749253105745508864364537436081997491724785695860954868088436888407112204109486632018920234589848281025046379713797947018716470036182357909506770250893928829184742497782221086765259505979435959568038915973680521741301406051915817703015363235954496534450439840370311699534860358316936354457371769764981649660500845353770565102271301932417323587131596329961747000046036320639950865200047693853154705205999656411836076245722834728708612996236251983043406411361803539902837082152729560839427097351417115047991500569824492706447999273480174854049227161126768641837790549232516237013705473334894573678030481314130051865659445215651242728578875475370173939951845408974335113006674916404214811247988204692066854489435943097000061251748455996400714395899309599568998559143767278120987953220721980504814056638213598692777512359250418847262306019289661326154381035547013682003011344360612450161529232595132817177917025812262240077535086487690996154762320354795025374467542322540674742095260630467804854886138355547323605480366772846502802451974168001638870043440999736317068045339522086775862048932287093879251110307973793852344801900213473458853797009889155526758305236424570985990239981061860746825233818961231919197653748396575815727275443964771380154365076956429205611143410869946020690582993177099664336188005051189929525935679282260511333565161839904830535269996296453978238433287792463693392025973833248035810337292953222463724193338682792899968318472411547755925947208681710742380059708602852513766865026727690601980984250306418265340136835747733920647804260715258219833516248439415915415088585867268290267585474834322362141928642999616748942652335274355902348702903561730933393916622437992395816646579302297867880887515432651928712870619264943639399593770181494848431641359785387899010035946404747969436083479537367933447421013172539399170645028500712092690549508690778887850860308303814766382413901157379353231301117600486790069588262896824832581395456566111012792520656557361345170608103640415873987456509948040810746277368106053723697072055253496263097451745893477458356487470303636144754749895148355529503570103962434982714396350086293055697197674634964533024010404600137769314664803263928644541124104025462120224693004609976293298774681228999580652805833695717838112146534909871211691461008690452489836608253571883194434289333818125674785483403048963497358521379690812998510674979233474849913598174639319817417182081806392931482136662264520477923463477235994199233052136272854022892261160028290817865854896294992994427754311012955220833677072097663584843194333090148211332935022714239595846954314715937983525968845912040850708892799767070671198701943414192530111402190994740870648771463150589972910613179199718867038720071818865917934671083636054031975711753581588877589483616084186655255170691704244231726568847104744523974287297527841816344091169899808408148421091645932002416245444581534438055122584847620946159900107337077951999315102777042163978780549243917952306195167293255701780127275392083602121953739141375891562046926458306735487190233162341714767680398339485017189014525942161556870091327111766899835112524626137890338192867324583457102205324647348799465788335476053055553001964064046456542710138486222416209379306511322764303110760961707290060960382642377486809103927045811884836412836398543825581665888125779145281410259622191042288892769256709873237480782510135943981411849304153259672898660164630939490085782847809449171707168647269566695529769850356638981364003892547511812012179848563201451903157056643056966933909021947105028681106134338563469420587768760109606901760540889025716415547138111320226203379715780135973526543854979084063190466027409624020484985928052106189327295444906548337128633086269281463313100216502302229161418206190359320004942175629419005251044909567678473738885389799541935550505049095061012330683612385744960406372579582303449265488966050324193607535547695244359398310509705790740400737315666912225225246379652604040589151451910189484465931242689886211058503735765802505146131321361317287659605424061198718727937110563398189042736536960133163948866740046475687509297441056659644773829864403430142931727763000044703466620245037378047974463077960024641919715474338072039319495858425379291361085390714448274296313183837929676607417368256425155579365122869760147630309211754102963708503846481738201199630521902849071875549107624077304337502902245990903800673053510412336216682291784873417698577245406066451850669489132180531661339835342937358993176854351704564778477259989116322146694172254248059680949200318498053737368470666708466524544546040763837948557315904493104339186513854125413381893867954710767643802179611833967405211400854206322869769217345394684134497558995996149857878782423405131820466596824152291547612338600610125950200302036909737211199223200881350867414201668131413849650420637379194306717998603851179278093357253833928231886059277681908540152158935594766719064634606050529733678947438450754423824774851202810413082194504682157092814906941862495716469801787735788166661854243932434424251741341269067923082245584016213487624309085086676797020322917671344217096588840623674515218773024231940634129993650932002755732073196304988455937820087092626081571405105821756062166024834681483033628680534657240117388442415011933583576546049175548411430895738833972868104758127843354501432431348881818747640137273997004858961228646651303271895324931715647781477440687988136283660953098006899331993146918324758166032157563165278712504189152373014190060818286237485064174329770704263910807211952317634787477240155844116602828332322951644365186486844243849076316372232609674698385249780231500531441314883287961974021898516853302063823070395121922341445571898596627197005914965834530465828612000251652496201973291518786506104886455800760788822572775303261519240987680784232578273849082160362322052261241849364274355791569147518068510806007549907270435069423347506774545882734549033658477539360446627461095594930606000591391367905572588030088657171121555077981039782002264590534078272411461374692999247827238358279311305063884487445280727095593506793237618195210529663367755369646102022429010628535998711989634415311917059543108010680735318659027843155015540985510183365877434318671789525895751004497558269114785583307648602817197486207122458745974993041900271842954095123816268171177963064006701538362600990100949399892660699840562978394741459113435834236658732869913438222157034329185174861601862893812861079142147542250877359542295080544225407318491692162082253274549485372473520126981513246725321335798664548573058210688431910426339764355881653787465984083607562212148601579543343165869151526785917597934317916440925003172793072236636018116683019663296121571310677447211835997749538200163489799863733085539550169764797069646456894489992282385453502425091830722052900124793955789209379396365983760330800713222234879687491650810482965418369192901298356227310681029707894577207406770723536305581112628643519505005412336175150708358099401485446596680659065586711218954077185453520330831719353962519220658085942029433125797502006878016676937999140800951094232884113621553097635391521706103847318812687621947445115907441077328390118296899981251537679084996771245190472807941028075214115185097738506267915416986141099162196855624987702099002908911395118498994951937525994644083822788102347905748931015462136540325641514099155596448451050507110394050611802907070097775795017937034052464912559567902366217283531646973681282339751996032976706627304872798421943267338794101988651704225425400846591999550498827169097803130472611094278827198364860296453550911000730396332175066826153605899229979526082615073339367641844832422885964809255457301828033968453743186374415583638017280119943191781272133868356725867726247738193232722990468321753369392314798640516635882846214892602717122995315323469129577085335278286817075837128783230845493978288447998435136441671815038699577930397109003689940735569032454654746855238401854451373109361564153625784443503740718077109697143806207299089015363540845766872022317728225095673937895278279994713880136352904207335549858285780269284009712919385130573550459390726506963622380177964466718816962028149224066341340910773856803465888416692712256331093568999694903111948297876441940830747110646663526987161520696273473477453340343064139029476479576884300435541683719620086961177637005776863170363878140757206909681371995807329932068970422415961473324859302431411764177776336973652914177996413236539124724796451662373459884311774932504761796140611757265323468267507578155402900480969100588393454341346844576982014302938694450755935962029284505481438836176521018794327677378554176035947250245128863027174725472641113467098616462715043845251067656597288678798637971570875003829202122002024570336784101879976052209997805456370855509407735359526766347132154236793033088156856394930823838940640226270133029134879819486475831083691681502289402387148240117357396306596582055830998741770519153106952319247616679099679149047369581578352909266604208576829365464154148359334600156473252950440684329329775771934546180438680360339213233369320966970338522418407213283031659898190529079861404996418537833536393525299804777606086881721591800740029585832634155863021674891053224961633817689055816407414767199918297549350413379610626935258486104541674028655363281678446786013386635315527275583842970932434534750592957196363083378170846748832507280233869257212426051253670821415670867624050991006956630731395682938348232569748143320915368808463591844021081364592511277755579080800529833088256811872805423646174376597719065969271474567667041347254754410464651377959150371808562252962381184606624241832678471949633496571376142451354957171710289809327127473178463279336613666459822183177679763601400540959445521789780034225532941808539213737123552656953912067315276762681996938797930598951999437122008543604742455160829018205885409124914663233255265862630529740559870941942008018980182138135593458500227365219433771817995122422731451223272538217461141558856624614484092087164072796444529586710614196038363113235992020477352838416086970858938027924147977554280510368355693938043302225392135104577757011643916464263093192998064296251565950439858692228986257123355584682577622865288322072722308848061004295658860166748062616305904750290878811665773387859922868840085637729485336804671803195751535213759713231806022065093631789198072172639298323557713230192508699730644893305801604829524533717919233969682775906419314991775011542734645561012285462839195424067184273982277594609221380567420213245260075359170794654541584434920745727476413483912134468189557943856453570702810052335981101037944601364893975097962300889689888085356360692699428603685991266291446765140533201960471879171559312563577592274988313527293720981127499302450556138495752345008178536008937524930822329086407081557947691152996331039900390775576919646421279526273509934069962016370000025669491562898232542495821909008221603884572083292854954408490390125669153818070532832799988475073577674036127216321230889616465288269509592577490737890614324637784777243415523037181245033329863107318864683463060094970505795782205158841648256602579510848560761034241908695540057901098761887118386917744572800286932229864485536791414457662459751922072941153419437245888687000351765957930764845835788643819797594541439229762860284441956895468394941710977594661201240549769318374526501987584948791716934478514041507160112767552996090258230405142178339000385427821930347837945615525564269526891045742521388263250704166257347337380642309332484660373159402720883889699914517422980090928134391315618005244161087581000457989275477257675525256554637876387599062215803444417597937459720670598667548087328393708268756506534462008053568543568701998749381326027037607465014766364588755596091837937210306524682055541889973281273451663239025670655545845741590191271933458900997050023798539113028250034567541733699190237590508893951294166625793641692278305531090645044224434930416720356469745070030931994319821045807931013189055130394236697359616496659733427452587013076625155088329141549453140749820787140199772699389343779340976866906450305607613462830540341967130767546389607592354536146011432973420076591415019066170734351312054296500423411743200136222666387188745445099396567724892267974540309969497614313017654234123177554894046563025873949254659678723117028294021596084152693250836155997203440183212369472558481416173291980177195980105417688502909016685107355503016672383628547545743624126613038332964567656796231381089276273715889364936656454365398374950688329135749702469885324563086788449770888501345225708494308831063386913139649226928229224810584478761859913873389427776097639519798428339347308001419309340641272000698334572947807806610920432040069729478871926253806898389941333853155759500958705635484039255200352945829868772061235057401568411996806782965646247244952910914823544092185773821128816244911482637050452541810519670533818311451657077965904665077986531571602856713059197378811287534698584236680802797495873776020128785065842654781424956946262150540340182611560672032720142840929981382809342592829545088958941804092594774306279708229876511477475559590440546626006923327896082652183330413467201351873319743029984262407450266013927582032039833756797483781408117521912692618683267459066402758909499490157792940886589444011112508936389789245633774187323080878960051150660894812417407641907148659596041428016425176066568423133307889037448959562832407371891939900738527397289296626518495936720931590766244782030447318659251161546804540861573154209200422756998938898527372113021576806371605891442391961462002895060124030803450388337631679466788244524372635131228361537550967936276260656726709677125388453766661743567256210754510761106430636496633001932038090505842747771446601057449700868091293594569298635628589359360418097030302474769164681281166735261074986060322505924968133897680194293130913713908864205790488400877555036595047994410908134588795981330831831793810513445251126701529731595379386672797798622666554093499167860352342288396673014978174267195561709088694645447037339972754732154971697235856799625893761833388944305564943695975582954286455169774571041278760184201695000295978298036407800491196936147906560402897649663657397310302714305216127717955883349273527340346086122909988945697114982916003037248213104751363379342494028153890778014162617069440370032682884480714483953931684260546442258786021549887011310771094291107561232496717691344285991107214997633824904786295690399573058466357280158326483097590771130415889432365515454466609182129431825793146580922427694469248313324065298125958603486893927478650189862370230207615314231732799105900972011393436548051900194811784790433503105463035145825262957109507808421966373214985937446685330323881201942449224662899164880223071273332169582578768370822483974925737612311410358499955545911534076635923035585086046541162533851616829938905097037343301514179804674629678438584737108838268583245834494466597293433790884464336707058659685256285334361575049748914642109949111236108264473361395348159434601967391633110121389267947494861657118005231924815105208901911648053813575643398370090570325176198140702164235871133800764945751787862633185708403445741789121755412287590352186023568461228412521916161058263381080618927127983919218708937571195113783272759762737761509659996242374063965678044842774977185074589792832881207751821114084808399951459424160974540143428850162569498640412812878215826714891201384288414260048924218123734800106926451897658602410882964004079550667894841897498435417386776193489244149513690150106117762131423803157914182585817652287159372959608005327096085980281433704376302860612773948958955639140551951903052550071958996668039042820331599351448125365478336594853397810079646720523035425426519276563976481525387709956998128074216398979461803501486603813134181174850747463182547969544364950380517792634514619180378859692213041860009943224611861673878551396140992559421312330791918806988864504480130642523719126521046128970769340828177228316471415748308439926286144986799819648401890803710437465418144241840518471442601892610712270119766927922325315286133308800788374697014464733379807201332547166749597074815663579313545815773772528987621278667685058791859872228304982022472608127741773860196922062556876923922448288177047125330946888177527756266467816425094863190182637454404993973196696249549324856108965001904524143868341649353905904195697120664092737887539456428977927152431981971066710954383751800182859576310060165109949170401065271080106893292592447123340671406397181438466440810416095147933796125429742562672617428261177366395737233611642014032092851485876366533031682286951316244505405330028494629064146469564567454634339556039827257976848975480553981918397104959202899332624579373882514063333034587462922254187588679304403607707677452364331417247390774706376654584491746274083318227087731787117833107162228128439469155750197479167098230028555706439340931840131821786579764180822599475313981275912786964138600892391014640014724592609101904519709678550107117061359457540404878582965658526612872394436862712092569849526010632338681353923832123506735961634743863127869278572429215515167049872052983094810326834188199517941234208622932172300615168638032549264445338087021141424570795374748979811291535851132812254814854201593209929799311975662953491394666828063915617959398369780491166939268050210135792641974771438653418142154860432301278244036370671755185359050713092345487825756524083559159413293764604486204236903872311801807193242663832437906201126630029481335445332231320142739307159911597282227320828477474590701285976461233733656316838220413544225628376415737670188824737706681469233934761058629008604770950018061310099822724923345277620810196069208433218001686359763051418859234533954116574609264558129573915474874100844302232324903656129065996396707720821997409953362644983882721865968366321243441124211193692100772782884095231580464816789039427923152453814321665417763401329630084168919750427766985970604731874969390593888601719934618441317053381529762257753972059027469866899514312703556167127109320587435852425387945376699928778950189238516785568639942563087663630195621995558832025731627418995090196422874429813726244863545954407852527240111501617051387548585630847327377981619092089906696472369776087416712994716140124732546169333012590176197678623434777829756167903192710893387318588976013088872726540429861719646617229154400910338466976653011412814578578102199514223823247365804193156403445085642920330116323590767320644452193718047708124673507418770902226592746336870544541387767422726696914498167847264338006432037916148783079554162840885217754048041771087421618718798180345829988837998876251064376274131126917688690379685148584214386147802079486452128310584139554509956923583735407718392615493644987272565302489116125343858985558267804174806608583258456746965992935780651537736415416300599702418434106153426955018262976053861395560544261091179212670768685397783912630114333262563166671663253765365140860146631994916489328923101009886838812494503413320047741933633359008721628200801573648000356206331008398475384594625530918223144381772327317805178608144371676553033340558599950689731570842789029479448435730440007092705876814756220172112010341557975485541676425581277458538385997523175099856261658726373676790496119110928134534887455858521211572066377382641902022020462492673256142286275508110731268811129511732461779418248848134389153702678948102345357078465760528664491499539629377332222966467351759136580504477285903455265794192763471078481568336679100302322443150871423419850215332864661154568540452390165814000539712669662379045812002770365570043562942645623159082297816871550958349144712708494302691812250348496294462868308973499815540260723773715642382508129873850638301849674118038805654749333998743071678948353535497216591589879140910093019766541293351344196065313864647345886891204690089733945995311996374739422424935691009450879054189879553665446430511641420072969172445851191075541377780808658513167077046492449706011690336052810231435127597706462916780463571852680753466024966991833035420002317945121896490620635987891673804034505323233338816896001609350260314370775182216124916320662915478690746958985933352184876254678335581202836700430647241305433574053317605235434609831735825304640588884099920765797610914688056184344321031841214987278165365211764801910752896863391554404308189594298349113789430471505063805114371318994526110587272000789348804509677644989851575455470364830286604432329097033322389880172979834380994076887224717997581403407228050434484598027041213731616877748612293718944437231515030899612135287027621904597207739203157999713871839226566262124591020652346925979247188751957527373005232055785464734654238108830818919531029234748535786297218503505854677384813802780146416516979601239785523895288702564657397850344222535648841458874430016694563304764247156721971786706434391126147947679166152660414011750683095318759255306545845269670894669732791399555746488529307582137313914173696156513080659594109899940327072242867150951927717771388963611537494686217977960977531162955885475985333760243436354189099108183332397471922287891831301398291399781476165897988295576857655091042030891158137119666392577210928165071148403732979063490937745617726267546794878055712345603064596154409742306715786587688847366725894949609349192316916430364693277398942835592828098745594729776732975217491326587054435503732674015219538559536851620721198293787297084964935701685813415560936289572314739394899175655147008275443480099491420939806226020762514648698783155767708671342288767172043273162735784445608584009686495673161848915603391163545972012058423964040215993706050113280558564158392184146299094601741351922529616376873719658630824971146461078892083069255609753280878979743328593156764001057215042122459259172032988009843878229061712208795825635458932936201379442165549571668059713516515929508153687215421165230073414812676157948514867140992848221598771854414924114919239877379004135837649405699837612464710866054368772660888811683957579396662926619268850609468688685778428649614611284727647372031779943256086794218249738257984542599378130832742994214517672101561357318029249640521936546596315679263218073784605671741548986727768454518255515021901123543927661909002509832112172732456049365664987383359177561202542903793799981430898754163722000641690097334671225657570086723835825760060848933908707114638329302504919058328633157164843104839554583137771437420239447566385984670308826780490491665846980108360569701487404934538000174848245104989157553230395001336843631853326675743858179555909445838636287596735290577937466713268529893844603941710792847575874985613114350744279070914904912455667096229075542411616510983575022480562050916174658837750526316608407584707303256879527955352573018221254821186740803742653242768236022433799278524892515978928068011747115000159327024684764950436955954392221646568980147568533336102674288179788400506530124495838784740280180615546903255690485722149726677179507543987287761515638893588644446386820494720086596822377293627821831952841750225670753305332157865295732378773892718168770129760457163424621976467019449544338399703040555059413753907655015655421761389212654893873794524367250482240305304878015057596886964423207914173305415165335297726699930307429760234037934787823644209042032308285100523225309530773403612734083952265139923823873979392896291662191178997580821101219171565792458490915162533207017789567994643316482494996896926798424084034398633188270215542694067314202943296597680543656278558787774675541283360229912588215387789544265022849693484423175190102353969579451833249984655848193190153406800886704489323236304928267390666346349285475053908116664482748547814286126213076608690940015378686847707855340791066398962082469448559035907697347950213406519493759389696070546776682734700767350721292379175381631640705482991692492600858271567121494421861795734720607985090014733601539588173214343372450868574269487427911357301109141827569781968784459029050463850365375975450299979634632521114427147739437095311971268663133730275310954867965883156065096550450090965308008540615434147946583842065929166654899994277541811754728211764097459337093008377010222522483139655012801757340966247248656118397964423619156923586909649384599166086426305224936684334890122493553369980318056879435310244543385671074581959118427021438009350241712495219595668156983267301588792852092227324716712769767955951793225850533038763016958309373960438327505840796796806568113852916112755940004107774770144850668162647931832619332018702046202683865774597851205105840860992053602441437378067493215272262957974412153430301351581442052296422523919563646058904516357814551279374061033023249566406576625078010316022824078711017335694282744744161288016940281937737400427333803814338686368974817160652164717407091879983918782372507969372217468813419463963191875417145337175893982107019996268494651469182161769889362540077789082581571273526545115033492633486010464615249740358780638858779997659245108417265315521776747479987718762681697630748545606793049833375418912329436538482964200597231064744191958919876932815855698053099587060125236794725780602382952259656582484787046831253198067126460145155227517885506472172753270636664155868231797219214761664952962355672359672094342685193185603134954949211487727778283004859931717946457449763473675623087085119172273170013617027531072881033929666130710099323734773432012898979894499931714608103550111921719239537238057520429731731005390189310476308827251323930205201664960103451340937690222944127944169982617928271476686811331564635930153905021335482601549196884924850535453962854978510778229693129510480392461396040565733226348254271160786013707779787670623597911629930622219502313824086218438572325337227215451399369836768981563205873701755681292150512835764073152808004074116571106689148253980983672367819987757046943836326887396016987122928459423506345419446451014035863948611224784321685139337108088703776367311687252291917798976488209695496498953726376118424967540681845711309417248244293711973605804402152174200069073985241016859624350710039489352096247302813302735945755365603033780352851495129494031175313903294412933996695237455667920820503436736812298431171491637429406441766423463159773942143786455029753077244792274725973422249080393345226715953105074146569386377838505595712501179772411811327028906271024719845629764356788004552062336027111290375944958206201296086861648625000483824818260555760031987499213962813927759586766397311173327198565367450516745849074038052177346741762744770367733942077539281444134474066574113441656165113945653572002740747709065905370906112420441973905859537232564360567472768940059101891218691333913880013982313953907590965654686872904040278051993223746886046685051679032193958495016843335473923883982568847092198102745768532773210423939156892877602292856719978477493219564729618712966536298290486344304595723566879274712275790576580973585313091998843894441148947346995846655848344203863887721459676147452160132878598470047898411874415599213324480422161907000700796346141354863270550903172061120441637009843308231834810049342727845616441794718833402712994782103683055092397156768398376057925442726853360629717132242858386644422040163578105030679170371243027993679611633528093932675488881414187689799284516108984468891216640016514731933290523556223619448641367668998454478468383090120927147832200226729735839238360357299483323933087699004426940333026425248818682306117945941665632176959321702822668440894111196324290100557729195805278955040837471860118642991681025100297610961844574800813221576794914832332910940416266927334981073985079776204190817301575624496105505822411120129497603218894895046433656709091304089385908277436774581940845088333337440938816742647608398328859661279818648216099575174206962498070156196300129877454102066364963651583251618403060247227379552732879080690537441363373939851505945279918399149995900126821075848002417653602862228010090945491881858353042974951769887972793895330153547053200009471975140234769632561989679894592991100914182648820685175982279706167155208495535821698448624762601512032679677673499913996675002699395913410960581036366841536802467186632170058833577059341716795048124097489194898646710198082451388918647939111358350958287283187455899178043261059917030599417803384133035481347481169204780466986225983876880971103370422707789436924171886046916407505278799058482101594782943278362831894700466309982097997049454889356238194930739020545968228108858906348277617112341769546151766322787006708968165314186278462009857930676907546437963783829681284183983688062704088605988894178506038220994490106119339408561504266895887103528531212607820420411954948647968884787997570186262325955669295664516079519662971350302451859160550438258586599564590130338326436049306625678155822654489330611123500584786988341910328174736948975539309317537295660988396676526138927989772402977877753443795117742558201024390006326070748584153744471331075446428959976825585227600038166892928736518706174563869100146059799935401421378545346226180729330266245733927711627731828232542246671958920335302820123817085690172086711161339298211787839858273962438610624903451972563340170487665841737835153225221901339192935174723561746603341533509587399599475281381156773471424518600553840369124238105075021743653152755521995554607681987949532069573830475577065878753359823786046535211243120096399346771883308126129873205381355336814656957612904879057341394273154093847291219435797957511195883827074246732459940331877525648554827880004388700472618772703578991534542166207590844670617097090206007664232735224856139859237369460023340720236663067717730723837965314512219363191308016714500549818012336731159667359330029508875556771588065316544342987340055634643142671664745654395555452625549756916965626085876405694061917632953148957558857872635859077482668823252688971531259395684372588458432921776645620617047306215064296908045344375361032853995212398857797971189218074108480656633171999549352803204800839372597565454170871781840993161179556123568737980367955004459700783217817387322138870030903908237136901584535263603553358365367687257249551798762169851818503113306901756722877620829345369767104154138472271526714750340639297461121023105004252973375916254045395462256648948910869457253175432611606874255093539130712336418116834235110233065375835318691520329974285243209921246402986070014579826449394707518964697074205535809985714214730189787331775002107382166823177630425896708431453621725422138227275264397373598135763976704659484555422313247440093259676554554955195747657093154114916166676627080289518382310032659926664585288485496203545459205036731823965739425135206794302817377496995931618767626252812930167983739243285452268193389020641896324038606403348659363532270123292905133426599072908483254005218883433033489839766229983970549476565088688090556220685956667555671721134109483921050106598831741721063055921760177354927911312797546876779194226149145226478034677057575549935807348029147030973833282648337708870729746459274771118028165240067770365378828242993466191911799099446995818440942911455872108909495705792599283837097980667640324145325823325302005278601624448657741257989739843918494184246946395360532998047595323457845845877036543485177296848808695524316164152386241004545670274340432146481673035904360490579237688409180641881791200022614299439193854537665047983983171637033259126641423690717774795904868699976449386858134443225889928254746482957342826311995176619081843428616310675983587169991879535174632052564601569962876283680210942912216992319024094905678900714133862373977994714881109192224834429751199376485238900070574235927311404412430980103294269692581449053676118036601997698817113374593850542420402820484311544620192359691942088883121300954936328457173929825502290116040855881849931667621931135013419184291198152929424028047812075600546377122349493047788779938505685948528968834167552104325340535210463563665282446026503734845343113632070403958266355485815673973017425002591402348876626969905741797768718768738423605487101041880358472922679511801886038885816165389972305917391394608990587562749039595707509723775433472151398332286748667648322366715845105140148223717558847125274712905113142304723076856759663877767319261232716567350605549649165735293422719533648638378492502245407567424435091084236035389580682619356411619375956415890431961140164480679453968589814845033161552606727738849180323188909441742265557253999512212983884939073560363733133379872170692517069852453128998365294700964572921837122592468032153850129813370894542239102156664572740146322887958103808621454286531515431794850774688219215555586311252791217366859155482929215918076650765607605471510218517890361079440178317910160976834600081644560131355760022353839428240493498839419874079072913050330794049724183429336877576638060953837903371098749622456793911648344989117101349493072507467759910331082274459719382968508700524755466330295950425508386033851075017834188763718857515502214791012311678560402475396244032819575958352977966588100425109583113912866215069660629446965333868623142166101671539340147738794470111700137191753428743305700409634029874093139184483108507247480531111445223861108390193931644432242897683395991350873237902826291494673802533775650210405946786717562046287663093816890558866203393744189915393384539820547894641019237556861656776207457330714758683609743930151381940069162062647465244255357019633439927537907190004865863860462643681388682573349905456530678218670096312522921212426491146411308484412904700705197609226576802029272608135955034234480935269438228639601766024832065348028716064807843094898809062347032410539486562115973299451132908884868354353767821565403817770441026259836155828846229383868878450096894618784508992420379776273245672697782974736800903847144872927629517243121523836133681659051272687816086173072484952819239055496521886035365266201636869510155190507234620114721661169244270588316653472506527744434714032351526833671708356121376952067695870936550608237815807303440979536932145290829717933657404858672348984529473131557725197100295677149884697059430916244130741716166263892158988208087426725787029404957442950322483903308706298736608391032202172703206836367487868414666647317818604747017503976444913089231766652517612862544494372146504793811232671041534347486542443618503952936312130105202595057813205788259512318088567773136003531144415310397909164006104731082218984792691476768701769450007510075574030368024122788307439186434343494841415621307653714466922561793274302806525333021434370241461809389031762263034550158113680186863986083745249396463258572757226455311956843922913987228253135973777430869437876872121739198977351938566743990347479049431050281839868869676305010170034845331681398095001580896423494387840775895608407671136148288144904443090818118929860820095955180157363241390478513553343480813809114795388904588792971268760910797286910513267868176989045746548479218491657851813066457963695645286813892076566741654414410684285435652658859976975624134923273184196444671406419665581733245452054277363657279118446694510713660375353134822442531157252600146902265543191263791362304590509534664519045320302635190024592203307090741115785200049740282540592771431030999974496684531181397307809975793549204195668345390298777860465905241488457032094797660244656309715911465460234134769142456070355578117549426380130144853234667424989899856338899227138755251148655168034113216538911435849721299833064510340834528518840604901351113853938082952179374514999630858619258520140543728250374684201625368323298984105464269847922681706100034224631892041015026739655843213916123530730153405844692169005068269885569397032936795836012586364654279143234108035644301602225654722170293368418911178683928285322195249127287327974027997485036599082827841246493087539482584584473163078683870303746019892989031877018135488052776330989802655561246088011884527622472270499184691050007040994598780858568769288364551734807726025880050600664784639236912330595184869539994016706876118380144050698409197458833203165539532176107221732136556506114324666795371367681805169832625473580599463258394102475479899618614467647589069313224368031156278856017746005589489912607264821361263003675571800461606231483094078153208873738701184424901994151852577701864010498617746536002755846681352548693665236839217073696674614929346958620823005828244334894434785700086332138194203416805312798194776919241037023931427372631796686561145454850024688977780453208116201582068514918972258059749400329001826022844293066342670684704046288911581630969718225162580809871177994784315451083227075073694198787956588809024463238663050386495581385563119245249322435711139340809316293182838161854692001777879765226436429765864009850704243792795602438028941815727899309852031614666100061817706364852143500302408420722911277134795104594380272831170029029283545595222362335996052073048220046972826187060680392373066292745547854498531877825502788842792276129466698158144539840044102753706345607563074773685172718566049816016419891098829442184381561505490908232038417400490217164769519461329005991769262941634690105274553034946856381664580244625145866775096189070774076201103700714195331727075162402124435755083825851426637682604345023703900848882038620354093588409775766021516479163263297422313108998858914151121682098871307411656264864338114413652007628824650369376909420092236261953195507521304205248672073529746241382206101115063759658500632026493025994220826696782045598920646691990730866313099621940251195844588080381593408187868354444958462742919045632802308967128893681042805942318889872818974236559384083191646341401747475122549893180214165294914677104648146918729510122887279571173219403016896787158511326736298260631552135049426210507177775694471380608849481743009757591758223606817968853248680238310701539575374970594283941468318904032800762848128919054903596975298647510141436399129608468937666350886999816514516723992423648175307106615955456907903419053148939776417587890225300446715028338957704379302602610093878269663054934920725098974495423050261073093632673973261124993328049129265716944131682203035644290771099299397983488793367667753279845764079773532488378679003779610725332206535264034076907904239428385257751735414265707271439992748653913805893106715447004787534489264792252848166725855015922376538381200562653365416566853482482274608630535975767883409339752494480139995918536081418776234715027748974980988873802595326707622037482337983464569773666628444975477178213089875857167868290122523439961094840875529284339772404348367455906949472541032814893436966512799516133306603483098971008351575785165657706295760031382130841101646780242287033838962439202622209540879042455725492196503678842049598559408856973443988924486090732251398964835810475207407542697527421179672647792442493959351574025736775107255571810302362343998229497676779462791925350059141643829126763184173477456235060702247939659576207827583078403243624567208889631602348426042568352837228275736307047832876099567044437768005210673808753952386963096671642403603893318957291695719667665737028461281845882340692192311101418837417988076140891508154290389359835372641645742486222230038240605420628933922631032011462099102645004869506834697364969696479002781915371346912252687333448995498049780774628017620834336414418088937374702222328617083510693787106756549980307914229046060841024485695316010800792182173069537103023732409744030201868755392461858979493441140281560029495659914226856702812202654029566592109108325297772065277602220253402961536465982956174867706395152949986759280420142096326857022150647564921867109307813278637812679114516755006669666764203503253257873396980274082038677564279884484737001326092497113911405635379564016004279956593988959097387939505766076897890682486224421919810638053050880124138560298925244642997262612247871649117663218474637878856812827769792819398029804951496696929021286426836131380358447947030650575162965896014486225304078492830092944261092260769007011188663887795560241933144609952642224812622557448234503768483612694415866881942173049170826439551698452811273229668159320387968253593932716180554488855167754146281886907202425311494642863625048651198755944857140444191534918251079184134675780822543062348161991023278995206256802613506339843074494688792311623224788060199348221526619929936667219678345327555799717892377216340987749544991718756891038581115008343613231509720524784461384001546116106731312730093070397726819284258377645101163870621596210911202457520426775280853824130486641557125386773341200282739774052389079126297501196715181848158288448385058584190575703911594425987181213860492835072082515148965896878239254945852838404332787092390820401503310499666922175100665400411685924893392093690882761624301227387446307803312478617220748195588277187710988423089007067063171001094517955369643488128111350094432744729753123379512076574030713138896613859725459240215442439374717256023483177267965568110727983038163321038889714332280272941322085333443062081421376116517365632135027676122310916895889420859240209462927513821371235778788568247888084572702956596951175634957069207753034896488524030463285004997918106742214088285161827408378868841815547102989180813032422293323636407389595862762903096495366160643719915058310455620504299437441199678665235423013955896313209349998320646738144407671657101413689906278259184562165651939207364597051524611012094007652454026349879269614026481994118577177712823883601672823504692994571620670462237751453324204488073706776442950237424410999923350864167373510451080657904105058061977642272537942652627851451957221784950836137998954922701987614548745439149214489625653536772808567442695053911434407675539894306544835815834327081986727146854095984733965836071414647489295944587667742345416273271127070209095140097942159743395683251847887880942608517121864808357305420523297738666617537992542736838922767240446776981618014700681270232909721697829747423804396472304144972016175554534659123789304905145118817449995723275530020439128444687859074083671457521043964629379539674029179932494273798236571613470401166282557941041277860663572217948306066773078070138123766984762070469255300192176550771286763386024822230780827105922926099504104266641491355651634457331328355491934570085666605768041824906460692563302102110488727194427335780182562670977522937703246825586285039368178404446990595359649692945971052787213692626127160319629206071678458500192609781777528006072629511294651104515649444588976191370582359646673553306073300085222893366266487778691201483720085569256494632836848521283262817169509064584870408377688326841545272443543514068357984863964870580067810114623989371148552250952882297087721443327286456986389221250126503547108509822186339615115118599460755143110475505847606543701948014603878718589818811037139077407910747118203257150622027325814868969695387985650553342295682949463404888883164268906254361677276375813264689640920110108961784927890359167171696183898939013375378487481214262457863523358069401164898863275135786201721803241363254321504552669018411591033360171403641582729848822236349435823882249654763849612086057205002478846520726961103138903434096415463353294160107239396282253189595774908527298032000487442315201091920798467550637799365484161549599020293192227934539049169936675263251873064540658518912672215717026396642192316270197655075761987376114932129563370260237866436311798338697769382413971068880893782652743927328269808509514557730760877418812747860171088471154092619746713662676475344499928091718371583621511496925210363200983242702430249190167930367807975207885481960763164307607508669187939491066673909073026740694852634430109736891873751459821197334636885265734057843960942139153641659782911499210507006566091522088358311502492150849012195354268557277560811908049416636577636190621835686981272152812846896553120097553427044584234089055288748880299352253952238639613058308222377087602846776542353559750419440252695639358193712606378532898024347666961975696291984189503926556518420630681922578421437706310379327434143139101824696917663267818589020343607285395279237748227500442963793296641873934575849802011786450715171354332645798373244120067902704513980244706519035617668608148654160474061027478025696757082035789279457249300385102403319394596762094111846575928930761301858350781967419877460641837544916908840041211500480907792222169747016784376237626755321607887721634450288803119736943052090739179484960429054138819872081322085087931950258647969678996113572588508153842019821879802605240771311732423527309629145809200254499333647323861736891759198636924837361857579280670725127847979689676413393563083021797314651164114990810159748014755655447551384966452656338576164925213540427956806618615091693828631683923424855408847622707707873719368543462957154046852676359091470556891145828420876353516050866255572345729694115647947902110869428523441364852478022673086483433842502769685519535340863824861217487427837515445746699604752989640927714372454215889780052407249105782325984778171930916067749419173303693842808289992744012960375085636148655607630313411943747081053931322738756082289694096572991229273885780211709281406689188194089750850469915198783394639432343063418892819220678080388419895303883832130452998505615518135696484073174606208763668733401072097263452509289749142041856634789023442039620101287862482975971003799884293443361647679699861408300330713038250986958928500534741750302665767219935385723630032306482718465002967679405360920325466834959812361483024240368339290619569683905270408832533759719432677840836902382492202231022608202041751284700713063490451986896855178945213304476600148874552511707243983540339532689250866098108804273933082920344567890930733441652871024153588584555692071224221873615580498429474726614476870361978281436520878634705633757280453397051593777177312030320178926431742003275911291076696203244041340956111487005365837285945015720128877481977465843758686274896996164937561874165814761012676195058764628794161730008736145434561882092877933200499093011762691025076629850531424752047980675765226977174405619586074790390972042270816708208502240173878535804076995911694755007812295015347396829737957960203902613110500978518835531958678351604345016146178824425744082344392354528449724441890892328931084648492026872653822659187119746625627498081409357704443676726800110122031573441263411378901268496818210065981691938540376934433394807320339230630136473996970078809888410318434266543097222658322456992261336714561124245920655120510853963538839068181968884377263420650948864605372764140531479488069936048259308013128555356789448107756285481338782399504650854819623027291166083763242271407445807751300379980044437658091995895913780068553132809827886165407694606189725752169315724905588030231693869163919757076919945367521888840676178312549362716219134644218821240070686422510318902103719921605793296409446120152351007640995941851508845206162671333746455618271616656019597294661112045444632067525231416902597465437308189980057188921881724725537019869827505605884517047079757677391563705157328855596333030762449816763017919424328055218721841210247553401117293104260256295901117338882630988705579035645339474112795702615778883355741456990092087171268750284832606774514083499742224019199669045840686691592083940230562236316334572514979141436870570092518976017604411991742916795099499612231557015537205508197677001488991634219011996225467144270682875782429605536956666372642084378473668948075736483309108104464149732706048934732230574995330018689828827242454611737376153082882976650131806249465939866229441898108057290115293974075590214331357126051964051238022101832340228674276907891248200244713023862582856439546693211704863779063034481946677100202115486223083469838492547726922241503569871438181437819831877307807174521380009891362296709482970776267613887776002825132496114382930359516774100577334114127950179204011568684318239302589615580277311046002057115115244466533328612405440810515440551563233809479682356919030842784504305442687770707140590877501772626138508985676649488018591083847581568569477304917114961348080585540683920628915429488790671448054126006638089070252120483203657954881238953938620862531829436543728690985656514365695653362975254775788627817960576203883799733762827524541842677131028496807364950577867611924981510769742609128348704010378992557590104167320188330275157201885874226448980590947929716409408513674883748256737912626605580712711705930594594941156536056921662588466895272648845441141055626579803693000979957495877737201408713756206521652386141716185179157465249113345350254181485027465369692972242874843060814617309681021598027317791519513190467370566764972323721262620945709516708512738341580119794336985667314199938714733020596745606576619540324543484960896166223687308868935922670002540485305162105706069954344598850521248099096183920203710540672405441575712279460392536009625982713391769303155856509987362027907192155759886532194467869282344986444489731988472561157415791387132070869089144003689715112843212767928609507839173060666934643496137018476576263278517881240670801890144669068010024006336027603579509209648357976455814038219827740452476278033911887426356336897465123394310302378421306429848716599558079429833838098869203155068886285648570658604062775714266428031079853348651160024136567121205632606248399028756340471714203717352626478202129831028461048913162163302855884665653182068462478284128647798383236003297278157716670078203902929331099365639207473403627948275544134057260843946208324971961079953090520808758103438325943759464439271764304228735359329259630810813050789344109845345346114376119976628738364920858059924641458177490706194521500064999827497764441249812055461885498724613540691752147837136192658235286296818892074471713815717044931626956362940819619088369310771835031604339117265611150161920440983058209635318795769797182063960291527228701342246545665114562881858752339258968533074150341506481324948671382182390817175880754601672548184319754914734566014029766748951687497805485523612790198191340906947442272050216744452295954196047398791163487835446218416526883469099155027393814019540071283749071589651610410132810947551693693990391649734980828750502617769493526642016078909762038437211280473261242528429447024993773146735991874382711551801102539365592689925604740334961043325980679610616236786156198957023240511541477661021620868728495380340346757634071397424657266782843847018921457200806059931532485522756190484091215623323708397918184406788864697225265117297769778045648963733765819313416260739699307007620280746987153921944102112797237689829379509419509123843049725552185046748936603931199874336721683948458655796924957223006344880526614413678366454971302942240347789298192190943736912644742480983603640283978260016717792682770784276706252639877770003694660958759984256679135522651541616387501073869806668998381431658847320886415488253743867204787639931587360546769447546005914551408993074995869208324460103714790647125704206051524820414880018632999202079037434817953947206077328116497641255988726350345593557155068472937115558133318183478653831930622665530552654544099101138992606934529710636435670902618238531439569584175066342986552027361557200163128102438148953027541575330355576666453561735951533197361883339301750121176173504672575820949333024639436536439833774699774290325022887549340380861581766700166385612900621431968256369905259234887858960429768397714180232661092351545804899680127989000838466238267083239462260138287935212309593261053250222011422214129528841110313883969952879279612701088266945095039654858132089709867365505805379022923475335136642067028697896702665836588311095968616295815726805603025976366729695414856995846109578916778314406572469706359240545283132393900367208139380863658926044617682120549995915113796186286851649741203280816817170660145226476115941943170639175014299532667236813317124230526263775586501284582428458230364142992473199782040782318521260243405262989792296192159313271976194761889185102539965089997958954270537698644205189830203751368019761513846952865403400673286292223160324609002510251993515667951854210200375464309494289339223124118297388201998064980049561596358765426502184330453599398427881384614520909316484416524477876994373941577609719555511434072578019356417306443093320105421568748417000409065058615403746072457391524987003562991110094572478510880385515035202151863607282604202317462005893714372118399771364362904542439132067761059200870940627269886629692046101468864608944796082060655141012817546875403965595411420841068964352575988058802598619600714639688696862201949296977174532356556931245674245478540079479436384805627213250725223397006599428444783787389435881940228195695006818434544829669817506733578455738969569796053184146015992327996980064221101301614954205408934936294646909845896328000040906121099623714851874394277813084495399504069539228344802745396378314733514676482979237959241536266363241762775138533141392012141761515039206069128080813004633519270493577163677706557213819788702705636051035416254248020797327021630620753426268410059888365743227221949724615832910739116574383998699153830336867686912099021657841648431914102503320916011182190364411483709459932105247744484267226967986950096592024944864933271496548869042555547787135783680446309970532920298587432160270698798248818288541454163308665419727804149998721422351456034907438602930004064246263477829513517443199432997351646281400315776864806350278307753270551896450511469704844993538002212757549248145419436073045378686208220503537343953655712381392680443596588402289650098438257193025661415882466897036907290642340656477690259988009470240514237938989665704460888459411020138423558781336020944148358192453728725212777593343339593920517547138146270962135758685320721502393499657333389550548874450483568216029101144969449346787916937594735865099282724754001214631977193901681781688341400009233240575194055064638068722594062763937065300417651614289550428464159453261779626952465106097685015467191972445661061704065196761075764063529686428136464342468444917771816260194680357567701189995346867974645842348007973450355795374059860549084998250174296696642032075770620411965725280214277030110939792040581248151890915241318092960438365386233867294577819794367021745664505782630071294020984495709106360776414997067302265245964083586518352544843427899024391145328238954524013199357536750806377171486104160577913839263933011817540835579886051658347322614901040914672685618498058675342563275752248105755329537545214263526818894750508304825124216104555109987139571097522927831781914559039564493864915219692634777662622303177746735014594871136992602075768474074917723794696845758436150579105233968222918752174251011262539972602152421901604204843763315463011215281315631855803948251230777185261253117577607288054822942701615362038292049565236343629417740566756065086836516818732170347461951823645435396449887268804469878642412468547803334360731872051927277014266304676556857574338285318023281296702164973452403203465712509873487815893303831122088784400673403668600099294415970025140648723048577654277093657168800090934522481991973878432272416598552558954407817546032234442408622865293500131870153902791463732695523128190782472835972363990832156951588153467110944496882640168642235122066162044447511589875423962299076631724762642046600957476266223763095373537672749321910807425118174139812785393636302645283973986824974482390394155072893440256003298256565745943445267529184818473826913113629045770518086099200739516820517178464543756857863061376277832028469144502765857324984523181299145897700896824145597720343631063711671056540282821385371580077874939816937006746258573180051151428639282120325882826896795589841227827096031254419593866684180421559017598151895712073695571283840961947213669709545031378483956397956671822828421189437199092792975120794886665987234411718941116638839583945501944438171065846985453309011387332396123415061994002983143477866617889620679159610985336045829500044101712818658489453768214400793902862810433745131372086548588783357436391142336751733810665815585433283765876261624514276060438088624730073689685393781724977023035746490953536600615119031001042027950354146683334545276558942034041269150032500564496419973995368769266021148152257722434545772899475785690816707934067802139770640773735592427270445448063118947559847702090354903884165109493864585167323894194888476061082976293824332521680505857788173417038169164377588379713467586339466175165935939287235533544388522067786858257894281918591372830404581028930787430945904403057714771030977984990158475444472549666376643730919362379629563958615095599395726399355637295766956810184698220633988964737942948327038285193022518190877089757923128930301417523453281175351908698854512756109962712848087261445513351513345806048860120554364240845764426663086023189175065893131486865743428358632130517669280379392435585118161439759105778193097029143618573670545421360966151044036021994307940200677252045105366648035793415689982494796810015328649561622887023208429517792349516708486919436938342851866620939813090900233862985404312698341251007027041136663080405807305428198635937755999303856413893190175931451749094801762084842964429954272712966774251308848216125900633548710249039132282385560437234520542928570862237906400435766382144491864996598840390880386085235789846875637084340898335742465420243124027226962945747710127550469142506815497826475963477172385573388007379384664525026800824363414008926889288206790964887416745277288769914353539763137468201327234114734252693103428934824458147848801719101049975415292120004571191679240508881713455695347355291859745109152971464224690808484666168318877908742058285206862587739003905885373819565055065471077986554431412923264651889995066010827897321522166844022104087645616296778011388816784745326498382798691726453391848664293787159419953880837782900367098976452540256161237633763617534528543862333856051119053452385765470617453047695387624451629419023739260902978918382050015821676604179109849373660994890154774542590801330393753283546765281380572598710869241698845867278563703338467406913470524559290031101992633144266496915877519330444831072903967531784098065463557435264836545959273283186404482910188686044259463264720761124405971906661005556565591074238399061181258349019364858312707218379942746269068273731750640328357999526405821003195478627321827862821799762782209446911530001396529193457630715866404833461454543743504641463717434015483327292129730639191100860262929534638241038399043834967693484436815725793830651034019867372154394151171693344548010892633365828107632324355236473780473183012841799962101020797375686042826743452843339361760001721243774288118618212609050657670658533800931384156620717781525212511339253366528541062284169371320540575069592968944338175745242370032130426802923274109076633042714660328861325394241458010704941794245566781301983413468331320965036119149797272632631464899543954415980949025776015859808150048422283275439318305626100501649265630462123310324496772381305990422849931726672198811906528725584975414034983121657907261360986270415912685241319061760720780552120147014229884301667818032676998910952261518974674409104506296397799983979536626397767067161404777608159002124573919163259146114188298120422000044313182521101815142784686880177116129983002312969124944819108482451658244627368567758467763376518098311951139117407267121686442295755250365985674337546486687685743181662440086699908357981175005178541088391738498707631131955989574485557071538447985835755112589399282823282714819161000280067606196387605626032742321575449236055348378928257556954367010551030070948129566816808252378144872277544738876721520077108656701411884566899152542775805668382309017053675498505304425733811929553122314984534374214788200611665206847649923604122288655259048134499471981644225117171379501624036345873140425585078248781169214061314821274355178071584691661196165753482115471646867200716472554271656234648850026812051921029502757427609220718495430856023636931077766427351986846894038007887279138480800175747283024220756049174783198853162072619755883359021049359596787415408794371989742717618308509097555937347519878456362464210334929772578198443595152866573333360169391040368761353248007928642974537236544947682498458992843345481640373450197434640548934439150949307340226229998231631413765792360863186611435208012763423480609350612456486501955399490379365708524230521168725041819958251363211748078587273662648863830074555883706619292770746946010605224050115587505373754224453652027295062899397470970619144754018292053445337905966027535122813315388861324523237924595917788055483323401195931445606372465929104617661854651814662794015278426930749744072758636015567486774101207003523055511918639684248474778565975099596882699344695089214029554575972671893288874809695850670305550830694619126526695087757515490178277465841524256216909015482239869755808968596240180319657793921171030921024071809488553953386218275789886267934995783432388482693608641489687087529864190921362204661383604083782344166231225567783203978929310787418038106720139233284578862167232151430896908239023208841874729481774908612228291591776967834150199673845612306598217581504039961153058816024268415254543812941720322978308260398838531392066392015987823292501230709803145527145730429839679914036541720627076636093941914800834543530859797018329845104800096317214912670373262445910304521373037295696253762474524023597061409603378721994818033500580577293535020914712944649655171890430666615482497014943092123578076242254404749624848202082553291467183546017391130312417781153818946616138917073235433827437628021500681980435600434273299598435158527236734657640193842981524246816990288774178369510794216525412280401055048441361967606996766942529170101178869225041411948724588983657107310161133420740523459792011073857545610467606225796800784011672324332205521558019354244771507820724425729522119880376354002052398571813286439696248975204895691424529417132572498537282782257030435038591595353639897710209892733643421347473152533800477761692380028849988480527604942638104396213188247322272519505693691018621895084538703579383828956611187182787500322369183016514140889408763127725431989263847459965950532972771611111382989155019493637431266710666301269223852450467892928695892755010558460821702108629098542984234847905316529639792786370850803535295637090288816807417050255375911518067331622378019309193869538278217557853477307277322803498757070888702945894704754216504038255519928131355757158656054949811217657137497151255933606738805314897826630581756095686979691886532279207683897794354480893030935201328563610497841993563578635654860710734447907661734169623949766710492804945034351830317714874583204757557260225963722539074701904079103026638368761292779923409184645931189824549931038939993719930404135735397126343721687068386019908912794845225268315640519393828185365801563368854871185748708794323455314813238104394181598567672081603956073626674896565234034124829978123044176505423030157427340397217549478626923535666811478577056407122405436100204620340768749604074027441672036188613594726175504381422121763959901270205682841046382335255830916130910807326499443114632568094002200993812983675447805719420416731036004311569662922236066280159483483216669793707188181418575307713863479219810573328959481948384045457973399834495711235585941010208401910534204929019809364296702752417742890717044011144702262338942381136215302207758098158730535134188502904601960800754125138860202134396910977227911704243511307961466502031623376757476212506254026112343066425411491847871429631646003673613999279309425493125032680837238969454924015611429532624334332380645204947180061081007001336193569323004365157132317515860938953165222017250331302863227976546368552055044004175747490905758611665763785493699876178297733795335356804136937596298091969336499567525201016527123600829254735401220329813750270090228822436063030414516431691811000285278693678482611742242601611602049042009279716860539458415692947819553513043106186153002616632599165408493322496485518181659744629675650530503233405015557250853503629754145589610874492667974811602729361014375317699940555328714457423584645343378491592370003121620652086266967171041040597769913028101513559655549309410527103047734775966548148080986205255500387105997532819925931728071233119048965261000662052173633108138358360621216086309859958892080664676395919909625345919653006275213612828316381537820965599416160840713367126710158103535713267033211429073188691629864227069476417841277726614241823104191347803116361682015119435282303403000145153898122625089377674903665991124645729155053622932632808184000114495201353931454143537232710510406760874603414235653575877756072600145132079541144197769612234945391698623552211764661521374724519843234905318694373919288382929738659589672482017772938415655062946882420775306094964830385319514198291374161141470037516322911447057772758009127944438056366475170801680418346959458291510945177615283907779252428228483268801274849172981473425342086211998327998825880008331938339189198840537084398986450598335770216187724269776034929464963500975145936285510923065060373012728934467248456621587561561383305459363594449883642091230882788542361123936913540634718127873365271547160807306152027221288881549079627540821398394323530957776900362377488789817250219772206044928021169545389990509629051263143136678042028556770032499192593444104783512086167007676655163179504847833283855092734996349454994621924181248360811688942319018769750141071948701638409172160805492453413201264123681030189370182283623099366004400567957318166200964454296175298445542638415751144067840525892630479569810898428526231574990390587929904042138051260918821940020285019453036830767481212823285657751873133338948973269650303122112878477573551537926636422738604658788631700222055089246246851580221181733101786472251455917125998707274502171296555628152255505679504556165664966262551897814871732519294746935454799055143004926815510766956056488272295539709950518889618383086443045333638150851139180474447841760051488218792077737999682585068526310267441083866297407116445411643185568636823240147417880254326344301878073526175139564299851992501066989778008005944147488058512539062144212654412723230797064672602875861666798014971645438715636849246892337439270123267511971588481495921570904363193886819535365569127145200606421085145892634074556214009344350834570465593468911350838011429640194901454603494044787185012471323871721974321003044399173420417772218207514367245092087087529605470578164120972273179307595504881670081789609333946998363730174740852187247700491986370167707145038467884274276781796969378902168521022773276820017255024594663986232084766409607478752985237186902325398127786441055140080438586815853418927077739547356079638391378335474974739498065543159830195242584261715179863209036981580622830884827909507027698040507837533068102319563597720927075349789403911200181898807780795852806699110197117945185803946097153632772291771037198690338767622610635153171882885498062750877214796869829676204199357540551736926692583459977470086592733273603725848590074065035157005305015808851582135093079093183023331069612238730887174322437561544974531668510215375467964095829351479271662507228095150635453488739785287739716701614940029924601953632753205929070558924883042969431765345782113462974248535976889587039652717104063113514971754095391358969154655526658350875918511643836672390845287076083480632797304905409114953416263653033536555473277538546873807247793050880910497709135112677176660373172438589954743863194989591499918245418039002735777262887891675021713984200106867970650825301181578976930075774384476086807821095648499166790333730429508366683435108652860385337534440763681538098472405901238763387736619625464993518325926843844093320133138814828517131889770293575145769621442311779231611842029349735713393837489209337612403257064506224215307347426737112686402506243811942751896206504776059524401983811574756285254146676311905050649549696746680457757331243402114611579898413395773526254292870355910248347280053228890446181772494276735503347387863957322095974190707769165932421322544420643427257132513026861125468571602650495096550906288017210316068242796381181199135465388891215816264543394160938170509516745811497571282723288705821966571624651445657971717283485358528113791086446256735526598591672677168618781996258665584328937393865868400473633386725348425453735154556913739840215329208661480632030703943224743739832583046130086933272125229815498892769771685744742211940015837300038624858870552319512541867059534875837145439583769884849427832363557930787302089096498963507616738416228912921538410605475179473588081196054805824776334796936873130959357533690877896289402016594157891926103191110703043619684491767950821941648537193246625487693831437952484522912353718071555777487005718668516045357490120429470263961902984712912154589785376955118692245364842819036615744563805169151381062965186471446129097455876884642606126433397434263483894875133004597085028731258622772690519040660694379739081248949391514602480873948489057337101516011236630738167367985914434098814141226164345522228177694779214759374030618149874287744090333843368802799380618521397873787152612190529922482929247072869010034360254479692287123814654665318902534852713052436576254528798060615692012278400883521700445478394681979778876889565105822777959497076189078498768304072379606921208862332674855995172826216589662598225847144656942444891691134112412832228104090352748640159373521139989042293567662626561438248020274814687933498715172854498157958351014139237297222447729922283391485936665307151076216566486006985072951357008626032816083838234556206786163297552560602508777637808725330499880942419891574213490042629859480664454343264660774303445456609560595677720496113520337626406228636951958264938551413461755425395856777909754178045039773532007624641987609776124200784285309012864682057881071081858788763054885263146147047954438715655599157281355656156864023867479046735805701523308275467995973284034702290474144960571784003901874316814947238503437776624104803182728427994287456921965741327656354092717603257074820671971845138498917409033353402430669060939344953938727477676740025020345925333368256639294231138845668148405359529563444764355312988175475867451524493048971728938900552249287012862256981829892291240752720669512908360158202965061446505849894343602208565580101808100729188895134122353130965603665129799617415816360086240513357091345588568995756061935861625595025675559053810954928101995869794315557271864777941375229030162672730056171169442360808505490788909947249880024832366624335901420980580945720358866848903838777031744944626978554690169838321566631924861657004768534296266716161445865150822863817333772646586037273935658954267763491002839837204709241630129842052053618036733752547596633020992818547460793695151972030981892582149465132820530152471195543260021787547276310255597177454082212561563799367829868673343763723015642922888351608916429242203292850682427413974731448347183943708351346600800924233036494734746521884511501890309348714131075792921959170078174048516323056441057642982318930960067523527481541677115166936099796903623932837548084463291940489333910816667382786698256227565986232827279926971696289788787823649065294105024305059346673510439493276459636258668110594024698373541055097802667398349790915737584530538581095176259520171452560597855465261630673451993266904520854352432147571455463572516503360232250134745718733029487578061598388549902633029679778892107778721080891810803362608454284291631093162990111341349884314994723191573523643791341332276481113395278714183248169684484684811820435856192681375719274707622298289603829251721091034386285167481632513227074675551633645506062983462688826340003247574479779217027522412658303023090980686852508450254841148492940346628740350251798380030100627620137308209101495097596528959294597297607770453970846202439929404520899911873461706628429864480292033875405766282043721223079985484599681626162421123778813162395984321293042564812001025005772913168309347582261418463863723173596972941836030072629373795093244013160664876998343849473824510798441595444528883354948337468324053387703686541225297726700581761099901876214333965800062915130661713057757831971630767443756285845845968501569701282516954050876220835836450635797828324494447636375248856322736283932261492022542871098115397674774935879941032417939051958371580257500541197850868340851925482093795812756497278637104627379876237559313066732672341545680033846514630537795807561047462831903526568660420707704495238785672165363553562177126898091737093777564033120124361737759432589142497244409241760093448620269896690657333738876966902399941468353455062245008740158414886863787893042645454619413624376202927312291819350767813869136723037218499503301332378329497267605466703083847516071696145381031020665613113530341529944331754908126093775624564229650807961162442842199206054201918677553090420491162009900916999797828090307805649228300558739259320290649325935406137361601622617834793430157432991873429979325935224506704185599554973057926857276677488999646732309356397119800170497958035516721120318417674344112280813999095185453703709501432467873192064820474397025933257256268952997290312577116126962635742187245018122566746409918765919874719153261555802890761303129788568839837299026870372764518681139328974947878361475711497170490901135581104102442163405407719152689930511548437555211841038482902247695528188644517803328849943009084890673946979045097100955925263020708031788973477111253408975122479491658393570718338793625350899681524273915874014095040231404028710835937278343180535173276124253200467880479486538164008684948878975876950160270466346774771739276786775579679927435635027811693570798541649008917743902303309138514902413279595740645765173977181521357378566801897229056266488230406857955774119887214221726415059136968486352126430125276379560329501867988832230046277987730231898705847106035885256371707167325820869943929407029266517654019953956803447854754525526787070281247992254945379696903076323354921870299959890127915332088686537973074058212012612722569472651389235623794199304290591247924772640153299250711013880122563883074556109432717130341268073383662086400693195684722307665996880417331258933327264222156467944962625885225320674149329213711795031032682348978828602664577690133620264968606250190256318647606006232650502099270809670429979578066347552775066506560520408243602277221008803078072674485314667483404940490339947610041099701691410477034054385335840287558142187368124780289377120627043695678933089231596252859165332214406584829343049201327030506268240636117425392860154796094879627390365248625801495122643342390293732542595783654349390438843373625853909028938122513475656439407225153113371074381905814917368310592441436662912042780018057460519194814919380379025055983228922889060233007870836609941028465361017689605899339455751132719263759244687164119361139177771421179305378998087476264447345678803258437555269820045787240636628245704401437843357920345448763062172831416450888410438722251824198184572135031667570118769323592498731597550478549151505491427100309015026973941208382060221563946048543481586512629051000172395496566365153137731073705301643235918749442092716677344480693511737492632360370285724197226899181605230863345122402659097922344963748807147922895986998060762251482035500259978266609915575923246347113707428159913136103252492551330183538989830729363874862158039570589703620256772044262416239621651777933477497556851760006256854209819614526555445541226351472231022682050466574087838438785478709187281237260147932489686116250165024852156266731391499443186767524063196053802396580013336753758604909626634819593297762348377103932866894194889856985215265682531664882311834080900769852581591510429292256960458364240347370739972497186304959064414352339856834311432208883099727296481104371892572037665842338652900361135919518960068700147099802206339159411196003278191812210428053863794052363728462515599766024698262543514454385440686566899122961431142858239851423206247666353363838794182636271268031072824992941504631891196148490057080495300095134580832193415636556550191421588683464991029065325926808714570550106385165988377971455755991984484671620078870827900728355665305106684577614026423106691851341211485111382745721001268680541916436819171365168213889818175050672040897616401483945322046066543845271869877162108190821027661428502463957267845026362935986213700689994692942276950123653231165052461735236836547803214879140686931126308023406814782085118308788132516439272899353110538887085751024861880682089630391318426981338904938237822411325159408613782773860162689086783346928571198611559830595897128637034902495374422838682628246825385601489949812646486924332814767430798698141784700021167990732656367602127072651392509188162058204818614035270805097527277603751720842002013114472747299893667401680007648817796552782339550363797582989191497161936055892814346527233922227371648521118423395478549621908564535776624043985592436401235912435559099909487889157762496717725714216874399912454026064421875525972369695420230641323836566243788716963247908371236350783553076009664231047474591016776073691107934946214867263394166946703382696982404919958432080593753577465287005866000082993062401628133648818398168637459416430480324287235435732939442340570908985428866817760321152806310849135175945258445447989504375911242179090824563649427834171547579577238762496219326193730621460804482394786353731706050011005730257093391391032850921932943587235394229809587396807278148632736366209439918087688712242558278843891157226343897323280105184681209723907551293084217645915640667505773011782526852264747766520251398953819113266534354770230834846397028800591359833697966829478006990424350930391699632856168993325108757878385448373798051466571750157876438422671610175064759902593891667507540483486126223593589327032696336196067513115606243632041299432251550754126421652903416290280755423842714832213640903073424764766905282371439734925071611319300815273261945270930011144858883212760928407928739207757631069060668268217602511786707410587446679614127563099923661171585370688926335645668100477101228778988285025200022460705343392313622574014349041364435344589586401941335481587531077729196859059544746580227406164294293533000800809479014726320248023384499272454722236742329679367197012057075943807473355273519396287143699479135821413220436046548521469479691070149664192694800455525364344200983982910594587934561349822280066663443953444357900773806300898686108672063593363756022961219419594010244630730541427959558467395080192673826299721558582175759862652380772207451459758036803337047837936123672600813384994392111373010098606533471899751097059757569747637094641539609772561094068276441696109730817777645661917324675519834983416819199393268467421350345344623988700622866621148122421974020267812973320125813893776102457492263107035023983206174150583564749404288827187703363368487926230608905903768843124615459774571781722499457357930992256451194982264374299659314365800765999881213296860809156916711024892905894175294102152325680358182870150747265437362495453406644894022402127459506741043660154622293587523560062387292606082715955936383692014027928802985262544484909766605270618196691725346549207133762705551405083701992097895402609540494598514284734936496081670598158789101518923644805271596727716948555175416358238409581088943156358559464569460983818378778359189037851060719264714499401346724338817111252718600748732888577721799399615154048932956166644702844241694782180187901648916763767425778795612504647234276133373792869784450050442536770152913907387520886115787099607561944411677318422178284899759234326665189119435103637608663704263642524908864518003116485297595873859872752569603393550472565694165069717753764050204166759553739139780520057901305899737110811500435103113034288596303716848172990766193587842318349728836395272532716456923924879916854762450865789498375925037712776119584682379598273139619704455640109828212663765454622699087143624796152118732961077608805441108936627054511395757780988164854715911047729388497236705130573224229204161104221321435966639421644658079718145791558931289076276129868181696112778394760252687930150954883804712266183639763574806211377717494710940416743897636077443555871772900958989711741523473496639627574674546190155115315806068121512221971999419633497748932745690461680951935007759834483864940234169643088180508546955822386673446822880631405133029766111971346777541989795869482346130305000880946820225671719414820887140445751725565635984925575476393294803369797306654481645370193014884031992749410578901082512042554213391952848670825782471109762962651270616044275978049107534950947668154934506261672656884453364867386496537495508964641020806817952628096743457237283327770271554097161635571985684228056578935917690777763331667526754832162391574297597599217080083946449555579528460169413468251491441802187675373591830543221967575787085222798356921624807727276901755776362505661993456343071891017512930609888645526226403146384615256720081289823555187368796270442346869740934295987746167376356366892830646063839439654231738890089039344236787244223731485702349443175046322103433251567562163706538284280340976833943055819289826070159826827176540536123219796076043169122016736961121969360289176464061409362297939298609160554779739420148575921565917902039886578144826860687152132478655203666255448754447733627961944039873739368017434647828017426301853366986042211833644714111967092708697550311487025178251095014948549401244081358697652045932428798593615660138514237942476859546503801418571453682681549072676988900175518595231270065705334500987861180568743288191850328838462778588193955923731574426438011227034780489610655607377607518618751838467899278567095262827499444814458528853594353690893361302851746460180152522643140503152231992379618748027492427986469239611341189306499079432466000098461775452863441946978534306658330640292114610201801086847127173028432539457251906687299481320061407307800546592889854795401353239586268566106665951899151454199583908852080943089011834983332873802158750817930534681155037278723735019981029796019425012296467631928890943116373519994155286140033611478688620260188975247385114013319883085013281485912996790068911758823624649092718665122540237293070191520718233466769885261435504729668423789499291282690059550623454722258852535982496603100175176136390349189213269443386538197461665562144442577687677080579618819130817998076027314984404275170823716795937863048318791640548206104933577269256910434899673674858121632892836022744001758098681092019074506292034746757286632550289006770408907823067284722362643855317498876515720945087230508448043757014275111772081118942592674992442348535816539401473125102079341772899692746997329240037589718146250203164714618654312405618537596131068236437259382043292311608470070441328117559687795556587265603297018370659120100940569948585801134553089414459434849860495931325336938539977113947093271039608898139346909467744641344260911331750217665106005834535762201119469718348176171675180223793230836724260872915707892781120231207241136140427643053213681086691583277174151343521533705707777451652435994703639208073673416332728165234302178976589259494719686566566378854997065355760873749154337064398228470482355276176369144139617948758886962696288829255788961218994259199384339864699798665108309021589814290060174704020482641709469476707627216677728745872639598901769425759910382768756286241334422068576375744104507245795785254670588768588532452949961727977942005673580288665825529499633180243698850217551315779882271734288307624742631337385402461207930299035292583402265042574354382555964607864200708933080392701201134702744079403118381709940196640590452879386092325958477369584186871764847341657857591786841579377423998989159243513446791510605634646082059542858023783311922524676492761204855323632179118318854067900422890103123249404508978406589116068200193240735461990834657110859386439303648078048408601403047757142524004344731720304524653711634494049272477441208761519826217672429105127239885135737375132350717007667854668647885265561588914946459144275582375203527759937174596228385890819583279352661217553616408825809874016585602251711267812629279283008587630263153229420517182056866300753234295276538985798111641763389675300879885071250014745859785429830964011916255173312256854539969094289264382479680508214332115331855170242414053511186876954673978386134341087118793433493983139329991862434946630533441093295115782032401051576865191728630153747445835646144213556954659725706692694671443936833332829600361166605528423540744394924481980735442246077016974721582725895873959268231166057750746000489313840836544354488801219364176587269270343257373665573154826732036487480476172182984671125488168671389754953204225717065000204788736126387661043014226551725108606368702659014020538020261345930220253557227786700033790665653542533931576733187705296296031571960444571362803590324148163523833722124194767917030542870328326242553191226411729370190109829401015361624557715121120990334565820659498709552093574634956970446945186660729412609315264069811667275062754884387381081597755689816930452949298846749378723578214180875734641406063260596735660951887821611613819516316137528552277437115077266488266765829732006141725139783306262326376336264323030605789460519546053624620948573695149455580184325710179111694422529200896471856780050472346584075599962050224181768345858309429896609694535014943598582800084676383566099458617183759377235524904464301553843044854084214288696527018822629216678416184113101570766904883399866694794205115487624141694743923441786822487562903295608978953682204399171820394336665329454858580685105538091791911402131924370521296568788104203444387851431701230936197723079608182553197868518567922201211922407550392624477086588880302491552725216403171523563422826175185507915951339031241676748922632440937749302965537004209071161993191195105490102559640877326373528822283824596549091913448536282181818129893676013147163275732390416530998092041625975155538696877217010816905456361844645191234220217271675316168497039131576203974112004445950825142474597982042380584764864338512549127196463551754953214303166953344951470471532697813376887122244365218732609075095840409692183938205911575105300967181505228390412566022257945335374657843242780930060723880270784520662676664211823772672729030282154425027880013651219189980263041404962734778494009667113484792823365738448035684226992316119811356584198678024315404169386798987391077568817264758930680053614145246778587300832699528626442791497803681516073326707236515588603155021573631536099608488284939883802860019070393273255315212044187931007791905093960592199180298015394118817871880972713661191652752965193188345957475221714410643672945864292002933163935351191071588711889384935640610160641847276314245999626639514722221772018094073599074216821002334807455979882052713729165044463803214651407762666348945580828468583988515847631210489202609640819995734272985278313445539629990932602228286032156782134216591253733305832533069668081600441239914081638818612236298314015179296408936340384141548967550020984220373377226836783937845331339918027110747205646334146304852121461524990833623945830918785816353968309278921898423683322948771769896217946174346976893073459685455938114631610425866319162723466923728295819605482994968144518506243469770490755272865126994572667861907143195470398571163586076294583166305228758811538209641346597397171242503200874241560427540452025204751993867656499165553562334841674279097156245310920674896717165152725071928251319090121100455947679359669956755594422557812253015450727747780471436671673974002463624405786882469267852856382788788962262926266906415038709063443654142376866900688880316095394272035819350696015969061058025109932342537533203783350612613688079993691154812272582659106879905202225377332446705128343399583505425932659539418290256413475543543743685034014334151361043668932942815243418608865102429386513525465758244862668662194711238871011956139435208345587535995563120995140969006444815406655896507986630623627984420217665032838958500010389729488587195322939422784160436850931988549937768665804055197756128604121567112020546816046302377113045330374804066496908438402362519737612772761819925163001372283748588707550730801018294478387239471250858883145133812503083672216455921497045884847311704219627633795965830610359433856423976495870385245993988176934098903711050031157242295558672440267172418729210629193355253880446703981501862990913663925053127336874931936260882712270006827800080807258695426512862518103870173053230967611513154770417657359462054507081989265967291162782156127975135169410701764804970688963408058179528641521124553171800242114494049252964577520554303771826773523713008344906256813278719267950757641534175900598041320434983885831276191213094768010583264592571171462172903637570421889802435393232632597284376719118345889178463772664210676041006859053010145952636721841250310462624235939528538036581649579486754444247898711704834178166377258533182586504405853955413835855974720822857886544476404262270947321670529114009393333131146207599436720957739384641679677268805887169778253327727934922066871959152338200979006975089672651484328624274613734912600941197009595597451083501401185961995545387788579820719749054197336995655795131055860904938791468506045608572083810875195824240932021958464815860315899415169770123535315687828992516423131947034408207419730432516164874086738402045019196074462492269470834353989718953748163984554037254858179047298385583141869851280079145244971811458725726894875132775959853172916257604833657287250482159926784265576426261568955351750223065020706686335929253323436879527524299322432983463873086719700162746692922261019342129950623100587310845244713285385651482614388088186687468884771686897798678630161321087201415694147842525177900389210750368010359157764836431298901876249982315466450224572073684937294795218666587319185690020364530229871305899342360426261653858027457131353095236081391207461928484289651306174432088930066215336156963148333960687809312354339926934179721418405335577497170616694090120541545150018743882845301442039504661888963655939602662878344962034626796262241071022766984268283937609720384999523238136012580633290665265422191853743348179977772148863044342193799989985086418921909207258129772972449554003101692704301582061574059393782338311113934092415114074145783281347930480326632148676868525133490477744094526050691420307915821597537233438639794688538201450524779838442144095216753108595896017580413908952001126477367600102017874978538540751957504404831416508411156516976445933975558840666728156367033262014271074055897983687260440736080932261850888913557917484394145523290148638905794455309087565686341367133544245185359285464775453900986904372545785420128884733914256329094600840976413433313569890271585787688836373995857392420878109311839456832289358373929550019064164705134045328782944277122090691172039859626264388079472238501701522946549187943762206190067602847938337833349944200076128835124577601451793497700121560740427371181130039615841985210150390795542728785591276012255237559038453570641819094258934547429834603153012550363317318081801112212302613521681590109009992034509966667257589707134594402552274391273956415682959559369677130329055154194478847651415451719866951364404603542633468146489422228966409130372423214167707620791137538703917324893528030160703150116910860525488750836978499977827811679634960394600500635272156152384127598649461432728004954338605378521507131493259290372147248299623356136485231510018055713569449326807340508229457189069015602785197998933571684248436552078535869998416125719806037300629364096827948583815265479760967956996518163934629372057659545725269449103386783400982312932400932169353836982941148254926779127514440591089749083085828155978254837722033964107570268780985852014505880085677972482729398941891843584204701626109586586545403511412652155072858937361772909533374589510474761638259810826297304907256450147504381415397012989646951846703556295122821237638835673776095376719675915290650968051417600330491303116017866976401399530000694442882996844567040620668094353835708708284360265807612193846743372311015403174470684027936868189104621880171791185101820482526482520993397504779339074545726325806662464563528406090395346075325823376250402442924016380585141873317187717305611765801469415729438406879025171315301995033003554729274900805532113459235194289386749741090950724213432484929920776658849409228327664122661924741427241234436805941908402025609698343650196247117849776445558699300916083819226545581264774645053697023777250730507870394561010717959612104496596320068187405198077704260721922459479570512449428486903701663505247371947885602024850312776788866562192854088413277106926206757386470135014379402943141145124807688980012022327509384187418294495234996173208678588773180178879367107929607388011030266415838920224677262749471378025975269958724373672654476129913030818620389514653524285485341304629706025032153814322061844561637495062522093850374813497150835983055825345220929371935436997270120009583484601370455862631407924086574097747308061586806271034056503322895081401530131157168113257263453100689141762298936320900336283553024185883295005425615583620811412149994641557977873248498128650905139037935592886032866059102701385861535174732407888069548856139279329960226878926790754738103256876724124883266377897214585064485853413150849304524736285217062292864839639516967575295215712168315843639492969893601308422202550031182778644753142148102972450769323904100844401601109178822431076669447296503427131879201874598689707499928682391104050849230833393759243052841385553159565983911820014417607301507648694876362300308995990056399692357479783678567648144199070449407574082346576531538371390147041810824252817642284714690695016109573223352184093908169216749060268241049711008177143223520866291181221425068171640312504809166941946549332024067300991849755369729165883728314909484973223076489381122002990221742751356816322775178215939659332409712592555214323042397389677921679138098060725693474982665739401731679314524472336514464997126945308584247873448181915807851576226876141239295949268824188509893097114203887682747600579722026469107246651453860945992651626934416311475372039537052297053683246562890244015582666113721871939721567321091377878613848632355456098083969835827213024250163376168042500814599077746810040877243112753698920659263493805905108029490385716124351514348128567983239790245465406988735397831141014177675832348931146522311493845899942535840964940632174069397406739823636983682929549705487476668051833840150938719644097588390434241713255406521248399670844640605810734049184557257615982085164012392080671873194355558238176454988462322285473899090564154300946047624385861997933341344121508985465069158130423831143840704495363859562017794850537127692057507967468165848711796144529241224623433335025636303551368844587127446880599717349224703387628639899306279922385573822060623859901015841277114475604532663667052249452554218127083984313079814108022669098377091498358820619951526889311623702547229898759150804964720304436835199803145712346581739465169893656782728954097586570151378270134805035898906879364072094385404120982605903651062797470349027266411201682633294305744791291774001834238687665257480246951812113381836608857961014251159056240358562156558229570245829026149085164700063230124122593084202596018138671879178475369506741348709328759285830568904472000798972198809043143316393550236056620837227860950639557122429514031838300025856621703806743900647430293167622586754747541901638480441706109172903940014129861918421702350557188378023301695582034748463306408526681907267503005137827314155560826098156757477434956490638060702767121971218492934226838550816299896621546691562431649655088943172466362689278538933048746760106055353632446244531345301239868026919329056563170252289935005702312726800667532397017043303049189134263250996728514082713343999730444082024899981205498646909315237612382484845551106626800302296984948937274175709935792059737312862403764657573694758425584690685695188665625353869692689958241202108934861525567086714189613123113129254736506379479109783726816451432075571074255211545465798314093275158997024723956378662079001898476797568705572574415496314733136924127805028627174329025238183535467399115486410543109150398761902909132749668546062909272165267675165065654209271476074721571708212308206901454261682445526473151313059193753616059252763379751937281273358405668597292107132853778233192548614920470131495721930644433489001375507986669446521988534268965318638107356453091947112265704010509261306470490799759515933883707558672362486648648952805549285379070245956468970141890480134342052442077522024342648443598293477346715629030527752417241971640912459584648960677143422870942514644695639885742441767180434773260051502697190062302978788914239359472178514666888209714077977422765101389513597272455417946101542626494764313205831564022105419898763017131183949498560090722798571891835300617715618367971894663431657599025530703251376679930826705222940120877018902796364263228699202633167508939089686478293623307123486299207435566317896834083372884439301266252556171160752602184610840962772504885944323956386404872848630702964145215541506740208249610670717875083049915357739716112493747493604049205312941838011480094971602965340722253899926514641156298114259031519540136417420093684338107722790481795857327237347632800039641550486951965717397170045322718244950808018552280398147186921360674779261021579968108452717987934513335362329990401896689276459996056669145299077910076646253532925369522173295998554506118953127081245626005023709966933439599288915158643284629288413488462119395669884456924837566646500136536278428701117934114514325983915238791723491965810636033173135926548042086380681976766698791161713799936607679244902458134998934572781068852740345292432601005409167501866955617871828777184073969897375193236262496456138084856852522113360065687898937337947509660374375188652481020189441119482376816894113222400395908924774420084852362102304203251723919413011014218037933948447867075615808019409681375176968453738567404743029347580707623558018520437716754716051692120004938754280804350820076760929283797984957349332563686692720167456276838013118450050015729677573856839753728687894072147591115624506657656905962725386166188287485161669185745354181928329051297411496806672095317870659837980371975942213602310372156957820256905303961450490021867902573236591334171053788118286690629251564189628910225047846916876318413934495311150230480902787403466700068032662133523908211899753504946245590549881222783118944761900043238537141790538376459070782313116206333016164741535976807542565968870205373238398063010453900671710307885564269092177400999906289763405107122524042686072355161557532022392165301302755928768154221547309086699314936423721537880596588440696891038075714681214651364980427126959255614722519679397246507981576095043188486404963298869500438800917157431063824030574658930389467890563140754274271032922989496821208592892941746808987920596972427154494614756111633677372509394710107159415330508266766071087567692081051906549804744026790420345203404244976971161342889795517400818828843420463712694090893266668732948891986147466255891141491241986820440900570604739748240908930617446128713004016591891519736448452032240077380456835002138063835507567801536376836422455774409226893509454822933503750249868056673750446378338175830187711701193567154949371272672678208272237755797817502904956751848715599666591462437448994303334421668997122853775231668134199567973252860508723706738110486119877487040747698110405609408859526339168788561727334821672826746162799256513848808582574496098132350186668679090508918279567423680032608683932662148507949412840316640552857009528975327152781498773269346914540168105263655150204119204834614738729666728937987758608316737526743559540321972834401838197606552188982292817483040655974499304736708636777481961607217752734347036883814645995785616122481493383349596640619952683869737835811161141712094363586002620604406996671392144623800842083890802188287772959456580362049872029071017077617208926669200428258074087792514288556013267034432816676119335378615419319995320189126495019103701094249838600010989008748483029849509431178337111374189504441838956125476220116646615697981715354961999446588990627343036486324639423224400233489972887806771030899552241310112590265246444088962897458210953869497241277798492741456613001929512578575487814270124868434609847581394963903793616804671055254459712086493040762050252688096289056103236903471085894829574895336962635108961445235041990840430987523685032613859834879195768658372484706962231862166215412327926953738464211881214895417286714450839589568196096273519472999440158319322339412083430693054288758091379562056731959632578415328126087622024436639787738620220959655247192120511562527993661131566222720960320298294616985472954742044244081813820739154983913362053599914680633389841473522741028978382739476737781140715002454219467463631287366766138696775675858839054747476575247875104308140068793117585521575022218781809714167404193937749355946705030623503154037821040891147500046858333931093570882066003270630610030333442116939243246792254479543160469052788176939455321345695679796952222565455412468775564309033424588500902695747082443023667710317320690426072621790664626503608163584885611797627774127460397634697264901722735061201971300897147309292612825121948007695113814561715624811343970725383531604263842748203415582204560360211642705232311678669266271823752532159546548764057428522905220404956780780117358029707800537234502570983980933928224225274166730118924334196695939879991002078641959845868156741163710669899159858406122485193204948349912192039481774002683512440218977024546940585360248041115686625370730563663401411959110200509493270636443865655539883655505426410414869718846749183619666990413623413032952988608265992167783670508366352581654992011826716987814320831593977923425097073672227428711789005479432463977695394753411920998228113353900959592453294565264356180017805124017368211186073194224015310518086626736149957093754193386042105919243084582422512263547314591426900975976349450306953389061099942877930677639567889216208142655321991351983275774597171201354126723653883960240240779211092285187630743660015684766610427155352177112689818769713438557709890872455817709832414419261906640724015046985067782225576307043850342915108436152614806298001986703903609274370669223202951222617502349202708027840922561200025961544757759051750489440124340367671517323961481963638995424786804579271379931843219099512884399718110887719428686441005125674074848975179947687931299325729794275330950905786568757251523071502349760705529330869741936829669180522018392080173343553610126844208250509639556119963953882091618859695471241953345792940512890495057380022739708717096029917031394351475815439173813442504999332322552850346583975042664073781095427499762642936685393915932400218462630572360502846370516271545642368952219763429616030165324524957679741214090340072334877422331821375302650642897887378892721667058182253192190023834073369605118325963141115354717873988336570501808366956218165796065823333311079510263405277037912477723202871475369100676441931793457451059541750379095683018089772800278901283021757089750003723758386017954448193287825257624187725725115180453889680613934136022537202949770007420440336821562192072636820316451916499202995944201461558869749263042701752519009232913604530944246008539468464489916190354862403877234879107495774371951474133089493985794197469869712405731141437283906437112637572977807726525306067267704436536272001672134063489508357502798973714778443709403937106460628869523697436477694248999397176113178194474255953217008813593528304111408417528002208012566349839139129818804089257741667785688540378148273075851506911609784025533809685632320480805840536581781983475472118955389574830089502812474519713986752804371396042683438260581096571497392801114637370569986277068276241791915590599720067322342149759471060416286578370185467000710189533362922065613118155849531145721276183921861820595408323469704913141028803405612749566717207952534500831689264515325394002922902080908472598068485354475690209776158190680692187790943176335887197589562309162793176279947334788961960064753763082907671289927164629191751157161884548462563416557210795415255838884049142493808874980891155384780232527561491284718650550552525148065030847786803325029564848364660213870799376582294097296251858117278161363344993790127437857355529111579686247019291916845969331206796203685975972837084279376948157999781393998321198588124037224433520342534988754688416486689213683375216832735399049702618662870382582048818253218473824077393910882992739691172902789122987254976854757311246730115455902920957956522899475744728719560171570532328071065488179034638431445040603396988579126400115914214931951237570626687590565467990856176155264372179093915545115200389227252979775882585279545222894586322964232066166526989794472234456831184109995044062813695447909894211823864516347247946183926077240293038632575146951580832544420002340476376732537901438598391260800159507788758699771310598863830913946955983735267807087957550763736389524564808397380857859022272538911644887274286918785105322210443863549800863487223183567340637242957754708887643889863966768616624309418323082983439301878338161628023764192388103210927174394660368023022109304204822882192269570588159236237632459791801177809297221976791103430453237463684178876230232884306781455124100324614017473722117617628865044472886229831377926561475894061009631708164561142563732793803259049085403393009718700769253795578525126757799814205513352743183300058315786770007575746187428654248248398616582330664371436599515582716191791004658041372389964004074500167149114517158006969729929301186708264085456213933358728828334113952850700641107900414181759154630745051754672020564374059937084285957217380659773490594500008178474896776587533597378338272565102021782979143676496457458947246203740039139729844942831883161536861200211762747152911674583045651955510493682908318947152501881688418635306691815296496764523380991547299613846244851187720656459410887546765759991112158707713162855846240965903541858298321462806021556864213252638805022527451257696329377951109365366591404687719678833159045373988021303219307215571606608075260708508552661615519144001649887013575918240292819487615332309819046290078034510525976894494301206914149170005548777531330963757836604602337869709966045937879190223295895213569232696346103283843309161592646534058345586083252815461348491119422713371169700522244718154417781302581283581780993990830254850253949653113614846037388553276273146185643682845916369678658130360157560078710329032432073403478541078076831317513760889706313494952300949691484674183905375400928729747259697459435079557699128373421879131164288705238878154789278055728121191928039026435811059569178919035159983123981392239381246140176275318962161328887380390712144285156491060336082310142503710557504403242640117885595369942691875603279440678834901495809587595701499216494023838691797952006653067312274535967094910940243479411130707004958529548241458998324212726740115099814630494122878012540116280579378297361403100148608638926673941543992191489988728712117889341939492606278854112626637026431704250044159600598703915177266813871107091441159623402423127381630611197704917908312548945498340597402503266494626195382598754994235267461388206358189158175479593899092539636939416822314463178668160728802547805990747427557684356272711194238384633579921978651358020992763915926639883239628083666340185351592323427594019841846770578214168442206208306382225609158495125628973013976538149047076884846355634126922017707637699890998792101885896220205489747975624270924094297289278558750958283215168978138462028065005517206153736569902568448082518102361868984855819291705624290158062684061699703537096049510153382390984046696358007160718217318557243638452790139840807028824916527967196323814742173703680212093566135477806927922834932388039150545138748003677676100708145088229514826755703489922209812264583740334590500505998936584671951036671239071012089218767810275945821719905183618637059393180252791280487479588168007965095973907384705337173878162613688291683204177997565391661380821131993194167752033966721778112761209849943195258465959558683095426468974509309609265444101115316168454348079352406506874132220222122202782197298522445550948397295698672282935842129384478199644246755603359445588545680252938546563256733951770447571762460405361629376537463964914699298096352708070708344893048603095570435559860179879044677082097293876995469886026407544473032978648808993723786927304472900450339134492805583168424437816466987149466616906777909089385759567652210139827538091452689639652231611192697671676383209459308694995480194992121381411204871845901349597900009902773190829389428814368000023102811128594796282641497532281338111293007055952971250130701252788101171894264806863768951690017724024937215464072903128377244632370433085712470029467925404804936840655552575701836765010426552529849823430248489411982698297690673135494455547248890324839054646103796461779642434230497080612111444179756042919280488545196000907687054133988234551761403306346900368365415266384232559741252645137313189902479526281596098590115152603454665500005189879382643457566300575975222968797276529307002757437805044527670210877646780672204613150940504188237488796091517640402006364573760283059044801386709629380730488284526233194968743455425145611147242988951578173015289793950594284995587663408024071914430811855445717636362519030756218381194843902505094312123320211304505486517316363059043536296083286784195366311923196877161745363032164273962717449589305008179429581631105440609044701704898186948003863454206369707668569285797637830202547192578401971851047931122287139662787922647780216674992936311600910032973633067200266385724108639322939667291285265956298701094182362240715571668326736910957749081965052194990378981392264552132587961136265003940697673776292491414328737599617994467631033884510224674965432057513375501923855990124290782327491220665413330890313666333015264627737927219318389563511336783759041937471216383042226366461288785276012086420249801160188027713298630546945176677174227197799547863781851404032906200380205011652681232950627369528232126502010243942352691268622652974759924900711321139464359119299431746337192410850624023774409407838487779283080839551326646610229757930092779928186216734534141482300190248415475003280780667950765542203137007214087533302354178676727215135462331082064959569519918124170114987330624409083307216377567333306004595370921704446406455581735412323307404684435303183112868510041411902049601985525779665836309796122693513154454305759131486094312406698878782744398878484828198171209635932005319432213583426694225884213625335763139613883086180220312094356798093984928391677599020531757371007707482281463696754284733345218282013686853977821159717787044530322073762697036526671669764552108809328702853435713997895171158776372601430250944393813266039533527168334194387160677651336376456734601522337277833815935851293001324296166537435604650315406144617090425366247323297666147517814474156305241118367331318991519471210973501639303712348503009117106047180175358144547018986532497966160647992710072338039866924042113307610067235754046336158192659893857405159798510159810459634054600741482005747899565714700285569589184411444484432461478719926880677103798672365999105284022773666820619142147889282321830575750292817121491917662333207294708922794221849561255867915068971265591033372568620506968503369792132202055185549220449787337988372445932087782032602995325427385952565091001028822075457631073890858781306025230436928094273569173661263914727658468574220792004717429115731873643473276348189807694063093883833072329798212964521527056792577511176625321171926312769520314994698344235495692061842236720486581529004001317612829483055525091583266897834905015604865958733284167784535083318853658818922176234406076651532341133183691858750760180161178493648559520181359291804904347456606531987644919100865034921060408136431865767581729881016279995242035925172949641555595936880969664898086085490111522259909968784298473294498585066594132407262647723565360589199962804286812557239554897320810637937192720884100397080681830340063113447551398855497478578666004886306942364781220290812623674760858533529289484729291763822109441314117051804963885834708212801989042901692141484151868062920947626352346248750170198320865429093460673086673787651724047863870290455447211573630858534484183622242985032943523312302618812539316267031532744020862929610795611356288753296615224108200394123129186587174891898517610547910818210760021729776544241726113013284063168660161237768735987533830887462462128354928320296731198904020076592554210616270519604563966644047947651628238844630904533897246284936832458416593792848097223068259536279854613297853162038978946306317950380985106970876250104403044871661374296262235529395569502443625867401094095019005710818892220726295680653085053750976836791668787423318525679110552285201601915768242570415007347186965594222978793864358194424115916142595289852016899200046319259105381689727416074938175853852279909849612906250564615227681928472198976863189409245784879483885323542262183776971015360326996442691178020113840138253692120067035471930031991862750239433237283595403835429531746963005342892946774215273692448292448303552604014184330480624405977795274318545543173272254000765726682974457240050261238383292123679192378036239905230837062036442940839535632596143782080709452422163534714007817588844456224303499310972976735841714833898293544903039312384327717950933902753067380202794033070179299090737503069228485915791315989001879765284721304445699036649021281224494929810462702560947221795995784681830192011707848442416157402444689355655863562193123287143609773945960426945752289677752653477209409735679674966245668361815523335432301862129596785148956692270182625038434958071562807481898779176030925711138431046637799711673228687403233469487111069678502583781642485072441993897102388767159329189578819755624302960435316417803128075336435343752900440519615522612570810881356119481080232317936451966913710187278779450473660831070525065890823715598247299233851055730676063902555347371132910681620657549700351634548358404321937376867710117456119325552841852006025778774566348157952979666614716056779279610369393836828832605236102997491724813940549967703383977760055784613788243198242057401916486421375229302078735279005319028829600243746269178717018676589539827237647580368765942197628575994480189253178391087898079768285000922283526802951701019996947329451035413255589857362202990647240230000379291362470811696327193542226679046962672254440964958128240314450081119850073415130442442818119514060734567354375232713571517929587987116421270514387184111190699232088533728704929689593120877091657165250048866136257481055445419529645580940824214194506405229701030261917981146817429933765367476240573797385291444479946846394038178481789158925303711215022996928152158993667839129713547195997640437209592380100321152704866772653031088605193124753207915840506064160703447257686725628949822524654345796906977904612116051650766436798775313814458665370037701301580373573474128532427547481672121065964714247687217561232326290229563947827184824880265921486160596121279725381345941155464158263324079016641490762311420058149566061542338261531556335292370489733648928576195880907214993235656250169082992481503152847551067711673814332286545158344063561130233174657026333415289080283797420965061784946114495931060173722591839753578548179535141241516849875529282689466240464956680161368131089806481438112138173556607503530118378943489029981354255789076731210578560851869070260365354528324383721499048458295602508911870988958213073841244591764743073938433366090777655649948869841595704577739619660556752541612445824809066255314732536708806090787134502106258583246239512522719460216850034533731292024282672003542053030542499254564380512488533664639467913466476027986615899775326759755503415337035852231712533162566773916188737151840124135966364430395918707521492749073295278858743575350275054129959598717319272963210369320999862018378306232706717069848548996338335434764951711051670481911818130281071857813137774722407765730553925348191977710144372710033539254747153230808681482944583461378206495102871181438543400811592582865237878017418373812426782962608029458988044008893867137626408436151505689707351019744122660776892126021912090435682484563939708298545336773717984461636008251705214389216842122323621736211463283098181875616387623328821893882443503825891575649800880077143988311145051587468116687517917384509069416844876537098416213942611538252718354608552890554227143427939484226217182581366988027930954654320313812572018569622190520692190442608189373917003772118752490142907429934070158113681294507230796630699125621148521948802661784335031967555068171184915416734336690780099767963377438017066425079096383073300724716266462311093827559643317289609603308364402458793859649561035075849275186232894299170749625639598890819727478703530638015695945190821804362198461283546034254428512643345474988613488005482745515594083834322635317335240406556107378198113924629045334806554193693834660379949302616648487231317251184721238086508550528868194573199955097616359876697382216663992638860916964465604065229766375648564691449103075823837524744398905984966073122171723296477565297433813662611850990381301696936306516093207234091151323587012082888486769870931093644842105126042588961817915322394347404141844822503939519496413199081771660484373335811816699828695859152237763135844892664476830505682146481322957678603145642810110618461546351098830323501727468875897845647370989766505977872462067580257295977190392405058990446574942137634747470045824115521921623353952181409421449183973554681907689065201454166753607898311020894458926315857189163363757945510689713318468257893769040279215300672882601223560350719199866456227620199126345314822115563493945816810583611070779150774766019724456488960504122075442213975367445976137622529706391096174508303190527093511441247944569189978084446201692478188939590229162420219889058221114681308397145111304623264043018711804293965811641701657061554458944389633963093794991390827876504026309871025182764216097110970226898196850277597411851974469481001160256124024597940704534172685874006405776437911312311252637790192424609851794560187937790658519847130886618855304488848757646033571290044760019399928265670327778083779415763633709241713728670791853939739311247437584176574305010855110260007243181194442457670544066030615240853882503500259842483130891460771166988212518981132206563692122934558514119461962185259983425545215410424444253498539943792538412976234814413151728485714939215643098512584705356110267347211821028553774179596620165350645787332975787199591574110289458723803846373970480128850126971244579740353370103504558928448779044186414250691029922149567171350004181826885500501073859848820929888235506236558737124781539819604237319019798989854557056425535358445340202602246344107809148657896567993120018519214267859376188422814221812026160023162963678526417026732261088280266934750235141041280225110861601279164213640643583350200341000884965632378071074952713931173025109449143717880057039066224839643087005659865136228612913450003663266910190109148647478975982636904308123783388578751615713954087982966065334171428399289241515956887878860719446881597459217933642640015708445327271078194091584295779013348637111063593099460238762968752882747215483437261361927848796781615063571546749636876375243618981164694844492503735515008015184054501759368160988433245315511817173994780217843392362098764121035777732769706217567753024490745488957349381842587983938068525321866947429308356432796747265858382088139798914084239183310516993465547831453211878757357511164278512441785761844267805519849936734137856265051089459923473210797817314054695144352490578926128496204562137159347466319994074189597125057924190762129813997636843044136466609912979848618012125421419265546046202898045565322355761756534177429845757027926005225406217137894570580178283588353767825863343307529533413224420195347879506942554410688771472320881108229771140386453316127783746609500004164409729648185411167533401384995099767140927906543235125069712029069925129772252353512325669417508730422114041741007204423743255504046958405103508573670685367619859256290049475855144141537996868468025711023221671599846980546763640035455365931288179537062617313154450961475448700438066265098108088434254137232634866128605664851199096796576819234428655084343820957413955883259306678325645775437150012184191818701322806981752545038728793448683787191640286967782289707034891351598349772906009450158838834279124489720916060503261006361520355795898186188887905709501638706452707985043796900687325783186265943899400332049360931826752611827477446477027568679406695420317475721465936311910862297637637055989863613792780963789691655010317890039466186220297428969177000896551961551015200826299205282167940853300751545933946309512351264295378006231957127286951348650414793057561798931565055966086622375255406868285732348541872793040101915243532229026649036167812223319813248583570500931820596791417828274837184498604772108844590424724828855393986320509758486443285127126087960666744522719448937458049364876249851638254691474116878589816658172489150815173877983116374977663967553646199566050790711585409173746275209386000715278119833931798574985467531192107963330556749279798540805274434563943092816709515326332254164652227349473565424536810487447440173299509081242008751492249332168861605698058946353907405838392962352650183817081021272313138430522710615565625640966171356906696398529381888133070761404614301627458575927458240828663974995498977148165571289639367965037795589586690597005164191747973183413836034701688514786440702950227879596911889093219814595386739255302353769369427782960294890089877315320923946396315671821104129724799604964649395052042335885378763611274328523261380565634700178101523906804815087575004377607958238085373586189555761377476603952787570643730774129300799842973638327225375021908732018589028829190395926779695061612958979372199024071994889328229910660559334576301580025706211262963207013956041613399179137249062800659371504652995354019403484790651834812339351298023226118776509963494707809850223933712805532794043712833302957372452709417407651648284369088580392038057221672403737017012179331106546285566370312197383298223453865490250628241961094804734937765068057537813847791026948677085853136571866684354092884510774522516958324405302563307315836317494010030511016771937430285823111353637402700253279999162607453578035242056015249372495818087547434538212962388121258434069303553347942720154564876199732002672162618564419819273670558272174430837004514855686445106441469680474245074436806581160733778043848885244275225791892395999799315680622533742669071426181178199760009727442773651163631168452985334493662506636306331814561311395835700836203786708222506118004628748529124034570629978896671459756410570116437718411393882655481242511562283200266826945971575352585048410184756458216756959497622563224857311978804252947208397401462032458937239550820833256222279735956596793093771873354762484708893479636404594058135399599648254762518278340621000585642198160556683571949304012107444660479993641043905919412505314583638851731809764253399641205622781866648287924657810389697715501952650793365775676922555822192497440666832687876132232960974044362062760999533048977262138364402878412540499166717948856249555452396596890173305722847332584585617326950892245896421237930304002526408333040297496690211439249917922122833569505217021331423418542443284565043150620790849942160423688272561003344891737946274533336476923478200436409988580176696905220055907287860997785596722603428272571196231922094463363906013139965942335871459090056271331221534435192978092804975405428074887998716338677011088452956642857053290940359526817494338933937501876289778414509810962616764373374149939845174053252987980075826321740210584155763969326506541350559546569382281727031467410220669091080228246471713450552348683680223202533256985740708460317345495889651657387746061933099963126472181001143437322852039990793218425346871958635727274698182377386708006381124406828777801838056031371872231984470080327329317086658517397545642837295193812941963187774713462273326120336390073664725863637483091357847102562628946789947295634204109478276018706984952494273017394489610133621070323487248305770538070082387539963141540535045238165035200158901450818889741848472977798424326706790162988314035367608440229797455323675508771141592774022141682603814374662656608606004021861499411743621857592939689254789974952819197556098670386108887765584859526828378029869129096096978957828538425972663507275951770954307802337757372186182239619387690083368273718564112296188935939063877357040377939853548153218935062895155198210673390387408079254489951735977099453960421835973405267217685584096125721431252781046087577097552652322559388377288168290147566297980014696925514506698089568172228693334616451519293355850579362421607740249527759046186858788747942975005533485516998404936422154778577899730390680059535497366820963781921093991047367756518605684549675173269530282098417847972072333565880833581548771289408058111186855694613132424189879368390744911133274175844850815875494755779929463148717185666335539654831668080118268715935223331784796051257786637305436619457429950241893951680859787384085096365445892191761247799282505841997333859794687666287073319918481822066809635247043062639518836078322423082030973024112197560158687123445713583672307928519791783557392491512348335205711844712728121952600687785590152992580506567851691017406241816621854736916084159767117833963954792876756480593917307813919834985521056354013273623038612373001591393696245679051980292336722672316127986066898728124794296047793561955906572259633118858166992089132249995456749397981702325705675566697546535525127099063257825810718853823411507504136729576066603528486576224691066872685974245496668826906861209218698434924739385384784113056790378636107277151518993265108745578693845527504937809416058797019091505231479451048809913603699750728155878723308595845891952648296864774809284092658296101446678426176117725998648609262795071150343695456743669313419783892767412749871413895895829285722355759207831927435057088538439560240679704681900221402647631147792367143579069729722329909989013777915448858019198332937739667558346093802467334370744058199552014614974269071644794809653702666581981444053677647718332053899295312671372106267178445189134133970015723356285765795792554597114205177732824301643629550418736056495553053012750110553040290760975494255241752648889772755963196699515206072243658971805046038069090395655549994160353317130580468202993839667222589789184683444470335977170618450251467248489087382514479143527980570949184986915042392139117107668895643517406065607151535519099445664261295153527114874115220251541259420252715134867478289331551893156731699786150260086623732240004144183601936522565442536095714938831403924190453466994165072734709436006374907484260954269819573714981906121858733087528049059333237525929563592702295346334742969900575670514321997711791616198320285526435395714744786889931396428107383307692131468952112583138196371934278475750797275111654239005020605932584530425270607744582624182795560721267116074837263040272350599951107619671789039881262224277567728103402057142957984278196477423252851478647361433835807684268550633176677410025783147432908738381478057150515038146888616194620582282244406747317080370679250185016472398130491552527525815516531189645834487168097467323497066219389295763633221902570468174227484715405937025670927634124943263103188780912496926772829446497462209909105164060318642304342458572225610730865911503376914044519844814059470783750032230546098964426932303096240312567180070575414724819132813081817936879075463095681658198367753306506950451875124444187438984326955193108466075783254311200248332227258735603268986079972963337466087830541049901140022054140656644874996344980307056888709109343099491113012269697804276098332397100076143935753533096989704813648733297048273428259307254275788921548767289698831643201771367397347835520746182175774342274778044287839939336234608656117710986382019266727797331163926315701968147749112002238355228003689209059221657158711155930528878843409139665219541252576755122188642157410402299782431959879940715502652520899308653154115978523701434751325303566398429077749140605707460612590946340475131906796763732173278481605917589910397970905204711907601168158034918468461597137703077416565850147704697735520937200379349914122755247751191100710370977027777324837399585930754483026664733514966700797701996826661486585254560690896572837950533379209903061510475916528053115981712011433370151956446598817450377872291098173018259843422600952024475867829804200158277582383677961501959813017172550018243505061706665571416243162807865239300769174663198271296311757908940240425629060880494275985502592803381258781765739374795605613000880354647577926794759926795719048947741536100893526115707863593903545166757825194148198944104160448401360552529183148428610177898073087411645903701308300466977486327361136389722378478792801748913818155212823741114918541110852453637985625213868981691407728454931306311377385144294219522642110505318761497452472460002424850384540571978922316186439965058495174994537710851091663540737526275392058063728520354047278259511339824561658492212091175304338869625841472844428123180799798279550667072154044766327919652541619289896723998380601050132211784038486213683455629714523289985801994675228841068268127455200352587620201101356816781996907572787681241448760746372220177849249617451071299925877770267651491932219913041684421454205797174693525716999171518418033607449845802071175826520324039526942300823354917887554088427683718835687577652521193086192456399178017520657791428599914480327255831988303168158818028139513530920937382306976562127969560405546004555037821079152569854287322644423001966347057346096938689403932175732194550601245546529216910235893236641094966304098329370269187934949301519393377530712909226621085494460278959310917188257572144903884096311362356575128712946000257802887829700220476485501573355555695439377597507455190026053204428641787633128935973192923272197417545622957607628942675889581858662223972788955732253326097921339478857195977300309259496551025939935239459897556126772501687743770574271831529289603202639885283949162754275263024580745208245979004381535597012511156536040889134927468298183502832741548153840587708740913909804754492390644035632414980638474739259258915701646350098310724872897623999608851166227948163951230992706055362363804352474003269085288960318574649571572058876616965501374351278554345399216586455922756009568246927904074932982888444501376617832305577879467470279777483113607259368572244553114767969610127767261694071631228674628486879838869555642163676402483844719825738446372209609172920599508418188596606188070437472834051369071119602237559953840798681231992535597451118583183377109407502341581668107593193208836084288232576409011944973769141905631112572682303076749369110610143638516449216035032589705083192104873821768066554800664477041825225758597297475972994944195738958349926178744570868343151916507231818922375329984579152846626608185026519599729599170268484784299046280966264717091068943423883068197118920349232087220165269241164876439472859327008106428025074891741345314523723471887232964595615849153323359350281984562631523878455369709911856509737866645855454087189085342762056617531304280499043915598048523228994373403448875787073743108696530631224519905610173642736464650054004683862891146910699612649771364588566962868682652373903243645571157168896073351256706716963734437989016181542115654789395321594167162410785523400384288717357196138455204911126357811936283590408896277378360576194996264952612348814705305148653095624056658677475941900777008796928275785068846984119782109371900061053886876236492256889407079689438188561621450566636729086280574953740729018941794491919158080690312898580146616125079618330700262424661031339813869270194273076940087229432829425622186504582778706739408383234823116020798844270576911850347544700107062554767473482463535802292031908294134745274847950564068198153906010918748773977390538715710249659344019166650962734969506085282819143108097976349709947559438116127595507355598252484027649288242200635318749694866912469102963448058468542144581125011642155878641940773542967049358853668222955256989643509277357824925361458271935317791585195633855332350686724500963968704618428659502462168307665515359142883049063543558793091185987652834696052805528572516521941237050320559860241881136894524884202085587731542917345308987714583613778813096554337960881017253340877773398982488100336702918662558883925564077166542023773460281770010811378561807934936255405723418629370775099127560191632582536019562347008400968004646877623163846012596749572927675233363410670657117618159129566956950258106544899367392190946316595221480685482144729430384920404838397526096197365217848774748466557184226356825992484180010203731452948285615035038777841263505070803579309627446027932989341120817705724760655848809755009912745880481342716596251624090779624059515517040791007089203009418467006201429207714231669536179218542717213435917081982697698706308426395973259573863978089509863141197990560887201059360760682872827385514864503767386154825765305187974708379580168383717930933009932189436157019767946914501521489062871795984587862903638716121176604936772721652521467379366100224741951017682786259566850178262202459850825978764294326667415768765635548337098584207425518823033498755012807068507468569699075105591553069592935380580619632991294164132794068819680216983545723741158729571573556232836208346206769917184026531737447474173402770612444799912963368294376746506178839819778024291505487742527619478551236829032613755875214878032761871065463445487131781785349369259339000001430318716939012196491499969552910667052034249047979018601317850645696744547356218370891597709012089299307516593182417870113066708379467433008870992859502954289423713122915335612215159945114459880893743288752359738718875085460634893725427053244257060262147609029794612403277745816601127968471972409172208118841170021857799769773705150257559589212000977140867733117633385550643478720008787174664305250102078029557854463336682020246627979890083438417244058919623557339293546616292600419621483913516471661168024725952060210504542003973429988260458291645181524103152295544674990339843051006250153556801895346748351256855613506004689475679038456900767446873199951952736265247818957531395904940148820146389692331957099591429287658182738784228626815716898462192737843088246773480156408988907553754567321739345685979706047818856428615868034866456817501012897302217264404037600969328980117950610908991643581044737569869296196556247827733471024495894971665476057605979783662695508485415598594649086283668044657055699311888625108406986917766261153235975081346252543857528999451749256093938358781712219952520660848857205471579914270762354880318387758243059919603441774737825697854430128656291894957841274206475012907079187548259194262369382440964546750926007618863386113338010562454742292965600318703258361847266686449802478337893624810770024534375416926333275189950199136956893218608823263972211499897967983774167650199595482289104657127715502864247188748384528547336021558602548657839229447447182818114167111992793720747293115282125664011796603088580437597343996091271749552215258130274883056410964556802518049400475311622263600497648330067051221975460519837485453377610332946911436011884216560999792952348888614767993104461539833923796081061571481076307310037403920322363482347888497896564198420024044209153262340239426873666367266140650341676625661257985555317550574516824914000217597743749222584469899008701766872774084191580958274251030554539988825294088186884794023931762147791796210575536629538495109766549374591070019037738327693373298408287614099178062482418307850394299699784862322723732687934133806416737269684502505551935581959196945965751909476153721435199779517409338046362174781425027903491879377247173598141411238053609788061338440328122546674219798918585732076428824267145824016117171527146025081322408496094162783890135166748291155467837171551773642222289783834184348729405241124536583544213779656932125765129888002119966042320526881264504478733297761638871397033984691228096603850241060091841125474360141659877025073335821832595800360527162608359950707561170810146282267984667214811002256480605907917202142799772710093247823298447827607322609724137667575604246140201968595309306355770542669515184800128697635619534111167345827542747836598956886981845713282003076997790088254980134581433088802820305266051691536635758533452678907498203001640700919962442783325606621765501723864115850711789009716752175218108173709395223718965394250283573878674658968772192399084674655987800028032173152600332070739714311608994567569389125196472862604368894456358134739034185511769180140633510337366886522924972875808136770234754509722020348442469151170426628103085586661172728697327166668965982368142934084578252771864740068751692703800317650285015980437330023293366331224250853134064640057408576969685561614364093862625542840105733937703845332165603839752445044149391488710646186307240399059300710357410749476961541411677667091692744221956128918308266230794576441547855652549139478057231215557502428868472286371292142753003266202379724966686203548647986459046382231599308175111940701131188970505981222317197564541422186206960965069672689814772734582957241414384643969164859203764982997149654873414783848638451984924159375703960077112035687957256004332918339062419207313270943018956555909039411498215411468641655375820090696506617440426504576808614741128693560344473027081072971605867758670844849325086812947105023749150420257415701464841531170081250833480986481429297231270144569620142853172514469707515111687339436964224343605223059327565270502754113158015872207392601199430633714237632932636249880898555129572499523043104632749050801415581432104727105907163694339887424459319840311417093609294746161711130258190172915442592798764972735020741998086461298687793610886673204804381921689098678636865062499293382481368334569683696276463094844729594770414024435220450395919655989015571681105893445819702955345754389448454160988605071728633500058007294579612036209295101503321783650357979715683995898720669548220711974726545495371254551350585945509653242818066965685156944529006911165883696585382762604926433243772678533756386756295011196645118792385775044028377130006376837649737762600021442845117681616258839586253285524447492735242370707524976641212206395515107056724911456254913977142990114972873630350038320913815274090387789489106081817257097872715345892946326811356804112926348304496400592643065429009553119264156730383424631264119929890624953625147923906880437953778732767764596928881178486184855056744013827125580338344084926871383514150017816572122547420751471325100981489768254000375283304561861696813822298066385723230616180969239815686209933933415099176615062519171460368737026508493442378658161022048706621417658169429646921723136290209013887805072747426449938965563788723386951044520805094572289510361874905944876108363757480063310260212247246512704768112375186451050120086080457515771799219510347506682835233271928489834969638717830204007732832308392660320633300610067491591494337421027355885681040243953444030937483884869104137742175772246420503418227205420619175769203587399507455079399153955926354026213800520270847759680642248794182551531633097986307160568134397277478966508048955093384177373431315820592193837190689996661975596861999518484884924303311030313631730096602448133676513686603747382984203641711731489614885583001339464107799975040007013245995749962262426922966943069295477124360070025835822432412628739400487748368564476809843022445407456043738910067527246649940260135672057714694799427141409964628048594330883140659478858577258770718865719847637233548322945443257259211148169138796893122453364966333983850419322730158213697848728220004420716278038256706474534207058492544256646330154724180963826800016932554373346307659012667060365549998723257709386106061661054377306765739739393852195815093451633907798817641146233845682696577801725181595319047158641998716503275722560454113848756473460634174011306251756058779000049535830772094142337893745822285802621020785919484347333489478698198255534321006737097552992116801368800437709110104788488226848175732039627748702432528654142990815296596082808929468027821886091912859461261552836922731458756872188134128483673467726082314117825543692084007875031625485214365689352696228658023024776070114125379096348773517399776419084782607630821648828410048343958629137070235939728686770212950174319654073368424487480697984754150459301725946664060723911716127200773716533961469512213803122426436936350614293747679719530020222782588914001628804607638498026047035409353819499074637754331949894910535367406445390917234445285092928976855017685527787672226040403055662071343749988163007131853671735218078165408012011791355146638417709634737184230049891267505808712705909471418478653864287349319120233030456133327136969282027197280273493172333036384941974661726165787906929244192190789001433358495421105088530650995969904720940894921065287780617047283590289025817074298688774192069411341169614006501251674683734279019238077037961026660414738546187246382319862870937761983682973877280873135522167854144354956216142495498820330813832287672643383572558911077743673975220426363894469132896632894947567711200504196321297208662909828019873961563773158730857658975750259638459996656071158114079973320967976035079935177160252419421560373294093151629344575846238385388941514914544084067396981772475352546200131463440114537036982688919932029856239071280377065506294829891045034863290500397802062342815864743536902697297432819490419450569103436434246523409688642780353891788909967591277711353470455412745653254496984455181360349915005141248228927082440224606850625461573834991707071650276570403882087958391201282396037524597311562711150508038858471071669532890452139558259944210294773381745798143301558555360989002717861170816927522441702507595732533968284813254114128636601367401818623892034894844663997162144957071641901370869481212899276678022782931488639726770346221838844156402065685374082036132102937408953933909595033800392510028607623771801318373378983339473215379732142980021133937861638002425939723968058263129568006781467295466498463916056718087714554285131822842251195688026237542390736607335969297160527850431529747700055294831160382085717116536944377081979616699201358631987904209155181785201116137573408896810316405606582912261141073671724391820171753667817138693684825149210266240143097155558038731005696207518490998743209028418493259506254866870257889408480033482858100525783817816170977284393894796281633143016996252710557704164002639515490183767461567610231725944625322838698525362642698489034998493898560280319473685750745570523263004894081516427417726870298832670689154055031302658440694699549950864177195318901093141909841572859743529256071827898270282613111410097079841383334519620327870311310661669297357185160649214666150174494617166348915490998649538580965180937324698548610099301661944643895918001327664737097422988412845259231986995602775265474499339897345122890858226208947776985173582243493261623838726427642298973627693570528004836544315192684396340023497287986893885250001835031520687339383185764794120269453743591117442540425010133949785606711168721036694382807522181964529462380336661157301107227004878839298734182935109331991922413635518147498925889274522576373697502403148252892146198305963080100274674331567415566653240034905716354298455819637208414088629246575863353752166789321396071366185734380663155964012436292551269973749428007694792992852421744271758172673370845132731599238650367694459662384872392873653715641778988281877724068650480742922914225281939879550403982015038496814358829356685161805998079961785631684865741009978198453854597199050849549337913120873622803102058598019423376871104344880587932482774214610060436088343639351663129831140007843608881233016710952529807459346177328720075325070269557536319692525668753303700046256097525299976875931510558410641747191043194398972120098064691223485565880559583623296249957398248746328572297875097917212394956563310292250565900271327954831024651607980040993323982666642688249610156033188999914111090185021218315150124034093007733153276914283272613406845048206172275850121562401205837129299200527037106014630139771864987594620282755009899193930612515436341903109562385004570911285333561392073264649760297245404742213970566036159233095318535697662011736936256367576425708228265085288397539058759089857490139617785897625509025561603876613096318147983368423718777056961681088946070818102211526535224712076383754233959274219843614716174327195828701804370100924032646357258208982428772824313440001300783622165567627682213244350165197306107525984170751779164791259397210288026148023526533426852413855205123416081803108165618407203227578188324271327568242651182340768259630174630848143659301178970478151945059116834380127950894269361938513372001254761698422965525089042362214726573510318450595096746006462555997768497633763597261527350868292084508779680920567961312780238825430665366159358487112767236943473493168009664459063709068311588425625354053587479990695592290104281545467123984981537910089593731204602224362047678270848378584686308079499933951787030795005546308218127687180744376512988347528177343223303611149207406986457517782884520294043019285913631080932412851384422415933493969514695572108064157731298712857871664296445716897415275606432945846757257620130418644055901205547098696190166021737827590396945347240494372523377128108415935241407139458967725887860302047525691022466357120723049055692885447338087169298348804369525854848045293302929229211473903585543004222038272580121899635847477385913536533338898386119288381584956953864233476660904142028517434505073218783096821897069167316799660859282085555396701548985841064718404907814052235196976813839248257701974463436444783711212413766722390842872833365453196267230978112519085075143122856616801023817228555805818177422794781914891942641965296713093488241095987697499931049560902687734158235222812871862424213865280727271476675085977871170243500854669841453614348926639458973171045782302302717312553458924870949053735154579974634659440758246513762967889535139229468666850607386963116293664978956992291643179366950804814188946931370572359378661815116438945610005216205292296367703981311001258810355138166751356040295173704810258656407687715252413392471874008121321170226068030195088746429703955973335147273745659603249055138937244014469108769110920637632224642737325672025666989890719334733178631659987945968093578758924408229325728790138843615149642390024000211623763039220294674784025571247736825028497704502392022060259928720519103120264361487618922838571358688460594611636178826910352322507560439094037056426233351498469493651669594789603073109607642144826389114682753456439628861466022194921315294303193535772790842617999275206764868951022117050608035075311810236431343757363127841838164729383057736288171917704332586510708998694457376951359537396859598253777051460910587033845727653960585770586781223699356736483668488953258028383157278482884213271445992438029708895064440352906336584818236831581844417127308554124055983756681034151438666969524019841800396335661655563320389000571913248602142676962251951160046769823668336144526408465575096264872469440787166675069528809128317433235788630852496070079140774389611874470895373600233247406390172057700196946311022422924222343250002497987158734682809236153382004764088499439789736745556329062096766569941214615396627978742920035515011103324006307994254243788156033799148577132409887376793859182267886339696225518453978951742010230283661959043253993152564075080963600884225008394460745869525098190842576036161295941879589305827126543439885270907675975268372420645892009529713089254014852196417494910336240175683250355504335234756737558439336454143374618017277537338512109168231607870586471845429580962861566945764329141620215937730738710430071907475906379490186326366777705735137101873366087258306596600788172518952925547024890688052369906373388828478265803898043696817460889459044644860498890943130373139814879894035507413036685905264102138183185782518524952405709277918752336038444372925834351218722664029918774165074442291634672009288773875875070154894286878632408679622397533917331890244864142113258173316038702666867158741158592003222238131135298898113365220869758195164915090051279559717856222554831205681271036738553496894169241367505796522470658629632351346485416201077294611817484289002553937707344988251675517326734073236534390239795711158916246721153288790578746035532040592848661315955573625809534723763538647248207760778077513013457019844727824260228893416420157066374682517620090043060272014837778270202614189232014598936278644114985481763698292410748022230606926524702403447112735835699349162614535372212958146402871119034000974677205890094103263796587565545396345937517098224974473860842884913883457766564901035006184936454998929014613987952326891882704655688407760182867412999535307114482028051997655373845434923048331096706818084880197825317332258657759305302885909495211451140177398802290441738650550930146607321255841905127930694642758376673608487652437154162068917321054313830359553072275190308705286998524578779641137441145650138823646712714238964780533134095781027133951289719980584908023907034705470764160970275816326561982156162126964725126301460735082033344456709112310557728758799559391075631724971232573758707871743375961730991699865894065378436202369430418086775239469720074981299671354317257963118496835596181469289425858038682713796714632795108328303256983265234290175595545445577655481782937340012930944490261586788411361567610918293192573015159391340834928607372094494336063736135749663170479244168190336603973875747793693763055436305242403510015109632368768676793772700231919518855200789839391904173094092834052761985529688125351976992660291812297279258933440305802459040921326388846545119518188068329298825057002638877060042404947228363558863007247593472059598362031520901814103648595917473228853642021949515863272251715318373905330589058205289686840954750711973695843701818535824767829102920294513259928116291388498739260140164899732994214123563887290649234901040704802636569815061736376385125793603987977764050301479361664841895868042349233971626473643771179676272658141141877776823880306157853116175858420461079167831773577091432198176055974070376984778798842725498460271215929277340744174027005775099781629125631358491577358331843877374625911268355461683086205877091914261221894619929281983611917642439791271861260315137660112590332046478560161300445742533288715920860531916485581557302898751717040527541656428746746511629504719157759699339304890715806044028472756709887801047526379349236574600460901142637914199469566726475431933581002623668941926926561240706475735318197684230397429173374516076571079621863078199779158094247550051195123012058490350742868454602196051335876914258195019488177281445262681456771271167845966766050780834548557794937893985339519202507352411060491267459085887068668731786383193761304826301969198735294298403741065329230794778421397145530702786646436739479757608759797586753166536425946803629648710331506430285809353555826338144300374630892540825242157746358645397808082865880127684533487322872791912684271447310758244340586307748391605474520433383626497082835703729840236510753687485907234398255225082052850725949527801717076539781977302022223887742117414559925221280324420889949232012821705108833302559018844824702489700930671057500184181052760463499187113040992252324965353468396328609856538050983976157767126091963189316883124594192460934333517188056391572478491030870481856049877637086910828611987485068732610723966624633857169048521945940421113753243206475450949898339721460112135922914820282529560470793585515712062225649464142337132768320212133094614522510399868139056542227860840793751574615755901519301183913101378393420088572907074918004309205730929122431577668621336960155007013541549384233193663368932056795621389915354473775247029034018472111519191009479116457520836269348802937309472941306765602738217329130227092305667877833384281870175662622608782959840659787503811375259288357709404485008886649286204381099094238036388662135292828469536362298866418528866002990015563509123651249250733889735978440878488457031524293251599533435720655546922516955806675416858629746335005620422623757763713224321470751384803249000835918275284390354407120838132124009949944521713225475188378467815435483059349220481494525949535193956778044762314111743613080987886885769339037868126575334212983408335101533097061352864260429952803856722269693476240391827225048162502902460521224571704215223588640948533490178720481989238445532627665118083254365835224406899460750750449375185135788244898886681219363128137253253096227232932501402345917116785603218381300115998486345820585989247842501244892091200705861820714782836660814169301747061471623728599453020478326069932943321190000196160120862237869831834021122351706146015541920247018552771162479996365933188327437491192880405167629926992981543111800993354281548655751339072696814381961633271537731117475685767287400830903653495062185741648759413917525332696559309950342977198635058289321152291553271822104574406440153243773069202675829031470673814768678107398109401732492732622499103269951139927682036043006384052212085442466938590084955383040920935601826786323597702227739583637171380907785671003802548597956966347367502065664410207330057643428904324397886063061739528604461199405442026655441399581438865338917095262504104780946704841673802366539516518518778427427570184879852623438801349838130121757232425614961982347919898375878716325893611335516438282187070432936995487699456634785286239308714909499477960552145973634886333313238457825641988057190631167009756972524231825980342475526263982909106393914779779459836890211666422419361621328563760135666548892797182247546111503464707476150363359687946438719849562338116466091388602766991975706482861310666616860726566296307097636121101645475049180433053137453992003131567832916621813025455548656871898034128290879200757800713717128829619936166780686459731469285618413155282484625871199578697903971203309326499774607355942537811612487210698856982101612406045918276591267556644397166968545676163777806975418354716652213170599061629119219294874982102346217960123512704019482560964947898213804696627405049380963163205739198473131780076604802715507387007687371529952971887043238419681271132247049047375059994549668174035089702931406180745390056888096602881735947206239875601465766203350541205975598423580695096948522187666997667466102858648293459261866915247931738174307488904147963843246274034338506180134952607110274823059343494241004620473034474549649444983214276159843466880266975882260310580750160542657732253293309021532721018010157291236499569516135591789573690969158669455033195868055351500576811496114279058793560553974139447159797575927253813056470238381966562086704678967199035641051282992510769156608153685219525105310201982411243741328857179795011233238567009961033781400656073796161863205948639411008217759708449832038269064308153582358406633060599647101507676206189004888229497235438918882261212863729230428798236293428812544615671636821565314087625178786601077877310772938824972500871581508453171094999214526579333635408120429108485400191488219864921239433440145121038761188370935915122081930936584619750951516269057267473168402334566083635673921578935143214286930063616411120677384615417986105653876104571334901554255729240093061001063892324757953721817904472495155698070248277743218319164190430563463917419998500143197040228021645141499719829269126398069193763096687803607966319837637893770369991399884100690659991172684130308118076464411126664022842299547459846082325489855468098432709136462322625713473031437787026339570746147611247090818213678314875698177282763288774797559118779487369875175286588611249303649330751160046525901041627961032381466461327831951577112105638265524790603055417659598679792726484530982144862841536136418557650799269768588314571515255885749751781407689796872396839262299163446477653834519919488614805870572503162161769692762332971439849346654728637288442456009230471228569220188870696459837837015420197555391853983487429918658307809413519178684347686950376421023593818355981404244730641331360705326510164326332941623180728945525300364554903435538379328542633847243228517875923530023452351736441333694894555260748153204789469114499733869550054371830379288582838276656284427735159900207674230155618962565207654083997175186880543987149790637278799250643651518275416973331976805583645053347958284498338037281610093935547402578603181424042979041726933420026381458645036662920615836626558734323588545445004081515736718958501196638247276740276310626204340361602318233839966418733491206934439715945946362883776960586844722978622891056311648969114470227337324969961577616581500077434171727257044754440997275216271089618652270091490255749285310863691957469141080795449882098017401006019160251557914601182092613483979110235836097168319520298683098995001340918710441233314883680636417438613419542650100276751330662681143590752482709141988701724935470090409447403143387792226662330949819818897214560252644819101362325488009906358113983649544226849515121832391342937910960446657625526729093077627750767305691370740089689575426583904096929395614461514976069342976246108888744023354092819666792072965528945666736540044041392301791849701552482607248905249196364756069020297320829982948978814412454411230325387563918935341361995764647989516446531991377206697163175320598780623282207716050885834010610319530495522916308608005122052242965271626551246334679213936180895405860944482262113572087788976711985952407069190030028973937696993706294368726946627124935692197782658826926932411735898757917115416524525733840860626015795714226520117008471292162157110305226087873844354382238442336234519710511201835226902740163908665673314750595916046149741790488865345739315454574507195737839397265201198558846176885284401330644473467991096082867378326912582648226029708337389407582232428781438268444692318885695911066127611156227239196371688842445956713429342022464417481281305447189600730322706652873273335788167975061737065617901499796357180227658538841539319911161396877719407399917126948197252984183495873524718764818976162889926423137173471804888995046565941561779717224497725236276266956150172444458678646062058689148454509193518454502493576862910382105016871235120192022605875790340408140203108613100320218769477215772001565326549308104260355313441983420711216121240164430977201376478482068272164543284558941293862133173927475788976664790734896693912160104790550775455970717942143941339914607576160228640869705300908136415614698324327528347730294745925093845075940287515698564060414553733767977822885236186129057261334843375367307768855934927247791228603011447758589362218024278736091627475100754104836632923106013603992857995977593647789359171481287348035342128367377978660808019034502147240415142173088765104764177469419528502364685572593082133200141649597272717944226603274403761717793311026181983747857155871243152368845762538609891099320543728388101212204838768939839971554325660634680681949752711427365459185161928470567465656078135140090675021228856858297176276073433269791773056129509385985922579215393993255752677140324531741189181523631165791821100535759646459642648778914251575619414599318479278497011015971619305968634543326807706725444566079347718475794210330729872349352599040984676394547574767010419847803662093965965215963746599107601629392014070308034546543123221882881600446442607046061113210512490379657197719059387769727306495217693468325268927235955391574497979914678311594219370566119321414949460314442791655857970207269816675974283010326846438237637404660437492406838964027943267198237645945658211364262859062960472351773495508190780425950766388779121484106559091977817710752820988134956429714624787889212266672022289004639349711679241804477004292985213271680736514697043147580544516721488336751629637870823542905404020655901329941790493922857526993448320842124585492587977597726698147991580206111006445554467730511523763601773748010741558684734508166092000215639678198188523650906933482273698392493359065625323769721984334506777767037169014865368274221926803573622232125750523060894254135716000839027083956854288576414768691113257851959024998413284448095073411823176400010046250010255002758372379069810636458458832355937907545558321559613423706551939568994619003898749793016793418782900081967960939029378756245706616244312463391642867020276683504445906964273749627665130983681470483974887487819731692224756609789943486922983748024788282179257931983851433383644573086515313897312150204754919571917901670503403389416387561971211500113389313193966942536935142293849879336313090766532328213183962678552689358520344530338300252582545376264941294565777713342557753525385494952057385294021581838501939137526856753680877619243973411966369970065559537625242036604089318839658177604734240794204048710409247197614565393043687209335478805777610617503562142355921315149677873219088478390378373840476670556189843905943561504214768365029658528134113808392077728450739537448728319567070777467452877158472172671953380384352344823363750011699044367582612885594941866181944053224197339858145410615265597300703097365832465500818454177536111202755850028800648495557072389525565746782792334740243985939128517784834101754733792924997998619841584283562008431700332297263562249019138080783684233791111630441521319012191099690991855973014367243438858495566068323507408392689785539106061229671586614410578876956102475544524577645082498742322665468188907307653649050778787975848938370372919609752228290619828763553275923437994397958566721041061834331424410662608200105584545198859354927316818407995559755518690851152766618057256428864192163733051411755735872425403603013151983890775332513355698145130151229880938592918475116787305353120661318937631624484346998434024700625572903565171738900395997071622529037754931128043639386106893198392548118594084922120278302225431881927736043900921874607737297909852509096353639347669536862751762571323233282315204893024513025801130078275913963176568291403204273006135201376191076177893825058654785146267447646114894614012002961632882793612349558632847419232413644913138554303011478188191392712866023015644345980872946660984586797759653564826700499120089472334103118826444639561976649025087738009542259592533338146663708470129750648257402989457915427430457017358414561354584831800032374200831640262949064133026003143046082726883418674474668242745057095659244224029432635037315318950344526992424178537111562067874793247011299074604872686154129429955393101898320810281639451867321338245694355947764492137752647322227558745117892200436583757871456254597317035374921742149429132358604535825223135853256174624466255113551886331488260077131844017773078565116180520389466171678312111513770244797449391633317403475949788626709607888834945811134520192179666206543656936068206873732792750252817799670416737488613454905875346209657479057754562924376764621715738551128681016100721067707445812828153821943674754727426607115873834021971365430866301240454962032054518080275026357464792572317975252835469148479783697155816047702569581545919391616803079958674758368261670988411564299611731490262057476513420273175858185812794941387059652750277236627457147746708610589088264379559012470290583127395232037784806176643897863147390211982628481616232528050793289843223529127940326011782744033998366811977636920070553894072979888467672887676282211077485265921226110952940919493487257993968934984619332016436195061956436639001361509295400929373089789249043747303406981797819409773999991384386908561002646389672504767295721674099406475502920177961175552869335890096004254957207483912629272771715731626409221274211934412640388148884904252555095168416344902938640695121554233066676171394309646005519907927210522715844079485600560727311577561714413615933825303125160300928174128664551061581730848137821261921413971787523396810205406919479188451209563663239779311508654665175362111489013120891836980883851517651576379695161768108767085865374742633948002555642687441705713421030774347884204757919680338832672755837236396514569104466668663426821867380168855453400531497611535752865309108752893453483391609153362666253485890149859101142973017214829769736235598169973653319498595170001727953002463650335056686245484521943685740938728990879095062976176830638684691231016831697824548303874798361514396010544722353754285908947046897030834966272385454167664622643857669169773831574059136357335919356492759569596070659506412610135931606466583781106484668991239004343775277583365235693528168216165905936770797839994982072057367058726678523610680220127598033927186874045156257137496790280162499359496340646233334650112172418659019161197103838077199754466898894764022173361866401960362902787389676352275577929453211798347700618741955704543342616981276543656483815772773811319929532782237694050514172916824384472494917810783654975046027751078116058891898701602245424888332638429354219408201063103639564964456159248991018013621073018539850987925351772486500769068918714401128935007970114204316662463013913968894820803960445216991550589360348071203025853655662897050260520358139192929789868293005570182557910671811069899794357130194534428712694760369142339831484373467534157603232066023304882500603702336738039949019763813625080169182549466007853272409911199738720722152977471236546113201303470954209241442594381805251475802565971261327744419555809469073000893841021773408015869065941440315236722810313733388914748677070379783690893944957916232224090605755704480259778730770296793537352367120125659811937396143845694794232277886474376948618252691273154675793343911570538189786473914036578347879816697150438379117913540571041682495815947698342860013574730942471842145846615153502711331371119498812633825497232632148403371090547401134795369313092860542932258949932895683403556840046804723298141750646306904326262565536491390237401770578973684357856251674634153884086293408674914155443770519402367950089597835911630444805693794088325821512252628702383647740164921065903971412593669682558596457785713331692444927510633311485548765200935323116291607351672683810849045523390746216258813863697424965833114263073226407875565588123166737521387565511160389190628649158666350992626770288808601413576207056441949545091250024977626201891582076403632270250649465027505641574155685530338455957528998249824797889036218151459157746168357041117584171858653795929693643774975459867776403946097833726606945195672158875590899461125227862945583429742796306616476678498144261063460215025581224265822728346145674629966429860174458691137735651198175423760722968161589532977933664972140935709609900834875729904770135439969837283410684517781177681450746875858429730087624812787438706939983753865582010051271444097033013604763562651680553048138142767201198244142344590704643962033276758525844210471509133668031353849047060762136545675739864167213606170860566410626650547686872344845171306553098045245338089679927162103759635558651279938801561409471747316335570063475361569366190935730005539381697892060396221627611245731297463781259984588456161882027840047049479060338782106895846214457337102410097945274551315641643788231500080386714726340926925824623665046609176103000355675981936436940406044179683372525368169478396860016629176726039218877497886813564924373049630453231641763560706332711361862729194009446197047948489733299244463175973194988098662282749545189299658797160208564990491300902898245473779539445204880976362260156950646083428061259226540799072294639954918699660629670737832560713049072748108235464359956010740441454686648468747185265323890201109856024844848001918463102833769327840991227754244098189340917162995554189321872967694566011656034459643371848576485034906842467097036119254141368067741669741464786196582153417426094056025375647127473102055430635249495554343109224160677026262370336121038077306780105362309030069582797661869932501447242388203823470710739572155074609743117483020895417527819963610027254120976293941262041730742372135513642355973768910433673030015514340496619302577626984361740878900488289222040078905928100263882565657378406454950793547563830185999706292690357446151927205187448496932286178240130048925518854827588749198815393833060248784246336056346653065740648295973850937537310838183457592523126270900948139507725135954058990440799054761443528710875544183548546910316082705133509356228664110715068803253932647204595461027370416067662502096643239259834810238717730014429681738068776436762312405316349847639204231820409406861523023477272618117884293447945466636818210059118561375421663594556955412960348860375118306390221885957343023316782444451555062715017349858326795661410235242923858237059017702329169116383338846014581148809792497387614749883787412737283009135879340026259785084124876141473418303108806687723985897935358984625354504396476586604154879281286977577708241808322505941447561088160845847414909241532516789008655666176580894806978445544002912705785647872271141459719436536222554530407973890038696269232787596845057022012169894695591485951508613300812394667609199661300856908158032844672805713350411612310622495805417713470457984531135624508716790553528424499845608069150083948004117683244690121490463960712592903285794279421846691714066925349875773787883468890342539789645172403773223165362551875450964577121364195470345432387269815973443610213431887025871170679878270874702551519973651606258459758203328646622749465595285386519908670197542827613620846950589642483245310974031330423490723811217293578311210746350549503686157154807953514971712579451699313051145703098595327846260068929167850345778269943544235669686798851784108364989247083840529015976557749375425984821084569440645988222772431459667355692737913469080407008956144049518430733881076014567253047811411710721056119052982681628474920379295200010464168633016482600828255271492957398828988048226101541230907732420076341419410572193070543839037685679687867397681610991267386661719828636537087479654779269723043023381382958473384639349107836496286319688051908083298055752829677943281231082174331191713756195925686210614596835328850727663916807489962628666735670949572726315487107370346882268135438612047487819789796000604492436786608065496842876513920498243065325997334876269516808894487257080661504040782041793549390583236298477245658234239593449293518967523832557829220068714565215194678608202930228585976059624945643267401535652868524752272541187151116551436242177878492302747489238346023811237311140954438440364559865118773475281963119898954686279589792733575081927237092733574738622718989400428037132840959337951107074892779969869334772181794553700997542021811807303103630014502862047564614213306802923470018181626820540987316153641586796182845643119331950864042640428143055796654655631513124649789145431722428208158084380085772375859725676762939989375481059485021561017159418079563770351072647632378888405434811787735399774500663557518250895644987753657534374509586006984068672128745553533290815291392334455017996562339981539472194323898030051096002292303788597302192631102079096136328950487287286144895239680889801491982362644674510921339766079372248501112947696859691645909216920536750843342659661170384701318155143198684080848158207744780823860115603342259342372702320743200707160715610867155421861167359351387060691356130685256349599122111338849841538661463713004999541885748326852452898034481151690430052850026774947994137993692600754706859145524940233654959583956942038608905019287039539344696269416311065772453056385117546109750354639978789209445927195541071854088573181482191632195880864254116018256929495576736953448304147214469122858329172346142988318790000812267581845637513775378323509340123262985632725002855148802612718884586192690936579553690862369291770520429326656799402083424581986929355862998480891953488306689773041083048531807913925494762434670400617222132000957669617522667641858335461715195602115227266221212691385109317670123140490813311203887808865510379582281012055392442615686039038691410443951825639049170988359172033504780919348206170135117575711754184548122801148358230219020888220087087682305034128871737459393617740635392625047372258799412773119320380560740510096348872787651701994155972451352413573731940209552630280462554331473467890819034287851419321596008926527138960056661063909726038138656882469602004483871208921576032183111829399587563177685826106026287956193959340797125640945625691080814838874266473513337989669293980348297040607375041111096838657369457388015939615358972239443191730193393238017696900026579875785174324847535040008162406718076184623128591982271103335542306023959242813683051696245647629995450571811649112363847777653382822876813824923649324559638407693289056855571980009726969354580678402103876297043605580740982496699636566370082674906307787637804395132637709075626906302594528202474172705484128715993845396738761570212586210567248824804993573557256458067699625879156533552027386280492915097600342702807047810020919198192926827941795098534427641341077162323170070688142788804150124757344480060948862998542329391542380594538646152889795145079481347856026479941550935713048609953804998310183990750596214074569927477679246851192988647593284635512828428327055261401940922802302586597886266982350920121498813461730919888504111226817080623987216064616433118983810155992012331142306851775058045384652498669609074500531802302714874453206205894824012668948391632319351723455758819449689291851702184808545223504877813127418847481010273458506831858354070214288908583388599188397223048483429941436199360441649969546668706080141295079012003218925209683665468933687168835170528734044017459009162184561413743682609721220469186894805443547602814530327973171776143475155986119967691234405118449342692310161665096088045380127418704003951724043923254410937073348088881784575526641964427127095831713205787445789040393358440697986219730560259109944017578431589943533870516742714292045956939711450505491600894386325068776441005445938185948707109415790442275829059431351569186110601207780695434592536008992407264754730294065829063439646571914447505832289126359712895486550832052270672046085419185090255301394117245211891545465919638128760062300414642838250097060546113190231474640807304503116358100925045157035377058589121340302504882401997038503269535285938614205403741209587608152894502813070383592745300944129666817071264667065075432966929817558221410784045538687931661628223358808153351049457644404130275534563541214014192602676965758717327624221795436700675431628248948486151145386387231939076523595805864681446167387270751250146759054905067771199343153875577265422912847193695615027316385760349256361925929542973155027188111046202393507462685751082551458212154847970037946225513193968752988152665325809561522327978034758353566701534314866942436222406556498819089820037934104907821987950911939560866219702778700177945463415646518140555737030021331327813436286356020140989895289490546070308436980002485817406937434430950008602067692820467589911715189044580251621267072403196774228451212587399835764762039957490385172296064563538870872723881116321783499402986908565304960916525178295941038791345541823413518561869795023291237807916855735877735817833249098557633045518402430647016872118304789768656674790638284210537361124857851759501625456105927207342160958989429870783824272412740826660473969647352253055343980083565955368742549173872921080512654829687572644128011193139813887126874586569274958106113968502958393897360538872462440363462084388818920137847116937714154445359307630683988419659466407119754519938838490606264313945487085567847369354033125517508564668428431196416389963582739157094066812195914971830478023292393569267389241124113697075491012362874084759529029812776217782375077584166151451938881490126320372761040215045238431920975131541224289258637692560310958680234010439288678694467234761702507110112691410008018218574086648709728264356245760619531887665761456620166662880396590187553858680247805532121378988336657927345937239097317266596851522861090729380882451368677744092456811737091306964679251128678975493934279189038199015436624577932105731708610612891300170391164972776205614842184623594066479575013447447936070788794673387552159312721454234125156377420380146420467027889363245497576380254342377111661563360573739155648160765332037366241990418055338052343023592704466753835415287412633869089566287468744644480058439799694452443459249460420953222738521171511475051226710460197998508108729078726308951255731229701019423431409140212091909451876881758966021801493798321163575857794278509953705015186249890114764180348762076718402400504081216491650086793141067458924097780845351802706980026388416179702893496372150725250924432274213750532947244461900821220323485887217299770041621528892833108843192483955313559158785666195473447533513893782835553072521296820391893199970463692802459855973486159562955897504156328485893346664759324921958649272547497028031095747246408361531373683670624328126979524244733125556136869574707755736351013493028533908097608324781016280344770347962149993422994468839096286048568939221782557753824490887997142190548826950381420864857823366157220139416549828551107603988104177244058140059234314176528791901221932076401246409224761212594126131629634859696904861999827716425723230602220051547533150281358483900879086975304383586973514910369223107095782204341449814488955366306895422677058534415276822295846973050936522735777596308731892815222513348845052031867603447523010847456005960098114986911690528746225689651232794308463529978832562171681942530116067277293920794632623594759508091026860376070589883521412596847977477866556344473548228912326743294991680516097027010010470567814510382438771225773012582433433132463731414261018134200820691841081463204911991459747942481299459298270568825510688371341093955643905456564375477093305297760352543847560895407939931246554826828513440834664515614478565213220695840252989187992348956196959780498340290294114480410629595909023133020078410209267629867799071287726492636090271328651809013951172148037797575285436649667218363497574677880109658162709299351911821036921659669128451441331468665813178991504303320884286781595630823761900591675055441754496856720965046498924249453105109854663495761618804122933479721310204774513682728567325450337933003470992015178123174243142822629596989756410752082275124657765428835886491841159321152534079366222660105452514929246902867520337715210030989408576580224127237425326347587310758924460712855000282405461891104943516046026842119211240816356788054794648632169340815962282601514521984496291640577143040241648700336259234716040016430452171663823844988986330391516486389969834690012239244666102896470004126427520561675051966535459320017339648631493050364633782971768349001832842010139422035782249565823974666607224336608706872239930657118288654508993212807836517721335503668691027116818210053533110157591577246507790868242003314938511592675850815463498795142156883093246602199422340184586140206485387198901283028127467278764210623288147004343034636238321362679601546865476145799872732039686216094612722409928740277607962595727416975430829906197572183528543461072781857628429700833087466276320704296678052543404647912678312090437722622338769327736120423154285946947660787847110949866289114071696560930272806347426107864021679365297222095227476853191206575799381906798643754607828771407956879976553869922884180633276813505142901658481570734880752153425327117308239517455381738751289459797866368902697841994795129741818631526101434142895381083459082573888931340688563180085429130195446255770509806161574182904653494134239726864830625780474810939655546592579216475583425291251938634060042427844725321006876131588349865770285070403766449405181358084707805709584172359327501698625023749370376528800181417998492452430762704763715599876702259882712416461436554122310268035422662729041890920714564586298355279387102519801058751435211679452262111332121138688002537189680644699987253060226412710208019829489919992458559325370321277819435142612761042385108000542609877925703508438050260671960250709227778857117508189777049281086306007371237156566084303416325958494341527418139388074439798287405633953484841080944938428664220969680699349953657984220551112873986232160387246398718174065976978719761813242402832761313985938500783437811723677335690537079801522055162351508436699125906805807716117123189914376086701901975604914398541496270854400952105165022090616689890130997104857946990269443352362140709908843016026266430010814729194863927534850470894051762516315535932281122751879606222638488922747386112126109328866262471485512821731855275163712089265817033589953971398314389017795416666245684749922832490180516534319327328579383978788434643503214310233229251792198162205276746987512893841645636654982654502610541215049897383812668331737008738914300321647329515455507759639742641018207353352736204833589274279948696620102171601848793620858362787573114585671404814578364593708104758872440272449062452689718727401109168996331221895041154254532412182758427457781284030125975287253515737309965495942022390255410905377072005552154494384877363577761620813713175599678430431963523472016659571483760721149395530580425213286857740606857872763224660005241992616987690363427577093203110530898781514934366667224197350900908225061741829392873640723268834639412059148263377553834744765098602390617959566284421609265308306623313633992963403790339049218514628647717030643276086741155589287088963514410934982995107379781885700308373289085970107886105899853246205520265986761769441540678595059456239917188653282018935671262865205577982790564348350922900430279831177325522144730338414101980983203856034419625165497115074141078749468793409561494268655333527669469879926533952685374910927417055123424926932829977455672001249708933568827336077521683321810303388605579275419861197546588288091285341745129996441704183562199339736819110970978354456775443966003346753863834034416043673616441363145155967041482108615805223799617279202995193552177478241690384992907012129827504978978064922187247716647827269523591641422787648474736898144854379552064439257560437732032848413361713492144684146666136642381430057759958280665346887962397458641219773797855212333093750165387326986525247779548526886021235808223392502487310042457923731013183810918996064808938606501709726726663986141341144743019201674589096598939875349913484202574947735279376806898726444893030364252634801349789008299423389769242146938708566663865594216228113361777368818174910744809586341952596702795218794961324561904963852948937562881852239016163245257935427611414236543112104270493002298947493365515218893003613728581014520352671459402543902042543534599586391439118221470994150175478255347256282145375985126017388719109111695593233007777899340976047561473950725523552521925787541739718618055150750003195960388299524430842307567947710349860869797985711283064133491313032793346272617256232221897684700842899413323684887774581810015507790910536034246383847044986851628108906381769410524214750042216448393730999349904071559793280808339535337351819700244995125425227750612259963127545441575035224997031370783958636239861621525391444941141576504435361070976236814448851819159370410023076057220698778663766422644214225861749781236023195389270248146042918876487579173408187296428638680781151510324611011200931292787565805589179316095402151517044203612310237297123738249628548741544090488545292832896299493307228623533811780987743391059192169911846266618948250971262390408737962916244226240524791495883397830109086603775756415651249522044502302488515555497465821901175139128330300590856916270319796518548313841588847049560760490479551438223225473692904747709145603361653667100296205499675202333592307942869096900312127875697796682495883895949654739908678940197396210998885616471194353470211431988328638644766858523802823491602817259853800612406505442348617183614562461161873567511522466360212275400805573342449706865931253057481445226677387443705545149761343223433572133540695303512405541881081253156656416432009806990643616852825431900811835714117902768917243712502157218984495661532594743445645543187454821945760265013985707391647802342460246961907041648366716104703670566557408643357826616411515399521897133539570915744480691260331293567809366330462081833669597239160819847088359942131182984368368810481268794726110958705480519191799326322918623312271100041920956630580526346826662368860328844242748065177230877093278098553033594375317727279144960917373273961351917183529117350138716206972116585582136755114452779925676392489629672252701299256178472787583902184114076482594007146582711555255419239125124550213250642634656494917666874453248340236581153552873378584011789357487906020383499202765231661314165952349650258572120868540841805889690425926647803117491051756913273510558892946783380257830766761999391377090888101571370700275280752155686394347337986850019405561699321756789010881619952304444272640492090911338840611792982169265865743547072247089336624623812082081621222153256490386876828003796005107705537157971798881540079160621401307844078362648431979029739413198696925703540076210567496395747492550409200992344337998296349627346792932300222697765240622112611048728771750563763608729249970322652168951122904587799319090058259114263829111456241664669659481846026389708728639189762055498881341047022593588740310097238412659735456836230496681123514341213159606315649432147880171661764939427989970389561536019370660585022270525473490105235172732804469343802864744848856743430079661722611847419312956323516527786399222096914821914020578196972032782284226460346730686319581368010910868721677454858494061194294597128269702318248989110970214440915606947990597310240442532442793035507762187662450394625194258933052871124647834331222673463685788461486732849131216032396504344709425499895755703712892295656057389727045918021245786767157716747620798463362715002708071774998334679206999077104750109025728349263474809983807039815421619004481911183531456819443132214084717781006966686314284825825644095797457698325063398338927484154549378482728460875776710667994407820564305512827237361489058904954643650332429688952051080335427721387236299160467996377474558444115496000387031344110274168001554376251411550396099990212116038559221022187587051296577403269897680324456226490997976526901969849933044566730828709073819963605129518862613513293775513538858839706132653681169388767598941964306213822262470992943093141652788254215038257847255002022105661587408648581714741399632173254775867376559296495050741147106635372622706268801458229464027712924894066336060226293924973154251694332473734852292589745049023329909883276734069158527721656646420507829319976058987236950947682301608186915909922286293906597283157312174969154751480529128118294590696406382088468749307410690693583884965556909419016108396960790364404711046820507729045658420554620522176593327592345559353712287830256293043712437018201945696088042432144525682716696201209104909345355028930572208349689090904356696423293822327913661171098190298494767457540922744568086026730846642689053700606474990423382357509786170996846470904144567715982089576532551002418312036633442134666626127096590423901966436511689441038256742927350209340567331261013470469693095972057770592453867492883105642956436020275417967080503948384982159651632382165547796114944600723031829056562819760501587446074085570570879767909829294201286486034948008802970579802403982112582992944545762520359994194556201629917191141810853495860438312716226796193758157958002160564628795883414180255337629240682969325102328791488648867138297113050605866841438966281625549731180249841311321661807563403081165801172091099848623256771307262590965261497161497564192027141793976118394344046742876989057454422378803172527040023111722601422061234644880762725201441110730080962597600153521499927622484788453270259035772212837497253815601700289600006932202848008792413529913534862602008287992824336601360275256060545148805067393536716632176719694043912886215272584467445019557699366167686305156775897431675368575652183128516061356259525139468664166255094121602825577293836537371641137059284316676601510481312826282314983771883993484533855630872973877490320538359133266406236207107239261592218707525488426199545338227125487508350458003200053816399930940176697155527527084910107850159862926312097745766301129222732384944497698721702102803364740413614095565216255288818830215908706545723818084883621996097733510290046409511490658370956882396781947306652359645838321136208862206698235208335635655220929887065179499064878843971041457366195936546724387887828744683026476500947371766667954406320250761430090706817216742924278261757651291118134602912088612873249897498630692747902705935448054965707020404494409131159000553303748045170997117377554848464817224327097820668751642859128572231388030869599972980970732613819552475421431672864851780649269567935094773806346189743353647181072841857054315268534502019537990724473184475450545951149128269618882073758119412009192146681783909043959191328466887505012558896695774120292591554834181936560519293966748388945823146701606340944955203950305288320455699514390140863741662226117760776401234248567913110877848259136229068042644892267917707241332543826610856696764077420809425337648019143908092485366357931789581079145168188131358249935107227044087050693345084251016214572659271099055684086864908171387966694707833468434799990534052510457413232370301325677528967719872955710902740686704816414025660993660499707936833977268254772240473577497165554479686993992772554873228881444034290433097312071966458095684809819980408654934602635822847474734175976402054380284096702758062625234391303924551421427271284160535408264548379939481437454057117786037956349504044733930996042812368863795991290652984656442412705531530934508244053818203384745772948605925724606809423727488169459705911927902318668748011272130559936324243674825223108969617044727455628384829245000453250815936598735343167277343529957592368182153018562483300983017513954492032946626871125942653577801799045632774011331871094074655710873314989973519016674684195975828360427904304275175324487695927551148570152594079247615236869683311918802653800390227482295172471103617159501291813198863828164093729716817830113865485752980190791719066599911936780824383393140728118649011384606351625222017520076296722932565521822230417672339140339284559696160172833373468371290733716754971743230820546785239111257610172803114014688527336747625237265896338479631882749819999570227919557877388794540001542134070349429261364978785538066537302869252948588327931145550046513118945418496260761490878116220108097655622684922355892027335755398886172361864420025632544044322665409638874064328427323784671837445562798724248330776688777584543250866861823109809639639607390812636470840858871822850475853635235077255153270214707474561410277109417021920669631101345661129296267161739732211672985606851985718483990771052191340995192832420913284836294890497193449697404124079177575825182864868291949336825392067122069253126449324534690964916912659972985301067638927655893664983461527116338133853928438089719781459501827838444213028645575282481985890062070174864733269820126386488308544410205628523265601169615537335759452478754273857272791063656502010355001289753673910664101433104614236782700218238721043572751850849886042158618907820343911432070455896760191443791483949683418907851251829316777774929487597380506123278787893948163153248767724259937427111831554134136606445156720666117844959045594028195777151489448702078991490191673674711151291785580027844541100034257588003088313068073741324924551364768290278008845570472142644466632829703933953401920709764667913975313810116735329344490504460587280054024889687674988634423950703981736652080285486176351771855982300000082413147661838334654983925698331173206453047008529757802473593663021417813489313590822429493499987936710246797192820150648406290963280473522293701413988930701216608292716959299746467651723643005116648791040213422339522171395545428865956923011913452103555334119838317506335756591694138088224824818902593795671324864846839579307194711618625228153148625857645315910073456776859412414060811987715133546919452206688842765126473599697030678177746027912266988938255553832772812017295611191079003880458898855534955592615136231694567784550801644602797162587754568385454920155846644206259802825502859032552863992341460383212023586618416404864849580312742258962754224788139643726403264897236098646382795456438064488032598350173690637138195010010555688498795044556104390628082064525200228648321237223708433260094199019821038023158510728027161720478789364087204052139433212671335920389718576092642821110144489737900541677888990915848852924185679733960339634470840208036292576137817487176793436522731752304437689560605851801180398664167400253373691683038006510521193974487958744578870920147070213003290875218027048961905728323581418401830202756705103845455887251496135066264574216309405912038797772851237130425153217436226683154637790157483540032202153735904013393199149143502467086456030290520253571381177312070981298842207049682556880629533675047327931718763748222448148362256076281009291734418289317021134470028742767764260346596682177114025749043503135752644906605891829317209151633307240478493428357038332989194607263638245765554552481406177187572994471239756533402118133331653643772859215637638398276010000380164538220784318055482266122093048156684957943572778042701136308867016996008179705734891651775092742861081652405096657391385066882402803313275241540572691152115804553893847154660346125051500870831090829570367087442342373584148921534042353000250168512319455245829715244773483179448417146018936444343208802654272569461516843283292967848214433082642044856648515683335524546379040787134066290346802370421992865178125989051282540664825096720604333343503570133223961400726131567464643260305812572470913419605755827509347052730188060824839314820853664084253287751897855080265215238885995394430369133472645547975835208064558951259561733717003944553348933821287969614975743252861310789694509557376272457702999103962544813868546244300652434167447753494055779054087378572680562399303400283802156177675782843436431983247640676007075037771046831699075892427308732847319632379580072061885312736787941658411386521366076635574981985491688104776155336064996820212077710800628039983242557771729800785170454216095486087280649580177550121941118709173616583663568631702077224338290555999815378103062223589937077666386213229355040597949836306519052289003002576758050556945037418021684016803457053563766858565154098456969208899193289993875283188926474086040946348883666316790236524088137283151956241671775098831687773658339395770746107609511963180747634536856074385009447035335761913920520257703180554114625949400599856666383511005323941854928567429217607123102587700338738550761653375602660048322124659365238660718133013095400208681494558382087577143173726776035367470739641142234321678280992497004283111922130664761866299510559435435157808292109834569170090504607057326455163133148043713136564379079558677160631677438426299810147289355376884091303805565520398927186007612442143647917640098107493161939590516359314205939260493479683225375548300019337266058176113989345023161799189821722114536939547276293146076844969382400224793838213716155934730290798043606038392062294999734840546723337773269033446792993204936077401563928628376452762268084628327126992087667729446561258162338923367383380468162443954328268586093947185395439523495168441078609223193075338427977031011892733446249077148385095934623538241014781206938058424864029439648099840947391673277486277554953038884049767408800273886333004233505095561779789661303281758375857902861411771024931187566618597038111094128656409589867087322057864699660326471548350739779635034042905891811667632810478791536389539237003200040947204223793663989056769059396518292872001096287806471988752415869283163955825877127468019778072814201286258944104539981443949229069026440625239307312017146794703831296038807978123083797082303786054250824275783270479794495837535078426203533973929145053463855583381505773608933031434336536180571713303459536181438438857964051253362181775140457964365755620344315728043103538126860816300532464024890867083742748444905466591446460267746336478658817767232830744725908651875289932663086556140835248554440600976594813389586807956633458105357837657763812186981207438897285295346636808942306688285239832016854891501288435579935542538842441197068232961866944972833233852457973726600435570330028738097081735318077005622453492095927110148684267384906181358964652073511178314301152164261323202548981364912280065696586341582221920354674209176051098131452747972045058323046319681600047705348271578637809541177530072775512341894988247530139437103639254332259360787374111917722349783609064790343845404562179154763379212247544867526800047104956535815077588349774775753722153207447760782724439843928477754982866864216671627415064805860655097460919398300898663484354572509695517940038997457139841533685455714181095537911255621007296281405727130956836466941451054406550942066472542518392236995642948271159836308859861210938569601180644015197777938685407639901892342607162438897807579630219581633396616284849819546888915665044405052948384133853681901262546711808075072999286803466457857476304689134765361989050259976436270779169815564511581525809119710420483963332277908264730939413185687874344005798790660708145193802933223157219616385448850320697195299069897921207859075224950018173046030151456528975797421782641273081609134517086830263225572846454989430007784930709388663168157865505398477310479749683704479040482557661434715604810055604322699411099327954763602214116977548851676537217524476587717938815300437120431637709711330324497627755107288464715261592332016508509009712720009034731920807645853712493862952849092406888214552336435955527631004305756219094460756761545555917447081315232080908464804512874505426938701798490257774111587713717662677756696922588915271668612487094996211568123022759106354488562319743420345866346018692709499722611182225378270466091851887261648078122471584904801655193681106886355375858952394969572014324126989763553063176387858631772133865034292354211773807544546523904584180262204643833435152616667503741233941903149598235368749470173872695998575323217625892058973189039432441261130449714680860349588827204549873480249655841852769771365151575206482792990219207636273016359838158892989248134398775191203384389357118182235531667548527155173044416028587852395700365227302530854755859613046336250914052956191736373253527196665493867424806870186450604986122762638644510521633501756267049458567842802397705017189806589620285791097774143538772979949073459079061695059875333780746652633149126652164589541482540047212315702013092961548428401111223844475148162181371596315494016268408833650296206133004643426672649211058118320542481418822964115549072741254429695887455195285449860330388726793243487477321993228471209157246057768965053348552900515430167987925276917742923274177720291493255055323283630633821427445346978476713803170703527265039011123619412048818504510931231200700037034312358352970938884447212434230792314631498401106788240949580856688350937781174512568943293792147465414107185877738044427697900351564205222160064129799453988552946370251828319581319280938735725416126019417184599103205326101985528413924461169107896875311018297779579571768128913100070364238234066282649022102163926615254791583481607902647845980407916068885228044267498543434634090857778111512098383714794408244362109748807606115013679263097753795779042837251568177610186001674887870877816088212166663129819954382797329987510518712650919995311712193247621751738557719357809024202053529912186839431507939838419883150221279403931278398261448969542543777353535981103638971353083210309478351174981074318215141089820681258421906641580944445431618112844527740891369212154563199329353930646524235216047940776960101640943846141110533821002436263421669199861419086631349241397208789249985540088416043923988462551808993683071174278083148811831988271996391590826823611888143239897706421275978550751622942670476146729192075672369120027183138348934042685906979663810094668392539963677997585750033987865134598143945885307270078127653629025218387050903719117517369430285709510567673806706535908678743617321281894834045566699849951019854953351126804382832155321864142845466251706172121228998671115091261769247097264036928282724517548013071984039450871925860091346277042954791147638788523896728607159709747495918174678052309501826581965908457982037915831845258743621880236205635243874030177475193187391646251437042517903872632613737678300932604339730381972405357544601805873431534734622627258595077131597344511393611987186430612180962323937053728905275343864942017693551965300612747086019761265746683977005766039933344067892237011066098076243003294679289577797376897589085021453597306359362992989802103893594238211994655301109727230655567402803003673329966269023506854007424962045972818790385453290430816894530053106378102662513495064872055584331776904433192337996266418730594820315948510511543690473923446034987049204080026856425806050400365245694713227141126056089489047692083847913414732936898885840254182474307326969583953158107276355037735691531644314393734715754880555850952777892780204339624271790333038023617576101800808217888928450468293221824808511345087406229837886266215472382937014681871988302140910151657097292474017612282926908291452632631766944355889982279989145503176550834054514283694330506521506124193116054369686267242176843681484843942313457665711327650054954421489621984990455343556422970930666722341837784732566389263561857373861984590724253194039752258938853736799654061844497962396892275723996175238315195607878840914105664361279519595707123049800951599345015317586767793668466480617535686891204561243011118210345738993267445877940564784031506023268990594700472272608521749527639532721978842852824215876890867117248143959466958949447751562242349233527612896793649353821635490558250141295862394858215592361445639512158649408596966132387566460837690341243538925412507107164163777990047791298316003503961778933029789244440705174170700409883663159725199620144520186219548374031364793126917295677746573506905071743808859493576637730584260824243979691321408841001824922097047060154338177067510773409658333109185220979147889948519276405727869047761995125410006200270909311370662780839327825390216807250606087571693067525913983855564752467698075048594457982940621798687341886411606792268015396212640615775601974744850420654536694599022964022530857602490421380133524469836962017243409799992708715726078947902558500936052468554020185333206547294307018981876526723953358097336153685080472295621719585487173120512010099365494882646281267080724057212297907640406286704569886239411352784548005904257325771706482862084826699278751593372223754001449494668301259115079154738937192268469484146936369867670156975296481177173095119681707414825542242948143543513122394934741520321320874325829210546190299424037524123642420936014824694463592035102878030088310842571583486822904359044255462549964316200317550425018429827390291988793136808649707997133028706788696382688438529468801502144892972137769072780147804151779026443468924103074266888523941048912244178034503698771640199781858394699836525555667866952245381643732082619129495691333166302672843234000807162124461385864761063432541868928390157043309689273569371326161767895435553890722224103014007722712558216387258222717779330926028319900202573997797105448087029506746768967655956399224006103628347781662494947811800405355768994113363212564107829616728239490894251057575780222968768644367684838357277895842499829360192149572944108050403812248860625968178432304547811785313746541559046731305423318255529976998916882901252162849845664997843654360951141635458276645078582914629046825283396241373302209212806027933777480341588837916268760316894569413378430653134266209989628462235503032338261309039439654887582961668889146304445972586410773775297439898896732993297430288861658230686876332283912940353037910089548344263197474498649409831520345732639535029970378249689449803369490645875160971066537812644582772523474112811084779351660356081451021145691297217205198972145222463450477227312787165487068192420569258506083444388000285635203314833141176874755169344629174480471644468273708959576045211570353802590468586218954034128147881117433071707364400748128636065850284679690771472732764327119182239541880386740040103505390807358475152729674393165293232629561963296770138783738659979909313331869888494961955324706788706938768017277711480092284690254909872889411976318459279738657788779523514592311742182334259355780317361759501131120274236813699887323398317426140978530974276284594969583692334116967061970870261151011100489078421407443495471944632707164184881043699102249376705391015607624036910065806779617626876460071713490125469975324970070840196271611902020752748288916794322641624691089708422860637312121851049743742152999544448957810109186667929341253053855773355066661393423056199915579271346455900265196833110389396408426610228747392275337748149744369838658020575081617746812332305658011388645303093232748018438472927924040038754873490228162859275473232562882646738636464781558865134709234494890463307702418350162421602033999050453890073910221749794865787593292778320647703224675518748870919435317480116723324210378743709181712934035737750465041130182295547054898800552235443150472915826451491515872270929038412943274808100300222287012638468608827397214101837596306989090039058001619914720560151928598951762982727300440675403770659252959643845889219241778257382399997071018152940113688324562003782671578828832124388457722401816473696598807525251377416926010944413401191108378488498987559200767379738682418100074810404889663806660440498381979705189598374747852355307531033539472583849714522117440353322039217586448931597829227278888667771280863654871402390984441652183205914837650858924875333624987027846004556826936790501098008335613183441364109741323360937815823841380028412582767902889488960079562098195092427664757983473754628740635910948606699835907086619594318405173462701209312749443310418623640438584003322282023704785343719889358222065034325166957312550777096818912020952780493632858205924863142202424628609159194103601778581878481324981728799529898695589628390427080799085218195755681589949745386852891524156717485934448854094954351663634647501183083241137490796776746191645478464670736181439399332416816974355111430353078837371244641575929214228740888331917902619362099133825985447555067705528410102549598707049388639024876997647424245503530630034505368345729569364401113492234432365680528461057929514095250773628085064718973771082192056433166385356764066212311260833109132732076123661674342718227136350718750180221314779515927378964507074351529184320329262829524828299340934273628909467381968253412627583236859041669390542580993322593164813059877449385576111497220265432506993792506776913069342986870908699214373802665413083472101067551706571363944322880415974424843154491986982619196956916194671642210309347618839280560411249838010690937103340965390011142296529013841212823434323797830974503249613357529398293321544092325008776428349681064121575929763381004532534840477505218352942774650907838259841200396205375304817341808885393883250637676232757252530768909684627099516622264640770706171629000155788433037893292544140110077842292287452376421006124846782842796705053243115688102703828388768136708994914810182992784875886218675286065100144073757463737371756194167071801213085434720291409653950009641792911943387619957974364469642117561264750849008869229821610547563658681389817118561333852157527769517842010868443570206249628358521708227064060131297353941365956706388227904705343429449685743379786438547699107466213297050488952469539019474037395238433506813767527373591908845631188030214453520762938492551619717064598325128787417424038835744676077678125266132702451002572767510474446025185583401023904112680877703964349672345405434623259100123341453250102820194365779795205231131525479411215377933342452409518236544076039136556911188947626406821406529408768287249285685621595008908354057935147715951243431288113640704846984255601502087833399870019183766467480613666664098218664604096905874040350512566300534555707065775950575827645506729249321403875955789138523305453035301258383951705136602882323765451647663488344053719230867079553241804756530582298985718370884573047241685607157534464515883009566366710709797607145954613063579951605419792080597847120287211600967111329122480141254363500388661035257134762240948905561873732398345255047218348232320526922584269386080828775204916629140299512617988819190799028092277035131800359415451233408867347506628461034562557655344867271436014931255420110137209719172995066092661391078532863223601050424164282067684676639933748837254399864460341654198194685687272327025478261093848765415618405465721180610484426697575310591033471990225191950818650754807151141793735829776351329905971678426616418184383508837246931640054645591923162094869321048068323846755439077371119962509261903218241320141510087870788562304839521624147997461225103451571010091022218105934080735763904903657131577098613966447668547745986182722899985010166345303851853916512703560257601564404105908670651691469237155428024121694353650073135077251549696593582392644308064750241095378080322033127679305046923314807157229433832132753160905475404692189988862705617004358880368465085548664292090077143194744053851405225080811093652285642254353734248150571995910884415265139059668274262699866517337686926066708910823965343528849696323445824583430023238464929787125074390208369613501685212667546011185645210220155247093295365724544296571909414332511093422660676270812341165438319909377298685066424081576946005391668831954918855883085727959864277573714585388596038272416016936895763299286968164841165070963225124851592930966393400887210653261607962815290541553362508033407842965951837813796989238684326755959299233341330587895846100299233291450349261626536176256856309896556983072661203145111201335144771690825457288492686817481076568174313307783420557034541769998288831955669536151520157496742390728242515084099197996453209650602603607335609562515257993456444230384149321800220406932343318218855447656891632735256754001760944530053808564856673560163547283088938748437597754019224886274013902630058192623940220066469416969908373526627698657291556157268693524362376724327902942603260235806337497561698411590682159299732619918500360872347320022107630773147447590104172942274488810258481912242810712353519142085794575905322164118598766307932937371370437401949420701532055412261624345159302709211246215478096702921062146222656239699303359005467976087242697396388982137798491059500174713370742051014989287955059355794181524883340872965682914319275511937571989015434451888881266882930706758411510739938010026778319730813501531690882384561739623107466478474340716664046831438119108746376089478899908191803882296610375960135039717158472809861885798757224566833905291541151774974164235249722965383065059902651479738891396532816858162995633904169546968558612122747962097226588041921536318276233942602986877539750520027650923372390698899507702280315189102786259451718149696081345747773633363063191909849954055566491193020512705944017679444056534021513856033606282825010264048221685774437717309451409199266601734157193652128833992465322411702456136971435091830954176005374192052833785552176318745282097143030649048167815659522533615153890735533657255124991103797038361536058040938803442358960329484170618944057246437947138560086214172070655323272076151490954158224993808384059744819413121406814196710570093425452624614009874275323974689123324705816164045583813065189907540618366866544443672227647137974451858534725206794275793223159314578933747188335580658774272249316893955302880317097088461148775321411704341183567233314078926773419797846574187059891033004060950446241797202649662526093550905003242838086087245694326239241081199966983734859612906492170186595618594483613474063091546564863451637957607381073482154022458266653810668859680990849762302349221526542580713538943275312462817897486169853988162527049681836362514828932410834847227790629879350415997504802130798257434399245913758985525662420776710842622120751795673241383031955437124867719382236386392808756202121954225915319504613288565257593483876844869016378574851327261459276708149974197822910691025547162214356249031815002913487837220888211435837044737557835737471265540149456081507167684686477818358912753925603938450145258878980772628149991189479012041049634867535456561753085057529888776259817794086838922222597876055021349730212232443775317739633589464250804258246876308674213014412356230118809390894038537842959206438702308733947693384819414525264221598515941870589357709730338918770567917237962737610992482698055094857442835449589677043599686988004238126120602119345054282305073230154464544388391360503114138286648341653470794205264325613435762177547164167702283307883562664422482710087181362538548052041637780870468132792608086475333159385323717720563415957797567873505156529601489518817411027602264237092958271192854313267632683864773091611146592345760905606361826801173148564341519307267427336343571009025965222553928569398912984737359360197478746941538574833516145591295296401613700658620057492339679268017139557939706627546193642313176829328164921845330162482561392826630354693021611422998687297910080595599096296819624509193948508684465252721611688598063929120528710629307388847550621803123121175661296109873939786555507872784787057277486020876557432907379853087475797709509693185710749819739721812917772244415200185926083656265162081676872831157634298148291640095216912268037023566700432014012789745122354648698649822343989900695992173993041377760796046190332126281128272417578149910129722451215299163255226308221821533286015933881455593731486351893997994778216665608487391816857543578282454183825192444326499795018288025402838858051071002671144945446666768143063521894583118252714298416475506214359287715173857279458932358939672703799206977308391337029226782206349032161539120796150410406658238288116931648193365738984495186043993921397530917378234875541438421924682555352026849148536389660444023865533126282409891378403246466480056760377977483017849371856308774170116359218734713438361975753018083305091620514374450229657714186765621549865240614508311332237584646006664841373616026460781634666555948236433230959074246011803047673161584530080476761924351258813503798655860109635268614814158579868817173982942010670180292714328894182713112374344849695588163798314279019602256256717589692717328800129270855828534100654310004566907838105828051372399793658359450749175277108019104826332376301459046906845911643723893011678479560186778520607216544206220714306198075871654443199501575707826834843689047871175638374676321235312120072298711723045889286154725245294166344068198984249734949438990485221000626627649599546810751705815912320130817337309277759761284635190263061570265609235992825759880716413927009691430716782546374783054280443975842135291064247039137163630416082137831608506635452314266238215963408967944797194097652891260364406328941240196079337560136680540190340502209311163837619054251859237841933281978296927485750009340212009918768279402224767775370807328112321901324588337677603102456607350587613032813626120247473890100204389323502958657526356977041789934261368248405944552941773265544982741076578142474269504241876410756580441208458588676940237745991611219810688266553725444020806011944419520052255991286029320591656101031339064257006833004288862343799544181423153554292695885770432991556532500336805771702613115908759827169611120729450998573055141639394018588523921537522906382884269609395937279714772463436209902774032258787251758558244597059976878575931279388801113137770943580499828785338600628204440850950538958919569995235298524454525215143129759865912156316484159635105680264955762109179590057773612161426561226186450165853265215841860936919888005635858423726203886256259228845909608697544330950337543147131154576285582043498227713824660316760600656339785415199886644655999262678297652777383055360251452334784664984106763118483460614057118481337059747672460830869327197239848470046526636861707322155738155471530399501390306000712460600305493871882227003047950846234664094496464209734270773827377101132742443508156187868337553013084554823431360383081284885192207923048532608429917038494662358201228842755337212784720043062386877374040653888881706535478754689818273921890251093767073925844069229409315521951632282044556965233415810999276203353114700991094835281675778394606401364288487805966680162052807941762481964173693649461884163860987775087252989719784253345174764405170333885940349632106695157241089244254592290421024442223942681892639128927062660557924731412632972200548227582513786433486739267240279733835612008810817890266601706273891982144993984884930769135072849247497308331083282388624814171272607898661480561580584661263572150270899062845974746167266723548758373936797379921838457591223203028845672392394590699506811105995707636493805669080953104923842964847033448971617399451516141749664865804963797379693077356398647473374025300806335854358287105097508788111454041365829371240468119621429347261122849864551425673876539452519791020502647309996089927414475243398222101008219970158353096456562196651627646418845705213875453111286522384640622190509486406363397698185470304787068648317335922026712711053568030289809439876279475879338194749393354165111661283234001900489196305079499358838168142943664530721831166990689343742462543126275975392508171019778060227502794372877480246936921924815550405952994428049550023036767027565463840442710413491405424252858567641116073820662875057555181787954452640030445276018315327704227879615577475791286446682373726992311402085411252634692156986559122841911033577134689278220281399795145037126722849556851571138231569879478235614812343769989425091587062297477663686692728441475618327483977560135159788083548550414694823829886508606570030709295621242103487382198402279578901505981783044718766826730411688157105344212332035613307188139381772228921500016520819020511955344909572708510050269748955419480164854157969414184454961596115662814559873677264805589653262149271732220398844645845504405160156478785976522264936364706633311534706908667060535744714668589338297298241851812768113899069739939340058409462248661715059784912326941678477355337565450654422917174145098802405335250034544651750170576830288225384280252408174355103894048632352712575598700141623953834739941786555595363635270856611981778292418924990983547314009754145015650733901107385757209541700294121324598086807855566786209317928790289004127720147665889190113002496145365913911019368744461258184787736234816838952723679159012389719204277394043993316620786782033749246036075143055920269415759220516910928514986085556748465821454313028295231672653224154708976175735410679802950497630643709363742195886970530354730149986775429172092142173592608695370205345590255709777560474720414964783272755527537473415312622259377699826268535027123823184466788870465208154691343624171675684978733344488268657548845674654372395772289958630826258159494173896121195693314615162775528482305006565849356934017893847839522122167862918828163682680804752215703890438971158049856588169271573840331042112347317929736072407342630910813524889572661865627474832366966656333618824172715193202355895851445410038496902873478836414868781912478976266150651617216694440262756618043047445066651378424044548374280150907884547938566467207227231152810730454223481399261322721431845538468466091253593482013582491312153310745942127519308032732974400374269456304334480198515022346894392270112166579329698693042343320913204446432613736543975832299748859813291247284346548213420959837630484181029931019974758176123562419033311612506532626502350042273492242362575652738922091445663609240229213188062601290362970521788483008409890075945843539132951990367120325104205527282325957547933863559027904463485099864176838960290494527417298786397750700819461918051792617282900796487855319110702486655920479259168367256079794711663521635842190343127187722825005638360577521029604883701283193364854244675440783171389975671968843191977063412975584171667007394371560529297648870577756394999017348282134932314624957005436987786989350032212589422245561138415324332769013483324551078965158088054474622986932076549704458057693742054793562858840500514400746676194952970507303549057563156291665793028746856406757777659937754727380050021555784179671972014899560103607136625822499787155204323530967282699155120966252563398919751790096463371497191632928172169358798260948219264305936682799212165538649930833673808979780778176321813623929175731991973817006461126500798760982852381972346689246736453214925573046135914017652475918299398436374659492311618932034999438082101091976504532692808279472173142945872474117602267541558973112391282328547775972613218709069193112740310977281700468625581609867670542996537790426071576793170656221990705778441197940135367928496931526483731238752344381190733721731834066038554278164103735663868405599683448546937866366778842699596460404507413611940475329623631152036354827661525892849157457956063138455438867627338738363949135632131914222396379183242974913270027706367099277881126882068796047697087885344317059427346376962580383642563869006810686468444955330421629243984555051423922172020689104092288007849308830223427104842913350035488145185875840167602571537091174837312765853780018103033955372637350272277770413551775291363827954849179894498247343704846443065778724190909302270873565937198050671282928970356241958340968861742512056590174563647910786329616356125018744264047498708423240796917521996745836754477910274349193849487749582207777492923056678245324503288054998284256855879408213972731048517360527253146926118287041519358500341735288839143743579863407540516481986097632907559583402130774044671697481977044099900323444742753751602131717300330025273981466386107600948798792973229972588654063086621753328040195483106170065256804816398446692539559942577722365476921586501744216363445497729654141170282011998956756376733223163718030001925496293444727401636341513930261326461363258318664596804609250467806938427555398867753169429695223382092769490084131611349325647611493938289673690762370482900362875175898676452695896214579446464162630201642712323592161160673698843329443996481543442086088022751382711816586265781078983087217836447459137684621341046738935979257235766568150886541714916555041653614410174232503853141948361552563835231330641959212823446325413040005937405358109608953977821639421675946634930163972600127130906273091678198381533098686495907811385571697873996872635232915816895760414960934110926414665014523596210291205056230722493071327667685684102371290626882203321454898314215463143937856266397489117215962012662728819787352929848137502463391039737348696714034249443582658029625593829602417393432027544439012214391559155959403484283555417615326155149501617526361277946035334205632308162383147103943176433754877637643761368759441181622671593776391646966444875910911439163180300181029732342706567787050819656653506081241352636513813571019532111443256957661618739728704867786235577830051431006350257725085908629814916009583134277622547189302855258464898835826918046900214249323738219663882578974316733674770490285084043624535494179848328105993461625615234756346825779289616062449131034347432836929417322383262599328473554494733101428461889585599757475304117740510714967542547504482199792516486580945155422051681781749902402432265107901868007359613770748515436966680274189963240177824919514695152721888326299181947624879239863912160020542343468675216805543385314825251028367275866186597581296049296311310540663062682867573470744596999795947186981116752008848048642169194336901425032265202525691377431515318284287528681631243516393789167399180433165598376210955927907614114100539199320337387690295595638129068235608042029716854137350877306117900261371469205206818038311319578161031368835590868793080825804495141279866609524923618181259388762835828096856161213821948734510496578042314908148304431839786224484007127156769424254449028979745413074057131500763179212348814160779140771526199045216967829032447174622841953146170400639008643491548209573053010382365248851042559469084094165872991197009640667633597804688819225855113522474942768532638732997998881208769934129171574855935990140598232522527564269049657453134231554608901706344368029390522164796817299128704733281135588537733363077951665967345463600814905911887503809025502126411622813285094953109821437113299864126281461971529941353929706999788050373131133057785788296566318185799298486025340398297658805896806151927224042300885236359356393525517684811455396453821468112030579985689791608746530400852844565410006541020080673550422800536340229870120482634503718298846362694973133387149048127336143841555196814664615936094866853961774409210393976614742793198431040780410459323566070544396585651321567878219835871325284781431216268542891660541871707250772813377165402998169800050212254532992509495151581014283584133590061473424305844510713747625011178636769277030904845940262404406177933324326032622183990247360180525441399448249933285009762943511178964827134222898365694946246316304553142805331937346601043346218786930847203567717124008991183030672284044314804086293333181517042171071605971392233780556757336316875565001911212824504388716921246928811949012294710725890869171165237353580269337732682397367782091424090370965542550190663575056164481110901840030843448842176554368406094586491065041581152925069648926648257276381952629854525642896759489874330208146724339193367808548216071099886085240858526549111319345313979970182674571195799763460297631805101304005662742117954910289982313154398863553714732231582173213466500696541703124839942069900027101897636370911235249286818345016284251986183526259586950766130527180486534457793309743289393366027102033527028490115307700070130239326829427030721594934374732800500256892658457720421653716529134862849512437931167285459087745889525774029625852510953970501920325692135050309598300494729045808758076939445751326392029851268803864920757127211884444181697056342339962939072203899447158994832928737831868802693658524861536497554523006034326988718415272500598403454211634402028684937266280609258081043750249981240352096806545878307715747416787876429718574307727942836028026616116544782898413725482571628337647578022011414258135695145265070637277256567338387763975270612121056001447534560799726175807555910754313785898128648676150333046855553119616907735035563237754465916368122241918892382449777806136001941835696133876150766338749296783506090926597290920522966447678722609380430323220283372921860699301976689258586193259870468083331683379735692640358162581021707575859342506116188151207911583684500209757654882963559871195668049042419917347517663634551279899373393408639456801081761164114919077576992005754685538530912593684031936803667985481175612145814938233079944531561874888095337656073243008379380951388767302377847467743299549547923039801292555178102462227341972492757075686202729049309237497722875724978547881131952297349403931669432703302096978923281207654041867100028417804626049035008026286107629972309006463897782014965490129487775619569343447277993173824066645940403278799534765156475436627250733255878812627770397246569867138948869618737956691787658141417813478968052624007615718760240097153938172964357493750347064265119334934185405912384098278090546274716550321921126000603097751098066936772639030839709701743009041526180498765437065813928732638282795314044867787449177827586930816563471085023477212195734857225370428768813850542221769528887976446476493851020947137535572400415364825399657881620254868588197696727348174482094148146470049925854188438185461557602848157899902801805211759614620166592092168188482464510047806446634672720777276248300173481424375047941128248321438168746652087417735883051151188211668327895472833944703216563037849106430074996448568566434923422284311365379264630442989045671394840414773310417822333949701289488632065610356903077921505473644421185339363071455654128380442812913564074368681191159080555141394048381031058560085781236189947655161036321042085349697319470151827597170841677871752195926501574880049739593414886351997586129845767963616970521350985286650820011878689070584253555007732628703006028796790000633916942601714499004529154746072345786909670100847582388205445496795782827240212359954430091018887360920301777940521143782627563952943631676483417059890174467464367986180497964013566778155735577810181957153704667849511193349482933193627850311560016413885709508928111841282775258690855153314108578155964432451070252191120062530263074603176651413950603381889909802950536556181752451157168575527479104753261711371222710374102004962196633946497650485142676931459497823863085930801288421761751919250046830790395852812885429648764493776097524843943140487443673706723600837347475861845720808264318339209047387183129748514547654865443683793781632661476708055714718481920017637599597233312573585423296653881714484249542852238985742246167437412293207332969377160868149640013667687062561358364702041170679514926141641558195845256614321216136655408091763739991244650149126839243241663323494221336451316802291406935415879150381501413100404526340236525404399950882639176616265565368432925596618002631393061873753945058120762386636649445254490749522904931402878284584164553519740612436994094023394337689824613457748173611479002621784534089823662601258073456833706879908794993028029453185349394563105140149063600113219460997389802016772968198996576961122982038767413449756394293716444275128466824629867415784339759376496705301937028470126640248244213395075491787314626966964990764173957737061640768133200070291927012961218824089243073592601665677644999701151055017867533051242815284465909930457580271814484455901880328639621065657083851322478723027593118615002137197595364448026215276325177135788110200952347798459957833426107876028254435985109574317447010678453094921344022630431721691336057907947122417467292383481950016296487615686421085853343882556963029483914379212693134182474153120470863378467664254402044037579387692364772018257764049042245718281934640993815135970804839083769098329369488933684303604949284189165735909444182943328279672351082218392218899682020657905042932996746967858975437118943416480201592646439417526917643523991059322887644252060375693975967542862804358352647338938680155899683136928022963987272017751292299852426637527777305894431888406913839131283130136966826887338143199712659581927432294975634236247121256530332982510231684310462545779632993014176390388641014450599847810534993089499362100948083537247103858002117413316647688249688106119616647877425890271681968144307009952396718103122945796822324717395148339321108068163497288641276590810620722388727678821782760237119624542327497181226217370316221992877298370972110000435480741033934363562781589020389879039014513686601344112661308260317295389559244457061292272518439929943758022114874476977077159950463281548036900084499271529793797521011839782732873973769394739694996084173598605964654325581414791070719460446728774045218478660143526826267982219746269780759206524634097049239111294491134497381149969380911812776083525550388561784848118384473781177235801207746822741951952975129389870779987398214730222249666379971888980869864544761255481544945144879733677825431872629087658879662871137944059385311375374282278677299738244275814357792737369352519819873661840527648672641651165562045676964845302607645545925718734421558926220000862252571248375249417602859143186194999548463252004071042303531249827314661557438633216512055881830347839327288753418430622224222959992828229511910249381461719056326104230699597075119505816562743143228247917202947964743826747533959457565377402197980942127606842736874542417002152798884576188133317097218808702077512520166752481737385808793909258843635340206061336737346706873597210135108097944371165878990024887294849329055277261034353172528762932550438435514562186508637977821667677275003910956544882369501344730462292363604661637172748546929312176386795604819371169166956329694759671384136302103514807183049776259963775191288186821755436914029159314183947402855292116385490224669316825598702719563322694157505929160125532786769454290390808378838091641709861443103747548252720619047631008880107886861907203709818827182801836238733974086309176690916905551669237583377765851053810462616776633593130664908222125448763454536053188459166214472278460782709155633048699907740461218292566151943599581435174866229390878847625877930746397542971797015538438904698331124997404241541792276340131273659129892452564773362019427397491818471870228731521609811990002492253724362427820565312810459105680373474680061817094972414157212418741942311899844170397914903596089621063806917019255049193769439914649560731071721602981454547509936179369739288053784126866212367838974680467467958878378860820929687545169886949687268037382573910391871235262828388554227158280119340600749676756770224415642177048959956336769415487576879373256974083420394229571201801434052040932639592306686616846457228169910924413478194290835235310196985707756129576832761837582464725044907953027627378206653054088195049453616608967462684787425876768755175519900495874179302041519719338916553122184801031683768466720076281268067976158386217285104658778440887052988853011925982116040628485294184803403729255063080355221509042036830518055806760444759517350209884806810384649712314725807815509036016527837225191096568204230835275025345228571466893113869628484390731296204341902437902841238809473342960304912674559633653929652825144838278449658060246762632939424675228318391571250612034733474364174252525439546227653568645592610262148541668739256874558554948926376415732778253184808982551001887964342969726174322951333914971624962763457068996152840874828970775144503991116214276446572470214363460803603582339188488215062417775808324745772495322092436458726366903966333686658146593880815576590149454030315013485691262092855555231880988576094086283732241548304974772686888224252062219309875151960424083244007516356038445504291661008951440161128426051393731546111991656725847470039688932388262529674118359477013117200866440127338220026477352676249354184666855715173804425449445082614592601298631864374040754922065939384135588368377931529932967212502451832588337755238198178773759326418585994421774570293845950867811825227326888629325646878041430432980140625048937771534352900721613215944266505121879464509180701073689394298473029268833721471706317351619405622810700184450539651276739848310875642026809886406762230437412269363252767968567895255167380486824369333027638139575851694287822000956228251784629638979293339867600827843416326384791194850120249770881755722630426103160346213417492527868196576997566873794618778733757284567793324850603602952399021310298089427345626238581777142068627731009759900744621539575276836332393097018094642566010183697219290180459690946324183535816016089422743763956080876625955632631157440814735470247154183079784304444477768686664531672544660806149451603671305843727284400112297686156048421155372647753593410758334243650565847182268453747173217863149579874789991476644207601533889122371004169573159164751025503877702869919868553669032731994463024103898020094279015198947046418746935266181703531051900244003170844247736299382404660692298989378531034880695296458988111233988974167109398574361562444028605997847016704359727489830854936269472076211664306744551421904759440497869627841080357279571940253700502593274811487050456500842212906958362053532720492981369704385432045370217071369450988381838814508541490387215312277383993275398098670544598036118841097250953818811566717162769788480873316665302927745662444925387039512286156875737574025542211735241480349776861128754130543768908982854730289304895988483653881427370667961977593916060694133010350865020527379058404235141611075628590942999427834057473742014111103174144958055153192490164993817839609298947763555865586206790120106726303982477432908754196070802263601507384424780318119547980853633945647714424925135091246012439155310916143620275949159966598439212966176534752401737740988802706868342555901589743216315316196714889835253575896460725475909652749023578537729382223498074721930253550844507756027424345777894843685031417989032887279858443554039215539155293969852623285744053405788512754188600721540949048869360989390478343566070095506606423491172894347932334488562101678632882438097426711088418348577691677450684345786231815790032685452023590543507865663291240075890259857660235243545229001887959792455740142078619129006201864558493449863753539925814414515791841352557464256887972130184840576741412290131894200759427127595142591892701149792761124750971528521457182446692674689862910847663252960790082104615044389430721015685469278884887416357815492629969095303881730326910872737142001047233663268553008230041650103661195976800615821906882264676987816123574330452880347198576914151000960407461855765506840460381644212250685095006836943487773015161954008568734777793925934221956660999785306805547806452585390040456165076741907435148653124771323511380784371739763470811798084685547885099932302605387850871636598311980609258392138208273915031739597132282817286108213184076310170547051448011817235735571679257160399956546460200955520507791974063334504447170552415864854885654270983593024409642583523856171428762852438514334908776140357643801039005547184143203444105438658960791655690691467198393560691526610409724168887782398260482776160248920821516105637603145782898918718737877222718622175673776038585503935485896362442537761593913539254292588555629468810944917761320349559859579307425388935505303465144105693552145711290315494693781779368222412530062602072674951442377993550365030069723089547219666526961382893815120224714002987340673078526758433574728944703780105435326482071798709749378747633407549970201841229398252925298768408552518473560828505077642102006440381716052698508837754240500468416921498661146387792452148047152635212232207881083808446419893915377106597588089870772393738221986453834013996998604739435001113064810887014747266266938853134662333292326866563525146564955492231990842493182983869798937684880072420806872282547810941379824720412913551736808477728774381523160031756671076680097546162378950395706730731401292836318586691180081459088102750583114336739483596548031815256303056740856616566950631184830444919441881477905787986076870196107248391143280251045826410039289159455110861061756063210390006576091936012239904465136297011526701995139206243299098880570848674178313039856724607851579676034756349748496549385872822899822124411025340725464695926445841694859567765587518539423807792170920202806515257720828079436568636487388714679121680228466430996782357196931188182122483855004283276802973629990801340154530630848292233693275870582049091162921002657350877872041278126198314190610461252748533436700058410277839051531207803901226845758009191212496812351647421563322413134802577326949698440426432706184399245767692787246245896326760173286302086090087027963156608900182629390567592937135711162601990758994089322509646663246664676161929718825427835309877304348260164630536881667680741188195639826117242396514460562264177140548051167868164650269844985755026930555755963704195670755410350995722249510462266121235249468500664291680831031364246722492926971758678467622079402666992330138196259775369639392236631884633007682540127673337269293847714862298448560808319318924848185130630700336125862917208838543544741475487642644184339208249784467407587019858109484712030742312386765397390873471632280787080319491010357574933338686710610926263103660459460223652773698714056451419372497183640585316932058325765345208757317106743581992673393363151708972177797186015871812391254886926496061329595763611338301473127019678104453540403000602623957966382674425844190740095966546367214845842938291069138680432352421091496832329760017249250089309853995899593245850027003823063436379920325009849820659305143866254840812103746441465976959277035797240491234902680401341448386179413264811585692056938175571970809611018576862897285210483029754375945267084865233494083192194921473027799723523956594430559883272630769511058973984044416928623114322290827831641819332197449913433424402244741396794388028696299183267344764211727418697378784699450270441593677853729085802433770131950064943550411815410490747928790937329895210091956623691599192122479331651491348712402168381771255138586594970428816466508255598687452049239818720564606749245301037506230747472114262788913655648617897567320948780837741798733491956370637046672458911704508906766744743336008011546153705982884503371577287825434867725529194663262580304126987667246439224620642926102298203086359371101722222543832454256668265679808611374371177714459452053243406789701265108834411297559807713360979231283738781092502703862297473048462736423817689281920971383641487538082628717675327064270409261347927501401871896011594369439002467422503559452309581774592461812952251191637982532936243847340903155717827451534079199190127013853395182295979543507992171597042100512811779122167041744069443399499552704609081729847762483419896395954918976836997334099063101984856299440912000060044216776700524028159769701648780832775094825356134609629574081386723106625266997093711271689941386971494963813720811966336565387143252995211629975342719418871908855303014915929593158356918263717755985462923723808780860513945124332504964905769133832308451890807380203418259348299783103299515722563816168200308181615984021115321858735422389329839714600109278638549943389208730912925600455820615827118513525435202397345098477156460550427505905896143003356116968546767092590559304635521926796947977177158959274705515799142225483190552900221739757963387289462151051878712580734267744985017367998664698077911790940554464355690213152721391434214145544435029223358302477418703726426053689659078612613463384069030533152272471028564775332601798097400582338967734048451593070224960550170055357351757368323751908653580317030552424238906077053126494515806446781697059523563620783133279382879455188738413878966917773204063137708807612463766762120334706561869046214391131190419327085641496435906993880612859627590313645888330792078423130493850975669738941912752149501705823736415727944389594640313567038262745588143825879541447188426253386042433406962596127787296024711968141724052812251168409631681990847068957396481972754846391378011688105216057267209439664208070282696107253768098596753583472931685124792171366795280432026899667456148254946711114267427832217877975327953987119368959857381788827059242662583166323173912252360651186186921648502283069335045896217195408272416961376120621102712526150890977245530206003802970895639402520938337915510479323464999856185504758361403707145063461997015403219001464623947959141081856698550958969351099051389974010463922179161753526787111301305117726702719057260607882395230551885585379031849956031146094306786604014623880408839919226287265263434759498690319529840815150203177837892704716017476457173077207194588648778808173657575790728970417118440937518796794258695475036726708948368614055258607227086026645209271191303648214718680534436906563898866769081815522923219663277200680529977472156749526994519570673527702848585750270548884019255282821026320638116260422977102646141716192331361250246222083294427240114562673632061542620093519511152910757705706361605335124146885294760088874998110969104536552116223439623596213739404608837683360737451807213385316759612928291122483919559100463489007788532532293846799983943148775592195304654703042320129010801240890954449145920238756043188354224294710962747872812888887251943724152386073751531677441016535649330033109517147780780983266488297744054152151714131534963791153652149994394721765128093551967875399340054132764095802903227299498900965811783702545941733728420950687788642118198643838898537998811999424482038504371926973973494075449990380595614457186819822245331116243996442986127226817250889906228768525400347718151402756969807466049509686663304429449022480250200730757233495547639478212609639453909700253878743796059386011170761113937959196571159540818657691589684922384522776437683989457642706962904552519306379467515542960652584887534350318242920783054832900967388942901156581631273908514830765954236458310412775253895155121980875488100280190827449501533700746369976817678353144691141440738492204733236378937855877314559799080719877879156490203487556003580360492071907046372096996353625386214317425385696434127829074345945438328306726825046566385942043946435597700689533688629527347434177276803027044772453821205770000817505765211193719030715601118744459976001806527817840392107764539549784414624456655115461554638059244673472048276155294190573460132838910507637779698881162970856192531826550410848019175338814444799207491813195804628210847697416101019836820003092646910604723128846212380584226767160571539772843386360245678433367003963895871299002050271316647634183317015806365641142697582295295266487224541118042844200155601249652462668092127023419286766193877076115000569418291080189817237812170778233527099580345590156314875773815297457779875655399873096941169511627418740551522209795460734929749299731027924587126009740447831468077637131738620323166604770057232477362345003580222843992157798422120880390103000801940587825283828989521765083500945021538285743807419911172134199242659045381995473430404940854862522367201762912466045429050307347015740066801294792805890899364950112514276463417550605251640494898366353114775241439136757106734013747797017425573205099879556814647799555325255345454607779770619941424969302932134199266099735828861299775279046500421434286690709707326352415603022166564228243994442588173703643053821716401058930512478474858954584122446557545397149204122720566602372570004074818492984828847560334445836810555432267659869224286336949393416625848110846844992654577753799170053010331212438090750879380712103537273948195220894561183296638333042682238439363163314589835184707849315198813170187479196067816119521235604893405287851002435323526054430346692407722571576771303923290507471721926355374108210809043333032951752058303096230381065247574763824984391884160590432760080553551624865439372374725666969907394852075766132894228949937579586299856764619849742555913778404660897617237025436646919051791722406394759465854887081298478249483657928712357939082618403787993586326579848306335627558906001077913475280659011550888161624497121507377800400785220162239874120233835642252133037371006692287183398688155087213655201642818069146130656274400930812021686497565285033431197581155398789116802978928785199129304266079711499516717832338475753094552050543422642870801872026221914779143646880391096021297483290145316743297450067167371298860389578157326753601930038313424534826238070857613228360072493703493623503254162069779174353415168778784068189693933136245803642041348856392931539377089319776866392999852980884621706105930809922158110936798503151989590599812740482896193287510598784846373134860059790104872584191766321803900748415641721067436336303336915726784716159610445593602434328596938270356647562063826896674407508987719503749581558462305914569646088140118949938031904140440116227081478808671150172940268791974506062073069445681501326575884824516908965046263777317815000381643505190097189547554932163255911294306062535929145510867703179162884987385623834870641693402214004587124629368822934802622149947698876426873389617384941707686273323789297128725517128540155519268351206633895028797269829254029117653498149590429715659576344292187857995479520512452442480471570553117028307066313179711439470369077470811985496516972763512776470081089367278406244006050755481071751571107224710190072560911090843454355476556822854042988095599705207751424047622517018984207241958834811725697656624573272063602726267602479990399449707250262065474247511110237844446754979500824334100237083308017540208721019495210771455261791651488524405279267731002627016098365400218391038868023030206534104852057825771194454891020763020276649026276597369303874973101905010060088698203558728702015056901078794444437775080670626243966435929058600269294453046661598049846046135539510577382327908133972179088545037850199363472119298995714454403150020640857424591306120050884240612497125116834664250167883119751863791560642806482449326285119819125258735245106933401248957173256811625442455580095461369787185463142757993962039327599960677344585371637868291234951810312306048730866623902819266607807351330594577742260399510524411717507672175196710807287608398550462724980404653391468011991371556379380440853794369542662677225172301663906983302089849947892446044438329186256255607280407125777163913571646811422661780619327434828982736890036942217942935422640228189747977054484999579426795994674407767584346789047524827417801136403949732389893170797129141441322160415648514943770966777071727118826641344240871128422489572369506423983433970151492920261321688739389233213361217070294624814867561262897089380385982868926165197462593921628483605781350651007174761688106811872591708807083157157439276439338645919727414663593271937463097551010650152428561070528990777444089614558412913463290783849482759399822243410443119147786428709513041822559256065037919546748502976147866321839870816856048562596051995595894990311640379636983956091709131922622390518988470627085308900338996215358048465060833112358959974052006254876703598992519989686469289568325596053961497439995539338241414453267691065539525456298600365451270440841811444890000099449737270505315219019885768897180304243547973455341650347559027155545755028257718753329236716634462105723889333063805972794947967443555568701263462956934618948796710751848610065434628180621786572779113395398699681561371498259212004875954844004202651961215162728241962387208495930585638385200795742132867377649515908539456249699288355775307399931722046345566729563505322874919956856053708405007542315151923220958944044842306434483865762540391840785263897140984194798087570494966590562858461787398638713180905651771552204985669179267087225420255907134102866403223240331332652367460320500635637181603358292053032053872638863908601299871502465090266155330498597192101151540957451980538076469449380793062257374174439043017987968915158412550265790819997803754383968507282449255013677089289306966221042319272937594862983348819458559157577181359119886673947205743737560132214592951777224068138889987280806249435597534340869874161326875252599339847946664137301860897778386719673915928687616854107456134518219378035134451701037693435859874460922194231665060772362433337417086618215590811955035511791595908231382372562329873594877258616170710788718182675128671613170949297121756752016409075539406820488180507493591800515766039494934362079997011911935143551497621980040661427668811436721619291329974184733867134385275065974110940154306235517850199020777118617305610899870958615272277727128306754049972472909530328571432033523545919991235750557654628021686697045818131676614598199978221553954443734013977450984615663703018774752409945076591894731237498939470052497610705269697877926637398351692337395605338839316106528849613705284873014680815540677122213661390978710982171007464244010927115076824662963408917230423950841213310309700547186906600466560773817963599187244221806439488785813463793161110666185575337532335355161949134895742939290950033250984240753381519317681437090969620220188994247156929349382652570865295692089396882014615602579833621325964071754809256895778511677800079004916582291702310105798157721342642511801448041790168297107352962423164525080095450702449689621510089857428060240157329595333546775638902897303383003498369790640086780785937431205881346408841388114520774522422989579871509679192001954527313152379843911595422199056969676686912161866727890361520143115257822106637892130768233324676555669152457710371199441261499090135025825360196831082251145665639487445457480431668354182883121392125627512120337274779658433663521084917141271243972880085846180362677199212863355589624905340259799671106507324341486750862842208457452870339909382033508090224032027344401913135794692102586139347360269723831991350767018033294306094469761816282801773677756422880786151820626266927654036591030113108741066093960647141107823592004021190577788477906943734305984975384188100427686492118942580994131877277145454204695690265227575585216160560129951302962622768771258295680205092833438633265627499352939787070520974008432239760144184049876107264568218914086418648702542343304412193939608364672432494991087069514295054303956150638003464476613530781112328854339846022656167994799155108704263016851322159793950170169203310713665621903514836049460538970080582976533101777812930148545690327369875543137519237199465737671088731569569981164177724174274124698881994781607754630513515032564907573952029245619378734642888174061052394952453229197182136502398411993382573945021131811107872714543776895366110900497050097494879271544317807128885195350986574285239956493113379632108039142465067723820273982815650099122872371911079489340319381307333442543937429437118231878146902939122269503366424984069032111355928352989568284598241153270626132686239329908350833109362143049013909643130978583183443660701213259469476700137935788433305244099240242846332776559737516527573285821071877382635396285747076846375440214094689584593948616396772509457170386203713227673811470263791902788986567795334190513036133778273715298764872574844739763975108706858723336247417208014788063423383660045270681208686284713406277678075984369094970027131583921712464635946633292313862330199145001148943701945486615022501812736312255180210327864476787226129816039223108582459302286470661963295186803216772640487237838955309866282201471910508801552043394886117149179828862938435492770810591866664832048728603539719808336275627972658010367915109062068009073274588460763144699995388449258714488006076026198790171121076210185403844294793783662347417912757722161870402657494093254767659353020541927368744910912394824297932082160656779661378680285129015333004899106087150523928739981082101410172036819895401966216421775220156771272772616275384413260730031219412693911420774260358164857855237434269979869576834723558952761242693798463319005320738968375549073420753898856747387739833894422808702223692791909183630616801998401458915022833660523993497899414931965760614139577051993079744107107636425407989601066520227661913961595886497636009259466488382414863210718160703434864730322827595481718114209433948097385700322463219483491271043524730405142221911902530292140248757051682291373836126869722851602694015941523164213580997988246434336959579691352904101527585938543827220004152527003040758740965517065782020014686601854654643834082161553600209422758982436026140958450571518742903153690604437430849309914419747170352200714862365888463869841612331123668792450112192553147247697584113996106525191905757634850031090330549007034352052139190511012568216739476362895667383700008090613552019157489901808512968291850165477155035931758995292652411094775422175613394299688958335080503860420281450092351466090050993627717877485603299945429215251143775516357902279234745528941706537303323986103949815134754450058504506388919413957816299661301497811964922513342036083046090165684774351005063097408200608381834945062962086580682897373329624777308906220451285328409328233200022931275482589238944019119588874206003313358164721545553214202202607222266625331358782475215999194420721525515057543672520031041560775761709394233455622684763069939521965178125774734919673862315764249627597575688662314812722669780262443432999700494595618236308916595965110093321803277099250869326262629176401956379516108055548146009568956215902431219633800390771023208536870916965560763196852524492532484317789301515119046763783742448320613520096487598072772364987092096735283444617579611477513076858086300165428884514452729307550295173590314117473002723036128558362898135524834455438546447003058730139019039410339162183769849986725972276937107197832036199762116394632787695561874651075803594763120036029368718912059087885953412578620781969945413742587965189600250790942838468377394934197454295207792270264084033188714034295755216300630081994367083214238407643531035370108639485374154136143940522711076750979078932457851700776144710565467734097666676483029363664193597693689102038105249025524721342466315233333408971130931948872378565937225783970670076965315181442913154755919874492345240274204479728278700869245116659134257148015158807850323412179969399328163789030846136782172554414930866669179176091630483362105311717556923182933815738147558584074952457578165350087295364539620170753346728789115168226009369528124346032975820093199730849795211457291541330944403034224317107070969762739188558003261912827250885894415238912992478314931126910642025721776424338662130753067613789090049105172318781130238945162457758259177842133366537878359196110612237983823554630170239430160808175318160983309816062922367182067926945380854911933575094210981997958523816810836165434646761754048529267704980426396255140299294874490491907928440767025049221209169372021747034901118925400069882948332842210046195468108899923487825658898998741824658456408354294754221330103884244744594544887146212387708286383785209308595272059220756635296260468031738398868284422704725441410126486813754277719024479510588663277206319057937576668030560177551420851772155777901017366320982337368352912140367897843584512999678991044207209914121786992094655978683117478891794447423277233629993649674751916292564460038360858827132790387741791451306686525026653856963598345116784462193712211341164768711524747855535790483018603135247660141937610343819253190294348127105744415105991774341174537906822440678217512746473266169893214848708466368714828666416323840668046753841392230529946515015356253419524514957448418653899174259563508901773203305577057248423552334570971850720362575382869612252368425043523283890024466245249822741740150711810500753861047590358708770592442441764771549100223095487490647599719902218172664856598149612313384350569069099076133414049715021974567924001030452391552446456279248607404054334918540379805599716851751278643100558235547470673539052592897560049792617888589007221455389232690875606157536180605649956887823245249881148363876514140435859063040740506827064765386582135608868907574341606088037713800524738833709723322928269713505066452442871369518211651988945083598632327835331044197985498447304792556910840884846826789891678918761800488076580063572867122452301706271409361036148698644631742366973955995798312338070088560095594821114912715617845683727429342226943173393796994024538773471033595922136341159532203391571603669396014965613236847272447822061811899622605726692283908649391602271590999954967673038789897171872966393042296451737037825406376357220403268917835614433200164578990380056301428257059559517896692330931340573956321417960399912328255451246846799349607457005126677373931534232558407020359843521647456850540218664374846167540812293118046640135570866528950015166436294614919294551163689453696787056680940366200744777838440713725854230956082407032717900874324763187102645168854126814134263214374987517587522932702108241659708530399654945210812005719434050314942076368066697135245508232933040201808802247439204660590043742032146971945170526902978489448542918376114662068073583001087367327760761537183569173642989899644412223698190459877118935281305906327166962956812339244125228479190597896836759656028242050155456879902416820992782655925993278107455060516823281832175345807800608629965097271801783125867834690767658999477161754244556134611194503481907903097989587254138791926690650660843576658828327884041845955901837284556396128726348351082450757971266428499831417182082072067826910259028596056540278903012108911254777114347122635535836780891773831589566712520102070331695951737915532904639849994470291290385625132047756764536465283376254987506889307122458519629770203909706474968057263590763733366978720922589085462158061141108378590113585920205375980295537516688425153391652448054199576195786178549279248147257630118354975643625297700585614966435981182171995808159787440264466903557343776775020958204889965246937299528686364212364203318700933553266566264758004709116536952545323602344579977863591783618234105767095427457754460029192122524754965442376039746295208011420113679380864854643704197315104137940404599187721842791028094690559185066192132602699378310419932953263045563037188392141158840716626717993123016678473908117203842857050726338948579196271470717045285056155052980033624736407553265135156090912792182600737532585295913595712521093508341145308524596828187894051976677909204233856794388991765358875154275320027300334546665072988940448131737383764576364503063323546656030965658841659310678988554911910116188650782779169576151439993313473713252675325311376963926064863354818203907657646208324988815743974833856827963424268943160944985879058012294058034524312411625338351933569237116865622483571691207661333705702953078727804745292876196450908627904032490672610297911323378614922761544757677860145702842443406036794522315958813902967444889848653504407711198479337327004316640914441959164446414724924250112163414133043206733777963956722809276734802939197589218437898589183881095247264556868433074029213329232160719495113662599030893833894200644379913597654450305722290785076981747565883294948096143600306600629447296654988823815274822078808138729602324117835080383172677528308126189440713523568542654203729863801372676361223353199225995699565799999867047173050787112952895706289527088877705338958182933940936953030399687586223312725596270224333651369863252719776240342757678593004316423528805847140158912829666752179080465452417505439237237334509706922228949669406619784136294418797069924025337443908806272289940976832395729504908758256112834840162595066432477676954907188863731212364071160015538265211817211175009601729607624970362111285810666354618462807941174478012607218717779817394205373800429062729009122640424143443247173106873077784895106718122808593433233591661178790472733169791763074323355997378103537430574215013175449607290078712143897203113887659081404316291499096789692703165127814770611540619603770720756064651245509828075872412969315606527114387793373546411106847197841237422882617289096079618389621229250922639601818313615728954846366269615377031483116401524817288195459772926984691107941571831562927715630992913846449821451350722617830461796714271975602189364328989036095912983760301196250316279574413834335133450110255896310392692782470628059840470082266892187202276705722862607985599494209758128663663676814307269891285276868311251957161309887082439570697398912405883228819373572896081783851882901251358325882448858119922109094386064431925105050188124554939834065067149906067447386162294837009352265079788641224676316361296992783416813475855580542048428770016504478055061829090773260704884311250203319203761201820657624227737792690501483248298516602827436953669354647768991401747678921052081833311285581527768833275202421874983985790100257134433203946233954583568451774052268769408842306509031616060019788578678005285894996529043329054310961839622226556197395749513992411618358650795639478475568821203367074050493940232564221725398572150403966420300300695488899473057515106165174395940947769251859714902451695451677910413349114484480695034143118880723806188693316106729344806835351881947930683895805349163691359883921708986320489445784060790793448438103959241592910883847181371447292732986407095557670277146324394656767009776430323477253582493685519821478130626722793204126426195706356472117141623980196556866241786180701777421317198118368888854837546657029099317973229718350913438567445220653127849723315866459705725041491053478610758916218743905083268359913987939020683679183612010501206928702382866737830218874109073868314301700218844109920817961724119793559640436484749765351599064885203597246978753929624610695824661089609110325753206202495684132679977961862980664415920785214217488749902081876370128245418841393285785160864684352199413933379185951842599856893788687429377750192060026834235079966125098117610019034799160431185406311976173395242634341008780751461369508127282916965139809130268356890724494881397816840353942562111776076007249402295230013198392829025596236562547586019857849492767215220910637735415857476260879445172088210191669994522083066045592759726270532902479537348097543295440524106587139559870000989243134390657898140155941784066579621794585176615143607134278021532611520291336399866727162453241022741732907750996757242000995917414713673989464755692194424222825339476810642149014654243390221300552821201047716752704255663648643371689331452105489482809004235212060759088189355575560384135377626597934698722766801951386565363878589903957111704638744017551651236531357407535374484144421374589831083529704253155331468948302812025912803642169202838496116948703793752855043033195364201594144875800457219870339298563021412075082193994632949714125743154871638779186562024266859534900233190020665155704476165509563186701912001107319018898459264585718263390927997998246370337747503219505766555655750467873557442796065432388768180128662202404552196603460794207413715264271871023251025036972144893125876444689090762691330478638079166155033205692547253614396652137774329593150706393387295608828331036493382098705381328203769236697740501065127538039834983185570649654846210658008226361694908036586157210617459749169036079475096291452150620179330700483471952197652944353941009530335781040212246830607313648469833325220184675419039786153895073324867920867871054514602822116890494108260171579204614760330983912478925556033626804353566840063283616499033854447424284328484094731625103779139448759552611404839381165171092739300921933042217765661385908040154824775386890552649164122104756825354113898148395461892088910925455707906115202266980531608306861519302495422776210151326883599447397175628011381230309694713056875463219288838441131575473466550509068180292787380558967112166053204753815521927481293819243860103451418270339812480586264605988399603165745122070853947943683551984210248997641679121293075501410873097346966767236989383169442025389562720568614773569408615345765286479629686791673710710560851491118920619762175000007760062866823424180008382395054137046530690430056614719839661963892780250123507699970582091655215136580404331604336292859605386226399660236003994892505110931372736043026166989686837477255738128045917056939418742970914313725517573924655917694901077737270971583983784261106424824787779295291978035776767385325611139216605105226129199811355099543788163983139084077201853994454225042637210085816934185555446927045440320432242482948795401581586145929601838384950221116427431615660724358308606568166350334375432867858645813304874607389039984146602514325146640127642257389080750409117212369585048346661096177379948817477900149588282725889045419707750573091450622261909349515389780749276037554219842149753372774077874622789492733087064737421708639205101956093515113457358285876216409890875886981388311560230343374946999722592863423019076385511965131411957418214161070258133279998020822077364634591077601555544491592226542494299768464914217532058750018524516083004449470437653703795329539188768088703721272670935380420081215890259645974891631738853974337740242597491101513776905174426352793586333062854033342581503705581734209392120452427847892440225401213554106261806220924106172623635714327246557362788052935872740374418550603093169620786292179273946305841706473496599172252648020085378424313613898347428092959726009555354112703650672739688836538665733414993383223099885526552332316013962113861673826272131266772700498304639802379051901038982804785363978111146568174982580331818058982710136236326962091174295339104794154136056090765088635457209002101455202683846091343035210285822876500698761938613540227317001062082854709713824698046315852703327356688746233895529620251653617214041497830136164014135635808656293101660288103167988819434609490735766627431577951522301687690044523759794866101342153561363040734821875913464580999859308167539297825178792188740955824056273172818102803944047341417181846887805365299008810186697929216320803879381774534824302681330070049813313206124327529269017726457562866034575827787459255113493082461413436976333483820864124932759526291690104816298310961279421870731042448472704341608979425260636275975170275353887758077669603240341303129785445944549801910600452189307033184402376256109363454898224424836937287106744200093907945071087271677664893775048975419713064929303359805782107997036053675115609261022408865631028768072738087950131863446855899255435262868310838938369259915543634931403478487529653799513071566515676734903114233491951061807514442236955910432685563341435584684260303764572474599387969892314632703277350953897373744874448791456039592071958159611687751711258364791106967092832938587690225786641730267954301230768511132496617262246180667533424249068311730637932729350115990497469514225713252882633401729378585697792066491776314278459697345584875895092023805276216642046650350221816433807836010587322370008500659265387015571890498871918471916499571399956325916029116928414494440359708499041667531046752159917347922347033250412528708743448291244155961283235247650216620072570453939003428557673703362078421082636514795185329095902095655667401996154573744453146847730803788397244674415978567133666169281809865186899504411843571306929956329752394166826744863311475465371092296304265275015627709693447078652585422979247652426792413740908928729966144559389894392724628774472138142202147825492054872823537166405871075913529628093350889439694206632789385583916578344881894602489300551223076636781247508809030371819278119094155247765893006573732445749242617647262828463347339376716530548515513505191615831623594575316370347237910613756949223480626562495433029716868087940807095730213315193956426661956315186910822195222041971043135408592275009024740680120450446445163841913361393514728448667900258886450257174088512858341126017783627435360740969497551770918949915302350388368850897948304391227676810598560641939397015874570964276908069981936902575156828687633820702039976840297253570461399150324961830726966426582379500469097789605024484108246630634369148324054001837068301669334285857430622560497781369732177823400199748601222277710047431844367370263908680498247601930369085270945373750585804656034117600500484516322089455675937916923504171859332198782196969569149727779420690570618967915688153926046507357089205892415505999267215363092935683073487952957935018570159732685079956692353014949840408086005564686389782631178443323216048088570335268101965078274488139289579174231425974814278975493814423660079800124277686428574629809316954019567258551363692524247848417879828499928198682209641045602759697895996060597019977603044732840160320388595640651345145145215600695551075452097949993712560443654844985184222799518677458900475666027223425150753233301545687642447989977626151203808940124424080531150609051981593194121009428539238360155683831325716863328409465768624258716512445447291599059132438767071843734147830004603088018590359113735254481527493663369925039796936784389769178076734079093027551934374840631715255947950414159930795923421484068431565075259350068112245059464168066526841355767050567652027542409822213898505601535178486785378597562641496938162960015561985624662989566876358409870390935615382934876712514265128314245358579301015741830469503169137775469001611831805189650914515921141148117629498304843107686300106779330588803199737771702891777121812848447612364138194595922504452728839366417358709474771168878598988173672521037122445865347924375235427980441327692600373250287570568325746299618964082674340678517875537913581515249367291742978468124335696321109548107788379851105727823375412738322905068538138745662834753304787246854648002290159201837141400189473945702541073360925282396683165760229555350387540772719118557994959692887651183270451926468725955372668226797068509581091612879051222455843887495201767823971327396300330554357954163809284066011840421353558472162644619970041440378255013656618984009375958802106715760428091775795483795501622260336615972966059312897720530920810309880737855257034795133949769247727581338618187716042883844830281456884746373166332805407028145751068868134553840329065329702036430864245108433074278488568426881571205325045283053306580935046308185471365067558369572776800476491136990637845157377343071651339120151512245913341026496898357268546205809666996143562793400306830531815378551346433213815499245680092572204679907617658876989715970642301905049806276360554134760100818317343607160592264712397634756533924376595905558796576579932873796966533711463361309722942566438903996673229483703158890173996562349323748747172668382004545720814839660213629226816106741802187879372751400704636311363827689679633085178080369795950488918380789102292764042163380255738333803958079906745347214862520293643412744559038538466145669693323161745237840294771969769458535078994181507573837906723018978428272788958352494623883665452454866924050467816373338215661114208863400851791015529046154352930912968080281617457712667201636041901436082157898928534437130761481343635198317221230267667222952810614455254171540279182594557765353644478186187768075683033655134303596662476162846745529147077071814758380455820396136937628015501382732063972913312976040761947888260904841945039188826546373071534211521978971484951214402049556492125082044219605482395502433297337669627586427509123753554957637337715247799373130757704781591803548206429347227468599342277316139523930746784397713927154556902733354394536398070177931086594902928804657045090716457944880328021239615925120064634100610999407750002039147989437342949978820924923731969879120898615222117191886580623699560053591557416882412071460723058442441288620901531228601547168362300812763614173413994955527067806043276187247515799077935794792608708449062416632995741642016132239074238669852286033459689989313952958777694583953059685534488565205118522959052330437218253054128266323676798322065999284687375218759628746006314575484726811951215712410645445809224539536374514824042608024134538156468900758300405050916412020987068593329530003971528470149133257643902867286089871432007158947715636704425018479722803558343784851285404965993712697623856352416038605012455505446314930552084174076145169313466510999288666848589642773184610186027107874048360381624793221836537532320515423211758476987055418438750005991261965414724807253653258521704855253370636597126369500732703454693706707015903945459227644712933688755367956579699233373835360282985349054701228034056635592652121366668440490570233527176359442061295508481837801714544828952490616495960199464353534355822180232306649026024482107122977770740187984740609792004895000799620405434048512296894289527745255284612158689507037485396550059225138039566628964950785504565996684676993098296923721207690162463306421388985865848378326174452880825570285587517489024505060354251510200016117703505537888618367454411538913450655594789279667507265527798027500117363965849067640470404405423685997139515347360961528304483622146134163977469311516524193546310369699057605553873841757548108937640275698055849595245574229734619053804049477336488253234000916147075685575194155672764990148521930558141933572148513816509450076508740734329018958955993023938733920834943473370213905400174045909413375771288386529874197866813300661280487230699480528505312100981920855099395675126187258485823426539087588311943214209669138889397584395534856119066816656816371558992093874512694821486098474808748374346458933580703906865321410949876721809632574023454096696761913205370339858068279884064389139279633445371199792805035701961773705953219393049528776789262382923649935788061639030189983879595492937471972895326628411953382700896390148979247630743188338209985446875774622766109538531700987816024761114391448180646623745142890674953961183025216395223122870017324064237493697612763867365335140801532513326434539386275598414936099019521360515846937952534253539654847740319738560385958262193933546670923601650311894555435313222340281309248040132530776880907069621482005617278260016362026195564848235961177280312957126705562860206869023154994220377812742160192529809368365596222297717406715897681113828094107158057586967672277630215982133342635918016164194411865516468917884122349860869328196542121740694618385715793599010514153031014360599247532752346301787028837126504870202761934196462676530093000728100916178804250398047690592645579554050395865925530512033682071777685700878454836950557647720779631823959529216955618334715042536949491833550083017355182211241189328899247102052849653620424699060590579353541128958801480645445032511868057322686660767957960778712164471358264562250426354181890390999241139090957222644586800962032046370256763244866963258824365034983449275423315545844869892708515032620022355869843505736519285311193417363335995903941961927788672589691610066841668777503943553354091329020040129396764767614645826778605461185033126915615066176488594961920386233601508297942062010735989146956776232336032026061020477689490365140727709479571645404598979994370015275658396730193575998149656884046417886858701997799040692080457008170735949196485444204429466622359303205491663240013530055575163969489136253564184637853982784411143713364435081173798488868943574935049915324300604882761374245383386408776314759180289770200524005482685792680270774385852416850037831595072470871855922329063206668284088132695820680521433987649151265452519307673260459692695233599282603624637729344276285530835074545802564162064725230916444680929653968235895694066048735619072715056134852850444985751188600267934366256120233080972261449991796274064568203076341430640407911951818012626343871075012531062946234257758845870120086992487996967681358749823022402795908237858888774148979980275319701922916087046636997987861307679984248102847611056435970375216451845678657557356267690807194018532841092266372636365298900018473462924321510534835374349884595383204702661117936350655205251852299193070578433721710522597528258005106746523882890646605911314374033471154118572406448274638617389438380362979454955739401794048865876214117811957124578014537951027871317844335466071179726325223960121896081566113472935203709259088282853830788515942207836505371395040423483471057847834869229220201259382171978971332100089485151684142125000498722447431005826668955101252009848338853063570981612812460145906218209155659219535878929762384288069692417694872037459342625058075544647446910114047884332547726913792716963798816741277629008140717332525608141163700105730851269071603196949351325270346676407405223580926017423765158447540907511502636882820719306745237533335877164660408420172520446237895706943281858330864762378396797466504184414961046804971824645785052595900970972133322138233832304375539516084211817186914268382045638413594354822514020328938419360980594800500165169937154773807073318063639423507954176792631501450348069829911854366072063068491268986913055123476950078550309843689521743961068478510285930673146138495588840888621320997382030189892298274525604790622749209473702786335577386400606786646418463136109843195667554858856423027641521787130787988218389329121661138857079567678294738413873243424194906275862797798097174254218444391433184972062526735707849829221133983629663006057710023323847792719376351028362956191253948814230279989073034515654119067282573914788209017154680824793183305485745492025732197587708137606088939257082542835003226939032635283515849898399549586209863662138922477506661227647985384030483066504808437061049097214329804328457613298574201485843659041955701662569584832331520648062992166995205015829733681483907495239495835601295317725967802853373761543037315081147444234644065563063498399502593386507166055281091603227628238724915966012605560183190626633653768900111910241476232164340613498341286934468828325388204821723127652996692435239051828238105240881928850412125392881933098771261606382119030223898809567013022706760546589463843492912339519983219088528302518917379767217075571169227377799125295587005371958401106703472770150748832924704291552051978624573559632660079229562470500799650730228245959196475029155539471057774245879121736800242459323976712861839086350123657315233609746921934644850801162584470534437393003623421507900497921327562708131300944111969090328663286124939714371788348921834052752640352595143562364380926134380789708891250129807054889810524381074078347463811017475005194322942817574327452257328237832616028739127294077813267159738780049499170554006411941903818970107293602665087831254775903245720952316253274268559337006886520565493823494581794861731381590226889114617025011450494585386944112325548714538936444612378705189483495218867698566740927863454706156811957498818279140320533006853901483854226982519279600967930224339658633438386626181454843029472541022634390674688728480175368420219833808068804320892965162055171991888157445549561814763101377211788858956559718254241879293343643432038797671768570915359602009499067334552604501199729069874671785758638823669969679402985364317849670668614269419928984837397525378153524785533263397750942863798904433133467359183834108091798995742785841029986952758483855593626540669279652639886129056808501746842629304607192113104006260392484240456996920724191234221234160361180182241340505036153325730922036061420284209336850263249096372862669801524486299408952206740470828516057085471855703724395093741013291320412223650895850804618845360481604213411826022632147246636055225682493298959590373015782559481705600432061453644230574676190922098522251352962350608070079746266022863288008561749152265418539733823367770673548959204125771297761163765204898822002344987006172179692229161940580641329126195187148620401586297888316384521905410789020025324324816863604940574685895277462233544925810963793785755841675028875222760416600427001110525838984575204103680279465219125521878074528170994664140377105881952013337978823792765147831615098687179930618894644370173945008024614564226139062167308148850659982450651239782921041678733437177126170169881575950458495667815718498808518734068871978869644673992885810503139887455585855088261233516823536516510987631655602647326722624175883535732242207121690376477552548074573275608144293720733229802803847065157052570843560153336334438731876492116697356824772387732809595798535920703544050197518799579086865077025575992878181271746662069908250860659971181866178343598259091499843228169987143203017942763610944908652160744412753179160521884262194444803011472926367750518825201453513396562100664069902287194534002500597850819028050936517705439298175023419675280164449718513211174822896024580843967456635516917769589503071744760108064898884143243632985804190543384201451872215631658676596715594786998109324066974032031236574305495966646000969326936418510439970104054433704484687111873154878205529005295687194770611331609614871488361921998952501981603271542983009156315955509938513746905604013177770434753137835836818664217355963647927217224459776287036943555419817630301606726458930237127733574137470815014688776085652089318607335028318987635048048856854696210492925572354374362628941330145238272225748712320051789390769382311615483223114131777820585903218028687009421343081387323609905105311105390860433304154968636489201714024070298659978648213622664291552933001751142898986251717344496072469500264557349694227922637937880803268824460667143528313451825107081743366212148380523454545858385962033463788166108569223931523687282126625490281900869780835281653819301078123660372595281020506817488477267629013308829314226774389561154294224360600154675703424884016514601163640706194455930953880190923715639054962324793165417850966339798038269781377971804732255107464823406792391929209890249015430483725031383201275848372314523805958646879135552276117556784725520221922614826603369146706190528435094943085621730098876481468820428141462513036732626589293124352092795130473034441504963434650381108124151131385687992628961987356203298379482654233161067231362196023270997637891283599520435632979976897607817294245417748298968141945998275717783890497539389333082045300729714153376181954221801384918035891094259697660979916216583150941917109427004439037545625671988661339348108095152154558828441090809148246183579137609919722763774425943502698642818892759740869263850556768455472342255339741658652430174624092200606762302741877048752721336413948109696780844290724003555835819996296568561409998089226493200139327106896264792915162408435273000420086052184934007885383838829575052245387077142659117464028474743429311995056111226132388731848437006879676200485664386098830790862605088576652480856877537651345030024095912284195647532767047119492472220339123277048760041938546095314641487285316416045904592332017240019897060614581799599488247941402694112402191603421400557795771819250526917237022115671255189102779776645846238756030494693184735773639657553172293383482328292107329008277247183951117228445580474854596672950321999598309404924183265208587760563296976580114381754437160198812365796111985987447396656385511958331859430712487593009849531934563914794483575686891507315979941762822655200759269039770577668469206995897731147358724445835103081996887012439773948919424240244145512154324716382456994366535201065791493730185163926629307258334396575575539658197040084318009372309198094485846617973650955893270123619634685168460256455700499778315647754299964945356148926615708880782806729175676253146209934754832884563734898278426047307365713405578221739405746619376836678181844562959836012087605659518265839786147730043998719651104994268551344809615478983995955443296584179660592620902899399399507538561782158225735254076410268314280744555476573497035593354357384740462534250558292166676007427808766660176825997052167255696510009758204755337680407335640813156196894024376290713303876196767051506644306256560004714737337106713712682428589946268331661668065649058588528491705146830053796923730388447707735031226826788169406378838257046272375121045195429703577956208946105606282016343573559693766887555619077549005068720739264178640382719858640483794839891050851945580363735711147878743012306628143623824255398876374571710389160741919429108561198589572192455430168296907831819047940641489834593753480561206684345524111875817707853675930964914885929384691616677226735242229886538828074984532772570036612022735768304950571395656448987160269731859248590114081219494373462499625738087025851349361137528285713516611608042764639411202640089839728773637106871994456855029313345227470780138661722931619848972037453731424941004986553352916832563426099716998589694470824063958419290751791698568902901651845871327247819349791792657424478610154178995004057117232055318760354588577156920653176615596233935470414115933225791362413880981728968576562902332101386470422490432305807267185399174011148099135395415039626296833850681601008644687969156647555202339915733990455352539473685163711376971602697994833316139629661617795157512287167157506533706537447786652320304193964321005933847889245762283723813265516860341610444911439546805132471059620982917104092862117697630016467644247422500716140656409166582531814157018625167592638021306794921109515294307078528285123060360352299660240893728578300612062854606347631671997625856907009491999975394308129533400610548793178079588996669397098577846052606221251757181403445427653816835898801564020130831263245028088642404916192080400934062775433557951542255675462680251304917169312212022997410329427795616339187853955370502314565998832528156418390040588786209281174286050140585598220384473453045519825210191069242283647567258590742279127138382150749154794097456073564169842609499800895902541934253035843044094715585293533835948122709559054649272533171724949961735411282192030239358343688384070863250693922905830891826067205546204958371878553365497918006626176317994052440204551349355910275795694345700732917812673542057758136561948251806174734887401122094273640829131829215529366211889840491988325693746220552226684416143425745742245891477905758602278465353374225408366913826746427417122597617139412450544057652987334929577844015092340017735733220514503386772425879856139105266359462496859009199028535244269452171235596827306854854935564012735831701956211704236984844343065452993711812151406775370553080718783572397458996745642770797018124961512641751805333983791990818388193377383932685383936886923973938107634111133349950200473367792658395040569084877116624856109015468479000687520881462432328331959294036497037694772020468235520498476575278115155281943980272158522716837582564944739190081856335350839241827597877598453148500401362308395501840717450822577166559623381374160352452206909031514958757795827375652286092695752443135573277889330995375992801207271827753143908763665539514409509956803933673484994231834942182710691643400273015529855651526647480540048356516967007715617828847235336392241713816971597407739127181209557720053219256581345154477147543261692126750168436050477111216868565678139049271544006616216806727650572261471211612272648766006620414770851810381280679629598935097786093498604513482364591412867204989800318506535531674035679196800057758934178766504877687887158287972084057231084653551917932816608535099339734620945034921084940163484561712930270210588246588695938325456813909964895787572492809430081695968426206160471692302519717466613532542570017123654179197091364279898475484423812390318343221224424805589180995309103190492096686650663593666648610515377588286320997278336398914695221899258307974143338249279138724828500711008695020960936645854511103828627613180054700321403841566794121876966616739156377423833773213211038173461825552108920674099711205311245218971741192244440698107018262059672684432723728868813952792238728670247733213947868178191035676168694849358798628010353925766381610556783142344292225799094858588281970278753179614098990629857016689253926081212329000481912618495898195285988560324640380404023121418163063825753357950552877099281117906204461959539756259431617776979965603983352306667465996749335935247497252062841759882060990169677696302333889811396427198924621750948080869359103649138514923770026729052067678965872663805657052161932333196903151646880318969246895346460950952422530311231662689491885960406197914206848169609676086399609967797647432107151684829834372208626208932379076790791671516879976894523988282601043755485651289446236582550266823670784504096732046370931885655316299701504462130359036620810245010936532555144887272163570749287698908141622947698854520093455206102743121011558438029233315877249793589950987903093603926547719158048611505303895485974593649594647126851707048161855188131681659676062783097821863258917453042715783500521665833400288160671336529916057531548528395789698901123356081375585183038623223852880000990332931987057717828050558625924911869775957067721248208246525131847779363850572391892257365044689577926849667116953478426947839702428745538670887344157053737416310135523813797266453023247799606465976143087435324380392260672552814936525957365025145716634075136970912306749886453623524751206716959675348560939933725647050744991944882186761961788076708883681666201839426335973722680941802701383507559448466947359310576761185863542128565713467409485491821712243913868127247072468504256715975257706076748180738161570593241578237562095900351802813249000913880515108465368114071703460455542616778111102815960611879083486499852491754377391863839174358980317935782560157208523476334615276190095162210379569086090816299467714644175265630487316158192525590386127851616917827507492703023502149611020322651267586226809224907278942323215512915176798827685157802119323368678680934240440462686730293189894515886945995120732436050843170693093505489601046633673500400109814634782708056337549103472568039204314871259679127027030775916671665282049728667339430151816914827677971381740951363046944891237114296987772234712868834244701136264675859880387744998089098072650348861535634308428027635091530617326716124767097889485463761427461709708528085903313563910969121160615172222716575060381200746905194369914349231758633875381207969632211171177927998841465941461635337614376996387745954227543474258577183786617210503820487907390171419957281559219766779616769286917496638401385006744253701296828558636320176406068830647144164369685538479181578908440237104715784916866707495304245775910102410318998005079455869106416416131177948769582861972839111300190247837075960588503239651717522891272260963802774188222867172190246504591974616789149477068351021963663722481585366450144678094972581289177491172651500068243114346344856972050294516632112047150818768659857401943216119931472267644538373571113615891856234347416608822525384542797686933388636651196946936438256978717431423486355285285957938351749369403512437410243849861127288266859328759096731939958547724605712588647379111720891526103315629389493468885176867678991939998202468660275763791278914375969927648246519173135081758474398502160344372255217226722032486022515550903223308906037084503254457774909829878520921218285516083043647579193224845831703529556344409867888361277732397720666247114938785033075277119391938067297202813584655149281131678510103510638681264177024446196949843146658220974402204303700601780818489410742739785515248030435910445255587379680431837094533270992506740513920149146784364365673051093423715441511615032654658409201740966949166309578817376965800486811055573779379875486253070945698102931276060497336454473196431071986540381267534860534869470606686565606666463779488518572982157200638376841741965637014560427901931640102947099402396319185236770078298410978796218524753148509255427008938028485867222206131762222731412451883466397244014202410384484110751130805386523229368842669821310386434079345093799617534106994450607320879799828771073141066088157391641110154623753922434733015949212317333926141827089050340164625719707472423915648528310128611469008366543481616799809825265400729376070754373516424352558442296249516829983189143144940731536457064447601419997454588667621470334680247968373479473255022982972047305967756793394468910897679715891269414554839653982136437442812207346004757464398821171361978068487974006376973911295119641539856847332848769294029190210504504591111444459514230554993259256877670580640748420788184408755595562005542036789212243577744766514095471951019105577770093153648165783279900174502788654692782048462252854614680212611615881456090859734104512455391430474244942876925401466223203200944691559452366330212361663096901771480346087045846716591525317153632006192371091778751123753753738228898688175175365165064030615741553384154038851493397320174127594859753867805404890906876706766268723033414231542770168756263575292425859060174408288525775757187317441824781540577598600688552372973566158314034843313180295066722841052027545776243943737866584539077137711756615742721707103764436977888127841239053400854919791258276075573260888813731605353471574839822559110166521962662489782589422493645352084582176148264600750779956364959946612667108032420670063369483528569862680007867365434892736483440430633042013215751829914263634856483590320011459231708030548073674099803515655001384514815128002515347659031956748724049192086173515794288787433003761632691123233144654984121652746879749808860638215873262130199598813490959014807142896521321946871371377284778390689802866188104977141834501568939725741197283701994226007027866976194357980221342864228151085505085335021488535348391097192656717635430484790711051042528630158038204947181965212331977339346647530056289671259660068775453558375625872574780950755491939761959524393552117376896927340993417536428441023320565298701872812260809486825277865025660230556716010213440458996871884138140169768029238100984739814371021835506013853134195924660767648176840609847794114901663963486882137301745428059184720321189087998960516339275261537324415853162312730646005761575659557691626452872446492565568552106172503430145850695960401182030554052324671218020282618206143755685047663196231732556580295280708700448395043556528943827878049309744150002806726871025492618032352090620396414261654674137195933722373718625111568241084943799737743718288174661043059061887018344587243405782288952146603370694227446220767800595479591050710034215133920151774984469015921826712973873517190324356221894030309007772259336615436633107852526648760749554626348815990719618915507102643333438126932397791288496886333161529049985980595999182922607490606725689093718315114111458627805394026282748762730404931201447403117492443541750899271425789827092655445401485642988108739579430064094696342229580321270578141863142331996649791305019693954662581317325717579147443958773664596622489198914597446491092648994188238891066846750291655532577352440003383632152080167437964737614100240816221352828890148765041681409706091504894472950967120164717191951855850078438829291481312981855603199726445100926293419529527725725555006212128282294688411849183836451104671156443500570386954682681340843370483047083280388558480688361804455407857601662806856520373967536495120696377050019752013526274542837510722082776465973749581983528158667681330321042685299510004409499740484273507226765724587222120121650053167081670256858583674279401058295703121426225028864834048992511451090698459427983804328513984920182347634614437761011308142891021857976420804379560066783423187678093168464215648781337027139575492431036803934251554734601944625086221256079347936163393703223311175478927557439032323341507932423842568953703526234958312463197484942409088978505711132142497928440868273657225115110248518345682972222944397751403705572382185392018493141327824867136398538811383720377684219655923978063040989081179595849438120966753718867761315619710050988317172076988433424618547087255865977674834927158349694104607496877474157257342413538393376668994549047568348692085216543913243913517005610850111675149121422116977372937508249372809584381864298770855393333477009951547261677698659960034198459428379261747775620499278344474918181476020407777434165442543220930451838035833720926831087553808398130001648443180862447084158343052665966617301233659646892950218370686401551146826374951551850715990983371190557900608885590671817575146709299190314648269954636017156865532422771998185752765598144445728475608765400194550889207851078128189063171907289449043613818266438777520137119481500039237836901911070674366136708408056960609363298017549252992728119345951348951578472222462130911428408507456222340543749452406284165845138651405392616732805229391064665496088720740421862456126125310339302803053240619689575230048149320091308738707188079614100451118363049848744487701938654952313270957738112471252005622405078921078664202348106647651503070216902199176338293596370308829051745460312588594370705074184621098118271574501003287594914733295164216185618791889229780297152066902961252697464225733275237891039878531636414063467669971477081052704132068415901799529375068903404715803820427608343829978021453371722355274097846436067159795167335638658480041220146131558976000813801477046399708359839567987719998278050577654798289339886964065243831249687868343635444880874157424218042114354957023352877631982809335597331080684554969651522474630662543858671677146899253586427537246053521813530595364672836918725154009241040516678331956471617626351776747967711547140165753658325975329363690801326902304585701555633537654425054953624829391263857072823327139006467175799774359438775803054945057626485254401337427897558249625952068540982656740215687842910263174820976179232377225987739597801999325069355063120390155577391208724254948715055149854351995260467522269514723914789009622587969078550569204692748004000926682171579536735897637124118005409784966444556724833777620368359432325305202287471998281213287896858082726992246812672128768854044348278117111659229686234376628648163219936428431376103364059335644540526238882457657211574156247070675288150430597512971811943824175969938254514836014943120081437608340388542162873362355351625783851901683584824398167748027506351912253346874000742650568415659593431981648533129064030225985321543037914062987956546763557434272317245665441845436789557770574625371798186766778214402120363214189571736144928242432364311291825647657880963022401099797515631046198304291730568490918206610111786751060117812374496338446190607778304571002234137254626320889082640104020684552949790455031363085361985043719115454941616325591629780898993641584954995999704554206128693733621227054244890847273986209578927875250286880462420245489424839586840018334464314038306557420291175568293471968651290356897284732109755489058921879311846624304386195039850775991253544979170236947977464451398609405925006623001305478588680552717775379247080797246285791032389034396005922561993946530607112011810817572889802885417324739218427806100248524112461277690993972432692523444551097101962794625564493448338332710251592165970908517421992993492130097390644763126849942755165229284982595663492393072639661671581369905256955032605874211056446253289541309432254573132698684847897270905672916550393758111819674768165451604815243357348391768491012393465428909171506608692654355831508240730179378793179037016791019819291933360981216149806849115588734645806314754755435604702677998132771186864169026016102410477795854664916919041809312221147719917632634282220660324814261724216223302990199149866975669627612214662640483698761575380064050967528778225944505579768622977455919320495070054181009091321653448464405705644136569172582431267614226479077734265238812660159127201951154462126621259710875069617760938078516829055896398598101366448117742342667989114339259619084811207258388079783249359812404724880773387388573886943210413743866978366724308827274509075461332624550822591086932348390172261953636460442627368455883049025405567497803022979605439188506030215778671069145497517866101933213010358380468172606082373182993939515288633637237890689810612904678617741234485418445600903729043110991831535166566905543570623862833237991017517504676250489773313212434789288123537931669563597362015262229157871809974490649039956349532910596290673061485949619701151541775565869302544850395803203752038280098702319602337742626091306537968922822963566974000838561703734083102079047898538638016912414249190446510756425748004791827572889611302713249734767772136507026360710967561793161654757389719759218397899663272039406650488354214828201722155820926011370718155142222832192104503324958781382015286039159622602193364114628014262705503975957704145919920441487605455738553087127282562213349876406033186692305733692842462086619553855092091137874437297862081804659432116087725259916643907445260413238103157489730343226681400997642611758303300574195015100511083054269035731831255379570949239726099272450699276427970273807112492046187048862230512876740680350868311625475093978375937030269374068435490893992824620346869987190659129940863036808094227139105083513794677935642073327773096921971957073263736640066569781077094809185992669790215418775206527033623735260526123916075338810460914215180825452499791394165294055017023403649304271648425394858068148882908680233136555718434780465405040461045660901235146524587132964254401771088784123650212311372421984380051079790388588092327812459351994214210112467827518559748495580036030575225838304842759639043848855007093017171051845913992443835570310338711923944523624537708032652495736593610211819271336880229675105488985368087010250095343881450676794303494296102157670433113101450898153830418900015669190565242622910798383896478626231698664259997360494323169407496676643282622076440898728978312624326564309931015059421033680805164610095350365851317424862691291655439509108913202545217156836401062326310599098303813366637849747201341696346418122243928916985545296863822692952117597997949523472636721251506430685367796484283618401209015706699109330764758967962449624496283156262197061312274816193672151344568930791648762246651272052877862401241539647325126040177920956505612210208096884071708360959020985169276876194417387740173547879491827973435413879036097878387643227956803132363935585571425944337329901191226080269101870683432554897069968338707955043058098569016909195944080917706509236239298498379047521665418122199878327242253920914463592305279520622102164553645611376249838038853081300736643622733558328806851308102548760751956430545109495356990351945051742853242006706408526650954391025373538234107997850070086265555709297515045563670662858270999677974621685274669152952725268739145881863750694549543205114046152108083112172293859315676017496913765956515285697263853597736593925772020181675695020527441365126738686512945623735959051779924733282351164127439360812153718972497164646525336904500384881128051662360202365764074515380791400538748095874674061061186460061154471968925243999380315698211321181284394605837912132596532202491252449824003276039604545309397720095076955395144641738554897785698038629406584453798584900810406408560087321610988261766987418591479289092668821841134050188969613557110470374888405915379314099223518312044716040376618004290927346032406119581927186824042043574351352684563104998926451948897990755062747702421495154725731850650200289751120282881932088546986141933963669007366833350376180682187146710091274043645610482653335853488409371650920128874937048473516349969186132151034702515028170445853983348225880867556236206271569536952566608725182005572650016802066612790612665965060194673560336387826337576414017166558437625853273864761066406948883578413659708769598681276835954940414996458812812935147254194768184124139134131213030338823769834423066264389702623224509944353477668145045308097926121734612279236725584612870780235756255580235581928388415411789138439407493847808130931490374705818435746525714674513719813984247347027175508863239811955441578416093818803637581315049026568690499941148646761560761710642758306225082526331060225762090831038317603173019495187807184940371087597589007390315393586613878028661894210934742633055105014344971609273719469823035547693522777700636604128030203787332821706437122410421289208450179021699015956937082446636902722169218999740811041069553403577789396180817080357370420116604937530101113866849008932599605274273452554906464358847316661994677402557014223311543094441671919826326090700660443153977991995962811442764401356433042981059921777871202017340963097367573400316151204805449751300444695120483527799857411351630067512530688352052421452342028835892528091276725819088603227467485773826493215949361681739395479485754378418728486323024521747462487415950925216524634914744650405427013042767765755256265960314546039461740209071013279954911068383242526243952214935882327993077547825881287832178978729109388475941111906696695911189037707943787981230319155467757765113194749810100099310576001906204342927402924323032343250934663666858869932540242545160823085017929968344599275440850525602974429135730750861730001257394853029083778500965657738401965337831662000168289052890360761007244738396089331777083641039810957422375034116299979031528339475716590328562883298502026641939339594384103966019270195658841636018396852033948367484102575955393328298353371702323071923543847420881499049098501740224352689994642822036261024637688680794024797525101812948870664303614295762949844019529801597365603473951867988086878991441761024015998979645762350470892131091270112107857473497936886468373791913501935350006951997304402610012166847617179022498467399358572151485724163515765390396176949862474515619105770128097953738480573823302727363046833009113993999483315211525229639823177608322978544370600595844939778088152900687408625094785371573230719859396308123542050919873162374735979991037807214949401390078828864936409788046197831907691954422319435958649623929458651448174001320011153467699473073306738708471784126461562268284217801884960254254115703205976620772031036897403315960563010889835878810544518123057781140807623017914234133146661323757486543326524354395953020131410087379121312977330540144197233872883585987745170769883223051443738951396162559662620661786139477565306557583915658367576751086456736233967475966677724858366727902348523969357576398151320708712675240711377411992127183840384489541919015645813124110037074010646647216211241004289300553634804474137406904512352386637646324184166456273568829836249307230057624479056484960945482317750145066751084240511625086066563134331615948205934042144350434692531935504393560984639112708452087488156493887928495213371012591677558868809087240911947627414070621376434744249933061594534804232333630479251216199652784566365373473953705271289828217969169071171891743698036800020912012607439516630710676063283314144447634186119664983241611831123697313680133738873830001403988985433833474783014362229140931619803547755524695509197585895380194538181927354411778524482520225127259394457559882480236859982735233500901325553103580220998621670594112871265141444515121772136235764810138748616429568545375118320087437706867734861475666298603340779727516977314557105468335008241926728188294381966872293203325099614511221170941213139899111395325052002837719145500921619493832852065173320137674945319776322013947696316798817714630914892900333847079740053686707324170799154796619643372633853790506274052829666788549589296281044961920190921933296911395719210377144014474828257943716567256863097994521287128412944588617541212721492239211655420503418186877205000888851093873399960926354518812473213204894251324838680573637238721005836125481227618135481336429117080210990191454825195153816982870411123735987556244322129512913495873909204551393319216178837212199453641952237245604627727006511660581396835276583892013113835858030168652909632561894886621453323750831639702947999858482840941419772544869509954567374003558867407767259317028943216365063954838049548388561997929888158317181595592166372846472654697168100062688872082055748499642712030679609141724264790948876602311327644418487217166432478279485629780318671067521644618684000785042360102205436448776770439042127258690331179807544182805729842788091689736386661951320778868035449579295880445208058627335671581440547376997096147101087403029501458509809601508701322649552543979746124952899881822038098540913476058211914217430251650418710800444305337397877018404248004564995442153903831321054892648860695933761116380223060854026430931534843531956786918474400364067759466165232854187773341309932743143830160726330043792545069437415985858696045188685392859989809666475132190322026243215008377136935868902533474905346363251623475514538186781298357162301849528615812868850047511024886885645785414390341371991422097735087901678116397473407863697794307651443317524500334847159962711902383839302311974153878174697088098931408595156764228772799706198094955165995576640916983217237227129801346078626253151660703204473213965816039113487214258245632398886586918662284220286718112976796148966750366947337565142722810400085498051215043212591258650276594939433480104522105990511613368922253895196921362238293090328881803538895086407179372541238817469866943323204728757226519086748360733060385817225396017536476468320915519303065067480046408998136520309233480171364589444128872557108606133388842494637795614135430204403534157864510175299161146764702435441554865440848275617654798681886372273779031243587285504273864761085023497340615726179385064032266268721321242846889762284531792437349327422344372845269087747435338606803830909316508437433273433068006624866189917043503158845719181363082552330128922344949974203611897732336378252873283091786016914172952004629038037707194757933297581149047961119061728740145432058064457295679358498040413257111316632698913182175408490641271555081897473537177689385350120052121354791166608605962084187163423332796889606602106411100945236888855427800230995197989501241975741617599547126684186498667274953088041722864225575152147808009457939502654348914764553328092281333413210585133680248395624669578475565918638967463397644816044609739666436785861051913035601942934929039489065243804727607957519781285872621315100742966356489506089527277516219020036631176938820259455170213339873199318531980956833773996213165357640181362808923089538865399089300558823279758611440072798703456347560722812237549749526574259216423815659221971241062664829279960731378731574933547144928107630488977913960596322534972769271526024860108252007021199907660393330378116128852191483666348587367115032406312779503389572159860507621301639537873087936936895451314613140599569731085955898326665989546405736735256599085660810863555508304851224562701465880390457504279442715264802750896977897147166921729911774415563879953091860139075797790541230936696855165365575546372080195902676943932612785998241638708540683490528764407709482422744695896142183653151517321433241380937293356213502370576811635612427485412992808689538883012211690746625691279915505591353699879881750821574151491862162240272546021487835247907205858102676427992210377418699730081270140442084278765873142807938398024105706670344127232915899156534695607065219099685620988511720550350898876739603073293526476804783319467123838180767178361547307995564601057171905819607619203547711576402478859918146727732827335834254879670179523270866412769052000955504216914376273717921730611594057990097002362839160856568600246305301921046304770610439589816975175323619188562139936563722079116684764135404113322555116387418370734652121224590892958611167234187978444673915140754820089739258567711498209565727665945989039566584952828447709084952192246822428335891357068001234891049481589970956796441162308102735852594559752921564350506638274100767729486300800506077957822729773188515546892697293478624834566484319748317190136560701604987935116488498921588183124953539194541356310051897714761812459055836749566881495859426382959445528945701455931389822454408916365373160009191125581187628608640549337079935249092795383502881150187063828787648776582406137720840392994388354107844214652899248106981326438079362271605738087907892951279725128730794054729330090895583184762733506729144331288842048749761343814600382127493985437001865979735116196695311162257621948707958934944303387462700896951598002906881735542177537361079817406154686435586111478512725161045429509280450098665021564794668433714432975026589854773903438947804774362815263111677452121713627704812521941286393086301170938801027486372551953669888514133163530750619169994371743195375229177392443283867778464498685974433957074144559452159451370765807101909358858290553225271723928461562499288984622240044625569262935494786096081346042464837350088612024466360039365366295512002113630876578707712203675510714826005351314209847378801213770467303307353800657057296188099648230086969359703635604844462244979246194890490769010801998934132235063815716136047953023464046816634847868940478890501652047820906189506468170631161008788295491450800672363121310239840694891263068810722265466527934033323889521550269786293275401187401456695632917118841294908539358567220128310856157620983976623297105797904029065717798659592826881961117197127858248783925894477075929954012286691451049399128031983747794840464260169115745424423532769173631720077932118821184618206883341318636073293114310949709143647117970617166410994058290767291222225967496270906094239981428590386631781765274568613869221964846282284295822837581528179579375872145423079299864214464010668062702936154048967619398821609655130343198713701565586822638488891327023339369955580669596956402252984043204409764156471967739703007135074568402814325917826956235713219283140967553637918080726206270934424997714644468778612318723562756497473186073468052312855679923064038159569930613476517910579448823819373419628446211022857618959260675626141754803177975969084035117475039381277158558451713960936964151476863617376535406505235823741495500639255303906695700067746190436480582116235183953981296119768313065753981362810375689327455523668472231049535627878781282875185181342658540644621427316482894461652740145278359601647733988883285822453482534235835011756250186262734923526157597170275785137269866077784986523788398790527136535158483142414115209805176374968777170200583348771446114650798814854273653853437661699200932508750208958263865806349399723161985617101947814428742704153658575724770902567294730858880059019690605172120794068293992350316954971759756182138769685325286607631865889723069378630205811012829497886190751743624057162352233511348647205071689591312636016849234113136972360060236271451113444667818209008748836348440137951081785598701986900182389779994832792512991890021716576450997568763935177988898105130543921471933836481149624861772887088844852276300323124671000873313062441269027044154609402140298919427119437553011171870850237821824104357724151469468444296802127274847094860362772638653802223504008871181914750202173477683146430061865418946063166714176457594075817236986612370170653380612031887561199123922315448090566058627072568414657241665838432079257798248788968896167870513225743928142961403052494436279495645140324436406331832579603482997366819541964994290254640569233642625556984324332206956029737281479064688448861392012461928325035833526654336115089561788503828636967438439712635303200921674444558710948390636467528871551077937086934047566249147026983601164650427406786245785249536072238377440642137474031765085576080069699113797948700809693472954569187813628331056744120256982970992034485209075688375821932503400488905328670103991537183045931737030464223439514295900886580873444858695196739824587924455889689406984382062036383104929370124991515770509059087285243459498773190327330572677263918679702003602368257331090423179943407513585005354265679989975997587333972474531013853604748917716293412337574752427236982058965926506085039472358800205812624665794254045587475375344565604911371179332974029108705695707375218128254763946572397530971123676649892914429428479283023467070702522237642574845733460263069357411573100122032355304625984970274635993001169656263993338598530848087351659216701605787263175582237100058573037904078509517907341856977191560902653021492485282337654494656914095194865571869161106280901950064599714824552753389670920803242119652101507101786329076263334326271808842755164473353823806534208366762198449609938268180815136914499628967950225511896473142875509018623583990336496126548263939342325391807578706212911711234700356948478931605892768896561838859925363875296489415545957803118148816092840683048789051964506566530223635969090226113807396338969768802370158100398418221576843451017086944731005411182669054238173566671477246720859660005193378568097276525624003522074464835627329209871965346122625016155795155081160780427606031260341731090035642970048274978028807481152664236351977708189172452770524753441670252487093847870618415852178238543492861500030691034006254272932736306012176154121986613804454018913524602105115419842612329828678989498316979551281290496605383414199678401217683332056380753954068099711627542510680468967531475381494492949578058388653597862443013735682446789028728210086108933516026180748239901434638776720721146210348112926086258643381729893548303392411769527946245069937345407478019247622614138639887678478381552416840489143978239708721553726643936592851990637636788500124389253341601616071022204274952248047206548219512949570626264354394693772081019947548194844955401489092383812773270721466648742254763594638012491158664720005896488682869063996277079080595074236775877933169820186906830267864216192750918324991532513590089096941680534144694822476982599644153717484591083771646429560042728595692836561364188627669958975912798923978403882608820997061786271445097931268672863367667888251509120358863029032627211150734078916151087264245651660118775135574676115925964437891294124148618664152270282833640295516934398676630614241323526413495041145478740700603327829345086009874995382458694608668456990989283047919648974523845229077660208356778334499310586338678877139424803582726744926806329862558163747828417400904901029650050902804794945593749597500470097825181886577894155213997190275460837999740459864448601752182947809418274023684497780118060904236745565627602453039521213099709144307675164483996751568599437877505680787637111431616104534655306700132130969867627525322686459416923476044611915979521251828708096289403604886897951820624364411523925570713948472683900689891533491935818134719720017329334059671958646222541718244236485903012325202177950743376161367366659881191804147146434714379459191790355247365504497010636867045553244234450378430471031469824358851431881511741936975880270408126269868698446987160950545750067207089993086813340174717211338747134896775734161523633571796652124846268819291166355335198465656637221095457454709003957364192684715063072329195644276855094554290288846566220934964471218555656324011148250324158380126411341901358448365815446362560373468612184320684577040008124460151975382521602862381711140089683635892893036588843076234005355410862446031392441909104737680734490473744611672690014421781657228230570022630435378259027199093772052687586985646256520407851469710001796637723467296092081329217688037508071816083908896245271213982227983972131160137160211464779022037727104526848014903636492510130756406213216576335935126246885665269949382350888814925451308589702449625050330405905961891605470387135497301028695368511593957287289670695330460662917943396709226763809064602773376467471010717435673747048033883490461823879872493372337821117621462874482810394269796415392182628703121842406692716279049691543865005823856145718899086974165136317806642001902561216739554186725351376507592152254268881050057139234424110538333077720839218078985450547932429288611452203277804693946337289082814837959076913409300127874097566727415727943409328386003737469318132275326052478555563309137796085008799132712924037259616460118123280915542696552441285165890569274517526771202193890680135158170650560955955780301746604498569423971260165181041947817795512304735112125029051644737350293103945591160978736097691591921629230960747262333389044075899612743216369532121008463765958623600268412561214907019933902553892853655035189168980313594026833347406678773696051125456577394745285755559368746823649541305910752260977031858666904054726772444425022827976886989711223000929732758817212224624054217756486364845250439626767385519802319322698905388378228115521284379722674545442816359134714855494717682752001455592227322855788034178832840887881562563061687248562693224514622318490920359792983364078557286776949375480360169923034027435073437795380310853579762710359104634139460558029915284568187182226575692890932726608165042756910323503800318424390996761640601823469970336932725557535441899208642155741906520413777487997511466250155129124581842450904138474295940103524889351911630762749495399875021552626059055450867342324744926249856607555256695534804083101798660295375083555485356747804405432837128709391290517746312512362470973698096678907349457157729684074251211435588200883894825096944715784074532207601293852737387944433429626049937829374187846256143853206068135290614861765067021462855285119110713378413955030430400050301369164566531227086478675618586060838598018625813865312486576257614465771157200769099681668453342857668999516746699032840626251429791617996963711771616551538720148494365062846738753473954359669549953188041630656679414412273535646148573469040484504911100074691298969147102376913512076102339834302299189304830052990565808253171100844401912482077595840013218706113145533577903746437877353852442872044437200713792017692449380978630410486176903680490184339027192455514880222634966284881185063145389372233842797151557430585931755108924084084022733053279000011835689595855421044697552634948060466954502551444908838154039784933700777871432682831785080663673535872231253047427541169187087337344360458334161124723944660699267898876261188867431156423904025627065063577258457154204156210781739267321569230659340994082380894432485715445805521357964325052465625226206204994310173089827921688044214141653906595917001757806394715495765012894566689858753499935430668730221539657210241886293158835424223404960416846666359764762045014085156919535244975866816696192018801929989514391622522671824620542884171136608082153810967555884383773433623147283772335501498668782729866556055093570799562041354123322686552176715120614194539706088712424081773267169884309646678387621942601355466970656882483648496236121828632596414536375232315029533594170914181110510560606301690125733925721074624840611102720805109956020010821218304185433007819521585009436611788380902209305877391178542517091651519321118929073739158823121102727856385307597075560776529369433346083880022577846084455048534539911008206102052111057326416992235223291987745680642676307001996078547952028347558654160096298485525566233345434053980099847051007357972256087481929011224712084896074843120669416199543725131586682842866455426506212424114075852639082231694692400161717142319871198737386360842327225095505916336369660115043360573305803119314005576147206370576978624731657488783332297357436132621074162540493942088023941545736166572147768938024931900682298037996541892913909407217227248417470989063296740744518989393279763247603274044378615359482287685552324612823897137578524777563462358337540650942418539856935405766337711100939974867261166241931377102608910597673727981336358680471721568770665768141686685414318983238987055621073546262703529143883105738834797003729566115711737737239236145515050880733581433414247147799213067947435603636741179197148870732892609286724593969798758102145434143245985473243957106668618376558493255049370350486982938459460425102887827833130942980024415044091257631133082908748884359322923615540985413311124364311189193390604560084909763149681913225216583789736253437927827371530545073298606481780046832941425237013159948772620493306732747800156662948756848409044980765001591898943625879310734420404302360832421449206732943361386291464528507639837581048538990727141570689810961441235722610015305456747888491187397270063960437299885209357119427305642832744902170994752275208424497740161123512361770295794162721621302996966667735546418049849596592343085933529081656947033278033357479848546273256659556556759965363249354222673414995697478757386448507439951196813083596147597425725397573693310366299787517606141598727940624573529501854206345062356731008768818672567039751008217106702843115268275337710969528719319151166607494668140652354217462370661995706967511371361657967161865444983192522466374170565061229396072512066407121705524368425549237401474999326101918717784639302958034514914834406622660318609035467098482566593457353813565330522892141773451155988701148365063736607071972477833788653140526965051585586911229119237252100124438903831196052170233633117691680177927160021582916903019987437014157094543829504499941371852965363475542759167419932560953649746769993373744723083812701957711048165342698815687006354748203501500768765900042432537890789083331012743046860483281465929237852333334097375968612752516624110779118625045742586709039130962584921617233566940053802398186358474850400018986126764015671616013397035480072959862215624915125777764296335675648593763463990476570184914947334038286065088898554850708376535909693952895851302986175233913845888899688457764847764037071969803689824000531699407253092370472310455138758773302723176434950483235571225830522248151905980692439425744642667167448035519131725827232671975310140221614969023600348751750178447236612819669113785135728907448424535724298799318841316276818240933031563853053458236785309641341802281026958650702018403050447872463939631730979480232976020792518650492493734139188369431952070855967241310714881542205623980257716672686376756711509543544940087605126242299029009481746599012433333103749654414379592751509382883211358465421426019107388838067317472584649128671282386480445293208939102565590559718601539623134902126350686544742040315333507966506123665358135195942103401325219710638532838741721953086510830759082217042761722998397173560361601364801132381616940256274994024849735323500239348572514666952925041362475676343560932904211976302388382279119345148640486055401113650816931882867059443674756441221915443231146177822263612469037632648068411330281703767122115253663725704369313623189814105094339316163500730260144322111946083865817443443133716927679098141629551344671861066382013571621120511985018156953052260743040993874922154889235357268686648483509946925112970968977017946871099118515192566049999525641473021537809058051703522578023553803803287635755921799218914989119029348900342460267134995338437980621122556288012870523105585666679632636621210339195160461187593185504104621173578614206255982336060336746780982573383390662293216507094409087343022306039462754757816134335882635729738915359227069712898090416604364711697690881942048816508715488176801769489426597019605982176453694519111344281072329557222939091333786819645714865793816787228451308992961886553526720717716853412912399966898327692570268780724671644030499718183451887762661032176452613251530405608341336139221364021593993275756937870841423101686929623865711650956551782371838454998799627094155512827834922972203459226622775725730774691691981807762300956413305492337233949968498436060669018097124604228412039426313598692351745597839535660996400091570697585890409553285364326912052798495967922279525801725534225323404268269560342020722265806730065438133947026168769194697645152632492965672396075489529862387503487236512913748043084429119216055491854672385024797555578820906677069407241261429506022927050958943473705709160898215926285032226621266244901488559243348133994816984537244669163455377475738752195222918861812099641227911982778731283288066760969237753509068459701345219389739205248064607687211231834462404981222499031083539743433605748667945685476664847722389161605918211950508561745266588758365388851632150305393386363655001842138694137211211807714306275375413203217315499846143885628091477171719832322603832796962149935461518848780422042163511196379427463229013563994874616770270319293900495668459311159981022662695592628975224688846662132504230375208712012734689659957777013890530406490971094984808629013068950057381280292716420606830624023246502182348145731251307719426563415576175791575331080047503859178379868033182770894132085366597694412582797940430102751422497418691732182732982522834161040994444831449186889541680427141488870307759234531683512334172063799501472859535408683596447685368935645541538432533514756568031342474018301562011052849411249439443474299621772813705985998263807009418225269866391819303531944314674867448849296234115847544585052972926336636516095882384324599800402419353044449677552176212616275976085241591975633390332100845965694017983174830009225845345807159778459263920771957546437094453389487192870866834345638652664246901329953074052659660875001878042895897290947756195213651536401135287338271755349479376562791019909844184377414943340931558389734079747174942772155322742173374298417485515589512134811949407187495256039174556250049943773223622956165887631305650238755932210812949904258844995178674041124827788537852891794853772555819130833444704520548231730499464270483144636417792481324740185190305000207440092692447357096177906543799090246464753181010124953619973515567027487922117119059828753751323052230299928419387909471651512695579214245939828925813936832938799177515374900723684664753648105894592082415136365188165485145505558196460501400352317783421916074072056825157782500466805848644209111896674824416050691026051803182133539782735885143511711777891319151302968407609996876815268772567240751759199241039930430563121195378093045643416743345385586637864922764252740143344579698437504762347673135111740956203629333608358207411556651970502304060016150705280254760991697375147422691312297611082292426225112768846579269978252717426450668149236706346957883514180858237784481411079081000660811170749605418890891905814625164222232105608644996309763620673323287507041969743387347495190972974867167112758582245799665179198072578977102514282079671264935702376808260809758025364471466168275851650314931991650901943853174590480323685823254507493865702767919108231453822202775689300408954797516793695527786835388689681547641786466909652223459764063645694460169815327704736062331323113537360815144754346609104199828916893358378840330502254170288530649510517611456368879527581828175750575208707765965945045795254105768792580969363840854054726093003157952340025195595929631353574561289520448398224944859539901523654844974978248199357103072101067639206913237764383546464932877349485710138681271775598047745636646791919802729265748262568895183948270469845290164444998272735894860905394139146227583972348816488013086228247444581203904985436771956236201777392838046231077032824556549621136717883851957007033739778881809162564835622701544333439131417892680770011638707314509120108846399978359857390274116915632955035704490076338932038998437736766521947572905933088280831109849740220477214572435305541210888151635170764252432369771950766177365942326417025619465181520084741153296655403893011847540797253094314929553566932258940872980926644231467839170964152671564987583059814995456989408136798720512860742266345421201844577670997373978848562451608137922052586217352730424770078985624462536094561971153676597060090298191418121786988688089685736606822876365710272397043329316202653005542617370039073256452918088231580175713546318197882218517353782620189949611969591279942758062689453867964304811987743027717508121341851618572201316112636469960737300368421200816740945792332405649950858793637913461214914149101571243341246016063181297806946297585073115187475503655671039432948826013968320607734141498553608355047387402284443513419695049901392169266009321643750310652498303171048991669200189575827051359232128844437833255530525420033115333419630109224506651497471136129299290061614743011165061133713009891864118724835449732667461039446584888584786295613311375723310949313162619089818420850252487474228438236562155658952214951819584832915746039054116096674174931947861531276209845192582964208595505329559331297824812838351070728320824517362474942049623236280656814746688985808052920254085094836738881591281470255272168959395392410906537701240276552341838672619246289993776558633252775201630061710390790695252636646463702905211770085231308798584116191450980378702908510506133964937913290308089116310886704960264432813799491640656926972787026915977149501635733169253144872402869995689287978081795977191891369423430884783448695008260135535024926156446160478888768307927794723767699852605366786583791747790698159751985867756509855797623793078564184160294701288403969459754041225521449450134650072828495141348758886726171894763598723675852745602563891775052456343967727819173822352536452193984640432530508458720212538851047244647775906307577960019092794907185721415079192432067952985915988059889205427548872874545865698755841377411820116885940777108285241592470251133374618057684511096295730978449498703349020160925382439229274244297810263419184344474335122116119108500062529457977087001068307945693667244304883201475823751769271319696902656617802928787312182964522956449087060853017921828187765801195874553594342187959596850823184699357495915526440315438962027555163612798036124228822572002950265706828245906823223327676945540479225488058391018020983460985693245189228965809069802963086881567878726391403018899802154611098592455572997786061698559335700679482987867547767205394246992318808453058855800076134098366031031336530992276336265617703486604905017834320501685730285689258062494275649914225921215177983068450068761445846604315405491328811150538190042109508975953514544043498281362439506076854678057564584755193090115353570740089012908148349891682954386450379614950103671505779956543602693583571379564570552313832191085879403184114936171385351755985628907050833118997678876832853561422539289995899166157717956844734271541191089559672704334966546903850145631667251935931485526710000623425260299910985979471516137882747951121772117361274689666587647548125644080803146589737057968544971910036237565992933003853225657120429619134088937832823114702542498874468186060122000381554715694299187824291001041576607783774778547585357953659330337755408246896094973388343508370703396914247443001419073321081891660144066231245183815163217816254798263500389230762533845530209210586526535460646832468736832991703778224672384371611555409075200048832756808901179287520716545476216168413996507686568650086640410183792143508614458990801928445301696286356187907024202404750719179456691186200520646349977854216523261140006871742275897746009250084789343576040749760057373760369018642633305587377487632653857002262527931453861623119570150389520400243958786931826874021215294215797901146741258114123033744604605616882716214522366821128522649248191787364576056861715335591727532939138355936435090580431991815836756380645058673624495584306228660102718802119755202940956327921602700705206022078580597807159051638936236368723589412991166704660158304199148225431584508154340114671670123805094762385372944220241832246988628167520326790204036554814535276937094426254168617682796445544599063169485328214880559901398407536349206636565874779589279038980170759138710051932010405187351920489357357681310306291670097994462617695882037460395413238489547321603419190745074103675613688105204307507904924596607859065950710427039847282102219106929842551493058932148218844357835269045496207263796448508758356628111931515479564045232434304043495134490496522060918955634080207954435465393463271703615775086494288150678535411425902850335244391147359828919661631539030351845847159474015449200701419062364634513043183080085058112639394760012664676786018859122645639727443810745824616713649664831462346982185552640471306060574490054560027676793342208386423707134759752071985535426526439509844179243334169457065761003030877576742032867690142366349895012257635691394915997657811985179054850370459296469301606741736388524852134457071879180173720704535412385192310591758703038467953559430595789180129863305666865677942068412643453610712157984180808393667542198649476771603365173905130139600276765216848629126895848006443778081439852152038849471996092848706043916975354820390141701989802846087665941426765399390536726601232297070737837247578499318120598812858795111200112259263127971888869130248316936859126318028184447919231535787222660110219945123031030195171979061666090841517427470452513740535752537775252645835646794200015946203221212013768912376136963746978713442683057142228060376110837752901647753380991282683293692535876464248144520845709070443873121029903130707247177631306609411955831892835541150322797814102442904593085653014036919939396753463490034867666003057075528341871830540661972626966626175635164723303073525066239004466761519065576733936835827833121225387888031085695456352756428495079613644760437904029802165872333116773890303227120515027242078880911618473616223457691881183247335208542423220210105849552580278113573862563751395705890664196509181326503021570996571207267532321219898775106020166364285120835756844821263912968679372145379589018319219432952139209953224589396713927117339406234156800690652554976376760718344417028034296328946633246663537592644903457935057919410395505119410102307577955212157576697551781064004693263799518704024019663330453085569613527310216264612547460179579200297346874554917646267743876463694779319126972517057863121890050410583610550004703026310088538749513619432488282003989880668334441449420984607157000347823748921645617988073313222811707998443351084791477168936413984914551062768143745815843936322942049642826484435215800510834443920769171789898069962691793435742019383406994366537499909467511261265619055930146376671349025983771963856042126700706642314487752846139912420154945701968570508127126138763329948029307906252735420292456975092895693809706016018305959683072561867237941720828812243182590765764517535752659365527569078388244732849559823301269033799085559028106742374580268267247053998174867509685037939549549996633564782896449237290683277916312889351656390914810528710874412202734605464350658786190380142238741365148541376181292884015587951340473868649982779637659213218492586025807006864220322178806104689699190938346057148587001870411196565250612440332024740703986824020648883037171745789577829059576823017774398914969819342763827627991441417243623016508085724981237655772976787771860075292957332576904961425999795938340710072405936033714726988362927740991669586459734072043839483433903691951448812856294800619921737250191170594563769129422938769825720556149155113770720580776784707413449747101492394270461686000656765502935467074114082907571108073749478312129103071033970144347304323788512126685252839931127625205149602805012381506771329727030234548353977437376829857165982551581145060857017871209366428233737258734490013633413054677468980241900822228311626264589352433836946148366795094480543133244135166369646048061475913491658381322416695308382492137056593485877696625851804926695261914996632047049395216324537966467114785289953204383872228348129330013068981871771406185313404174272388955891532645312145869201370762146437159445177622985397986025018027292440740009450614394594064224994357090844459355298607121382018553911722260208899613790809305146181225770496390029393903820271673948130753246224316661614133391325869718830813483026610350214116927504789616535510589106248457448208541353142606619397809179736184552082592092863691365761483520997265622159827993955496982059715593433136394470188926320390407633819002338996352877434277188071703731764782261054294562380516129063466866494412116930812573095842724559153529750218965514294051898214623533027857464253459666405475116638077039454675347302429128386554452986781546623662107453951530437613265983849830380918322056973977005661958828621105668153370995310889681164354731370047220915812231267829808416179341830566879193503478083869581307758370093883025173610814337794625160862794191791435754076004124840630199759972497462196377250276772198656138360742565570678016468187305629655631612098415256766858836447216457739633290823899408865041159168080577149083397427468962982756408959021067110069593111128567373236690722107406772069748650033217493247464938659915504996745876646350845604760646594559159238206348407410067030394156149282659637820195365385266230314819517320722674314745212569017298182991978912592831260113570615280735081623403633380939128228115868056557539581935448959299210503277963346818579572238689595243456284107952264911351856405541541656480432780494381841099446744075545819246219472285265022491933624269709562406481416926377062497508096097953473143860369000060027055225817768525177181676004185344212304703082738754837351623740055463640894805535138891137827115413935056234407984367862695702905939636348653486917102711983127514273779249062700711040827874910646551043659012643223834011831301893615710407539533481864375273901835973662146775679833905336900871355835286803578688108711174436116177215467214804388609239998809710035548525372034242246369362022251932787203263580678438311196678710400835317093576294607689918375173551330972711620264197081334122246415736365959145132974012253824324317012065504275418133744893664843013404799205067741058872760948140045251571857392327144442771194049515952647852071645792800208443686673754842233496281851750943854786847489983685671098224609602030854266417462582552900191502088104346546191317196284512791014267657247559596507818799877721671797822141631701562514329189655618178491989254106163813798517098139978966511311569374849144034818459414165556823417979251392273753257255387860422496940376069063080861560348307024962087984373654480786064243087377846333524280635848284441812120623903407103158345675311047206901063258484435855981942318782004800244567234202308097374390360064821558605676192930984089238618646199243733763808215334515856081144705701964038218934155228633882654577094828330236780824700031684565191289638717346838716757790273906253678407011558405114569006402240302396945687511740092274722041874301810080413479357378810781410297682834812736548268192871528113728562004889055074852254678080111149074221817196333735282249930074606985262440347488719747605253887046332944940904249422853889093513984452880655692695940506283315099388497362833081340076745841891555400710841869011061109705590810147993537362012051140811597368743296930091885392845828350318940142085235939383582293861919839901069016028966961005991265974227815187430590498682351346941077699358167252944455508261233807635125726668983388024869847772291065139841128534664066797277922513190790742727557534759001105455479293766953195214024117307329504499405778648640968509892076276305798636160020778971910526102781271388640115441996066503863184851228717235104425578763043857763865702997417649828098853538569951701657952031017010385416455171282592347842144676148658532371271556595239272909020957632162212101316676829206340767600625896314465496955729410595100399334877568321431962467036891330723346799180712040707727753411896509871907828019183926795414267747329367617088279450209889821826768089266952242727193714275178707120451762010455215008272534309480531355287197899425379361572149810023879848217146964289180176959484158932849373106546779966008167907125549553787760844405738852981726475454813895145263330792715137924325776401744025151918683851878400413700589506098182456244494062511095320916874284830732743903666622441304037817742943389066813042030074870545890223693808474562603574586286607231282547312806917665469355417934766423938627751108922851864714049389597390743726495638023137301941553553601892137792339669890746062008906646402021101618166324383716749955297631002517394214625376231083084603231743768743355658193388510177967979221991795827934527062278010360186817165156015658424393989268206749153375676490027848039413604618980772411550913806838694331299294037262893891741516086797915788789127405552619891309236302803940142118721207718656437391182203336023069881503011375303126869696178818708889427371240342571421768721472508182237662362898313765509890162354681179672883346500015433632473761469622289396913384130675148792040778671622704079967368262566977682749046021896487200782244347294985740539493430960387562520019371504538605714781010383615065510906755278051167666490533880245067952123561229184068476595815444606866811947860698582719744357753940153381481529413349025836461809822574650842602712465527827983195182309949419015412345300429471025938775615712479492850592967582138627761771402652535532313985355156958943454980490340810656754713060366956034781350765939288697526766159581036370838977570711436996446343323649155020238053254341333402088424831138298796021277136708753060043695976107082168358654132543434846627205235121956477839087146909542275445037138998961752927617079026659351209482795140027000612234308109928691942978712365165547466487023541412562599581600408501739189804497838972165827090062937688668971796138566615620152464529884007165130298036025699978697575364642976322309166925478846847029690055572231559405240179393997593599601218294974417614768424340521170896482539377751105746397978749412187271525130198764020217925133624769643623853973955801788860972666624673349671827030801963841078061768740965644668376393443421112080247904390797122527915126512033692653319403710869240178037001532594844625108977416283581125131766879357200525750010651094754824446029014233214334574284291178881417027996988026944036823155092683356160598613893562941563944830488729875682498283337877734038170809469118418683145979375780769253768745969944849391342257972631227846086892338256677740011406583100824090637959878968450793474037333608018978472556382557088919450782452806725904145403903497156487885467035168939190813999798796097301113412711091288556161760230482424835062348670868715426046538898513350714589494898444761883460139147723881684626269215084300662113970489574421961880831943350764508494739944644339728535625947246337799447957046210613175084655695983136271148044113876956050316170146757076930516657677035245330581594604067552743375403097165956264574405037071628536771264812068963593958590006548720149885911872028101735305566123623308868448622966276434715979626661046209346175585798509486211833108610134651602062671355120308035493926754458592408827731804867024795414519006920389813725574591648745400034031688078579574611054236079423916935695135664338580595555401482165056961218574279872333355211218305604126606771200942492892709877533845514410230403495796445063323945457817465481524408742654855672268026649806636229531277451158536940571323441063484262890875503168867554300735045289545873135492537179752629532200346553463795283969010804271914213201788666637847310617366220839019384308201152623467037562870773232627103592203109959604112236448353006773371557864174806357112095397784600740303018241866688638815413924865126702882261632099871170952403682791338389980234544913385790531139992075082898739606805767756946419872763942412156729617331483217287805201167539487790780716729154399466754038268139957341532196898224575223279467057065276913930604570432256371994467066620259663113044108960559408802797474813281078892570658839610120768068715523102896020432068763366541370690654835016489075061135602319453935952025487926212546902046294351768382668764269915227108553421726675132211307463610887113132007860146493325423910310671962422711067747171335937730443903791736962765143537572842990282529867737838754039672320542394084510678679435479074044832267226359087126909464071151893399868086869577755044508195034443439847141680147943197449578548873863710024525647531576379961994481056096127085362185987462637121033961397722736612093954060437164256736708239517755386577197793164067617093176564169335332534513996459298305603178635038662483262039891188117702980054940053113956751192680812773977460599927284086641172219339249789207452463784817185097298936187213097555702426799494545737425995917614411456388289161200555417323659855396529759655800678199937416745309262261112417037878431496286792731278234398600955668733155170477653800836997650108961889389616251182879759233626396385906797186351792520389278503091435017106165100297430644371768254527888109020330467998971259074611663513992203866516152831597263684461392875617421875815912495769637271013607597110997009927975661850187690786494701270000898818104548479795412717503136437969471456698921292992686731143806532409006612914440219915952391991761747595216635779078801880974924801958283063861145698918238565591334090723469562108517452601101240915373224601133870437896044976426690386492107147313429329399930990147338324732750197974003967081288694360638794000114009535553309520427773497932350790953751711289725138722390633363639929717177023377580924870207338370753873678263653703817941547435376269674136027688126302848950384637895979614301670736072093553584565387232680608446385086272331296493184616975116864605253759883427834316770577605498847702894830730462144604409763632185529411198028627864975015458489303394338536827190170672400356166165932455712677559103179503963494699167697071199916336989273694453278451522125235246191353918324483893236922965770982378402397138210352620812684643672222137078314719270166010564971069947393526972540935624422237920383882372245483269399539142103134002562359233176089315691045753613937093988123717127566969450115231974423750272735573278465642218396745870029640326396964928190591224479292847316986059874995738576800270601959784795772433560431598917650053697262513682758770810975129514093265458151395429077963866530319352598552284332169266515169342433947704832067937738397296068458210176153685045664909296029603222696112296160972392270056515308492909590750473250883859551667714249711155247103753597324348267470395380112471882893615801971381046449795369454684449136871153229560632282784793063435970484310371920165256801478967089703323124699872394885249710358549156475263264543541206667533289682009677083772537019039383531926392248402206224235714082593378686333371320931347963552426494598126636040800538210998409727039965334625972826848051201205633137512507171904250656956699649482429326071134956459795258449211194803301719061736945628765918554111966125949279754965206624440602079535274599098249420153193396217485679637414822848546166688119592035130735286505497963781674316475893241249117016848198108521871294819871033092957663997082848321354352893738848516090790290603139081573111225497701827142623200799519233636006768169948784122024043521351714785756167070008379909865778366107307692176162136230137991581827259159764678261392929942120955545665935821758537374934657652444477424133738324212977961239548887302651345359934378139257144680519751801796541658657176249396815084375707946501258008446446441614787700482042847044091385525329731511765063413262723610056361146593179924705317331174734660899164498868539545221543708362305839793621319949194740748017198568112911808223887771884138143628661518920090392292907326641579657282535993414669686044938709154811511984728410582097254061093123125034714826797587549544140488059756938284988836652118729372007273054291695739971039159271779209666355316545992764476146700102257513118144395467692103004279863238198598492638625426891483898961060946256982252571715166139079811108575556955934776104000973592596689174861965268232977304072847452704625502673254476196979867665638773313306037717785804886661353702083341536774053766595297126722635052700004025734971100512259808908098687211413803681713307385222459435067011275025408917485233063448967986820423660080362236078421142826499801716137450231125819635294962560218857636486965139855721530119433961727706097618202433328831667060613262565400904739943162868286734550306571655471851882859029359541305769142611605791056988253429253372550553658163955222300101815647994319386189787999266553443095477518619452511443335306431299195856636178961604754804840882448143857174969681130008129799786107545801956054980160998946780612021545153511822618203621672287462922603854240347806508959643380418323534225208057036046966979079230082811859042192502539992128648235911802520564112281162279645600721195167769022482517779536079612977296684624452877714500268111235649953307153529456856295083342895559262871361681666060293617102917087616615660942321429821554968080839886289531350686920869072055251589409252873593712923305166875295732111296850753324762969801377189140519538815315165865885247218819365725091282043176010914468391703017463795736839093260027503321881119507615141574330229142171204409940747644958945824607911970434370905883574412902690140690818441027176338837766084120758166248406507381239085971413131772600801531027907070354140255069142162810973100320244288771412747397806762988422438707250646383346579791183548561347194158302981584538217596359855510887512122234272116824156485531272221711379957544802849092028139570608512434510968220565111306481706374716878416408554875340174372947002109022797457470772848078694313203186414118430883156597220922677546257329382694881309463627356092267874702544859058433322076017849200314589104662864272275362295487023588741665353704585214417532791388377948589750440406153105436922568435348471260817089439872158043909732859417717504505031657702967975028571500942905031239736545583910818541675698399246504850923788900857673953179605578627417315631873858607298759276413038598058683862242214709765961951837826031880734997875895135020887076036768529248006283524074150918364062095893797238048726709565176256625010325824949542925244525367528446831614170304468667120945879567326021737761972409208127873648001512137994713486882515252013157793385893045793827159701749306694697290289568186486498248273815338238603159036592042268829764498036770939759939578147238639105830485192012825709374787005026814886349175121458085445146911813752776013953596644527709406742559076992486324381656675092213440530713242422922932261002534834592939545760090905094370358259044151118468974886433460651348390626640062192875675873983021641695181943109687979565709603886164647285286115881271675339015026945316911017001074202211856951500175583342315920714503924302787912346932845843375327056488937807295962562418293178600104931555630228023350110147391308268152758043076941018193825737933635671684250815694563329240465422232604958516874629547588469176219411263348129690077683577752536851083508780289435941509743405222924476141036135266450583161296198349428626436047697649531414646727126172397292727525207227415234511846946349215492750034875146597611259487905667137252404663348458261091836707616276070189398273365675880106900223125484731021624779868335544309984405399635487983683710033744095635602860131789129348996341282838087272654593690209209540565586473403160923018606129361614133071804230502088200040959243419468885397255608525784129001448404873872802987581830578843949660680903429396970643066580434723920552709906323228269022329655944298854757305385727053937633839223364068060222953104791866359028180866756906594533930139736754679023161024087739182534491434115066345301941997861700980377964111805634579524529481670419290129661617647321741742288885272447695265739409655757610211966860099112846946692919126796358161860155725473495304996113655785540731145734804118962555553796394879592615573186541350384041849884696751227512179095348221193242740092795755853200760426922415834281596714686041733757475544280744287077570614084846690890031321635099870940459529959943384800806778012591482875437963489660332262005023696676040488712698848725510524404508691824966650328611826378477353169823095062208514080878629693827082285600320930233924135834847662516215281737507568733618097276385557267546131908015627744589150909800985790688547777241468254625904776490766583508315830416605708775480104370560669385900874943686711317704307933731579974527703596148457283215095325375439423213443530688869758116008166627662012394640465035575511551426886857444665595036802957842277322682584425530878106594349488164151965579468988797279911283119412500416274069973949526337692677935944939075971509457469788752625296833038879181795429941467850842152745957249529264217329882801179882971353209461764233274033629633434048898320952677258014415598917230721941548850543621612859672363546774248899895236428754774916691370716222802834928945003933818297699675428611200250649935001157097630526329771028515739272566892243269225830227939079920921064080927390338353014555230104660599584636865747069039565972873610660786895022541498558499769277000054088607202043592712456472856106052730059572411257083415141915295782444563901295717727573006214835512734938561921900428692531307770241519760663800901314736112182889618484803342206610151185672379503020780368448270110913474618381151075304989557065763145494313640962469936912783010586118701909494326562590034511337867726117489491278835781379438426384261067397366291292726305041988514595102321495975652623609276906357401919445793599276217927362354883691420036515349736087203884797407051775491939136630540913945986567923832961320397437635347576966852300424210144819245229984058401857315691019705321498851161448792545969411164607017700070077043641190938726173202559564270992805613340029303973411976927222272975546788873482748357295742263952490231250946964235374969732373120394987841397687547093498744958024759849194477863036330240579201553084457634580824395102882640674722484046040738240473809874533932763095335346753207186183495585039967995855867001749985380894216459108293197876371341053544715833378940851987194911647780554384922562849266826020732822010102618990496784019567018638161915754039848170184311460140088609902922982577159397121590078473996447842887639422791013323448391853597757357679204609717250317079407190089752977653648553006172956920915434132767197491122416929532673878125361165770099943548165337742340893101024316608391709578624328512274254921214105182549244781619320109736508248851029993052703177791307839045956805629808844103473981831064596053126680948369355032471259868114997290941678826349294300631746921612581295870222558316720930533932054423898330002185013148415128886974535879649079598852368366213311141801742000780388104729883144852259906211098983136454843325585011246211375118860615599566189465984645155862012146050377747344114980087697459470331238148067601759924836164081406338170729016404131441763387119564214829928818265518640237464216073998949542022811334600545111350535324582831638482587895841139321106989465150324734907849597989737210832317350719086149967537102613576300892422134666322372786931732741188721220418816354677425196923858524731006058060656137559927896956953037021541085002830189266139378743395157534802895876261649530998997559634029440841123170256859565427469451452358896123383898819973560504603313542215584648259028588340883844931107203726885026135512917431624086524531845765541376641508999072083649031978185997531640143206945844428635255869316044419608829328572071956559938638821375561744769137438046775851824307119737316201483861561205390899113971814930817893325573291804445773247955008669626798496797655726337185143632197273734891097597500768086186442097447025288633968451495315763892020170005103499242807601802883319005175458413316174079085563342622002426968497998850415946090900285849605121331900446958879868937898795523840148924048457586946673847984330131545498981003392788288877331989958250430042357091212283078197296277009483725346699765085937536524009577675809208824841300607875114974361583564733796076869667808274001687747104916777169620087333481257973720322819816262250943943636932802401355272764029807069114064525674170886803241770252256189858023818422973767761962943496042785750758997997671246098086012534928469885060886186837991355489140588780050817456328730415042386786703720545058455398742620079374827384463282937510839207014221719263379769750709034173140525372564469278113922734937279511311391138662091627643619065490750765441045101908929501256323509646902808305267336720612009036478351249738663068152711056811490400502550633936803493429841758607469743281077897305065233161349445087196748144860585118776741817707448507763231701038033552957946798438358707405366881368162145398106781619685294506507545549605429729886365704937010164634283563116149076363384138455668392677659887391848855261999585217060898475171538082118190579244824785572504288462883862663032632757319663837496360516558145172605418784975039234974792628023155893487454848984630545477296127967780507389506449356553191761878816805091606648300138082074323945758248404377409888046025037390683895468554867882848265634681281713735967799963242367414960689218977701162486843441540400713507733776829719240736499631824433364743161630194091563138954803784872079366447656765912406027081823838991100285510011886050184190740038165944162134552032747690946074269968328237313053036387495402205471337799878057721063269406828480779745325364061232712732664121853373914638349085063288838234915643171591311309634901475007068796230659572305360377741519172817659512314369039763910530956217771184988680767377152938573699093503039487353464271302261935582379252938562870955814190401406880180815073030512900053922632169506507001891727923125961674791055242967925062082819266214395184057240099186509104689533573797881637265598806950600460529493920465025051826829346375631958751799554847486936051401288817173879372539736275451004987753169344278106081446359003936643132347345378773542029811640241816883484943508967657061641549947298067620815183185824468951074464076991778693783289336545772214265394719475206168858685339007817622206608421019329692869785786011293447630796873220932910983975374926006997169384245829764994355155399064887708084103325989786707345570122821857563883245951858704425030833947461444993242308411163591044393414736217081520829099799928795498653792217344088303684690089584173653024053051767442874447758987933044723133269874370254908480598901467489742192640584546051374089631261259726518789817727912984606111037472563933266807209212990119788009346110458108206058405393125329008671629564837610310649503188170103368664635527151382789457491348385397731463581116443607267303049793878513555815596316610742600543058402223536991567325810095452910266531893841434512422847361820871737229756432611034824650500454848210721388984515103466160207660510214949819889766591074341652248282004073371438511958460151695983664343100328397283890578763039828203026534061515080040456348342441353978744038227897297338642395280996974565392072732803354972946862515868657617345938947132675407603930996892048619854821838326687685871008936998500722011738355427987346448571173634138364674820160111473070640869754496309103766836017959864747135793238001750089468574524144291403561241647881163665931446104889505385092413444622661437390535336707152367710310558936429988890448452513154825780319422218968966331138948598137936313794696755249574042922865279479647945136268431407819172614174262436696074944583200995657802460200135270110636104286678305637816232777529095924388887351737730857131755568353785405182428470398890053307330100347852574747660718638533256867545469240940467929460314664078770474853082263993041752609965973491965094963532592699583036703576350055561116436093255284343070353111332735252652834037223119783970149998337549452040018511733529614333032998101715401764618999566586986179094408113441696074590479235778595913271920652938859396134175211307564985313930741131697146903072089145226090537387257617573453860796288028132484671281076859103900589339443499398851320086533138853151479147342351197894042867158420633001243048875863085232313748297384330984089873305571363771888818571832168221686311794228592295618618153039207873570719670663643492681792234538950793216870525044507305727552689349008695413073306792205852943668599165092653352286131529065528640836744194482764675674071769174459366544356454375126463410337526896244181265174620040183101161975366608128400615317663972140414917444435133811781897054909994121941468519043822608396432899425081052641912655289625183573853078610151085586997206929161142719553619305205258885936206768826948299946678914922672892256111070112505605992618084175284698228357856510584553749627543389002576777395236968824806621506859741307094097287321039270790073374702456577889186418451039847083611032641161008728906895530993746520510170217530108868543567171269377552061360057261020851564656266243603134096440761887681778215245087941626991706331683971937663733348501573603478590379932782322575298969015187969409892112283231796904084936797646214563217417594098589926504762008411590031340022600473984652479724206014353968003611957557823221987024186900604437412885523751247170738588183196941224059967476491286207899666069379370913578582360956824185682492531587578163840654327465001741608121393875338785781641660328599763967882844499998073009417042716058004565799704580945482369199526641150745922530309293435378121958286728502079372060374746710915246532602708852112791643315341424822204652673590425787500955179750928180601945328134273129693015492613283443040070497097613498955371350028491740660185755349226055716621379693242384172499200353897878748451364760461662749541321396467708583374921792875978787398750858587401155849569873576219223912854142054320847560116578269332616863246101522805832613670851799939682625892131600729569109698449003172218656359335461745680267203088386010246134219300559484412105707331657109181087895182279785959120247342052038261027695842591930295700650906372912702564274646723465284137214315222561730763566234284737295189455127618500449713109800987541957221468125962152340883726060383883176255999201045754469267672204119875414781038717726815539095106901544816704487751670049005523803728023043646818704157991919208844312560978375314818978273929764878812124413244908904161747617287699744963306040658991772599304478663364409037743598528578701416085187739088742577801528156350894361965485082701005672125835839354467605634202314831707225506986248287099066777041860975542020804885233658311217540057059609706019503276703390372689586316474988758717634760304255230658112644092992004367342009454974672113537219272571724802020060496506553680597540677136913973131307843813571884037037829543436370468079192987958402202173206638598079661377885810953158750514702293516791379344187407249447142357616380217890769631842662178596158668508500446460305529733344822831185766661786557194969066829289560930354877271467948725978593836276286803583468044329017818379930821444102765191841939621658328945439077725149469976085805296061876312202785677244750014520830799024911927268246352061080851738726942762567344473769275431634790170112008747401317586665795628231751401664174727178477664156747450540759997818709561232146612667116314013872199980030542447827709356437332584928826694709228957789315837043802557380332924329305779598572782517182020718977972561442224177212107975675245738585938097170793107131319249534732434728019699923121486635398804406298676035902342136495207806510250863508528205776967690184080706952673541721881107954173850455376051013116613896015339801248385834609315399278227368127608704625670331199036175330876587665633481433608441156383476618005461684908046547092092675521664316639134648693689377508166006919844188544402944921344877461871623022232249634362280745723998166903971476926087132880066852629810262089866154749792513176303258987768569385259584452195177218177592755791890779394719411166271691136582402418946293132516749578510650245222229174329519560037167265574050132977958365790256505305315413037885803956912413708699663504904928970975695490468094539481398476920929962359653094109865583737894812283225390812962804242806680078900939143515040501727221819507681687484335298118423540044745625161210550162447239546583984737765581467730784136464315803792095435473843970796874347841382388825953708293546028505020221240602409605853340806810089367525847997747941512690874415306904455005963376189015250622866537171064584025054269990630943900763136734518469876839593057857781858476722338021385465928739437458949812916774283374934574022852997560225650092751109266295757307843591736173886638840635791097780116397133712718082004388406403872920819843408546771253572408933240869033722791086361162517812110329599820564874374148058744198471956003375979778814363433911099652842319047348551856622698042788675594527970768349408331291710699928301243782552051942150743467532690136501285965687450633326862110341472391382113558684980650883758157111091914877758263285206495531244321682034277419560404688309433951272335847429977596093962487534981749430009231767097007032515879414489902677692046363306042698393408576084185651510090208166532881768967464608421439107478416416340613596080323769154409169224434794635795888391043164618385272533374712923362797414531506530975980050052828381545286529548441839782067492143293818907831176463066478227233120466516462153969104214447528948484240366034362740131916058007865631447072119717045475202920617865417402657112196378572662399230417561736385237711569821241189445270606453222004867448584976955492596065159418493049608454001674575301068324373001378993679807797992175605480901079462583252576173875891515405899754361292716199373155557059189950124774413217279649043397596396699184987864136799273631724806290247574005574615767345005819187388861283951593749463281140191152410254953342273207077960408814946417981725309075358317421855071341566361210162682480857555673552984024475867003742821215729313135311993572551223574839591346064810015923777758511498151317880896485928883767283573707046322777449525542713222723016594703015380685356250575336986418848014829254046663763531901166382214278707424031637779638425264235011332315414472598085346110905819565761326079991670143006079808847114027946968482546859121038702858435285370814445507865960864259704853059330888273038698888774181698211457431175911998527837521234180891851477870550330060805490468029845967319207318324184285231487914037180370933979236697107945288506482127863129661280049780175394363549564428313158969879229289860975371094877414009865217412413908238645924542913112047441421765326476322033196731589227985631972866528461654293757796923134315626608282438895217539389829398912194629575139250213666676936982405147355126192243220010445575951342835770181786495749548646100066794490331955450972835735550490786820337643834383480395837908311704432427689961154419659729398062976120351389284382182383070255755321780751968408998305778862565771637491722769527478474867019336947580031141738264812541219220030983743648986582788983891228799410557311647713930782865227633096450343305741871202730873214425546339597067845017992018694566208878412031537045262231269502733982725323760671854258709707752527569245399582487407688242361025787553494852760334793265188662759838231595740189312334416087364291624878187483051669496005475151998281360098190749408600063747395796117829433016771233518461953443632728756447762445504891295896772985648206579429134809959862185389399677441537094472968865617837941937056358064057991391238381752226356597820757776558806353694890732712189332864764620885520056757752000993078969577250780407677114206487881796500364067690392228363441462434260853022636326010392001765663745674005608414439863020310898743488682364663427458297502487192305761849967794476742509602051475809801768315653706287964177004679395503946089240967509787650886886359449373428812424552226691759708774802070627278591765503798716923155359665392655084882117704601736061990064776881000999670264578956022005113914506803492983378257753656469898045060074431677775897682483265190899445271863025405120275963137948764485997082224056170065776954068778126577924569505381982626691887582272799238989437608568898583823715445592087870528276699799887806548099386070136056459199663018420316716857127741363262113973092167630854772019052943282352851285885232083512542562499080920441216647461726328811480931815944840350409513163570000885425109955655469805957447650559564287032332292971414713598611617644879453604888952105708171227467070557515952158925001673326056985777476071177429527939063876893644491363102279526919462755626907853571553354205842285772037992638879508691842842460737029060737948700343091682136881158951736813672067904261834456981977452823325540445662569012334176077711856461593415992260862717420963811606301226838578835256515676784585162207830878653306038327694503598158063753651828619993979623639231917886021337013617904047675461052645588358633437293416141376183294519713944060891442196698596775395643142763226147181271028638999560519498210926067876408694323475564972006919191193465199715448575726985453294723604014943033447226949635715658459221545544282172016891906200172915290540158051421589294782265805857958729669091874028134191024558689297524146069257454372600750468012191374005266996564980417516285246261693834227875411527913829218891704472668772220771296313056822161402866704670304902702950570268733279801275566642675469217039416505519139951754234691137248175235882780672537883407564761391310172881793155296903486103898200390405114478455044959537147112633412786449548355973976578669413411889083940315171631924155655852894608176278191558507079110693681655890015176719161489653166388721999326652167723704847165572554076594540189315173351550755056493832095173213796084029621641297675014263748518017961850499441624099504491669671792838349239797591119808005843308666672537962313507906468130665174210683878027929186912900145294081781263678426296942768282546420532720628882675892910599493377284121981136707094342432098133956594690975570363392199611359795886227358456704935809470858500622760496409106626585643200388234198368427417773214659747169623460215315906472197488865242817127239688918665370230754407206371999392236100801185719811683975407662088182249396515482312057955113021278234058244208552363747502540823930071211578650415696732616808773575897123965877595624547008468802006227594079324603227210816539475674272362505490478323758201009642774860070823177979649253690091337712364651486224148309998026266604809375125250237952498039979667433352158736939613918986418998185255173134347986240247994312731889336269056991659437025604480230928964965532760385267750712390627210596118889704136270605530048937493211588916534821544533492526279166702329859871609666336062996956774266957333899319742982132481412761084204731555254765885155867026493598150245257042098481263356637684567693337463289253857167070414606161396510102449055932693809183709169627969054216182611781580721540669369973363688592803730373295058477907433281120924261229375617545541090087887208817996456999461272973751590284378171640199387532281747832775314292813318436950523642318556776217706886393469098400022340968292193036220489025868450595289753120950229073988299905588800154066326915507590381419250838961587426399382243320413710267922027947695157673913893902092456712759380866940533860190433924182192926858035171994867203089554979071584391904427006059610513791145610267515259959491252988686075925240994383794934221790954263242050433651023666669567348884131592683053983429645322052449938746113079055072134993551763860986796063240888342329394169635166549713639523466203557199886591598202814043667897119027008761352252621741757401737360081738120166813266462348980801917196054923756622014833959724915903954948779107790105906519323245893754820588806316080856916835351919288950103966440908461793233268029264698404323866730060151632751738709373385259832147128536921762841568131788193972332311888742991232176078703380742684576628106369752382752898395714753745762736144122305789561756420578092062580581267111673009003183001299254834550171672819285064870507840979591541144596754154261799225567545423729139551740266547603206011599398549010630917710033735492934330246502439629407507432826532052774391299328781736236767318789895404587163858276911410637080010687551006992089524155982902302994883438375020044738097878254597606772542153014484698923694367536848863938183252957705398341122028676525443069377774027540330705804287297594456008260252665563031349440518203469861886542416361866146660751993103955975904978564298115998070798138538780826701285262995267150007529861349051317993786869389846046757105148970387321910498138607922027693336365527460198778721087077382511710144243131481541771035038660050214669505102615006178433230829198991172144825602420658809959761725936177286001630811486791873668988811514675811601623911979338079369241387121505677591989939735509551932129995783034136207713289741638513292728846234757401533096392669473931655098437394100806931794691347282826614027124444614057125670400923035965181572199339215338091517386105406341455338710834695637483880113671400915234169394010802551686316725330109536557669114998530910085395335961510243939022369239374711358697025976927934363484648299437448479148318535332998996562610895981911105383023173776795883766246332273408705411167581060635224900470717945658280835117247620063626170423969083322574556847460334942735943284247426496183060824317569505975351736007981711894146515358888392208754699182304211182124836221365287691942054027222795717403438170834988050352789261804217252179394882345050285300588512478104302372247104346877994933399396487739490765981986362930172081358848050799182411936155756036112398688110900573441909706887629646376450920585110187511948560160694673956638086258287019705196049172640651415261958817598074460080887247771746782691084500925696539673806057000909119081725475251821319716624153622155875981260670088293194976633908164608528472743361673683260245374139816591324180037461718783360212267944907703813986525058697845764278550076500146558166294785622821022997621708713693846481281859899743763013062253333511146206618680725171601726558726184291640945257260091038666931179408491836613490756366270124411492305295575662697755316885296468041093858304367588181533181415203499847287113261400760793176441926786126607246476705232691120898318792792690958195675275118651948497624685871433701575958066880303720507574424898459759549354002476235944179140977433612282389942207650878108607779004502316315831318150023142075532720946095690005722225850899387092485244734476060730954622704524715157635582663376827563374731585381901156551577541585710818146536865312487130118441376612519936246483075383165293350466013714424763824880461656778947828847883594519039307004766556599365083637760513800449246319962757213740771400726053076957581824294204983891542923032541453691210419974820331509965657385269675718036234186546140337088641126237369556742218300833515053171724814170918935331749191476635013573512376065873662948535108802812509403123083655639755188703283714599284192964734182030354334806963292464357968012854794852731328550671495211158725525255366221647410344643717399940201500057384011996396491023928491297176120863622107806664295113674296384081246527151836380776115795483932258230646930026514800206354976210716837847635981618721729746129640293612797428932704640491446597429259132314830668207601003858617369961386693185141729381795648714397060336316867842059164049405004616867652844091079083547839452555657599868479909779006569547091654984306368070348142941358850315118935979834484652308651618537352255764152380895280506409488676436723432675918634768052995880206141348928899142209422890992251464700816493395733840560367062282111920282572765114416572351191968755138783629078138117597389047147113798000204289769114143366856249386820223246893580822730841843459283221461904211867217605998336199878328852112105619363465651192889841144668987681961421182827285664957741666883514276467832480537441680099216980444356739908925290825403310071956174291912667239325137644747423209783433777349408524121269557347691092156019694113389142355256054395665808776982910244499154553250451468259923233578279580882958526739294854063968081941460575600451969779470122020008577913129822063270262807882737701902900441782884687593131577605622604058641628367321716127067100142377101481840785303160155077922209495543702542664130497873006706808869361333112530003171537006553087755131511228595195249922225844255188237003218814795154302872328373287125594545595163204912109893177025254945945746081511774173303991005087734939432355680450110506686338844014199497056633257790816671841691478248213035348958689837745462924185583365440807629795492301607067529581203868369988462145179271243165589126475923224756764733796163602498757512439113906778292317671397217700824178873664303897596052237051836620420231403221364076837447586223676640388794542637715861153819810665360516717533421677678726136963142867584887448812694302225578611731793267007492303228304909767950224522587824216690173224915724563072999810131700896277309385983403186752713386878082524053438397477307892743678110202132884515754307200792985614625786918455444390612271759914265412400120914450620948641427551864018974291824394690609990304679334176062854755325882976887412281342357993681151394264001791840211360516316196573690654484914769334186416421296611870301670734444072911242199798028058054816918487113259194803876212497307402616977670762131095541957885726703758786319853065717253585944791513114910325132807772837265436662294191891172342897985743756761459601404714992284836884428206252529123803038998505819198580638232112545761103511722135451349962626889102277118231567089924733663597617165800234934302805167475411442527828669397113832762018154983807315466007096931085750044092400079494682884502304451047697280723729747641907998601497029285492027761029922419127021520289429824980266915221580119530485921523617966500292224775826159729953661479537178410624182695401334909715909756104771420555936984119580923161179797557233792980456489326251205946415886740965321784594882725812629941699770093028134833858474902370286455424050445095716061737537123322615038327479205947336241679261236553705574040955105069863238732272961333229859080100371068132078162247688075479293565080745016855922856743928725483770854277355526164352442554414744107497243578688876572707955936579793328294587578493334003775567311257256359302305790925560578875224616022649319371956014086766456271015684248484047345133209758189452404950207924022294678650599658587960575873605621406161063618285892741779662453821286528701305511440931041997700482950141586310236498373734420299207459909680477187086046393692948067841643074245441423037797073741886042591923921944539337797408140830335382610833930837013896605747067575998477165515184646670963730940317412395325675288228444202046440142268904813425963615262308450398956891897294400650702058536759339736420618687941567475794905809755544440794557423564456721693509513971399653304089394225050530876298918121197457751828679389460527865790057801070079127179190691937278137855337178792214152437728135143074871335291471223789218774688129979597465339832440423042965106918594011337302003764362319971588728139913634841851399570132906936547093423179887643965673549355370372430050844283823387954166948235367990850563475907923169778228468620779010056037379316389612071219430669875151112617931747013603974245389865671626268639605562629477065786346537637262176485809841263397572846509610872746807364634069166986472193374924463464856399655775397100895227281402616401334719376902931958854388859486406278954128518399097740902841844486545504087589935292569290057506203055079738933992805734860358255843657394466831948907155047219291107722288228979789974955322675981900105189485617035491998912468590783154655241811027444919470962560671956109004918391922019025363028962493232936972206348471322925845674909678443733711241999886743654432965785813079755029400789486540695643385222628192615320153862892521618777043246585835900943254584296922524571277771728143053133386056270952345474375813155506865758643143634354996727709587189450427301704129241545781880935995671663156694934545463872440501563622178196631224464489519607124809673766320034039954940458183363310271075072685082744775803961549759500448536359873494669244914240987042365711066353534937341724118164179348169413155689224533739292993723951529647429390157793644984315039966062948486636807765666892820383331424781613302514284119582173306922693517604741525626282227249292100467320243842996204659997428571126712304637462277303188087294577633560159951656391561781754553271558268607212221926119643886997898203766809293061655317226002934627018300757078083469469512530633864669326875201688644839126486935735238956173958317763844856348183090308854432118166288923125555640699573619408514851994427809863399796876141502324131812792577410383749384907210690876510902543778535263003396192306110055094992877821631205552307420217096604958347202179187244250139479747408985708640942322353248312218419141612626285728348303901027788347851966204040821166182475630527569208928759290016840250767574197268312507657096750855273788010651031729891696169839755012395483440200432635197164110161923169921434822542405912912427897782506645037017366860243915869684288864181898904349675346901310761860208503437536886074925112991456342451284822978222136420912948446115495167576326804276781666007266716299659221639677098403256852301082582091606238221533093670268661712960408725121520431092517176845812673402531249849838460528083665363811314115418933359822214024922204301267193722485866470495650493632948939854861264946413348777033513598411540610595977116028675754728122968353562121864275910759499389387984072273227712160071372540093018320849036660547697084592581228542727829434378137630012827996846945938113920917356510679613098432754363209026639002580405332485773643482198540245064404596734518171267251318327060892219054487166210195388125347965860046617741738168218385132481669766067285032955931847635680541795713093926593783508693395863073227704750481990382711434764907868097159381105060858836594168793329599859857384854734074660436454415568342680752781615034905466475135853625293472728820111127993485257123462345999336056918162811474872965692760825087120949185630760978356372621885164955264790618832800444050790683882151108668672168011275017102692895923004834728119002535095083395450762397538772286809891581000194790229618383636144116097192279360627758365865881328485728497322348520098531956988185466444213059168311092333257067388517213095481353001931190082259202692259101969002477153959039414637770389207956107995195150182870335036427286392132222647307123780971682917841795929326158306609423346653203104716410039920262909701134580974234899086682937137285607733470454456379128121830277652589664055872037796203205413975149221369131136751131353904907847436960429494653362446119523234228127320544832105562297778505109830280246930783728326855930613748571153284876164352190595034585291959816266720581453814320650455619221062486971499716683115020300743262933842783944423535264301114567461397494226927836105220705499049734881173911658022717379514903993519457005679982828649253985784512965770382329955645390125006736011002941816701501211794958719745445681260410985431519354608354016990321396453590990814323183807564176257819096720516720435209530415252948281689363460252619254306227771429985570284415335708308787472814717616829391441538881112435520375176804910179807332419406174374013026574556036145559416231410371270621498487932064672599697664967451868798102704989172819223852613480500012282036965055414909418448437638391342595459340151296585165871154374515686313454075543234644351652198197621276575119705728883356337478176206776804268337713342424422173976761101503809407822044589551517569982994860511461841563701027861279640582198227905655858091722819840101626961350433720520554095566352448700738937771636817015749285733730123728084913996272540580801217824137943887097771460418061900162143611060766812897147652842378065416854764550455027467092262693225054795189809499978681114271018630067813796765705911418215300136333108773265401853875431146775491443007604733070283474145714865387679003836963514083525590663215818298234656969248429290286616405852577486391499833061068687825080424447941195742769960754426444013328916547413656444426705095646824886438828667808592012094884600081951867958667212903339557211476621499197774646313734565271743303081874607578921273598610819018540896995200572755567817588622891621403425957541652487854394842702535788702170875721098446011681243564644977732692621822403504672652457048430354816204209697591184589113072213413548363864088438954409878836457073158992636325816800993896929621826432615736233595598733179785471833793168873332128238063728109937034831161783041890198670060198391371336464872577389198200103807050535225454264133330251262066014874587989346101173672699770415682490536751411945052914621297343711300613254976287458189752584172223805494663915312819597577259656714099717086393401929982786975888858534757062637949603736057300936936326369708107328175552158280948644057312624321036060814624244788302914786991882255907607788468143782289565736943991383496311741049898518714076948376099332321925378683926894236732517922146621706202597337496788671146671936102428577442523463935255243297404335998415072800441087040359472776640006888348050164998854882495565153126716798641464400983027673043089079025379566544251534147212151179657135482602570736580033621525950040248018862195742869027878273346448806754451919374979305094422869130311938510823813250465727271490762183567262272958381926957112284109551704197125092446268887971097094597727216523821170486066642413504325236023238783391762700148503678625241114268772502347541443745312766712643080496774546103671335679904495943526787047811162940920307599956018221814360003927664655939709636291606563887385023239687017600145076702798944077335116099009952971814807496144544656231439524205548922669510041757992177882068729458240436888693117583384265066908802948976927830346111252660571487965656098606068106684338255430376084591939356717610298844940280749076757192852156044535462579760622278807964337094091184557812272237041252684780388329806775973807329031665344227312956454949628040949026849552761134534493277129186640969175223274987891626410078170471438995489855777631297263292311745137401466458904749027759782426421433048721091713342516001120834976943782106362542317819185168985043346779111047847090427601375086779976427350690575411138342323091438233430264119411476351543854976807260550216444849675758686579687423433746698000995791865456733783175816675901411517226207588476730917659783638478138248997107434389716649219213820823563117875597502856420776060452848920025588010347717193312314566413238031620408947234274189388644253232787251959210795551903639838872837366075840640118167619930532961405475976267934396997348217784653219215382140244752369806193893597053271578853658849867047485955636701335852164811718773612447264135788118815942486106343091132148455824703588427894391567435543973713674154482860320262257317675917647580706958608274236408892305707026274321595170823315306974623716934491133719136641133370026459223480093282578700767707053397848436753951102163144950264748872123590522874941244483061316570574917509972973637161890321636181735077617469606878170035139024497680766418169482741029403320180774849105497391956034607817263923327923933410293033284404941295892443400133908171231962379044003551664111134317948502366770917404022085513935306723867074874471230754985253678025397789134419161077460601278450557981465443246890204285383762001848823175199256931326399997192977724217327603559943544616525316475852191550667789788993015867125662784865714023420251078106468276067565789976378728608430826974059564839902548668934688658728680811245428720624282599385195498939468709177372357603366806167887886472235049907790035848589752703426084525966164379375397720494146350650386406343544952377873066916224720465608160354289231057079901835256399133826249406237336802601137241313937590016063307420413166749848205062855696188497362968703965043021911089092259084014666672012343879108683906018277082481760885674527345135955717767307991280191555413429027573287597307612563258869250397345312491367486848201143338742449324254613180192491737457326626514375440856306789431445700601275560471276361421490933651330560723081993058697476561225397127740460126379486361432091441297395841117156200814193471456840897976808379298382256664662510429015786068620875715866828418659713763651229887049059037436858156266598629795245834306424687929456611813198448570076989549917099170898014427624383576317829230782286474083674185986659784655518451112028523681052481995244573772525945334031585828459336200789134437156000577246785627743788117080550433389484458046867896201675831084704714579649749370707688714182607875614730699061170793168387044947053979748639468194661875701375044035933702774839774481460705631274541055439281620871565283503425850004117170806383964187441588085206764590379535387113271681983697889880067978859322467710717161258290766712130299149664549164886762060634881170472923948855375611042264690536451023892234920713831083242897064103919685799045602966864271460827884012459988509212011779283744695697194096084218219995353606365955722573881126698944976366505258255300429202524984138607626959601028258534747054046078634410351411827503777292761865101944732277603902882827577198468462686127206580117234388388227481960445454368120084618457957904606801855604008624587627733884879748628445628408245886447568853985756113562633417551454771773376214984043984651572671033289387917798411774595962937491806387229858893317662328695861776267069445514847445072500600411031197967244020358274219958855081290848923194457959933667644485266328165557211006134114151253938529237933533803513382217319407370528883718561473506645256781386726028543570637698742696363620730931839082528698288382776854414038267130360290133261860844849833219140029280165495290727093254500384885708241518950796674668753210974379085079579457889177371858644055337801715461475829119053029072048437606314079880493008621217275925426048190133760882867265881476877206748971237445123852158449593300158262528001992443865926991971312667148187061239363126978330784736638439947054473927241536014235776148990975191954256505619891438176487945773126293405599074940721039749919657197761475984561878226870172882374452388651443736237762801869116259771509669716422756902085762999276009472270843000571860031612905195328140920976331738905263398625067660131775273977726457490014635139935771789102370016227900514538284193136852084129433442795935833789269101793785207277378448031014091934546446387460725147885817262266589357043213222282759808226051881874258729362986600803309808291813177802613983592667115952302176841868768629054477178057892428735503177978360824938875404510724057472511309230200090385639220048851695671558282215339465162674842436565771696276839522197003875745318080686480135467725674943949553319026132194159943124556058955367095199177458329881411443623581941406314908951783525723776124075102187930127108458306642464136376858467969451489495965701111631307042582983887720009064481232178135129336113368680068972844761132352039200678216404819027020222358263762006465337020870848950461606071867794603785236835812736177180171558388399006639098317091839142481777660990001266992050673689521339580116604710437734928842739428914802311393723102242453655416130681933476039587619427719851127937767830308476964007883205746684388617404922745412475207316746646345317798961020057332760879815427225653066369971838408722674868022941506844391407802928016140865135590774786504087048106393825194396734344189762162246614602867317861756906901109408587347104006366409654192173590063777081198080387043635587142261867570375464962501946724597593950376718808584379020898925476712732142640229455204603776906592797419467848607618600140256585209501912711874275046897495680921016790013604441574078376713815538026129478756196962089070442971161643240676183543712894020912476934445347292131490478571986415784795531958679007954678032828184301560396220133686935915012483936905411505195048228001375383403328411587902237156352277928850448067496187682705553967495458436700639057445614422590489375372046334991130515085652354454067950077292805399033249608864349221973589926019571639520871446823783042778658180537908955391039425786958046366929499990911663441906671909821098742491665541285873541431966291109696769988685954262940386379816768025449429111776742740284434246452986297767825856381816090065728397512400560943997843023301555117590548421675024333884834489983921184190603589159571249586783146930141868096155052436207003366593578071064532555530553338111225765085208234901343704958917115957436264157236904567342574489236824056973736449380548895548775447104656283385537940468317801288552112094580664423472510016625740379848526489388175173964220623941443320266807881207013754685562878728615194177456938497994983565160177333177853114551572860243023168659354098304003851516044822115580487372852481454347975771389644116232254842715072206831942759889824172109124115388641837387860003406556728505997274727376899017055898154566777315008114129776260787504272214108442453930022178125300482093194860244356020219637409446024360136290612150894103904100676870602413094416895176977339145827780142379886163287864039429630297218161981380510859879592382128480498793297021006764353110115157076162587430799768108786263873287259081981159634902908566291084805370912312511743279822701455524894078574197862218141213251599412249870417989936602215517508130932316944770693572553630203195382908420973590378451695199474376534947339881871794253648147556401440590636735509383250514577395010052253633836909383925509368904854471900969762771498315533763980093019689124587719978938970108852935251049729128090988734665770126292277458864941658404820194349074952808964546792202961996083365913965904708592150548065186994436937761477039665340502844312153876364400934088533199564378777947731690294387529417250779264590140350059710922167995632352705694388241946494264928641726465337830552500665102959684712158604654494827537442454001064937736715010254858161543039608550373488808297090785961969335902403021596655116072499659002230438530879000871085214137123131411961880935249181503962008324653348802649792267782640297600230954089066715527431592279038949436756849870795835220670660887508118097984918895858668952246526448752234305230656943411310472905366361395828447355429256994471342036683122743133207245991971904974374559620289585239241357862082360680285514551753600990301293058056771355677930231260217141125054801062792624872504315841962344361759513245434107236964813737112717637611431455700656879917491418962016521261586183904053821358908140000880649832795978530011260738952559992255568236225961662415392520440528501159767689894462060460465147111609598208307458642509196987601257305055715884803894995057666283863770734270117124100676036498619270881897567543213346452987938959476513772030802227636677914009815589327761580172120367733276285967406665216557299808087011310858318579635124653296149565184579222950592940185143441872632767133974951343010000954142172329894882614739624367374642236416806168053067937897155408833790109273720287083069876331526910908799975759558947525776181016603896036665917266607519997810574537525521959019460527827794233792857384121770621773196783966303997146770546064036946337507615216313301290007480639550681562900599051359117171252803017588759373078072501637173906767823950178051035588086114455646777012294060030153947326631516878129627481135483251737934905229241543426671377867464842726667081616999458628772539887892296014878678161629202490104760334761123218681621286523233918724649677797487127139442112383405581728900209176057185017678701255178801016909246669389884383672828415986494027944917801037729300219071687145380002179548084365234625902467467846168578819525800609690759449196147082416230824542134072068083987855456514864252755369290685600883798161096294065454003236013803587430040128325545241899746000786610320543159887626625401270078899228546176916594753414017146768946322807620607194906088640899887479823145299660803282315993344375593840926258005291418161744925530513099326355480871994578928602918619449545146661168610661611211525779098300493659391147890819526236744774259758759889758857852816456464335603080052847140622175664214491516759898431867297442478401549236500458856470649202092485711687277964867088967683802378530803409379161693215241039340285854907960217349922134367649047978538094865203803043568156294819776314850101862566070918807632841013114067897430350485737967227947373009201421281601391722921674992681098490762479654659314408492310813952116242309303269676167846583620492129511189472388584686148407080002400861357388852306229750759035352456511882837318738502561868210290842742119148288139624704797460927646444845723622986403271332591269119716410056295295772136961352646134208300803449288440590787762431570956792836124685701593817461363039308800138001837894994874128432467213078313036475991673865809230830308351347921072209782912236483161143696083140473617122115032317006013079468658479013056031695138498799234559221413768156498327716470328685158677351270961962289974000828720342992874321362268977434020098284974930251377039376220236481030300259080429680445861092002508652989546518477732153940653304509797304410626961648832037060914311499319302284775103170588591331032376897221664623047640810240094104155493340612973631921286247401000366099153796518681330673984348107820091101860730158336697062081117386388615445496301559081898828982697710366514448903703739145280942593235476700733840446925495533192193421545534819070233964642071582631953879964571457674178782901619105485310413911768828171647803121493515376362094901196775648689727701961072018266279440916502070204710431281007984256083669135822986763208220857747990108235537482688981699076488699084212988025242624150932433987351142123720960652478943620307284273184315875644396378636436769586985976650112004167451819545551797617290859040853553520898543717437708942183492643893930196771845286794533041795187730743305877069716414281753137636719486994476480193823311928932771956742326951316547113952570784191121975236665052251016308418044150438932164345790825688322841730008589941053479186745989685655232220039100347241343896604871739341788578748714989304563854158305360357470914555080996879280399405064384541867190568747633173250798512158803478732026237305913296734065983109701786289754714063176530581064259371442599140400185614774190469241427300189464210279551967337417963340742203333471735530384915522078241266560438461314316889781714216037084867024016447030199827081615771991199257194180520295078364120049357736320706142817074386065628941829220864279034114374293123845004493139100156351755321939778466932981016481347843740544727363281723389826730909336983607206775242042915285691251717880192264678843728148942055243010531263964942136832967147639048727057970361551463330992081268878199868677323699786247915975815953040345309478890023729028547369079428716922122748248054301624352085296530789120166982699048298324964759131931199689924163168514165116449595746585746774421183995897738813655241215570459211999394165917182266737042947047581787323118125475868444173963119488465076481672034788584143656990967885708275907366920318456976612860405431445024079793312272462200189823280430875669758887294324502351254918744441701947870734095089043728110675200388818837659060000629451836556689435463301416667756606325029015552554823930810852523119978820251910904453096309196640081804601539802877757286499703565738032352625550870342749499749851920329234696105377832020966553194749337643471745924946633888371037185265146157100090484418156531770392786057352435310322968332068308452912741232411287797319571123439547648828708105193039345391764945308277918857641042568874906235746758022120511125965273267629515343095782005089123707808815588007466850658080622869372135108883384682380796785209913337077633367918152428922557215397473429398167945512401551718978095205996857410153535094793344754897598394006990660598310443542331378106787852825511772530612363828784421480738951284312539529573765525066568815676255624184384730848416865397088416188889714577651918987570360388275675296736484925476100237331828177526223061292173919206785625863122221289291451506080837009872420065999814974650952043797217621647378403836931330656020783783155377486693912298335741073518349684972946240284703768784254122809434151010297868030337385403473789194278087690283281920600930618011555438860507972149912900530410207823161695346384839612743807210113768861216007421918936463388982896243923098891893094191126125070081493143033395720556243412407222532666672454620478278316885714500624308426161426301892846039162183456510215086675531206945348591816093990079321607583361671433612288142256577765462623274859821227412340265385596423253512697991081499893760198299420159476508302541108656518767666106636696318295842979810220622311108133221770707458114575394118110226668539400052342907778440898930504995720226925204739335696729019004528124473429324538723902115862469929553224539810931813492554574687477770565473845887168074990146594557508743992336906192609579668043166928870474793132753424903295190704890050942249831023739469270693082386076988457665429496009537894135199875667100122826563926490792407993255959166287397229279938356190893188167687487719705819369803386733740802077662046359458593562666768373163064992900919557533554013949783204467033852130895317309669698801177693985973140173542056817494375014419415419628665067869088652495199664355277082706046815860637050200545361519087852918871911741028031855384745800262902458486142397024102407949921873144314328366945963170886644180417934941821980057362912238544981445163932525943519422625686031402617283270409872533586547950416669809013437887724812003711348011201780533301254181155587126010541360498391075936067336331551981890555678055784054738462298260665423613676956343979999980843666097450381641645316904868408729635888560113623774104636971430063059909851775910475608848679884709578969386275123571145741009308158995340498114816399907102293935254109317820779490217349086773669105090030148173632467344878715461196776009445189848123498560358445194981314223194708287884305545956502378263923884345067017687033048200350337633871571968819357346328491366985531518068911098413125121640886787160396891049554022448957005478653200083641057447342950937864595257390117768609819925919220292058757448937399396318162984186562162958958405697856206091066969200358096668587428471906696426226933837236543244859305684898614724026502957424883481507895296741336692506422859108558246826020895550482897053069333270533229379868467110679388326404032524204519225314665616790159349067828562718048875934641809370377944151561858208547875071998425558312654104924201544215853364320689321440580809688182559198436558175187709367625686376127991979153318293388047706902127782459160420862628617680035139962199768829838304089666028443903627551973230601077697555124075795149048286832383166966660746789261460989775860909228010201263301030972344164255382325781698984413087908703696896997352210696986638090104257474775265300210446079650022366703074302339896537996711712476249795431743705848069963140695069326946361249841749998426531100888641873578489742544279454544870955131185463960526347333463470737118286246793407620900787777337337090899673150034227847255301393595412966091452282284792565225171003953400252917887907616359668016008788083725819468730150681696422288510536672816054187292002949951219663350582995841423871240335561350806930805225692348480310809347160020160047817014729931395005168875349927923625417333349976912378311551539937127461357470328309486939115444283931672370442663814574982237135397050758304241316575123848170623021589002402564668945471224259703496317242394333537898607185588871084889147468916017691650094842311440719046478004687528592423569035412991974562707783974498714960806963348316382132473797387933252725030855193487399158269020854353079218699044081812808154801652380344011282921927958481443834189828277602509249436471904230229560645270160458859667510048320505976061410315023556056650928789565829728011083553446120730262070379568999712714340916913254205018275868128189106565285604964507020180215482651711026946912840384536652028793138372645598003528921559319705442093509300343747070344073904583070785674801617798199452170542521648572079179891224904357196954321355949830836848179434012444356380832085718369090163631296907034549224918200231285745987078664578635336855792552874134464309328190023873644459217121466247323814615582851697099864736824719955907637453610949669556137162631956998655749605089011884055078025584299095744395503419112452983276405672575414886183203804517761267871306089795120985390866491209460086437698109461573846257923901441240530946520284082932311322975724535904931867463178307140074482323455062041556274144984516072437188681403390514670440014724507187522443417700866968049937923946638562642915458751635483454975496464724333221768459695345238405917895007016114210915975037202960608958486395601995495096039465244638661559251317498326798656872397309901079847674408163992025780771370207511543662145803898685488668936301121491044906889864315313232433883254767766382268828486501562567732697938896399286220962304439812950739611203456084965654967950164988129804016758407793640767444933505454577972582573053689705442749147778042498674941395870588811409941806593037694922857378042710698424851809336287724724077189924016313643723776387863119916924591272522357331049621706998955471164238247540310272615023687942622010962626991975355052462003380575375536483927291229063331139757760180951029795224133123820475156545360307797422792804128604899990269042693694856992428687899403650659719693315457837215639250009766679199739176141294436652208043242295497503650246295437575994742768986847696068851808620459918430416093661600580017321389498691908521440867620838593408463969035314610834197302144224620978939583807450529448600261876774172780414270259687396622320015623356720489447265480022112375463885414034442485338458356975073172307910193630719503673740666519903950848980798706451036229565653560602701776646262108288267557013001211160634222324457174545541519207059002715576047178331208752050252001149824968955373758551124554740998883301204496001142737843253296742475557165868061979926803863686263361118377591863243071039744692593007345467742209812448764774284498610380401239627197555288616543811233428096367642925554065302361515856960933429802717762093927934734603242129906088113473588581311018194266150296830723800140668993817960743430084957199947565951014931020080393838935779631398108974407866697437668698049082629499230124383625480056720901579471286142757808114193594505345914438226197674330091997098866235500279471836461233652673318256462899377762633024215749771761329967197221904499599370061373603166163537643634864848873330159507729988687581657049216837450627153924862250819075049575359715419221999116644640049183490027666201883155850845057666108897201145822729465226253533078551444782617693849649077944133023200615060600642490488738125500638613031411261374620027940857564749033782062262144371345971395442305845901692692404967983427022266847222242746727903899543721098001416090827870163408442527750250767886286364173259000198024768775184326539313084351941335486916987906247298376095977361116776383663997023917057375697972892801362471081546364662175664443243743971889670946286276170736190082701794591928965803881277915719798848085873969848545662631297471097315241917153965140075028531332361934759072206807403193997449231370830781017339507074503941818344474280661706047474881871527664500022228283325397623817713403896522271918176627063163138284875314134867003182439068821369350617153511250308132082683139368360837380914395334395134827583474414583032378095218674320168391213031121400784564720233859381971305194698410056451885031653378091786151275368602955519085790466994648336032350124763319352244798722545604663950297872662487711759840516157469860487093144837056173244591134122239370902415914024261386696798950865109515732564092728601749588554280497725404080549497660745401340382045271344947482718891707474279598978064895111028505778602845063889339791744001964975291032527078149686274940714682933136696593609639457770889431235152955974487966666976872662413656931211156129101146142823267124433976757120451733515355818514828599284657091623819525885251260135891367414176046822062058906926895908323422523864665714335580860305774995703149495504808358898461801286360062772505480944958760251342691951680618693113021583116744204828374488067050391328971015127304461891615770506435214774022947568593308634089620991634957278075364726293703939522711254351439048183140248395917363269623169313229667902496088764580569436438349336317586824928074617694799079302672906489258850793215948903689181664185300588558888576801032862191579936960343478977823406024058478559313186899616714999014255829896405631285990626755323599322612215962924841620229533071353895577271481683009357471793112430382585943715884583311777461410850309858451994449695501105413427085958052108724903092694705882741521236123563697947486535225612112259900974432377425686629213704609494409308253464093520491694326343780951199591786072484701195973890517279024772849356119704709340809317028843774849697032866198710082963176505225213947516986017413711962814183656902280613133229989837575569592930959588376377989135714436340897730588286378863656534430004458455866158788909285604712055437601329287779946815708259983132435371423643607401311998259074874277367583685041992172993758288025479915878399815254815645601650363830381637563347229579373651014622306881857854656737626557445857135661859242605290482885653181916827932780086589809059715393381758364759325771420970004345069837026572154113629066190119416680148943634134330209267157348350845744780928560005076116015127349594235473599475991490612432351709470266035415109464989162786260093884519458062963617488110998064865633655776895374366827368393944129423186931301916832670692383682650036904071082804738554272700258328115402904213708572016583460111268858389464116262893720876397628258441445181198372981874899272830936214425164085213742205302677662743450677344593055462176030837943434239440786616927134175204502261837370150242812761566142880745593061582335288468035562165103308728806364303818768338505556110299566843567820167664397426491944041576082746021700686947454389240413095430590755142806395291500130913783175382900749413374538983684020994611435880168896111561963073298796757883269221035417073136092524418688869681470168339162423701883247106561488834981895918747650350247571890754165217511558236042336532884777975154395392096106880284963065043942341315586129828824233860447380229401267400682100951826018388104407955221493869060453679691704030586241096774731382605127821544116787247670092444678798132172890493948923958409441879078977429726700890559559719722774273161022371790444960518325633891520047029284932403020658807567354848647918954869454000316690881920904648708640155873523694381709430964726485303303849736540638915400708973284607763877783262961844454632824104977704013874907437808648383984386962468219969274220288705184319203474495735268372740280273651149780143434798194793364099799604594085637502235084380814560578765817500104217342258882513830638044392347258348972787946915222871656663323324181734120570626188329275911464011209406637347371801752302176637208634861608665948633576133610829565817102935559179162958942863201463481033671268779192348662147214997078115602595595205538807078421521860834806470145224030526004769100893138475161754246615019141185077899120968976566071921301297094200939807884390216374660901652355618392805026687790313121480209755891495458010538170164013226590392544346240794912541343620172412196599643497431331675454793926887872072054357673438640525496961884349149135923665527989541888867293011960946362294614935105091378096246656021414895894587455295459947290723849076204619358495245317450315476350086354242238910308737778981399594538345014861341549308098574306887171569138521761178087765504058561901641334925310926694655565846367738957236629870928412717583572163769364085959651063679089275072598083834954385717645585904940116494769135811038905714460333971675697076749529804410019874511172427481972308891669134690445972675296507538344714074700040664133129636181926014791302981386569323705296472848210754914336014934985489422381048024726978015342646491467499083405719263265201095025475323753692814119752652703994157997133462050385853292503369055053648213001799888940551187247104688328515738131232078392905054520947473462470171831718015368018489544633237194063970069705972710567341908211441464776990799662055654224091411871356410780755622833415421225251666246783655393197476919433557339024290242472204454783578720100081621611735228750079222347674393503703359926308619101512736675745210017405385818559929085163411237445145618844837520170307073136430888654876916170366138948756336339219608611681585591135427148957981646046671824626158063011487827241612475333250785160862051552139437680156439521163702388381003572565166880852520667556989534740522530929396688144099600846169003087506855904194981698879171492380544694612171995600998813764745120506568326416099355595251538335127564979399671610496534526329848018007766980659674283383318909868689825115093291144056221886991323480227786007757001629209271138072585457698083502565350717251385124706570821634289594966023010722254976012052742847185198901477253176591179286672420742096358011852974759937963244894033543065222503763832978360488265552576767295611282875446733609181846239036193736021274819202353925373530575094565021653565981109791079881573385321812721452062546528474595254388102093388267597396359087955569995269079463396462619508958883229956710937266438854783457687442479633308009461616499299118530445243326986579387717973086944627233443920898312895116434888173941851560366519302130948592228121525568658013676817734230616148673409507109031303772945642912705414042789718881396152701902077360057433704823379697706502611712238884133068014910867958568830258751151550505292557608199130846006102873089948482037216950469863549511120044109532655935328660663624223579603407415339963480880594325765237325778313673140842069643883308833745472950006814967296201520589627586189772474535256584348052824530553241937993393319047379243440690211342628013088093971907026085687971737331074867084399122088210539007834059977013056310023615505260588197464445766973463078716846267499444800390968962800703930211951485366950329833268261250742621637992038136028535105842339798165868437175295670220114198822130508424469922657044852819889353420251489228234429282178624075537797401240760590722926041497716874752450992241998180836337256211798858641098571977894129169952029965794060754775398607736343947283184637802428286933953120615438032120629266465737533352486624452567755721363669631313723691406993312199089462621062513150992089369968204767840558699752419815625987646935926754222361598453613476414979380773183612761950112733438719032690882430174550324115640103369327310201298767872334301505395651194148588668168238985652052980533481131729048754300298931473542396300605320851902715688012949076713862409131786209506998165418504024917130548279425801590526748249262073848886729033002738655114763255312043393028014337477113653492810839036628063123039752073450270043659623481124240386688698535403515625131030610324283024747488713094344605701850147737519178892517387634062432813911153914899996955434422375049487393031441707023915629760465845824336122506833755187198662277655793165599895053216902889371517671829520113766099114993220869345153228818578464018315765788895103571322294535587524136957003539811591396030974613487279803924624891027212981816550899633384915910663605129026704010502846903378798365448313958917501130153682630071405349606779127404940487400466713291207370756799949875270633490923313498392991940264619326335291243070055527576915200895642962631769347422120858878592928212237321552607707001427405438306081051645372697860714506314052573233435822626473366655659083380202204635834530553570431950423229886426108921688580917761180982318007863104508221562285950887209503233561873767777720685817582779969640814460453934612456615087983667093402873576356803160179119148127808882590508190637057896196992779491382573604637711756466604895880771816248264660133062022870429692612434741618086915361885082783961119527619564349597403870717501940196118926481755954360265965172131141912360954703243363546807410325043057492035298386797329531960423163286127531704077754666389196223962374829986722289675109810467455370993562534969776143448343437788070965071937161650234266931734426398241717663572475172873238808529433637665699704681303997812352757903578528255366564352608086014783366998476770209572259297241980183558384468530647359985557536464309787754932939733037016681973530494036557916521325764073586049875093511227308570523058591443718162937875864551875722904638703112875572569794234159023013328474503717490316965860862084769077545280744751805101928878684658760344522640061212317202816451209135582104077402016444210561375936126162216424563687339731682053065806568147092879436140919898461781954536036217849279822403341166507303651359841445706568933033997404189859726588096612978471636132460251168682366950089018364634895071701610484926913499451492858115286400998805245886156599394593367747225416647050009708686273871755284098165430669722348129864123527526288907550070106720280824956009769024467390187290357160413231591450709195541152669744133525573634694607031438380275974414764964680043689179633125611062863915012582915907009712224727612608929929030284145476660127494701596885381432662242436361226424456078655043509735947372423903357530496561768976912934644791643591608244931462770966941309275664284631360174406047231359574286441140042304718385690481922150409883798950621276290448198531855993461544015823730050075780466364256686104602267487848422792173503413152120965867610411968973074281739073532365927801725249091993204587807342311140901535933278181437085224452502922287560020772917731930474029037631322513613357374327222862492873507534686098657670992687461864276108496117610384047904977398750116680991750036619488638690117739661296501832784680420861756081833882976369116374173409513572463643185501721232113504041421838732691180402431549740362904003011455793832059057242828482371943230116462182744305834996287227219290066126295511534206393864996876194236380294926427536756437858617196861166093395617715543002940827316550309891147107490967829903007968430826035117236494660335951814029198941629222337735274939892805044537083052579514503500322203571495623369898802511679659787268929122369175408722877492728500139152832044942050486658436537790770714006831373231136268357760197025048420525724881392638467970549725411860180926019506980987535504576264050959923832321665356742252392093196376499287859278273265849217078167128045969043784513219009394994492783763105197339614247074065180542679131606263534457596999741167156608577830350470781516257187342968003796271340114058159747178250642733923445230242770702034175189183371119578445692931518694832927465022345393729233456875099170654355620245153432144258941437453799296954108240583369909821266806910583757684850327436845556381427163008467891511288646467387171411526655570882555084865864980177402571771433190504092466545281759328355505385216577100266414895383112783099337467700509902620255579931547714889596947086888811407892605560881096367521446711067594445874534292188442623506088629127016949079170978902302220894470658684264571749661330255974823192557178521659319952689837215391461793612519068320983977271063012650894068669412634129072761280480389513772873215707762992673559735547709791913102033887412690418484216911171048659151783268355325985529072696809799846831953225590618778470476110599313033317176800367649626718035647989323219880213846972715710844543601596725410764206605934215551008730686327665901346938126873983156871673717304490424006077683046120353576693896400083336823285091450813688761441827854951494404110243500607924314661379880560999541061629150688629410574498780044490411675741907796827046882851968973885605788217094692754014937281320540058787960814098318095382242935315207681310253334312674191677287042260286987232523303729776177112627335976201310729144538890518349837665115122203951126221206784283904764965317577743249784500853044871569440554303973145358403937958682467382995083140968173823074631202132916942972103824875387551285873295586487684773931406464059516897845200593047467868675521721228834811880433426131922231440959567600916877073989544048236862485921144911889317300874765131527421020825954564783685215500849927606156883752304099495458045868258454142641368717040404211905751692034444115042768190574534555605782965156278144184057296249684782154951566255376254647398053589748963945139607928799021428637360210764872434299949311188682909248683363619140433396526793142238690808951820610833386908041027039295892602053940135254165726136207723354015510779970981292188145213589526197041470864966791323350155265520983103265687307054570981888484148922287275545327913876017817277119897196012551078624718351783784771587681471640306995340829887127239693987626938111339854886066970535890767545864280576962393122373472088550316632832439922759706584709244431288925302837418036140246168911229172147326047821590499013897738111028203728156612866920404830211080359212071461326709208228621452253886249302133828222085807229559746749686677366721708796529132941534464512732885248979222989706284029093940100006861075167345001997867667726915257712145586550999786535498196742674378913064294778605214699232747140536662855786058360774691128162047810147503307455872045821377189388125379974990057355502430550075107191136117182698849251319424202893702300495580688729860699131390668847383853599146302421775005941144318600120750192231710343406638743521801839380982395121237628272819428709281846985078270524187881947159436394793723690483687567403018638476079777550867699826005365480704460229803871114607872743100120716091592221749662113770860616649998538884885104146403423437969279214524953459729047203818453559848820624441473716980793952843576151393681661940865215103250742304573236537369223365582858184155500430224012777870821736403903058842974009543879089038128987910587739471309829125474640078679870514175929662329627461660606354212652141687964974351477566751418318417043329230327377951081635886141490889568514948439307774268273218135785717214210320489067614822844108973871960504367880514753388623038538518911574456619493105902938316133386957036892227154458479376398376721398245234779031310239475449760183586830227290303530962727937235344267167576690492086983439146853015615415546151462461038789240779232724049744653710372905233447908729272101189675229094469390025471343681544871849514536834174456799232628807504382369860450745404132271087881983275307496302221249451774078575841540293712208833162043257257270485033218801875456438179383406943563356448543418974843570613705914733551374287708616599109629957862319882045299290327624083759404069845349325852899533944748303031907629142954846515280162785069497044182756397238922360710280098653837112884605365508150250259122111992245529332030584998048549501039985075268447060815375363288260748700051320612800778162174397343907986615133280788154098811852589858289339742014411175569127545793867539891747920066496792908135835519247685174703043414851856447274928573379785828917101727097765020531484387556510690217379752337040856978836918801774696489917016883343596292829919921318507756098769042984532183684663609667676815675857489173718023200326473392346173933365862831731094881850819068901198756051230286127879350242165068863303422253209883098230095378640055609032590428873807590467854330663586393808891080342674515715452109259828149547511503644774578849738339404836733988776467113084359844921903457721961846199367883895959923677718593660351145176997945123783640158338924598895036963719118428174678736881519968373540793312063921471708050115350064962545304229264071263694208043086864855422546879775231195422840942645262164067104963376728043457200991724587849123555623529456274647027727381017436765676033674936522996149649813660543138127031376147532586942966519034929702296456070457073444482749863680949059557133017211345728267166231751240078484780864790637644171773226795660954021571961429677949511717321395595220161265730948154276840661892903599158687246553657146497307984547226370850698357428414259535832460628203391090878881353780733211258509142714069837712573765001038242395860540352886320769472250171554841679626633801739645502789128716510978108830763144772016349581218982207777965870942224368682773253464323808486896235302551364473010771611587249049125882314122375031372621910335099881713726416355903249776447234680855150591568406860181358343276960348299057069632935879192813014425423733125469577803476297360918446783207910489521583082336325396880857473400784941753194324161779559556996719256744211284018789206890657040986403553212338979453156965804614160062035552700405742774038538880476393572332299417301269000991633608839514106997733749473367360062759497749283987630013222579223661851824721373629505798577030902790570878513209657278450137580035677149781439948015381875309203886043216073386012675433719152455863415067389834532954038790065621379249622116433296036994012753058829526146457294708046710886367106119546487066682245861877426036208655421428396709658303980327817939370661760179863477991275004011567772209595440612973630290558229708843222209736055246756408560320009555203194879071358375523679093290998774341825894235796654710576423968689056225517679773338598699666692364982654616697310897624606624738986001029407044966558085906178211414986705989248439557837278516065537234389673613707654468485206318618102994175514116500007166186590094856838154426865646659658116225548947563849288969108208496253943773762919132660650456860165345706141077458771041359338902210619483859155091826952903517243640847684542571396375763641590540949542677242264943496963658579395112602246972795040499934944671866791813275619062441360510364936386330063098681448735574099189091811073339811677121376183707094133527152960740625830530264560285922752571738978646395043837920971755634880305123805683797821885147582750063754241233300092518145127963984252653957916983877651729426580486396220728264457386914590346741385295996842084829644386948976348602706127612236471748598183798146939933978739244775548138681003343307461786828062281140676618819868918436931309472609769139813511014233203320273852858219925668556636137760068401134372753758769207558076533916413492374526004649905513032708092242712803050730089673215056698665930827653160017593586483897130908148206827095262656975102130650255747233246675578325861071319746747111896006337827613077133457714080285596693822541887543144568884658338628538086893188791285446762764293520636645943210463925619440407010829774341746378643733160167240497128837162107914072810940716576983074572335891938215699599967122905772935061322068680351062519227134709016410748254038423135953932370027827012177848546705101822915929976560281667640360463563767854089312333019032916818482531931125196696533577583475420700657582251956428232994440492102455020615582103654634732379914025116404361489563152188633233110847907535607237915282690635610620292308785580128803907530201498581369010576250522717025079815324497107698014243354515395825858134671833861048621980728451250569132045150383263282097725956890727364119890650983569191065669443474271992787488747295794332387227183581334891510829059314798958127464466826095557951387817902356316004013944451897412037872072042201407018119230974277355804349616227009833276508130882925172544078439874713709093612756418700025818274007114081462264256557317862591221289309017788718347141369277563903897591246452907603939572954051172725274370064428807713465162272476227288904080338993247598766033942930030028997518677063332199179058161062667214771667400598025284532384415968898679670114899722745366528765863393030272232442704723261623926988696943242977360607172684305624748825186385562970607047266356633159141489037814098382377562836190170095773045699508071312057357973893997460952335208357542169244464540983839710678394614137798333363225192992708232199088975969326008416186387082503646118635135052001738492944166864359105644492273796640749095080920412114104528698460844229997254804990000862069454708360022807996292925167198747022877055005626984948078884837340887260300151339667509744128240078407503572399443622478332198087962001362394209481146554804375963529891285468742209740933809352062229769876703183877612681601587597997842718042428291001184764798152752683875775168150401329349697084179822369132200828764534870653958533225971507180785397595610702545415816598179733531308244665953483348100979717110867011940289664112792896326792229830433499349956560133485325160614533993535003872921526510582678997174852928429463659954159382656678150089769975237898140813631445525851331442742000266828660197652163553431932981611454539870828652035183588112400935326367349772989651637870826459757258089925102077096807895026151241575033941297148168294930631262303266765424440436148599943080443960757912139980993194222247259699423294941143896684364365505818476165704435950612185150493473525740193914423878555429308836952744612707803475706198633175232028271201799201538984174346545789213180637539331957470808625476903248373610059843474141324013216203736152927953379632712172948355133732092816657980888371472363313426501776190490411096543065054603935464580658816203893096540644427020369300667145192000162312395419035107461957354364593411959270905513865358980248400923135166020874111854847291700217829783916422454388225503221443552542773796202164076536010699274272800684803683820326650214877440592366657959695117132876012214887563144340635372664730112901452056833062896272511960472016107483796522517863772362276381526700504106405911395984960484712189491459878090680306576610574312475350549366260112448100355899276853546539204702002536530579278025928176125539467376495789539932246232151148826681560653882892201750117976052326768642317142690806666862450085131369915967179486520900976328888855140775679328124381294411334424536631173323330068362498921914795189534151739447949740028532998086505199359516159316440678192133774293375480500403890871596802589590831341169574313539203545141934823439897875240558237375555105466318485825922283203537990064069161256119911600048418421441711018958327592887384527320226820197710563145210001052874733134326493050743841752060042472137928359475753526363450098099478281068586327986269472483137706747237310510542258276689409569901458754494536968059365389930519437486047147835757555369530260826000089305332204301988842956440378315665914411829700467916540637727215041338294828745980134650232526913863210933914718685166927143424483756600064754386690436363190160351358926729878199212459843664670697476124388710696973971999113848651912741728126119065038350382102975312300715517640292425161766293766775251852440378679958898338162111013847972870237905408798218792155336840290769758685441640322439698289000323812230560278233854167119237433332949279885507531172238547466044340984244019066935352109713391839736449878665699762716233821132898976787663172010740919979091240202971760869161039427420324543023412983632645470472334554990337536216645829960597604635556121718983582455308601353985194423034890559598986294561418690512774896081952024407253049234758317647326311133108345635902085582953566141628335756611188520742379052098303292167759251665241611294593967664008375882443675422594025436441300307338284551195707671565085646669472921447004313508164730089612610174021954510457729397550335394777199712507372839773360058107663977193304320150924983561612098283325847706856182254754374003004647418325692184414068376878246676894577820392059645690988304571414628544161527354028325806790241004707774438330193007014121929531967745659825369245281534567161360470874443009659622050566757014462159665713169936883499401470746911773912861004650197662406149611251451903035466150579506941080883643218608707699145833857134785264753663744262088497469769620698533377678225825669678911671184263243583496190982886208139033559692735311758127030702065996383673326982435952347423199723149475942903372379958266807847688912442895658201382410915256824919723524008771889932385865765215146500560982099648763132126063418148086174512701762166494430232110150852727153250156306449502349779627172887947378404676741017192685538709093120629950166031999739709627412326018728289807166818982238235602444171114754125564664346618342758954310864779014334754496926907653031108776199749297519528230386296964909792296752829832084049946148846060212977889158883948631090729243679289496380512706869469065254479059342005918037474498179807374223684612458017959256621599041719719505449157407443137930189373670445601045020420306757636520061130596100009564421356649553063548804445268819520193695282842134466854629573099665795968626834991713479469824980828467067705293722447555580837732596006623659296869565380220517567312363281440664425997378458756686308152128452363358241619124943900751560797768523046475873443723774649251756762804555178827826950744265186809686816910429231416031100686469200827355180662208742622940685910584052724746124519492591751069635387804379621429855300148596635349811068620923091615577867721718304075527201773023500169665485376701082202878472541337837690956569678441986980464524104816419436846102645701728532939031996791639056602979053035254090450236412666874928058676685547366734223753888979687697931230921403697858187751741654610836687883193338947084636346819124562386620407199327125198521038315760971852107506226490973749643345060130601614570024972033583129568114724035057796427621850985385698891059638450468684988184780910947939285362450305323513375603148316929065569624240065389325934045062376636334811540791017463887555900070642443538503779760024633276522236623738143506907379666216718703448566358454911850039681801887022659231390427505407916667549694252409494442669694221682675793616575335357753004764179156594330857123356120704570217116252382834689512689265644300321388942233929093864290678885826370762771006400062445366859078944130243651943331352048769224203641704977179459825803221321205980009486144502640709651074797665081843105213950044624861477995003762271654481134214704077720079759707964433967380169004933457997857115239147227817088305221188276306817299075330412556303458583383087906589618558437867233562683608999396681789218246153242554131153832340320521078677966518081760877251109153418713689759792458122905324526805803246074971672220725493441496817255461465905933128760578971172352248947206326844115670473619784493187635286794053826617067030220637780366658203835192936952525945909305210340671088085068015149037673087895862747538151487031672968736678872446919025764515542725507724479157876357638795275038774146700714146956360408351168177455074990079083355356641049165882329635833816951302252190678003267735774033431642767690104038018609971199091097520052673440659971984434292221859175555709386187033195950031220826768830564353527557940353176859595578261953999774757693674820895530964195981122974953988515058790204615621548170964512392981916027273238838978948891555898453544565625742551957560367621194461761374669457463822792893999836368229593587891438081482167213358448623322167155131776238949937459321945965115289810690744191387156061799761299560935320725116415439659434077522200520900606306900686877417388829015369473926123577176207732059187610697376694466013613516127207538551701361667807420706592394515014657373021555496770496019313697211098896020337418362141285314128679351439006673258477407673357086647320199654093352648494393508706752352472944857613977384715316480603092175357640373299268065723294817591220584256159840653376676898763759623543673180277479974082316556573227742128511548287038141129790463052867926431147332643014956590744405165359730744641521529259579044799171238453079234929001909693423359742559067942303906749482563861623185648655706952767506768263996103744736944846056584553488951286875281060115078908279277942113057443214936153133706534766332486756070493736352427443798325038058239816175845831872344132649749828896456855243897073178015946923830739826553928213680192053592545420802125448655452300782736457954577914815453421515899895168896849740783248599715723981796399128132902850275373652712755985033361905314651827773886937015045083423642366910710454307035456941147575022313638805859186728093419862462713924557047483766056292344138235169785609076859372664293257735784987952975307717933281286874063338922622278325657356378488731690329890096520101100697873289475709938193453308564081694895393075856857061604841381999308690706266247662717509531602643191759390260264187810429892026316565736025465539468444532604952991343152901135971250146506803908881204563070636054908128393047843382804524008869037993182218825545511982321708713912761626946191910578015122409738782482893174654254886378095888582789139105276984046478297474540175525993293662251314236671827989689881162311292042297788173898649059398527834544198039783216934809051373866268431465617765517103589809153458780544011777459838470617524414661805492401651599508438075610029560939139540545928679069223670067613666013693459418091247730296795702630722874883621991101694566228759115711701594862467415984037636316914322552555450028140983894831699481351289273433364432800922475348576807708853280187255736949201658726096060600129532060425709081555606306819774247885936329772257298524219977371458263221999992748060103298993565872781793234074649836210635257457451008586420875260524901826044883137102897009031877240519654002986938762518447992645827168798408675639145456316706942872785382304012875759131862412806372575746673511136181248648665020081301272310850367220750882887462163155452879843165462953634516892223908689801444020272495945450936784133764019230661433442005501672176130336087519090491107807816959334476059756970500670131286867207405391801170405604311055043285540707872504105106432792433252076656531476964684117129296040001395625764032393772294819404742339212160711332162503399488352331459753942086229233436019040448820606965605739836823245391026764396923683035184898097937205945568661727045631936643562332852373357847821812360981631954894058943562401492229722882907558257947484737640919139917595592450049249536435328670756638119310999565044903906348260233758472411937019188341152625517800290696587761609486532047377373241122906418210276481987155506664697169601097761303308466465161956751526118774109613152023021201531509101447785081850007462204713663097921829923705322482868028928956969685680981353400156670936816243483953562678218907318761479545007720490826540615834636662042093884991276636954236719083520007158757122023735874978281609363872789712654052275642816548235128934558655508492333594037532196731501162021852142991108714887536395879640867982573651059045174389645368307550071409453477525852572912034048939508481329437488462762391955666084568869042688180499656030145813057535948556982772031643856984415484052097641651636446856350367400481779969634807753800072537841085865472530185000881103893252588027174728649138484990735740912264432008277447890009294801307617234595656204070725994287209009104863699520420901651589653060798688329830321837278335867271625712218595772111542164555900227099006287741868935206766028190297547454151570959695947777170413367141059080577237313660035318064238267120894726283440480321112782907852652113281102211703464301031355432002938413949765960459451614408005852772230582866193681096382076913769587077963137641900331982609385360975381928560040168531748643995641261412228297844963726093137436481097480523741534097988981113652844456799311574764937737302879509341835282198869304098919451668534264485190596903264011248197674054562910588745885348262367170979482261743374881986248544841342591338337563451244420133037350818194091144735890136766570655771492966410088063499731667371801658472904798457403812586455221582999077956710756226087106698408203569390521693921888240274582893802830330715632137648428039222279705087693625090830820661823198553823651749428970058425563773126943873164824082522401847226753353026546404337179700030161202975730600998803655272929627724719838417571218379096150863869026595075019247578874644993946840548559336930263269326653109304289161553339662330525535589526879431770747159070053565788775163339413313478125303207779171050496559989034814192627486098849782017959739589553831711000379479616033824711330672196040669730634740796273235663957388475592323185155625433474150651540502211471623919087912369190102620154153514650602221848242207689505277233664042833813658011447682506453518315414354372477774566655352643340569558634026909638382417128157280039691859005282143421334421574309712991661800056595485078828775516895323080124447546294553526024040253170252010255695519172684667122621719429098846295497387426222171074922740345723830213246604250298338330316092678845123597121887094213191631622995376661207258648606166702667768737926821421779399337241469953665118008018527702035126354164954184976161954146864100625036326004065751917611803022286682550238533725985381706971926332475066672178465184581564902033981925721685493655298044008891423184542379624385347434709954499807352282907520269088166915695282685902216539700319043638236784904660538129475859806744377894649040030677926100671007737636646511408646781537481830804755398252808672031709997595697570549898307760016072539310034580473348516492356160409556578138964449960986344288620119478841790657539015681917037956666685499797751759183736683106135436006278187583753809227753349435663923435141000710786892243979328022846168470215691482882588419676615538963829112855527211266225483093735789489022867113108069415674307920633319038749850938643529696648865117758937786874201567910906972337161872974561518309204742272615479725838202162090875242330503119711500937764195262462305421672204577010620214681162852165267176975427602107406384129073231599639291192686980913939387956057724256421960105749014750522478766662214015594829891158363786349259804428415469674078836053675297890742025804177843023867432020353009700564890259465346283577296431067023408475384246518275459469045519302885627319602818229997315644832511894784808868204261415499582363361229977889732668179620077565029937197148345044189975024330410789585349257755731264515392282464269719606005150890488249208387351173599439542344376689936544384739162381467706867245863552377880288981125335193367541821594997728569541376839744457084215088578441635317934474832445669661293357192886268659078249399867689464007775135825370316158112894141944338404945128051205016296465972141343345850663667721927944320526407187561605051840018294986768319891440881378388609281705922011015836009041027203646647560119819413763147152394383772782835322018939504116221765596709598954848963447275338857310172848728861183521440448896767463280306882145770126806348170183899625289935120470169743826753340465715306183562366261607644854163836271127330868868492719818929915567186852949083578706506286620139653491611676574376544067241255380495810981200588850962854124385917805894137564097412052688162169668873086529336894431344465718764787738487776057536208444409481778007702809703463455423309155826723329736471505080597665807490041852200659384495299287230269455595190573474990758039908607293298375306305230255531672052397762273315282091792485080539373432649970000554116156507040415282351016208808838165533825974091969677214126788786815673599516686240531420829730601711593790736741193199970274263296948137674152291534377825332364477489165746911216341656389600980637058172164330269720195315440304684672227051106788974364901719928710284940403769590450032780980787312308383590588030979789493960982447364117078979515823531006217782508445954693814294818784545843406836716602948302453475653825280315085047895692037738805762866016712011234243038380491520836710411164844919520529754186665935277140990252173302085588434295936688531701735339491915950759498410704302973254750614765282286653436822815690888100714903338137099732990612942672672441666173534480422839613928806398862694919413805635790601226639690660979793939537912087872052904730440941801780640458180593552408616999059735368626949051014813218741405169483112116948475174395326387978092984834284395582987438327961051549221293415508274183905225660227812332687993239314294673860080985271316262234202626078791182117566542048908493054940987522866185106342813670790159075340666899224040453753602253917611428982954137315340857228939878400427563964103552788686480002939625976584350409284692320494961939743335297051151297595345303569017112553430222250689485656510683460097026525072919732205954823625866808506561716183861380842887817406152221819785179800701247672215259472148254303499800678089398296176382718011432402165822596138476459139950461540012040376123718942889378158683934324730063707001320146607111294659921052554590154293433871512606867272159978238062950789723016908921411651861815897717029385048032476770983424915937250222955048279578402839246564551572770040393548149968098699173326983595032808739196472701578369015002642610898077385526831747750078384255812422452434010675430025429367297193757064946717387409412236936464763678004727703460778290279005386313844261574772888039985497241034066325566054023802381972647769128015481737365868201499348212894948901423275967517503630672172480226134607495853814158256036283095481373929254981609621573404670276506071029784025619199348346281242674108657886922985576186373046386168694793881458777579983315963203916681388904561579202527310673668980134143071588212856482185919568828580009702603245515654379802708244590630234422923476725701481995191057617924206490560023639521045439738426864539100835084201369366752358901893396650679630530879046395011011111615750661860599421774100870483802711413130733663992494556332191736757220769183510300645254685335527708352619255387177584167759145641271178187262921569832591100800014230542871620672182102697125394950694118782015038593649419412839167568111809941973396845275911775768642289304880069408281917391296233314524299257793200214767385782120353815117662916552482079788584888064427740571636688268228083323217655857718830605463882330328127989439995715218870626227884264233131847290185064423048245950628019674810687313942310616779323363769609233202842897065836077718825514115105341312974927689568694443497940498965521180214141004765567684165881848567708897039367041421058495622533764559127658801021602327864140512529276646072807342382430650955968077775095498065013033455560757640068241948132623157802530649291333937705563433281436426943328508194138673793476632981464642802589040925891705435212245823838240594545405324763031779208535399096739265064221894690081981691947286940374841286487524060667941229944511918904511392068173251581076308042909902052920306225939830684224859363166374881814319949804785659561653383125610620696929631096202363061947447033999558662486948996757383740806870209454857702588408701912577064860276306227747434444275730501672955836776355354559029145352494929571255375603392955352278132249555095581722102047557490993182830756962298107017687875365680909349777722747908052373629126099253496848901962147058966006907092370830340560051529890256549899159191448178840432710818375080409680244740939413504853072762104885588909751220500164050977076398916433183373387370410712790416337399251413860560992208334737951155265248316074727994371924215222275127166905180702991180469163314869731716851020499478694438750607926651452577712901295384002578868315870807522156879979620837595281713866596536210882673204154142079951658621948255082948523873516106951514523614523411283939087192493716403842305076579731421913124558244316622988881372377007730200337134221394469528429671335609294182204929684862062573108101705752656495446646844555598631247701045987210339636486530273585957681774858646753685376685352409929845260428975283097694890006240150396384280600431861368532536477422384705970884337337795442435057599577013992071805675668574426953266952282891492875052153037850057732359796512269973587258380241241543847134305559322636083441543197098475419402407425829519177660532151302013125760494938095203584277387064599513491535882041127808430237967399392043975659411677813684285273067736209125850595074246798702411151939777293833877382674376608763015930960712347642918801299857876447393676495314461731102377402666847046914761515054385398937523071824468839808107681381367045524001064354919087616720948099199946926517545586658546089577952752780435528184056891877571545859489217909843494400580975027927170282424670625163423115781177141971383569198802287045622317690985557698206631126862720129162481774707987702288437149169151005748813399518588979578445590395663804285270003247658568481269107031220171503677721936227795837793766885802869180231543451460105361150126038862808198871996125045513365267535197420990497377408397885506751745318795681370962093893458309011399861193758105205254275533588120998702446742388772341119574456909008356351455887743597025723822869811296992827679339735013572735570272038520248324427985897817699026630860600369178660315168330473708048624255346629338685426790321413639626321043409620229503607101179556645597116886471775441856349720603540582673178652513700356233634328581990604262712107778654408396888237994964532001258843013656877559791036364865020534553694562236823253823301920713444502433367072727844245086976008453093463161416197081094947853758465551830200962676690643644849055041957294265412557639167857169908887114808227315150519478627245915160499558640753148696487072785507245551351089091850284903852273278912981539449759766577926932891038790214187028552147509426162657504970962928363233131637520684650094298100413216227635712119383650032485821422717694095615337084503223577393206969793970871317359504659303645282308403560573940471255983694872148439438344254920947925482401224973005792454060643619886763706549194318740637643473264083956019231455044543030928610737219981463462150573265700824938400392310810520432340210447462628112543947390845364225390711060576475455787788368467136755300970858959410609354360984451301167813079813251432260701562292363348577087071787723597507118395607776801646537479296893295981862662810217895689713611783666420211571596531701991793505924269964923165739315475875811543174356056371774056247743931867674332025072046736877189605160888873415665792415199903407804141543961348795066894355271340837262649529453322848553259562399924224512939597629222252143209493864830172866465004954999910117346646864492420385924427235522469762521425747106175702694603988690719354900673904325844998870857539970397251882732181098832774319708674752687863927541239304473653560343272779574418765830053938865988678771846906912331849775961673104831180536775448618943003011205297206113097084823732985191216947536472990161943426571925611962669886629725847371753981398645470981811320430867630915430395738873380262944126930492091051765886274505069453306108026215859340421164662912718622956226874358749357160556322027496715100552672373133414728608904877448886394057265738571771768335073340429975273237600482002365247925822927902858736853875383760130921165206447832563147502129304061424656329781684007819527089244186211769205333598641496120899179994085175954201316900860969679157914410625257881022619133346465801628753818089552737439635543957009081317350800850284878355648890004004509704469451590650794147033530647615917321315398812319547268357320279221747842070272785819642377821486895768143932386355009804575389500767211469742622642476186056314476517459744942998592448039324364494319225273904229878074573075369518910964613216334711996289049999645899792610296551989256104079825500199788612515858554653039090915133293520572817805282724018319127158836515562833341120381760680537508748714850249820978167042240385697245517697395629957175486135145896881371571341916242142189605075529842320550712213915412070043132425715129046929363972542194342107527663114645652087052504933887063379130834033389419802246299793129192425655715078244578314190986645573491042540204633239888528036046360903594206802011742032463336576049184655667749046789862748938393127675480607725613445462331691121560075929897462413348496483968141322354994508095360126489529799596217295219800132823036573703950810363411992791712127715961266984177678716648559455614259734348366661981017040713502702884488088935058159836053465560074144234778945300010543822528027253615158852987679703442847374922908297026997076394388353383504560639618305914390732154738719329969684886061587573956166260910340366614898485964537996662700934490909642773137842837030491551341689145760554981636322312225749771158885622765701222426601007477370002406321628371264702766830870607932015456277570083421287072135495044763221214390235825072764304192598582655646994210510821816573609839440433176602483856439453754260879788693740834352072227948923853918645969138976635039413440990022736571108609330202377171159967531672758158869198318213323476557234654394553215284487430244524641255864106899296258495156193610566520469166763740716129010544282417274926203067341858066432876635820755063272972479784915627850355186592082806519870089022757496725629154633288216370261616647368912258297839116728516079985920263724294981889678621131216033371057574150895467249682752831670735211198840458277875248062925412768325587815128207973665835494654016314449703698418780318259582941056695649315097331360577501860239296675694982352643904546693122313511865885078396081540565168691853230299585594646159505513205752027298534652553913279925912716898062224108040043900642856901061814126753604006554991262015965708863100761057061687807046127903398048657211492234401889513853028369002561107364131167375086113444067255796498017865828799917623106001214882573938516655148473615115340915411403883572462442119133031355176397168011104489288343754860351834830981909502651754548915020900748556433543355989412345114017836952752725655141567767745140861250164207721667368539502477141637644242091493449718531398171687777018605669916837337768638130960955661631828316723354897955849144895443948604184915562731735533993190667838746076653559078095407317267308096888744064818323530269694793465361748593475775104359496251506073880795775824571685754640138755771334520876987066116575604545059973751946361353882254419927734544359391562763176100720072920752612897217399555004754157041394031903466586461904030775571459825544330848298817096130220561475228799092475363250851017200526879592425755432620330565507157898075657085073097820733668760988560481268354079574351419695685930510456379183812754700004156406259979458202406984575997292126338279597307434689616945350825294335484196761813302863607693021043305423169708759052588381633014959147752623399485406547657672570154220972403772977187339151347440323959100359656272514654005336750291230296193704132244121289146365670203247588661973486783383225999542450180417059470263396828849185341885978650868637722866697262428263334356933321708615406931677890902838531522272979273616238413528379754830630232271893534974914763987773751028866165415741884040565999553717926910389891676289718196595288977527108463347493773390163998938161519852064514858333079869555984995854412094417257772101648106635790680544749379335134827932168725890008400415172115930542384235671530842550487114954367727559988188696146798804120664662834680442034360301844638447571019971784743838587883932961834664844491748463869925939707349351429389738199252676493916423771908273372085187137601745190358205997272647535352743053887923033889955844103172257702825813487295212877015799054061114793864473664925775138528649847837437062277112921597404499421019972819223355003767168364055480969584558774659832428486476742612057875522452313757804337677111160251077052333448553752739208337786687669860223560320684344723553061830245746262550057629685397372865503424594540375856012068091422854625196905066999821501340771125739988062494685709728093008497602873921103768616524301528848060775973468176300912697414575568612940731674328399790544081520707803988777158930035395686211590812466570495312937860289569961267847673289562588087759737788887607662773144489706651278728514510484585313876168529356249684654328501772095297066996506773356474854389531286834539224920061534111499641266475887529329031471684228074683603032810999419617004478985061352751689888913184167980215460029620536990135785748023859258417634399887165543214132866939651302653417206656135702283946755296857313393686655721972810180899469209572025805286125896514880118828627660564561034970491023453069675172566438453053806830686579846490029602008244704196971365348280130457685263278941512261267198833270593280930389483125719742418180224155864019897460540515524024619896743341678145116047559810745269820024565225937277482268657170941810113004618184498179426849420560926648600839775121009757664634909802983957457910379999523009437546514143648077843887550651490678422090718424718613860445470819998573982266307020121244712651115122986810608964035259697783167593805829669739804949259059209980388230873048848343493652064513381802058684432421380695593797663401004505350217805768007291196657557255083301574663517071681630261205431044697757386340421711533279403601516476001897039325773362044013689025441112269898224233994801360704834689984133215964803332666657336512547331070212558761712823801627849256212592834386439467404171389270920818387593398356062950212093460894518972899144839104894994136995151267232893628620962878729314907324454046533813519953564948494692327846859274750547908767703602680587311664074956970262436414260455175636853203371957225179728607675723165463846517133418553493883028099650776783525539560254416523253637196089966938693983593081311359713030136515296718314774048999284514218582651569319184118526627664568010003382266548567209568833165255584017015469579920608083065329010277372831069024478476816576862951595506337792017904711833131016866243137320775335849409648938000812104626037767554392197159116727684097239218168288781075520099139459564089164558301975295076509194687456216235003548336959100973956560932150356812845779542363870274860797206592237574696437488790314013221351988294742549889235131414002649972263151435942408496333373493790655664303258891073901908904769996796870841156269018232923206841389415487332579312845746249077909767521526098511581656208934695317618418466346736843058007147955294097256409831029355145686154201951084214198904677293605970574583786600470793751545446479776454545578121990638805095514395284419390692571388806881163967369289599587921618655837795869255728231833555982640168832382207641548221011066961742373120076650099553102067380438626765480614126638179909462684221577303773974943000882736230123156948249175864575346419439893760824060438685386117686336400063923049443446101227551335120326971642134609758435839687065160347248890383611877697734824837897080996523291945617849990307780828875641896086456115054423938429848659884101691435448231853389632314049223898664714872363509805530805679100228124652788606835985499520039944762115982308484584365967345528151937143760860264951354563487504631636752801012302297522695477120634799317852922543277211314649581918827248036565844313947810498926635995146372040979605590320461317507405024816916905918951404127385644521960256723680768319858060668029938729928560394974014667156292402174598825675949584243823898913145469706911954485924050777290156504288673800999713072754067246001942763089236153109130689053679517646361937491935860945266369230404826113165685797356866377897262103401686888069969754613014728406369136780029846281394019244338532495378552657318342828261909793306581622271824973551920129848904251602459315315178983604926617116806181547121646251188603778481691240542259737850532530478339617063025646415427931694854315193900244366301221515008751188070766593120349941624762899395047258422606418437984269593901498253099098404582508062997018139270052069340279074470171158609722195180500421645487228154114217163470821354624468060958325163253192186844486876379578056310836169167324862095385208241491453020533948435828545396167436488551402535173666619848193318180032748357347069270184313977314933809935562888024363353397504546157682792647571185317476600836865204838687104058184316107135746400695015677595661964247953717041324897582180784368891849451314713205370189943978429025592182283327052018194057439607364521443812860945983865329442663218256499892650316711674826583040647791500669944849614036420556568778610303342844183296543490395244078416211404737577690959537967808818073461452158000869970694750780671637184815346858208833136336495657655893948267244582580682466351740838450745383258827935083548126176297169635466710045173354548865532986112648219625021431799782679527159278948999852282251340153109368900062321352652299549972428509860790135046738557604038553288529832347617482694950644888200892337322852238586776524555616454701487137322415766785785896072433703717529960768645309847415378918422082937014787665767990835266306653921424920577964355246587564864548387471961239138824832342257247624181632227587154866805905195195544334839311476447772540834855432321038348587055921765127545422166593143118213666534683513525348308242973831598049342072752776795579495790974653002718512799345566120963270088741580200239189262909963131310783781493828116302148895632429976285157223537619205131200503688036609319423047667057120871520659951606697347127280131453083500433925960201990911180098930159401581659383909598438168730663081917495573151879436673061213878099773087936858430262202591907356984087579402619489741436376807802639216060497370553706874019010171418598740286517951230233527575357975754200914856428159806115962166072935439465610210713348605049170747327720861166115261095235136328512181896438702793035571872971983472556095875940675799932799969417590380341344663259399457764546597782885092288095980590087879202315897277204051807343398848128270069665642161396245668901914706648526163075800872053292055300250912595400819067922498610690267936079230078785446335240487356742385958785298698592421232648656023244330719774939310363458204925134042413504638452494410516390061255587874228626402486948007085728216143637510486114928097151452966809011157987720804959908500295723196950976575640211144009124780866592480646238173969583186461855999632664385790737020415816335241036493494341453989673748382825863216878722762155149673550210396424261920389915329127461411987568947632428832489810399629061174988924490637499847033360435149004398432667295808970666625237951927628371668178802686457380145270626204548486194558121810596990396666614455531998285135356108161769361567672829048321908326331751179473592272010104489640405410245052330275632888755636879794491541179460129523175447127486064275660663330218342372765934903639946753296122829417803592754086322885310632167021471877750461871880422216775496673734115813192984431365464015851345809400430041247799856972147653799426718863848421267308938045442159735060638775490677939249493535991682557752841562509013769043763954139686778358098281559923414330570154743972989219814201182016660735505430088175033962103314045899757235541600822249910432494029553153057153513980255976669322714295092592588318492863871734806939140586758191126462157555811939392483725440982996964156415952226085972273734019681060373058852064147803605204794453049765440326438172293715423327981024851970444051284462070141715893230555473915188287859232095955500625831506250428234455340428356656683731889651152506754353779829788528088014689631967310812759975316590570704273158381941122858696575896116167652269601915002667934016841637351548296812831212612739365057252564535485125513530905869033681883159040850321706159083438288935782659957406957326945532528274539271994539427910640969985106438954627710186169985231031034219289925954738450641570672911241907737980022326863608995168848953943203772125399484115629295036559526904224308436038526265479630667450400586799975217619557356459340829605605703245018556254569378852124834489229037027375438154987454633033826767977961216476316095531177982782590313534726879270129682825261958217441841288244116351822993734794067079859379250215142487968930827854049444179204912021674328232370404495805369059498789538651295598422729754363503975214062624496552811297992753124882840098987891924841415144597751510497106676778154457049579984226233394888508009545510158255683349316367175642842645004505051764938857044686551621046301784997391909212542487960913715268648185017755620992055700124257674988238631289497854757997128648676259564444273139979849806463393637340226051976285672348508569717606844927725743646695908749308189953917077506956400118893276990203079792960795243370929079188402102489017432145077330225433097300128421590185650658758438716581343845344379592516974176715160204743166582763818858832479632711301349404751352071395139972900832942931740219706638144598688754587412833573912578922853773116912236851162931335101665920271883172887414108414384558250292028654293062296027337909523127052182492559601104386011024673875020613693144258660320687557909652313414890394034304433054473231345124432891893070161238802254804878612512551407835903834797746839623679040558340163604056519762913172596585825210600295371564283584107934323986600956992239549045900228394359493017238710862056984144873066008082041490294262960407953614579904250666435712869505217366317283777077402962850048527840197050309942130153319435734736676354931866637495809001160323047630915830938830370693838610268430242629180330827432505454772548981623513364959848416973469547042287626700248436519017254149268740902256371256321688034307674249221349026793447758338079914896910443866368584135313260115377055095159051437924105509898914613785935510251939245383873717228443897713452315113410981343525807444609202929378270814227279600481682126919118624100902843237596842637515852466378819861577285719088985510782032614273536128187630049812417043904248723279255313367977395052318063188922750132253791967261164574235431625826975610180625363561547887823451811190797097816810894935992964125911469128091272217966993288765307412668751752897770910911689405672797555592724335618254963203017708000108483194094415757317027672544107035376856691398588429164154663826136791315652648539854191417188071796934624298066798893551588921511207199575389944398416346965148207942130998574064751153905864444893311772371209905420495004870402725565958724995756492563640624672034463488782822245345417320684908685322188273516644942385501835104096753532633569287195171909250637119316978882188721772356042158798608949239064401804455913133085835725122345957822026709263952930454872767854279942046116334249750413374277659156390087523321421024781364326421388626986341687512821621992926273561148479304637230245485317009458223161532482266502295906782338257143081716295037591479425885308348726439258678237085442187222073932140071074539718487761885090382637674868658265458261844866976189047100053376161436365761109896605156553908335433361081578416013165596540129358470925045518508636009636231962759641195769520460777748805770816320187695229005312642011883008909934635929620391632179149741917462286859330259432105774139474404582161200406480207130839218090482712363682973742077714203170163517538789340371091300374448577934183122932856650356584453623194995283070183210310680014806557967978060426822176431452432626422375097395373611240827733293824474214579815834989801539666165735850736794474065585881934143409597025028756695544028798684321788438516878809176442235683904892540528249754841100537210097088402219047152347560537642801924208587654414711695654725320118825080766882506284553995573130348400730140659494362573076191066992227100611950431615968943963231796391856729155078998364322348783069151845822616233224614396833663947496850536499752967545619358371838122362757413174950776273117028250543907127013205718591282179410346002771965687483128620651540793441117296338168238561940542843972600785952991782727961082159041381399814947130932274849306565694958692649380919192902529263992805770296392149024152386323966360725691257474800628155810141716665803087170540669830924146543799497425090612537951280648843565641334195815048045161192515762106254635553102470195295226904169435302445323768684329585224608952515403790664179705021907889843464954575652399255203507768193980312775035779330813900301405081537928737375433612409739444282425355562349449546080535094318575025823818315403935223862434334577075272561861791789730628607061613987821781328777628047344714469680232066524132648454336921892792166600769832096009347447631332777351666573113735357952995312775875348437841735239108477829606984931858917934699526774251632792908412898099779697536887928027058859785257029674297680543964381869243046759758325394268623016305588657155807543764630321937661611577745818386728319977708384985160050789673205212725388884451927564752002212132520565971749898291143980850251442742419023951672986368190392200516349811094859305905041456500584070723249560830684219418834848395472276456067439975796866387230692819768686869904984306356233545936934135855463003327372248710929026583950897779985726205864514075410044470882527206517638319210917539847319689184759132934748180443941178242362374743303066396781111484799914558476778489431089910170081856135958665376538962000587926519380452187864524468652686168270102947939217899218833910396469588068800177616046776369297492353217581856627139166423680905282320570525966716002465981525476785981678279567980199815071505759111928156615127427900662600306451315091735514603431517116934807869737061065316689102199488505663800768842783125641384016297312352638226474537390640997471512050474859166200603413787313106773473080527091065615440430758036533472779116606901792566281589647437001449217341924891351869826683634935460267646807892102864959382292883541555215723893845208905151683317377171508490469055013783345204746277041809245596626368546188425115308421496293695190578766624950537286392798454415147281207121581271498643685526143457921687281135362189955966837040796005932458653450192113636794470743111638339847845547125387212048871228470168563022758111200315955951701040942682787647944928710184169616973313393295351751111386047570291096690405816545585586020074746999526304207731565229569775377798686363152120137254317337504814717480124306893394378796897067513935960915380961270937749451816057127896213933152534227133926696314516567763397056396025292187420102334166250139664706787144118198419692379183776658295293226742803944692534177209604860531102652198725463923892434045115733359257109204048155621153751061532746737471959225015253813529813275561825630604876384387152400390072083077388533650965732207760616962965338390157754626048653984748738233512755723019526393255363665211296328499185882153733913747307702323124950022619246004104071730020667284999661643276782842737718597543407449061713287984379981891892993915385615482182763540369212901633303650402897041182596471733579218799894757790045114575790037352013055147538443838953436989628309840051084323040669645324278170760041084644118576946309027459137273991677682179418543516064175929938354840104920906679538656098221810979435315856862410851156044855432735727054236632813834080852003365381701718954325952694377420798244599900760432455588885866369476315404282354294940511185864511038950896303557106736003194611199353171531498391481565105541604576977408570300222320755127207366016667389118634051879201715182041641297618008108065826073368047628857222110649557261745488764761986957897110456782436336345816638078101961381853762384024035336507900186261693639872204742550382706634254509609343842171815708682367135956015149760633026613366125123800976383828843598871972041429687784154273227292753735044189058886414986267899613111744696509732468109248387882045451458750466862031417050246487223862521911269469026947060141069548610799209105538588803317605342962981979490789277397296949107768684278981962217930323522488826656157491522089074505584790871013984778290363508165717956658060692722261535500906358107540524610842967949178751405980501103421201477595907143185097420230835881050650504061452371705858731463673037609801000036500252156875337275469210819832997579206515840190324502883954411786623225894790007034852502749361981949677011404421939583896605432390603198536235970250422786169086817341774632433392642467572139707154128044766451358862448531509683854079223564078793209700307232232038961189205578402038096016813251454628922919758160281232335704156842639030002069431945272657613271346796054080407270647285541321211638382017457595333840176181206657053219015931261430029325372641161183547032668609418422477902983761767237920065987831472618044810879821981598754514066361724760177724983873372431636141704842443283301714492973369193243352865709024030114124876522042627271313044391233840956482621055922137441797238511179734670712217479317232378109273121611877029107571084555268887217386202585460012260909456348019261391570105657624283309461530563172445830775332907162836461816904862152646630206334333797978390308591368845921912052882883305818289794183420654796070834449503477659040756582872465682294871820465644596861527100247414397826939278613224791383673458363597010142222910316533270711948038625070046547633911897167378192658839574039804984025635342932502659025597868998273317663747960638647134477728125467338888975446410919130575741958019110161331590148299140925936945929615091092049899280513830113649297972877958063218948453370679542678488393971461721606077202469149350658527030184416923125481090103524180289168540645427848601697728213504842635085873667721261190218393220382159187241668621142600115191117962500325661393991977566746060815583529019760982802659181463662378499540287795787538803671938795061369500066008597811898917369880803392488304372902687624369895692059543984539755067990400419053840079783841624059929569954821491181367883633561298468853178189737588515313827684371982629044515275622347339299917543913550707595970259252571096293936174986439753614271775000228637355392433516992702517327528176662180840816705323675428399254534424595163281503871195767108623284963790432513534513653668856616591116155268048294246659355081924933487282097360710156928124815021808086319354714648317567537691371811537907316382360156595432518041025683006759415002781286938129614017926267023699394077931733741310542023425958182560119508126496785722978446775120081679715102444960716159557919703179950748485337273746172453220883534201877709890668952854647503053620622160880941960401321538437591304902932594236012262438831808525040480679173226184008777248695286355493685977560648054695691231750547899458174319848718760580262627337522490024214161711560255646918810606416809621728432187414309731278140812650937714941476059566097359539888399481126598929151070157180575050053506427379212510847109127938653799737385329230028530767078835766792189879279996433541761319453662968112220152239023991097189627696681770752916924485301829203770225280844614351225008050269509009774312791929648121682872075981280656343381816587592833936655416293397308346917258241898392283898776090488914893100145800298255216413597466565016620906607388445835113439304608486732784215690990948197958928413751542514976657058093812866322187259904869411433713673222056481212196533438545342338467950414751946384016918562352270935898072439865677002960365506160441053658632191512745502271348938444208624382662836306664322064097208915134723353475525831159592665799686263548854649413540602334303465657363053918768036890935593319255717448906161472814314973716163354751903094314625342418138927294626367210600751893347308172604267388466694079990507325956324176671362713441798054592501595566096020929540452456399867939520189015391939544738256810837055863879490086955674282641804018297248408121387295030434786193545879239237258013185884514693244595088372389407911048704674228961472456676882877258594948501235822004764735127875192726978995505599342876666662827887486751061158941100449262729234242361867374131003968333274453874670815423012643755542201186256941610533729595334481508271219782396267094002637512392552999244993571102946619598717295066032193634035658063901000665085703005078886726241605875294538007956551045712483149699075130731329634386033415967055992609925480930173928914264817782821867480504554869395806972715958746036979118539038497525666889717916777437115273189063392411955946701557097138545707514089366850494873020326081498196753277895328968244302202765620608157029202923562048964148840822103814799675938594803704283832004964760858674576769653437154464769498720190854025622250713569000039118389010919540501529286830747237148036537100233386930872560406037356922465360168897864674111570626067140580823083253602066084269791694664711337559829369552631272181519107264046491469152177006946186811634916817364890762889597579144710962854074393163873363990004990699382077459690529543888775235787786418935766664434752285357706066831399462322462437018937775249347790690485770159203068914633268662856988622992833310084527572907204642684363698563534948000831202074741348670093110487242905686426282149723440351436624014671484094335952014542962907119011292243434070724890848663186707613401614900386282198647540231109895616253387659024052609723361657218009015399317923719621112398234215317151115181236891198543241622999875095178654879854216334386458729814689566451200493508329815064794146103761141332140254955260734116959770247438334388322243721626004905545916560828615102809589540807402394831685504378057921358642302157823678546623945204562479724374444071109309130762684095576434541041191363577056758656803434049676891212847341543016228977104948412091407413617225945735521325945838583471603040814067608530071921872440028102827676901761700405165995906026436495049333856889293398074291339687946424402593739480966275302343126549404030511621691086474529016958452858835312343262347848260049185869306088465160169348552246055427448009560206700625417137254585015375876525649254976674134710003468568590570912814947452039055399035102488583010965919158414483976755280631201586834864940222535967227756586639703047925110151809219243681474717923524033044419330201180036210899727778856075777124923151555078614520636950201714814326774530458454150105798653379201532184419419618790591383957009899391896710610991379853858656595247222490574518570019268895529862060278898602011559387858853920887409090421543370788446248098759491212293304216010769978564182167123238988502769124144790889083760393426997227359610750124207506664844549850699407944643926441782419856991437132387745883677659073630145468697718932929937496786789911495889900740241327056483358735351667408640034451166913845823765498287672566950299520579999636771645581987620268619849708460221529476232440939551224924607771737520672035027558845741421097578406234224606315139698218998531375249501121187619766604271817376994346340941282615598928537871500036071894477075519665212724314408936936633670430218882010598686049139178994704137659014302038629284754833575928232708565916634599892516876724068886878652540261458831072686553519821365310781413300166360234596046315014274351395036261597668483726219887858042515242095412986816548390507276633024446356885604748716149763232140476869481232930353617009752860730374203372846927463512009687697755627707932434152747022510069849790782897983245335805810498651671612108048242889032327920887004552727326327327645364637651134668407759944711668651489738585456463592577055301839239186620629220083571791327839654626511145982339089630374227291134126723147730575380419314187735826825998176527778569634644264681593977257323497498154432562926651934518330577959520171699600742103993764659103775881358018829244523255596169812533558485791657679881988266195956589275652594729736543575623712268894524732759712939408478791385619774069748836274424236778157734854815557580358024583047151659048362899820152904368752881946750174902867523999799719831779307445398909771173956951920537070043255979500306415544008356136811547060045228146556443750785631714488154205371853268685789379803503687341622815497166977972896333611855060682784750736564567176038671249104169231361201824995209275959212064000291866568415703070907574705417049919720739972651081550737435477094675988980975063590471392410339257292895495636109895466195045356302411151655327589156684654146233084636223959005643739807467183534249304394779963404203172419762896055727644134084569522397809272525727728532878184674015950051991928330800108735628633852159815270355817858369570703764730486568441924185187881950031094350614520653439429201518324093435348175303666173410721517394190420235595781826695980312333722834010158761140095308394284451636690479824588344956088019848180200954395037205812330374906729615578461978477848798507098650625400487509373828662286265315996654989965162534316823206954905057642921628540621946435996557259950243911984068998036346633380396359347675217249233811031445607488378443860684501459553949672264374696032382424304141540813807208049892870946710225670796060552878119915649700177505508927532514215169351211097212023919487223037902912676067145803655095371892484094503602074259196621624092427447550009474194502953841825219395417592607182546904432592687256770874956922325391986983461837617309917703794245595212420581641158353190785673952964798249976921080105162149018769589885379371073451430640154151405147670690691857257626914809677794782850540618955341343752223291843140342989172874889723545293970476711079051434993318894777734656580227564714019725520245192050268049446000930268828708937270298520404570303523782592769317423415554557695691679050012191335973398339220777406915241026927095236855390612745263939047031582944267160539481939580557054582567245033066813317689502891947610330176245814886356045809367602245062830520659591284022834475725501844948696118948555856154515410420023266024945677176887899161332430993996160111207969113409277678830304009875862798096464383207873591532064082083917654414452242655791436806180308359314674563445293755142812515884189360882061563916747593063333607679350832020307259490191009229998998794441391969451193302671816108383889083655202974573252569850096109141339363029953411708896770782301098604046735557457778443628292600408130426167613779751380298697166767452563192269160860487112125471913465288969594061498315245356585826033487554900517144282996951128048532924756271112812369219173259711551766481579277765305260846454752342739502636090249522038652935960185651886769126483037483073991286591932516170156053280580962907430226595758212108579311963795363749812312655684377534172540096312580953670447804004394282767811364220284707304232845475563991099524212961943685406494921736436660391155973361458795815552584920189361075644789646881169940376997681078103724423237998834613566393959059199864856504520368485997095630293143354498098755240580447027604233785125720253014499624855888120135699933286124637652102308828900280404678096188507752906160262492310472333846152296232234967987063868874700071106029571968605172907913315307848830398514858530119421427305790488456091618293748907503961345524605344029899367468530515329640961849837691547183196964585972936970115187982587564559507865612331100190613495651580188422431008948940307944535274527862157438611930224016603945698000460138105868865149477081823040530302434031838790234825896645712859486187642555413510635925373064167186925122418079191198514173436544126717552390000214518265547412811911042697713350098886935535389271308925967453691123717589143417919902894501871144486885667654916643617984415615408815364753006611775560621203506764634365742094087752343758688021551585535380267963205450974375427529316058154658871814123498144165705843709692214035048160600464237698636511534277990463568998773336092550788694637149329385934368042792818251835197849408288293183389114454831655100978948278231820741280615760059166642821321309293691502797299118105215727379965743880637249687250813393915927307920536780305899632387244600568470622416400736593217634110413837284310002941817705627045325837427216417211448763153958281003386874757958940149308675213775791099577337331132637168777035632178109326231254116035408731215051943232364851127254125141765829879632793968275817888618012187297427922263223750537290520645676237334347601116172487236668250436026654550411181279777675280976488924483497404436223870045186465616750589925464728724048224826771815954259468271843159013214646696584750182047636282912019733149207916932768744578455909055171214420598368549812067571957680095239120050609540849427439749282026195383134809828384113507980616014195269264838885593019756077518963985987490407537593797538195919337046910394312943420146453103850785258417235079228458744349879818006755296113254009632118377362048387495843590532403665850786332730004899359652797332790753958057650321038859651584824756518821010103216389418427944208989372953211026093173495118207436714501858054059894299163697059662384649584426682485917025775650821720282824940736762530938126097328531497327676663556706759215978847537397238804665727133122692721841543161980785959424751522881982496568700823183594826000579156061347088413342845144252226045967000704631925963133663854264864212122288272158592015755688251303779490946343776429291099660805612091702025122513716894151534863582642304067120862275253819088957016908634087691422920361791505467959149995082692238818610776031344684886546003386940877676048883758468794125804887697886475003497707476638272220425729760535453477758318004546958488457404533638086702567723840221137536522454042147322016121279531662767116690258860049646642098841886635534518219050493602010529623610566109751563036252711721111231665718486827004363815030108896754505138308159217829615931298203372587179342228107539651718053340034448059573052159238837903950653687253398774229479663523128428479183926948818136807401687364372590766255236415795074350504255735773041029696885533532412287549713705040135162159418075786217219604829110470536218600661090111276205637732771528592899278854150220471865955449818492161715366401189506678534004473839474527112123197712279636476829872253561805106587788555626161163290782696756494703863820301743020822127474854141699768794912430524632747264920222087279547150886957245899770175645875980756085518280863421783544858831563410326780524939096436479930470277801370684923483237052968234041431292898369969291142641693299558736609100120204465806576114198656815130117288048133066454111738158474228101721743687275336845772660462980148867217135880977618474235557234857926662021209425141026577541577860544899166567863087033128530191259512237858129167121303684803376940179822507610309505349155246446937359868340061473844186751048889546762474520122829402249217593592289426810518162248887516668986115590605264377567335382179891632045637755903742186767977179428661634863571146423970032966592023044670322719259178230515485129718781191404838471549917149535154893564901037818270786768079335641926560687917454059842867586979523271653507505024252417923081552595194706225726127320151288144602880573609917729142736120412645295316808897390718778603181374635634073139091852329217828060452172052438951445232191450093670755224219244765226212223166538558172298479304249160199506950000228674655978399921224046141187298247819195895205159560190952641419616600234083680371442354563155655110589289632913608542885540577238640584964918168416031111460617769430318529250755895756883194736643211741160012751237258681697069271773712681029052184567748070968783965908058089035460544645546684121938756927171495610320531188713380973423920766009565405942215870059528834896257449514900466702732621484883994667038034002029685624508545369350659450905795541638819642968950640560907059479087032659426644514622440142335526531109416583801160628021580040149884987007302080728179761145838169443906483244982859302533819317729756405632364238796038991367641963289735027911042733241821747017685216193290964670788245672489710859136490672649582685288297746610253704537035982671779381730103789411279985523479098776807472781408759421189072086856555482962627097216729295108047032669262338829953649871349918021146514006983394302568387260659474222978146509328037805098909442256230722462058376661345299372804638657221784541801890662017681590211804000215301528709764757959272571383199897457009271197461277935321372896234916738120851930861140142995531778344422396089396788467071106652989522101922645478568150233425066610798286366294852278568865993219625017749750618128166606382650296959572031964049147713874239490646171572923456265886064468667295032533014233624934162932711157686793101599551791627345191264171930828342602889500139174759668204387003014113740059834000058397479141827358908733154233511867520232438310143504672976647965351348914401656021238476995859470281624037194423880731636010821762505188389227012138969916157696594422469655857010706879252368259704535142784281842619552035283831565979424165305296979776245190365639143318109748413915749411769987306076059871771137479734919199097233127704455258851817902855840405725407790946794654338980552868728783397122005493528756394130675585950567433195346297678533761929996575308258658312598605411658009219411912443943773693541856324882831772261201736139475079882573995899907040728881080828101919671435178800634392221444891956369886648045703230456615177401982093853097553543075544408368238551321701700234556467847985450683369943581679545721795518594841647124391391307283398256743934752186254041654988363206548384438163463094005179669852473187581449325292011897236039760095607156055883153181776015822070443214989449218936089923017477981535084274706660808392825631585441629659405640551461828620775191887675898862071632640234083180369789973201293096560078535261979286346547874609025694999117340421572735892512215958295793520551425850682323988652370250041596446379778102829639320062059115968361065267264742681428144251195670592507444164568020979782841595391592723663137602605589145777960016022315120285924466274423766480427369675714658658192600781476585614779182382136722413752748178342673042294267637064624555594625501092724576810323018242670443656644631881845037761957333521318816507300829793735868201012336582983315222745698790161902779688289898866379005704521474078670091962760742377368761971549453166188054736238329079301831767477547935998213361865472496977459183511365384095774851878626849110160721969014065842843735480086070129095576631964939621391836353298664154918213374397335347145344634316638583089920015529970608949695531968545050828926302425575479345358929026469427800355678849394563169220606000976921208836204482369946524026308399135125665987086539949249265371474847101164628167411224825660937188933228825865252295280954957765428303958545175206544720123813362188938560768306569831984038302639087909808311959713369599086157775309301713283363698696779280841409051697260557905292599783842738923505474093954223883881388933414336004812284549916980261459109052129032462749241188236361969326018728151006994553978673250243178282941556016385220924388498525412323060986275981378067981949489536083906542400278761839709521262328162724233344544146393046321627522577224014398536600625291035559494989207310730611863007401086821547009302764957777994837589949963084451395960556222378850793681731965576066958004993285619940640625685541942993194939759348693567646321122292711823513733184654992155720361625552579711264839120592680741824430227751411054155181908981527707179196136563736374409246960043817298323603991781502904391609423131662557544489580831026323701961396432491031665324919111597278585524806584854975272842843292179201596265790756781501238784913807846828080102338807814202580059400382360056543400643669801156153089164746876871626624578009910935575838740319658583345410463294633598889401421171841681276184205871873520004111748930173541511651644962245658465382198467900922327291813292264087318882454351844635419975482720016142452622628823876672198860115064175436260562149200183783141780297200423663422583853485387390153988223263011486084261794311905327145149851864965962867584109904799989912491412914239687434102213383793197371968049886466973124296525849379388890891453136828385865680813451715422150784925598142535161756398101445939030530554471101753628902478324669733352224302773118152461536830794524868750471003533868182025779007378494585812401326411115296080814639654163526807496089650530367495759075961004242508745436149692136599679893362858658541079471031497190474915135060679628391668944070828506641524593903336485591692831994276017853574789511027517821007511381877557566057593690448500868988105612948692128843378991778155935756403393744310897459740805578034425784925018352331440621338490972564482529856367130481431053779345139094276839393825203519378799406210889738366978647871826128481639101717705112770320564947418304282380695397839416414844655617590160817442079514384647638460880929302364460044858958000914065658649556235416855963081956183480134042458292433163004548608228111636830111117801256638166431396777483626030188881925913195667135779726346814362780102669116082334341310176474112061242860653033796095128028586335966755418681591598357976349049244751759536416637137977963567641689249957741467410710527921467402976068523951796966183080497772620222882940474155623644492181735332665828047147650280547279045533564755707180528171047220346353082347742084632875095375152256663766702302630064290882009989104511133694887370976968880054398564748102869047383154083260899309660651669442839277879423618937968432971934807872911076714757316590240002929829716663859312141902767250646107229164442009788790674104560617058942772183358416014396481421443241538139511521147540204010490286934797250258034799590220166553497045966819677707408328085589415127799003281130664806462078384883647286341491443167706858679303990911539913148115606268564460262014768174529955214872584084876726051118526273220413696454114812407824720475867010176304880177814754232381341569007274227718959287373426848732200376294889010589150490426960937572187601741241318896009671630824799223461212663798019961802768824791690277072885113970839784053381834980691529151328101530959350226594285659108282284550017817530820462639536053681209792209327679036719853506454266550972462904015123710945135955474772783581305505928997695771001860749468989700475890651925866311570354183271566971971257057657929742534679298362593005806797362081799035632380524770077641409285230351460187084205392411447662367078238888824408660038474597564560113068365051615363833129120440534820382410388073602143105608395840668066598964790058623938486290602977939694191636471982433898087392826397560265840689567111950771662191431854727925717075130705297983880124039811175037868845793152816038569400545749955710006944079696919121213837693475797095794615568032584183815268825718019033866015094563147141890578120935795753785040934849796150303636528255635410797763926914084154751433698678438061525318676021948440608780496089594993957403284550609170542927406013696370716246310900184358621008944049117505287164514402717166250214017742043095618432539959998319745520922864232708902930078361340207146893395299911574380578771224990383640533938146976166059200732840205498339253522112625232020531373102261075157872971207312094053594696016926545361156329782909579986822676704505038175134796841902844977260832685173783449261905100706425325133332662015003773240007770189703103079701290718687353579562233093467569025954044709669506756376468881228228082112265486512203041014968701673273913826748730761217994994612234152444056369164566708733104836491751070090893587254852519910849316373666677611966620288860739909670201997582149459597005513087166729938242363161739887445748777411820265291008661505883001720333136174681678804014370630995071293168723102108816353842377161460007693295841361486907021208956037392398081696898881822046896342436307319473775592002993591709921918844890202135348145691618032179572577805201528804697891796564716655180334582205142184795650164979737271770194294386060774919544643397916124486181732797394643571789752747230413654243173502348998795362559401931490322742081358699003949555434753548816156969467493647067093084688574168678221249450915072126206960729789943555944453767603428993500602568464360562376148839544744158536985145305313964871944556932748693771152215175914677019180873002752381100820706535068860190455549141655040310560450604216851543260376422095905850091441945543555637726009049631430759965979428142207332699050036844604161412672212098131683657444190919907249237020796694157492699056830086751123840637710725738803266924911758559857504423729731300597392902736134296062847930142504779757114588704093600295034490085340698691863064457460091722930071087832642874707874794284565256119556109154209999610118440996642595641171309390921266082457550664255812688869286330748295773880706977825685960415565067546774918796366640263182203870892805461565821615337843888126117602382056843181442968629846457110230717911395487654650463800396308201415170038927022720618520235235507517387936293173519731630863358482994427381810643415167866157852589199029960130369550995158130198625631241835815163772809477235107174469545599384351174001677516177665565922749848097786443156118556314852762276935727502102030480660003310807142625648944553135260899311540169941383300491944364095254224785886573053311775779227760743840567215681648720216735686346522085396693124980814163001957138689411356353069643857092507347126609602465510507339937330644514065961652004525444447358968715603612630381721743006955949042822145696202235042337118683674711007233994592652602804790109658714119374718970257693375128162939573272208719168706679702355965011968486370218062428972816657971139468872945718306177491452827596027204584146967179487847761194983693673574520598143903237739278087874526604577277788680173421200761880825918524412378286723182286612622727207078403369939816290114708102699079710827718538577977625701120765233775219946637298288647967338566732200326677567148283038809357130876690436860600011128989328715723194582518805051288745695634984574737481334907041990376119620973657420303769589406296264332408951811982583334919019688653390675851952513248549258029874491419660060372904848182020190289739704812796860904668633954082988091115278255462632913042607181783270473321711410424929600694187933749247275725881596184052177395483007586631823371598298971060550367856426764000485632752243084297827657540252988231114721654125183319303708854779834513207152379104283287951255657987990538094527332994066863106291296936229795107401278855260367921665678144781993012113796640048742014511858386375298516233417878809215163158134129498858195561738353283842824021603158280639639432451492635166755481320915436090083268118715729778768999592200498772766779157858866117936929995216895873294972428103078463698583683807820718687872198496073829600331517664516975082236519537612109230006976050142717714967665905967343380158107255595189869367863412896913357705835618224017904115864204368341095856572417333821442976159916470529180495625611368976346283903288150266700869475916394099941225460133151440968059849791543624267453004491418512841954831879533574424081786368819417496288203284709165480165895846589137579699247101007577954125921405698440523374778441844802218346392297906772077547111889169748477850727444880507340881762007865495622925709088816804037689156996656383604191715342033618772054820808340079205674543844821483180049221838105088821451503118542901835719833145065828330844756412234811974041278993428837059593842350496448238276475240653791977532599885770163530930371403815431833180896306722117594804758077912129571984693599833394473641096549592014391548505362907510268708780321347292286889250456926237698671879266313863294880799116431434359748782106352816163696402034515622814407985742162095374023154219787536931397405337381478001927212125620249884440653914234635504280531479526896539380071364828796331347291552840639031087349506772358096447100856259896928061991094645062666684036705132436733860588510904734874431961984517146392319433735752338412735721453662702574934787926873805656244894312345487837086380471566425508150948295543699931508155533484456202821543162408582152313514078506221363306034172541234768995454982813360207411362001337728030052170392033458649788047734386463106460221381196699281185799477659464269959285525174603718332605485918204712202757346538838423249143660800506545280369445782206626029882668516521820271621873914921342650153672316430992616416161015205273212771816086135919610849805479546369483396449787574595975589744960773299838276860200298545921284351534425140883801708419400471835696411865049196014138999312013451722535807127998928272598892895902039373336434069621514903234217948391961124308831806979733605125668541743807282953866027676823408271220216643962871626026383947081130596659117925903372275655850504566134077697365883521982924006190526857933745053198484654077195876353608107673006210098673685876249020054040894098126373772171838391457961942573865730563974114842348591549058398879200350190159542718290484868240182877916489000659470802509067121368027636652749072427638811975837547891550071515301845078450781236282345889783007402782036935499577138716846497567352487023428249572181583537736258647352493155462764855105217439194274875846263165474229987341649001845809664816158575591519694835186867065065235862967134744586512669911871127343804246013089163979165864229301653992026630653691709852690315214306555193897983784393323220907930636505937170118722974564234052937899533446166295786554109340701345528558607367953462256147246657959153503813200167768412867428394855711618227325800403841169131399910520576414990916332116646829809212998661681587965631924385793451454213907831154697749054665050459224677837722543240385439785282545195387197119206059572999882574842206197433313350154232448315393732830638465572020527322061048930235246651473548965844414015696194171845042570846250157925371227962394301823678488444899602969286703209654534064322555187951619645742445387881716804594334510084387487676823830787720094579532239500302209460066002810104119692628791127964691996166112964040102431876790010710492202935595268631158216748631083459634588460818369684304251754895379588678821845170379573096518414375435537727894302420801942432691515182514119594871485880167878083140999482601389450414379328509858598919250294057350514924909892277731725013454904223068000167676018244600025982263457099393731830812159246655419306407825152982501116461929060751079303848582800600902176107655130517817155816933507877256344522177240656485457476407509046774003400463757117855005972303841473753603678725889923449954541492292854344742944240529419238321830937455370132354955771791679751041857960202129689769522199968559833426378343490339807822684514265889200073649557237132041676273788470904177968648834905384840433596303113896853217650731624073965431780912330063760482845102990243245669186481195617341941011415290567091826411318172272171284355500587830610777120632059976109319831831470891561923711989421402756794095360372099810554349798122666887154786721017680472636234449056704853203807587180308363274878853240753225671068681071138526397840897086180774072951540100502145236678863020294144685131229214784764030396830055608375381836039036441513404895878861277511459880738355923385198996426892068338217275687274724845047689671168562031594469827906090381989385347433005933417539670252196515905412182989152761630966762730185306640528025331359931197147003819111304744842364898583691392626686237231551041779504155203246421805670022590699295837882293352581213785568968964282176564925502939862363692020409485400225582896577254356015346403219218799124862535648874506397987482041953382866652477904326357916125109122602609870486132697211402080713662584743103982679913294199443518036387488769712157854976409360849936657990276725089049956275312731256870542681774798619730815781685530429684482281698747453399127444331201295175496461195573614314070148720372513052768552805498318720206400579903711734720694849772293325850111773768193445564402445423587628360632647507125064474876836798320571245755517218432529214587760828598194544184047830462112206254139341922781273041709277610823195670226359905770569289089272680033740972845438246648333977550616285209621832976638997818089769851968309740612043618595888831608422291457434701984765001303745199485568448504301006178741318300342159308493288200344869963416421186922107280718183689805963603973339895518817028757739935756780464989877522001086636011607687247125511292455589863546371625679706676609887891782593418133421282307497919942922442285148222096836821114156192840945203949276204100586259326302967306623481676573676048605657858261220887953741193927597285216419834772303623895865429899655172326336453598021976184741709425456639426353630328864285306157397939787268951519053873439308989670120721973864617940805896225734025289141764554406073839831802234829403628231056844565923580387485790887016057744738360294505894371698121639949874651499711244046802094955692468498048118446595368163954921819382723238884468368242019663792025674444060406281905713557888512440436632447656114340374597342194748759268551137651584257195935460464275392834777017275583579146274644627917061576948586533024952282519118299296099114063453433224160066932848091547976865969258872845633447581225811921380172720574726324313511329794989710000645194577013832625908414262322822331075601446542844734815138058650120607991113209019503511569130807497996904020896752584265029147223908435420022427800338903499817512692176879909509233532163063307842346385029578020860128660177102123298459199426735780450008392673214639739528710485808879615879594197796657332436906703846793361112736278184294422720676347045445865176380304890570033455949145770466449346780165287557324366065067792514460900675422875622959442152378674956238883788348020243362059230788715262348353536300772325160553864820575998923069290665938436668735822320468411684123701691255549172207608056487453443723717757161682121659692916206460740873501566173600267468142858917532236331945735731005592261985744416095131119265069110706324283323512832776442491021990519139468322967920635935134397310485402343842643322288522870169204116801232979497644394755418646429632483126166202863761684214684933031913138724376815369025231705886320143341607521654980373583466453312528070843083538105400274975570252875737330865940365583766543896007520254221832637048346001695588934405174384920220767021609971449912582012931911941745275784332026666883792639327674502681526863370552772513438791667547929148890292674583960172154821775264526964200499886521773788437226106245490005164238160960443666230240716389347288162677096059186962061004122278235542266318278984772221210085094513473189731976519879418620777134895673557727198046074219031818855326768082833555330659758906758191373621362624939289226368990471686890143595666476185065288976285477657264315185782601018693744693493231784656011511088078168483861865173902709685051814980588069610930952848429480366134403323321576046725242681056352473632881207057063492742938870545248033126692688761755380625787320209524601918574653158198576716426196608088618590753029810801050547071667720606519788631782283755916096469770601640555860347103394947893979010319772426297830448659029389389128901839345308314047112459551486317291836041436025498248927419661071080991751944417739164692534367934099247196943320808308384662945333758416368301056811065977508999246908222630861997260403205515521843267754667649667974566510933542563252462362072890385763813357480557469910584415300083493918326295822512736107940588258009708455720007684117006252790940948622555140240630630386222431879826006233772015262193632832684084565602990015743283634408461319235260435697134511728430357686787958416915972388443017057196903076804935584401766919927005833688434866834482915843853410091902065136854808506053956398373679291105025016425251949411254008665028627166437774250928826330427296997919003417978483983857662896858572849596413542074519683532098937278774942060846387867271274763261300721569180390287248324814301137811461166033156648801138824820175326353809901893449741075631593861363855349329601366086864082717784585630794068905958550962502518184056959286118321162419815332955055163678679403463104185503506159631988775018791388213843853163075407031069077499126913156547044800409074416662761225097722175557751896551763106591116301145156582688069832137617417225528130186471909504276931247258466719048228205524881494457456961075880088335052070974815280782915482424379886058418795551758883144793232657503384830134962419402740336932299148972718614829320366440003054923305302718405798035703915584806683403770141273521488160817109071568546485516705939797403824784358621226569779797292496527154760111522325250903961114798987765511824447674271260897253687959748642411903861511830083082681558283581064419540894860791620182960309152670751282705251479645957169573532343022514727651523486806116872942427648575778802613954743667815865876207429662844633698843240284661516448259814555603224204287747202835374698661576238967718105940734937682464900038713024621813331927215030919553843887130736239375839572063099634897728923962259166727533663428155749393658115266122264058912444267160718476997318826186401963197578549714467377602043886290242697345080615747898879457865520297956562627499835812412156476331784361596717772884724671163720549591795627214776505084653535260340047775378481190391379946071636629355829748814424747872718768926301601060113689677698315229234314215028930778855737638798394462030666351481159835409265890777372485339524591052344451779859522546958455445220047590906208243966719694757856620024199583835965761808081154549335956576457907593117645938568637227326346743611831991789911927096157505553626785757764302943175659267933799986339872455523134702547513761424399179672576507954881817880181664726417908164408905844572363071648617573834571297067869529503853713980854469116010225164022166711886769694213129484164867897286882286284658846935752051581646675498855730646595268044844912734243605540428987527323707355031489041726905489630913182267534043039665721598811746492306967340932707575450288675868415492753964504929002426042051999223685813120243733239388963154630215904031774716787565645616109616865526997756272527287050091198243501198026112387467952234357934130441515654397380167629276022474732724213593942404417570400517591228626171386707357270916150643684260120176247437479991904663948432173965183930983967503419090842023432648043604784094091566880811894931198131373994414275324222930197317573903185763108460164922787619593174857663184955796288866588265322762164196682531832101345444493317717987136345318357650429772583973428852317482701837535234348463049377490838733613770567506333516578477151262177955799358192729286093493094909899018560956756878577887090306562305453997401663771962754978326474523239791898748864073536302042216737425996057937360553027030016774678850723001938902751563632485311551746592543041690446808881795871941569901794505813418928290541320542973333808909843867858922493027903614110715243719869763314041376432307835233963391522864004940431328766067261988548227630774804302472815196234095560665841825836596062435082297138579488410958020865013620420505618715235232982868552100454206276364820736308733290436067389653371587267785656736095042503986667566057584143227203365007497070127656647432999532565056231106679685305068696855323653063859393303966275138577510006156543640501763889000549495144762563195465910156133686584273832498797382147818985158648623442620244640949032162216457194160009122743202870396739788340444721230676912117115370806216640337091175208206165277144401435215647837891227494836932267352580025640173405890093311548598126486267658212821079546326565731740042689067342241194851292383087677767184441770356764449532961466978974892878816217649838469686058621983610895250977350020319465624936650972095712742060987768251460074324858414797033021184029608676457428613451053795545015622773798097093235252424751671252418493027565602440762291396928033296911331389179939935634608851796055158226613936181076702971771610193535536505257959379245198609534286198842846980056443548553330045219640098457242231094078418495137737849007690098620643919543780031675862582948189628095303322058548503935860926856501211504798080757158542021193590129346181765665225272608473565389664010391717766695471786232389453563269558882957164587650921881929802066885461033096458453142336223788896187619713564963040488057138923604217602355894323811247234307222822894743434229219014773597650466531234530515387296896130909677812124193723442836426744310725153038845540727330605943614829057573183762215705051362450034723063067300703718310633784797176819770142092090837638672972222941801773244814800858858378477735143935704813403846623028401834085960956736597304051974856160700723459515666021377656608784092407489760677405256844550987559179682292633625294499003297300383214751146409127124475140922118085768111411396077009650210614907222807541798913825013468101904898096841643555176055906519927995498742754209829335345523604039147568436924093110443626797934336146698289581019933302032294523905489257761202907225533756307537144668187842583733246688534575730339599162536266401097857026792271466266478567493693497059470060492226114279553888819809225505361825330540916855912326651459585095221651221062544145904200637167672193643444722128134865406444637785935981388754891354223095986852130546258356426974834460023372174607507290942006627598410029032435600807142576123503808479827630390448273942553001898786139817749137823958443598880772742061873172897777607013775812168773086371738683842443558525862845072958122406025848633886744046670325958396680239177106909731540412117275584477873699555075952798903730506049340888075720975489096505556123816159157790140921770689533171207407737120689470977049821161072812912695510864375272360020421033149911460452295137785603481226348537253237528739232399276759192779375582821636896539687594677520672667845196879352566060452433185915225272179506795137587173527031445556307621123716475240086695935496422816931323351811837918834978172326519701720931404730835026928766576961381645640245768674289722765925435963557272719368151344368723476083489139497184241620090922049748718253714940648870336489831387300480463517628022069473233650058826865320799932731102443533800164934829639227541646275428496651126228185064362713098995801799926073194136708222629365226722898662957512780819480852440691319082219152780083012591332080680725968410660518350929228046589247750770913826165110557611492325484409331754746986115449333335384334817545382761384324240546299080519631933254565132123684026718595586830398967206905136005732296759075106651342051314661298707012167657062513670800610946963791076293245988805995185005636389982055247367903370003971866165527121052539315247613527948250992166486118221891569999330304664481803326727060585280983941540110889042233695538724513230818170135985464262942205292006800120378601452413183474640128743782616231873377893565173949863268743198588822764920539365450803258732332941169318526644741412552274465945585397107370496232958548481452074942416072408302148671599982064972149751634282535152235469284251217709369785638065020319127405256078807345437927070599490795894928096604829348647201637019992184696330275216221339566958113557880436981374041782120071793265674173678744202669276678285358443000169017255938543340200936457559442399182125225372223136847398655513046283916968719220442797649087129352034544969327733970263109845049621311562371532484434395129949772570579644118956602009117043191812253617515275511753125211986124290923542571498350492325100985822228199874533231567071499794188321877589355985878961882968349453409949809635458884155435566250063706851417714707848894348627737415889250830199713427227730327804087838060355423980686009398018619713978511849735902677500981124662850291566125855433607015223569511818689740762950251924134986293110988310379982556990230493156436555564697220403203999421512805958063694002711680701436947726338859754508003071027141582460202107187299901848892953625249861107696915027645191643824167063784804838161397449135348490039417017290236052259758397132337534710134164820762285610934593192531380916554421608460682948409187377378753711085229907363119727448517566855070777376525284381385226309917816086533021371965894895219712853666857029820326786042629514662894329861625812593674300905290948918496568104974040134909750835300449079198062994015963935956845581336960456069782521464806433669601099576076230999135530743272055643375700358122563583045910028735579671065467355139414971464299722739975861203918768075518483765892785914079289410697982193212172099159893364861386308279565765896653505510582610836351393556174921561103485106526530747789696027454691213558180831367892156442513845943065715458418390300731347678860711323602789690516494950221803026576152674550732248281111802354360826842936869295225653752199624831358979766016054893731611364400916404283610514043215078899291582322521448436154525849554109928773205386791372035709964335603545648698815299440133841500538195699096748646579079096360824040282460431376279709525744086247428014850900109494637246030817275682565945357208234030727131233867518042547931214511686889905058642685377772324028962370259722513402095545039138670164857627356376356483563256660613692748545425881291165941564387441686124036569914799417370328613624734283774288429403929779435429473682786866886278018786933767200897740080456947831465610448524077366624274771078732279379941982202591683952991763637548216338879319157819275240026838145994417770576997504222180661070281738137899135017962306793778854293392654449300855635866583053196776759214986462789613405479964086283090291114301303274124500837270691337107069663994196435292425315172477490342580568355862031002299381919961726889514248589558879980167287764027463143410867898553952154403319900913634051130949135437336843734558854696483784172531344273404916186424212351546673196455113092617716674243492859722127893923246968732849681477906405931573065714037065384443303646178289613249165651151470935035442412546300367785695208853690755178496428596474138950646175001763042141691330898239846452835555893492766671891034075111318957558266822112308200255221274857321050240778112828723683874535691820975502385898166373070745357402884156867454277170844966533789749889918137100237740264637877874507463793984265341561662454294540781374426026360126548343632848223632977781769113727360874396805352774335272995243526795105875077651235666194766408945241119774298725486551854026725981171428107530624481748233106001107755548049281958314133206035835855994156134022667929603391191986086302870149791130510803151920816369181065987397333121822385847588933676596368397952259948515821809069144860245321806715177614260780898126135677582747631112600482555938816942658050996162340152710435565135618474458119845405979816097839311194296715649437744244977032140105486342188607119249721126184513322068298375218434890750213166459499292912063574448506393777778917060224152932689881355249853286490437668653205069970672702337948290762061345171263885129458710648114375993917579594348513086268100558304888384188409135540639839991038570965970282578117636290207718441328158346634182919905773372984933488521262733652907759850851522916102345529949585056970387616638774528269029455654313801254374132130431603175322924657673832289032881983869314607379010645638445252158959910632765973944077713507496960679849326258220164226096056076079281936327096635399014653242131207577060156412068170609224373612861391423450635356350343879972605181978780249761467292257335171755266517049397144012634153815418563874642186823093126889481292748473103783695999671885934080702935158414725925917497322306124219294295102365172751773327170464141479279435286711103459688209608169464124075009403472713277503736716113220971583004142914412267658098112480311714124975171225239551952023384371812058670941124728370654321530799048102807813175911952896378923312306526116590561429500347549652256585755959083727147725716897852247525595319333919797103243679918630575551389725677160366574352753178046493519984802505970044647982815737592277920575264610125262402970616245972107300111737902082664843036642775404454078212204072511672590583375447389232333494585930689945344239872012431764491822249404470473893335256037712668299294922173477168900172628318681658605185081436417968308099790604752572479818970131913334050495044145490433986532026020369594022687610591278801723248923569062158132127230915802020358592927258614622385782062189639381915439094428860032714353654389982586846946058731936295983601869740421876483656618420670234722036116659738499425577859082947673205162769555708854764189108617812576508556629331200137582256532669285071007543348604194823059202346130022678454519135710181612942550015501477231755712172523985410732799471946384521954692441625886498565548272504668693717967307033383250852644137402482108456051270129907902364789871636929023267597849972303095337015926549157940853527234359983643262927168408589546562604518823649012563027171998968954016133910419853800850609793516377056805819240716304543647709633553204476181261609111730960224826067117003109455681979008629192188622651025705187442283672624177416476714814755419954983752554745311577546271073587637187544891955133058818998410382712827049766696045778209278177961681548570743121445291842321244499923764083517984273378404061429694066034095623192155981796298085095331102207314692493752615424455718233066226486748099768369067690809184690764362793405066552698947712736323182704435273542475581663437974095028248903532764505191142279790314059904219265991068543036682237239624105514200578311251447686568630096480099935059808391986574398515820750653915743280815585071176966437774176984422768276531599062859381284927271097257882996164263718088508517083348671690230460275529594722695641187041526172193538543707184929506139038749516892422184734736483409126983686983253726249395156990400326357386598404881279326283681789975378458577631450790114054090467841562752342333084497154928655887650066512904357525611494460736251155682268977499212855021797483622486414534060851496228346986462386983480993204617579282444871389528871878596205379689369452986991914655677605817521089543440650142788959525268690880470161678039495966780558177784278213505756890907764855862497126154353003292955285615471294157664821509332167645321882903614841419989245418960872604614116603151969835990046482496938030285845004623884076553093024905766901650898850312732547356669727385567301833900548227840701249605423552065781616583192706845701742608139844978386752500798571532750667056436530590344943030853595026685333674215376975008418822425196424116108740408705397917587161441253075082113042842486577986361477624689159404423271805498204022670338318065165221122267980944780450687418874578680734021750811871997862614352720542193468436881732362386483590832741574443118751830987384296014126639615189628348890813867787970368078923771034908688664420914968719131760115501481573710538817029234768625349946728879977800781917806680719955159557012368892675937280422313267616340655437530858212395221198917003075290548013214491159566083118594774965184103978904025012278297255062246918591945648388932154587592023240046605361793651561832025176965871822040739241123164331691254715470354065405903395167300632972433150377252550055955417110983476763019300328021766638179596444851525897479454568119980148397913648560049951054620071429190953287701435259720960447677057369984034883655273277561502707063038526790617075072900132105514205712827042454909522652852302105613384203620360607333187249369477138039416833246435761446213337654070400210815291283814571457078360430330894137508524154364976533623517949330071900638138553286171541202018596193425709727014348709883471069336563597216849128490250447839334670276526949050868813710462651986341109900156022311498139383846810552363321006569299830333888297266058464786168320358123714826751695645009528097630040770061820102901419102087857866270899431026407838219250069916204312262029837956041423502292171371406345586646070441448312889318767501008923469022112439287709942107156392568041610818554538879720003625617165493500496386544479110781579620540720509714946738560392242700204301155490630489525762743133490846868028168678846074806965790675507803803914550871675972767928195313544377753644389184304233412167085401984571776638545710178510785163003679722016417081152271659831542434814363867296092124600776194071208933130394953436373674888311561454792792533124259286289228672774885878045443172749899932514215442407180453409014996718684904320702433673295969636358598083402748435845620360545301407039247324759626495238640495155565134532538940762419903531482171311809046126954522382026710264801555535465579420972162860285383674055618976329238867764044619814679299780106072618296461627860400289496787788442765211832505468985285260887916657120578924169270497901005117144875964648134669280156656963585410036064835616862629601408912888503535234302771995388720047313005528613502028471417343821255169162245362079588801044354746195625609895487800981245261218110556360707664690604820326262763224412390255003862285450927747557268863803108328512844483475776342534240490380565778210904194644648126434382779934316552063037726430541500970829130503791775017492694584797304675521479238400162164153791463874616388680412164693380377586750539468293118430360629580742212425564627004452004508606027644928916736577182608810825576150995213189143861543971839775198645848466491349947439662066776264960804383713619025399300886332521573540852236045223991925577855295242139947351415562087139568377296842130383828695816386938810256582577972620254888212339367238121546106779328073191239564147461363702419112430660741616348996610092468992472054436692620635145180093507695672423908900141747507944790630080847530099044985040850794196102895082633955585238221380081445081116683864807468574301839057137610903513778314755907073224353519874054146128765942636225188802609472949199424881915034306568395084778876000349074659511068807070629420957071911234415289999804056709088254553244591778461257674454901644025030344715562385025336017501763552456528150354206411306637990253351133573764236317049204346852810056479198525301352648231084606902105399523556190550547786826063202144187349988014081759197841793013296487279309737442611631655242947645662752755741179726667197281521494766522406623967931725953705532027328034473217580461659130203486712745169671404480614217423235993814642880427154435433168145207085070391381377659504257667378049577678994455883055871947186965398733328520480787139675953862813884000047400001902428628279347359838304082210996437682091923639705834579229171385014718267397673152033749835297580518455644381090725462604939256942387548231676297691102173968233004246875306955699878724060445854336156600421550643211107225856428505524829306770500833688108798863369559784514714530154564127238295596055871242498756500261803050000951039937845945658588102287361353605708384226820400027199374229647825809557501773926785369259695608444370491306795112395212235269383489915520858061908983236585171228967304376936881089796905080893518808347654679865504909304717533360748598900867963984320777352556411631208988283148089218307272268041747158935475866232647215437701677488541961997816604565286314378415637684409887859274421282928636210612098286990628250199264644928150830576373509287992557993038037320916532292664895285803154480836627898130918265208754353485173132362542859644769592132914825083087853651840556330769842234374849458988121247779258175335221735700669950117078381172217101533176400973017385573666439923015358253574927846973793765293198544545293871474548903812016266312631984068591438335935399676899896617944783818420332692915064687239313084559164876412059915500538546438759558554245668134339031465746249512792409647973006655668293712373773450868668841879001441308391698792201292896091346567223816925609227070135572871333575233150203495750656081402202802350875409155722416704524110230594285709808039407820763102654245387339226386848198805899364756821463001024178600100691859003175434852363258095331505050677000079250182711143341677500689996476283654445346821456932580043218662452023309537077217017907867652777075337815263389348116665311856402009910762224085224183671896645384460634153584493604527283521615815317986800478619938470225566275347673554976570263045261533919571233418169062887802175601416978294737208315770561174620067952004004852237553817161708539289964075105283168013883025364957324241190770975742998336076485528369247851210338782276999941631372888990617528951655119354541819842133850601326223089968686543318470504843250523423563817165600119458480550751427386076226629771909982290699258841331323006616217750069591347146208131760928529180452036541157350489109562893680533243781702296347625669093008311430687416260226639641607507606884954554129495770511564437279905994760495762167994938835229619626875007661561621054952343228928202340040433129599892549770955758402152051421955463045555552568246203046637850226866394082089568932447894433761178353352689161159483341763663390115734230813120623905640645609448410423942049977990127869324277076125014823763880769022720793044197076029488433305574599927459387147175846088383391333848096052401779238311058512004228767970739932003147136637052565911696976009963159554916715236871720783857851493558131268246486467325955419924244463108827153095509758323023572120843075990515929404209216044295463222345141370885074704506748029327936506624692580097865104572838218090382547129784639507890284071807110251826392624450734870285406084740208809894567047525032288630495022616158679061978338766117017832239722521208855650886315600997969390306912789908138701351727779269240769774510595142876398952214440164036746320945499441277046524825565158560240444281111183535494217363630892025969368911453532963971740064600767754395376667191957653553157826408713180271566553431937154001223889612152413228057057775272634108400889947368020319923586673354406398066920797476089034511469648936727587804959449801885641200135995929987968378033516173090960410500063634421210506637819920328871425013988496295898496431435864792091927114554439566852303379119632599653734120396149677621696634272595279452852215884528260134875329922458488210941999363618081887113803600342053364430209247638974351636842685696804282420078927915957673209821872867846988016072481491413111888345152150969585743203290440268912780729199170473956255410060170117448749613025699930774068933053732797618804891314665338314359581858642861190333252403691781669815792590030871818378624461144206550580439672436583375018125104866896562958235817211204532492491957735527347581694992007395031309335595275613048140509037832902979874740697709257453851233482603091345739566300686964662604195464850521468806905826696916291182196100787100429544179908713111196922535225972096942099247148063424963491905529145600414205267134968478362632194093655854333541711989619609263788569347882560747480397480122015550860932698237066365251572918077059531404072535487727715886921303512910525743545974071513336885559253209030133445338442822105972186873234628803841802191968463902020161169536233991536458395953007106085305689808855063792017394525093920193726331327157782402971782037381271661708061677722713964514981415542420551613318656543988085439003877295077599283998651056665530248633577406978756886440116328348163727150428220021912110794579829721355744404107309126495594490021303758904506780864968134669020408584807205309743040010293196801297018591131704113187301008455153618256663138374276620029616216601570710896958122281792366413083045931501042182810146761584297318344995958716239338314140925505493858147126396454097820214781896306337541427735187886731585983138514623061441360527198137841807980611549227555259246029797089632409359646012564297991997575863582787175241288775707606586520270177474849575361738111092077595716137618602277309246370603552663563879157061217148940075464215916949558166881044258213993882948222752884802635664305496840620454118993388964198412607250163708360445103656534811354901291128796987550516731568056360323680495821447775474784102729926558472903062319743112948893714260446603495865804324743279747260804503945458364948079327429835868262536863574605617730265100474594602469021942866179237688332318794167581269905887576472989387061513276057718660203249955486986602225808230677726467015725345543308171074258551490292892409482416957355931155587262678932409884868841839508199419055081549682639992272315494993490861074374679707539583651557219024028120337188507194231682341679260313458299426686065284207376828455178092877547760279252165150303884728720026497265604463704116783581247459885006290822173297072172833116036187407952429401591940449995328633012571058277077485262553946444901219861830839117081235098912760076391808441645783631393012231301379284700693675089801501683242688467319988613115856455924423312652965758482039260302201869035645068483977710949373799151876527063363857831583311238567976010123330924024789025112927670858952711601733124102960835603670012830826770239253003763849107662926673496241907397446869476633557583337358156340796870537813734928300983484421391127707049249765239557854502307438585191073822396323365965389613713224377758214066196795487546239847836852515778573379582988155969336385719504274170188154321962300242324463171754094847205831502049452042742386441998280321264512878841726343740769458104814608752580059173399972330372488428405383233965257567153564517361799640032066300924426064802027668816291337101933024301627938610622206464991462582220679187015576905058316449503652508221524997312002196430390563622830320321394966988910935303318757745360354661263530379982596402338279773600329252439475748065544715720059177083328107828136783164931869106875628459241127184834571648942259701144994611804415736252545288331897997948963931269591918560731768053194959884808630379829979803835380624059080562816611307488327463602489387394107807174060051515912786704165453616519083500263887005972811024733305977340644954361271131382186231013344690871999239112475314133984461727249555304813293388418323777155026481588719993162477806968563914471996949999565076760232155249613101010756002800466763975637625318313966986975837603060075493146800001973441817490826153181758213882713688546093348163721463113740458386676263403637482867196817609072250690478574623460483126868679914520655893104320936433613975819991872102737026961545303312663962853538915009051141995407528778802276627159805368543418266196459671570341677997094244973466537180752982191679509778898399326639043454299954392313979316358810283569684645723730505309306361957344297281172322717715714541719526687118639967357880032994269620105918131902234403918029864572839139462507280396918017599276799135700788894878200346986502063234166039585605771556155459641412711920965733879062852560044245006782818748872769002563779885503311892110822232028895232242053578857952118539019242449848972435444768959120586971225027499868977102370856364687331994607234132201132210117194725434768611681039970275525590039054158768762365634871027221213818382494071350209725199794129773765717785860878073739575723110494391879588750592388365503597017160837776562393168901467045013191724509632172836882321573373207167046973621568249255831030433498021342725805256263488534135267854329232796160974311290437177036505937738334693292279068367358971231117412703408951658174399239436406084982620867150221912920757272135129419136108259714611592173763107797413719675561582328361191247353781841424067110673760299306884626932036618757101466549895464708501232193069681058743184018071629547730251746960285657166454681310280480641631680331426922473343329988279349548919065506103242144922586801322822302270536693778894347885386061504796595604684771412252091861824792371308914512834678099498603941081878767355501802459258986322585538018656870297842995096877469039358887441141000109187637885443752650085010681469267307684993022790487733156850283354085389256293413342238802372066640320325706344161807055260251581732608742008667001641767810741705514712987393884828021448919178908724325003570710468695925828951846662515131354169619767861826717991649600238019106835894763459412082790373530471082772277630785224371252037517683296049661966222243430592982726151257320598388832320570077941316292148168488720999404272658456467457784975490868529887583410936669362237726885986957863461321125507700903125609228790341147592253934970104275874640700061513977164213955204959379758613209329660216310389002588235335125617989268959857329584211607107819329717366470314484116773270762486348926920630653041450713620573936279562799995801240840187035272757890220776606409614618375058359456551172830537363775152134815854193183510693056148933127414616370814268969974493437631275616660415148310877118346653707384716608604813162941445773179277688104562007673975504440630420699194454274103906653979713851601269487189942086217422326637685770666657402752026808607622843149425063371851765664818648988304337387221935577205263551019988368960934272496256519206216034531393962486142082385896691105579575544870892387816539360530338639294617516350150056109432971000763165787342147312596101925896264135659259847814803277090300064273633681457063246064638097781567021394844201240212098702117017470640650935501120516016027809308053715818044892808812671905812248744347982644130373420546718491161939058111577336596866098542146479460583258222971780872687289952997388863162974292640758231051032785396900312447809545773995764241869374179882715500451980337532975345617179377866096362090143065958709703651207212537570716859754066097881563322891851962977349356550642232921644919862321280207119106184107752794243653340512770054621658054528246512265389296154213947230534900954805771064581090145205012520860501578764754904060609953257876887982790123649283145717698059224701583670316560945207758101336970307682568274001592237180634503073877412301891479476021466443394828601970642446248141128642349911232346116514546929979370490115381161198673533134289726814139768758380070038154408073293496593495507157145350725056159400869355300519110193136057678701833517764677058403593370608540589476745167411226232350656619239498001912757666446417436726625798193203100341300721118351769528937134920594179782790554091624665493767700626112333687841719761096610938059380032870466162468522426980336621198588299587733056133325202330402356691088912830235956770552464348161013193797014926612167116735034917320155278624165189689420561754847832898267253045805105274760167634564453168282056905827984739627074398422350385698923008972464587341426292639809315207436159815185739643995825482056762091163143804599502706346230791613577289787265522147126707799739970722191864521392354758568827493291051781435531018178521441141771967255903823848753825496183429572433358329308708412317492256005496781111025266405646490093888451096145625247759167471835551368117421346874501350688743968046901144191525135888791780726118977816213692238629692770445354347338020167979805446317443984749417696676091618496261099425137007799390516327040077325135198974699270318229363437428893846564300392486751486316997073982006147809306039604350754471744308991017846745441964228118648868524501502679287281244022630102818034178653110052371405932618407657221675221774467844271422560063644992042077124105753601088357293985966272556689725339709872460333978270009393094835176007772584369670808836519844697932397519694194393013008390092049379475033786478248200017122417110974011295121524920523229306664479035944405994501021522313286552038945932309526350030810824135481698986663627382054449550957335240986639017833041822188320701469069400736753645466806658576616147362144787460601689772890229660030274831459889936099357317244135609275696005807952186559005373867326769657437257535993534875739154876720323831530765532253646471226030436535218554236173446962720061804862110780450136221734012332425686870561964075163486579918502598491795240843272850380208051399587567290748375886240248360916668313345349533328060623039204037155207691534608810553240871691819443968496349026712058541791220817092384268780248100131312052880351853339416058134175928938809738528005826646259304876798093433116708800350270201067012850494771720762897723650481296790276757643743421779655452443795352377776377223656512167361033174701846242909606395758564190588213372979686049924777999705897884714624849771777399717418262727766905292440500801279001784743613687643219674983244046357185490678425392889057235091641161604555262371203489010361361250585811572464789670118904779216178280741044972311907505412077301658408308624013652844669289929184327577854065172701494529364019695190048693689610159243823335508625170243525090514311474207093656159117184963193872055781591747684032196421683232779334581646759473443838715890159049726730992911657102066531429687993719752629436606036346489032113456621228252986552841872529510084809080034650494456012808071229882745433011371069011598830134475727066960804123072838952219498754202650815935295661726788262805124274379834963094617860075293922424200516776088402661874604833562742800979449851208904117105560598929531635369910987148027054544256316821943674238782827673106450361673925259653910765475164023330735185797762400182403475910787221608019522740545958142840565929851423722052946799064668515450943853959883967766882882900694954309465937462235180298648936656989019642870619654212824315435378011168508103694383366240741619449234216360249217096282460146349606037913032358232300375224592819476181304081579315507036510311774195164149773733327688763182925021713078512715918974393906980754243189086584313491905687216330350779497148532573098297675201264964336006900607686003100776693581358123633432953475401868032123446766095142316723175071289443218368543913744954867301233418231547990950562758040684566802058951938145608629094771830862189507799919126323917929677491537573076405681291659076058467814216184856484729024130439528667187250506396605797844449659739121702237314453825754464150606804040647960404690784902626185504959096752489822123744852536777180213785478687294275422938398407568747399059876716537590126593523720526598605408684106872056144328781177428807824611921257332335995444901190655408735765639891010223824745481845154763188312980918048157118402325398364284937565606935355041989470633795663326853114842056970310463590686537201557495725768547725562700170190557826285989008116137252472849976779360401191778142030160448987028480504357981116070306484013182913797809046902581857272969427623993969121392239942284830990870323143679957591080370141484580004198558942809938930634128140035462248445312392894314379636068305832820213631690116462011543009364548923443005677842294570619612001300014068093415744502260987203588418104807092984447069863211162014370105854057286365986616938648120008978118257050124337056625454132788393336566611138005684867148904312484202525805794621167835423525915716794148674604888740257408413130765316369146059702010854360107530337334091307369762200745261920178721966760476939711237848903163012767362236816497710809025452073436173117994866623790609138114624511204211462363351535736031657195747015729719197768102466673707312085893592079462451915840312882198275293803869055180776060768753769737829871098202933089309969579953579612376480917236971189810096680996839913871678729821806836535292957864206492172757261385921088952209443916263897481846698393547263427577016605422580195968747443800820147814511822958613657047595588670604584021476578570643837892439998906433488065518685292509139300284783548426414773395293381573226447149051352594623403764153603234842313865125765816517524751649830722111331984373756847622495468055249514270715156052640904343379239939498566306562487495254250411264133412969847765636398748927177777809750357093835500994924408153505205240420386954587306078569695215786257078106528253823439436918193622469793432987440727548077470114980291337005179697005832536083844430954103904195792793120008646721290383344106001538524976667693210215109143945058586987459758128976293737063152755862047074894229031094369143939075335166729515395351602598882766160633906681408813398398062898200890713566581702847363995326744969618033681089992937378669506471375855887182796648512383700057761463944664337107338729156441617489468478013957886808783018460632491295460971994222311226874908956187817749494826463830151624642305899716932455125141566238548967808084669040314015875336122995598477113676483382688541770655701563629456707485397852581701718083457635982653701672070878294050809803713179407255980263555752505270394539007571243051855862479095389804946090329927700467355609787304222856331904400278506132769124261657808112699991279591969388419913837203080727706996070135417755202974254719612318261411713810968460569826182207821408045216993197351197606296777769611021191063225533636217340140699053546846106116533607085238096800744212170677823434348745539342654164223063337330022694448553442507384339458750661135461964183537965669085257622952504176656899421329756261097378137392948419943363808850764671140092437335561334696184327528910363301255654651408018992614875638912429274444876642459350150553457776440327407634878200933631999645448394952230057024005990919994654390812661059394906980778766701510305680764627843602811853328622864851571735454025174689315410399431276552701163066377520872285261369314546582116216181795858252792474076789032050990184014227296930632569898920753051155657523072185773153159423474763642730818363495119812550390441163563847775588080059119943274658007426258650106398400190168854763345666400190204442203914559611300226864915374297581313575648625801786741340339102457065999619468901369034023584196624085757345898754400023691561608715918084464398766899151672929834673688064738678192901657262301153903126561129518122702660251109936215040309932948360999615130768793112535841021080246914036312360078256935546059579675221208923957923609031915714629055723528958621711640619755750515286697622865587961494637311247876957400108146182583747486666108315643312203141486823351310816396186708029705470979729792227432954883460995736670342190849309887371760446538486614491267665887307151464717889553321579086169433475513981235087677100174073026736327063047872780550531575839548382986976953947386083618042934776483531427309954309654830923417329423459630657242584219562620174507254457568727434520141514535144102453172485077492213819925440778341623996132911154308429121879147311408125837571188981302547696507468465829972438727270527987864802667651745272461243934211461189621707146737230512180406441013565230977834553868541721372403628936686191778218778393841921815564267797776160298120810951649980972238097499162317265632438889482203203262153243164259461741509010407232367385453536033002877249076505611958872712164567520953999136788436101458705042912288982416778132638390846310696382899480362260990274979663915643090113092750490252527348824943660801976961450984346965705308497741797798089387023013273090180680716630804521574464562352462077625631237827416670366005935127084461565735301906840536915689985341531351077673674165043560966002673178266414019751568047896723315163074805307338255714642906197677063818002022383533988764670772021648535886390500516417571664044636609097326600083610150565492373968489597537275168946861460469128631016457234256968426193749195052084897816020234690488638907745383659787785045023345255213285591067254989457135103593183547339243233593701437412341168260348169665649273322344653103021713641718542457843880356452817343947383743658356929254452993244230751373581322048450837225503676090043742110751173905398827081001749524673224853425360057138822008038250370203374552073769166706484673587951763944783366443584030427273620900806475052689734560474297652315774469182744672891622037638117519407047348076691389956567449497054904375771461944065962480920277778244507228930878538794480517959517002920925579030411316179835258176995092556167555842543019723440562737619383276386460559924163986893912276855514015515776192926589638342747194873625004922915783910402901055493802104095067092813603764182837861978498742967412779052769500208314554077484632578423971986311423141743688152029930320819155892828577224342011477094082339580534181871942279926904697679933983320638140707647145472745012580436784587376980373107294937472136199318055838847905460419627744542823502071745032247989553065649120501859571694661149600142024603203018886918207443827335220697231659108424338984365900414831072546903389978815109408396319550896704308195145200536369075226146738497248588348812556706802268387254940372052750882123287659684847744140404115365992129895183511075159527836042524844649240914101256515261999005586165804810325349850724832167700404452659563257584462102137300797458638415393560778507501492276707068580478297288462723389196818336393174591811292131965179577499725283482863967294936397047123776218086804576671421634279326062890862312018108590370136497711572157217370230367113616180217312708067843041353998162890409903259750702985115342980535035125305202410459231149783287518477472074826645011618004603909811748075812390784547417690947807278948816744042366418069953034044181154470859514100625025848838384650209426350963493017610753987291492262312878594257109624652071008606554998236978206774634096786700491524095528713650560970581086857621628882069329264814336949818601283660596155241679105770706029587825518775290429460036837052216251752431759410234205462196326851300232622023393451051739469839589014066626143811344973461894382107136396335939846149279735922578081738667524595199850443788186838178998419663394644869197351904993551049608053678203200154720246140088735567660436265886112353771765648759118816426646841118238299315547883229495661594106427918123252838244912128736618253947653161784151307941773592729277040065854436070583964272011616320090446606390295298216705889634554016280192865236213797296270846601416785424467738561036955534870118340732161382646190852394553579723639021320629737736432114982247595734729329054264660991828790102663679027832548897415821806476529952579021169600749970085088942592488535469442639905256715157972364685443693432197897820477485301262682223116158522408622948313364200001950263846876883352246580992777596389472044586215863151764290219920024921832748817551958725774942777626844473521102214882637223599236250080268301767941903705159123482700232416603336166772317688891320454012675909457685927461041413289103815856256599283560467862811672614742232620948873677331576345973988617148753408664408337093645474164176451227324018622603144819980182581743897243760324047971153786335137387801774864468427379843036519167566155284584517773885569783393123049375376961044267308626252511647448009819038293093750384041891324232756212930053383086229087564522834212852436026647092425144698637861479480760883071362057465214595191948569481485834854689423535077421612469070542613080477771965473348276511470089409221933682261779667763143109291755723293950305027267976879223096052175725496995742242715385326656670164153855531577189303951087035114813294805455701194901722636895765360725338341049533130735548873693084693631620416121681149740359205882386524789779200302718660927854528570461923047091828282471524617505286293565152584321485497773507390656404150754122893757486234584420440705277567501093422165024829461091083266425230644001181486863736024420850869086835002085277801891466070310347508363937190883934386912275742573294834557884449349285747619816910549757123130677783015660992455784940824563798500858171600961027714197433570126632458764833569611419409132017214440530071128758361789865289844046351668948504478148836689893610405738751072867677920033082135310360252242498582189045573278563518715853412550186733232982522689995479000782384735044741798235182201003381246146650576813055978077155068870561576713940145532333752451491288704996460298685724781592694903422289520375008917763290260925529331867240387758208629934034164050957743015586855354664598127185227948394787076815568023233224083422851336517261967006058767075291128367673866706336997435831959016839972719075466323451025302147930382834820895385489268067656793617392265616325581955062835154205755043594901192891166532004326637832869940573192232392101021130554429294915969393984858290481091807314871336282114402432121086888425381744631467245717654471786542541627520370224058024057423577033658668692028061040389067006944537336186713537125747480566948865932220860736717391775926351660473253304816979842970098384300253026095511854735056296760926605093203770238499614682572624644276278210614242205680000845272958414608457184933833600656795518779079100457987431359912431932951758676279262879739893986830097998469413602573771071671741449455178077636548113721405950253797725846398118809363781809865791981518176160425816418809700482112014576602779570827232922674946692052129004128210472927661513778126315661212446794226989635603810418922597690288253123957436962303705361148565850307074178030261856106853954047741254884780337318232556952964106522231866313532054271899205446414159402279271485187455316992467364590973927825041286676839024728080024456056760682690309756453105234606486207409889273658786637901497483688468821791823736692622460591068924997220069428528428729540697985014651386604744899500716587220747800766768571762704727307574817911676609107985430433818603993327015829352241936545034317845747506662686402422474557625344585937583440137028888645117213029035961575072545002863841019942072907960306003771774227994856703906292680635786038547801380347687927264284881367230950077996104009094897002766352485552003251933467532653682141216096063279111432554376610815821081594190123476322188663601703335749537052731421264239823959194732342533260631844838902500560623027846654976385099581235666541532669392488355114174157203976511662040114154402834869954490092382822065665200920726305357399455416764819258125190828682754133745684065289742815602304881553987378573262625527390020180531144300138429685846634550185904475528596156997503339563800978182532891663351045319701447017908354181567820235055989439013821661773388961432842020149932016994945350907234801553503009907490249055979617586392417007053518550009944589576849965571914010303958588226686177114794708158465384700496713068968424680405770059214356296854912056203042995675329748561310700294222866135653990960408321725071638167348275591716380931959371871871285050967144026122248464774813440397744245254550149852182454663782902137721315097652022520326305035279031027551106651582512533113376349496410696985875588416390710135832764887246250508226754865541692314122410831498291275486101143038087517009963568891439001246349448531090067264109846922085094984450215237760121444188292494542872285140583060358551444123350634355488462028147509351372321669360662535567357489966676077805556609657334682798863868740072457434553991937319532518520169044830589030132698455995050702681477594666092092072677958596201854063224419382038051766208563026681692334067179082744717124405331429466703934572009725646367065366173998479618972942106684728164205884308123309661112537318279260880397456423280187558756378459103010048327492423696290571345923690244693869982223438697678032460596179067598567349354562555476305947137536494969300547336317335264894253726519793991664381468706877478038331302819495023053327429033158920825114387074688931640203895421823087800209904725131073259815791179564049191952951009626012934490392076161371459736397698050799673486597841181247853507489546123677175593233543845827943623614367765335578936917943648608967202222463795537549203628703087620778455892751743961808467129880624794793078553677972097319101707694052495383070796327544089058611881637769291913064728407062589388448014501690342832028381051932985234383425534424328593479704221833207740623442235408391528406140609079441086093651527177893693309550830963969383327134483168683769981942262568689600148280775739963393845391866319434601840818172685866999711380024886306318297186827338441415789428012721912202988162330998626311314072257593906521826732660441374749539789219185151188068514973493414554840090467240375270622742101688069329225161473515406213224785645224251534789177105225019233318168771115039934469502195920459946729262321513189439019670906772651579541388163751286730830003918445709467287322481489125082417286231343059187681912431217510372934042330824535684725110356525890955155340001627996896377364964253314218814321085388297006701280538031353676676698659938346776453917408346197753215211359693203226369817385923961480063133099634896529365950693164927648966700381602692650083235566333343313665760732253002015321150789273224473570324378345100970660375608560670222645692148707604443428987274118459704973597337823034123101861408301182870043934553135846698827212114249345430138525173444484115046496482299464177737572285685564292607700156489159277855568246981669810214793035094815014701727267923816714340491170352847894261939545533349559976526434220684198464935214656989833479434452755677524082093507560818996311912353767704165598570485530914518886378833675777198598174713981988825866229505203276805830015571590475134666752048206994403093461319758339193362734362171722141760738924511011297561080830348906830636752569183509765332126049678021823641750241056800928630625599279814589527940992953345335574969681086564603707571583193140066216451519214895413401587225959807002556729786488908500784838497836086000879162863567586849834745514665570190167075509467213475576500971698612080255788025809612941357007587055759944616109491099988901518297085869959632395369183691361955989510805921998082153293409597721092712431382457171437011457073304184975628576878969467396125948926887891007033358905741650405893406683590574010128771615627015450664490141106367243222852110664713064486290991035743897308103867436636480621331292196899405729447654821842447809442838529391151627542171327659902343822714381914930899503369285313802410444765860061488691020115287758631101208066408737363156821091458894963235841661051137892917338317230016534522590463468487595028056405712987406708529780512261985008280412520862733844634421874944544700742647022757796716946318392881671806026288072493511239296858893242734884518304141134134195293610393444156718518164284560469512511445067899012511314775772354417286172991599783805831960334640614743193816537346715988862448218196859934734598041204898649507736740172195556368220128820959710618972056594153852282289633853770250018966390903801941180470797262989164277783727807315124562620374499334614830368021810109455583448376649806731935849840792700471415789463284382719176396389409224441560801743010512625607186566612596137115936969964331227555525172855914163707010535833092693386007587867035164966541263945446233697296014735632439306897714435136013745648015885971708090959952645754944488358662015311632703081504621188947580528853029299824876756279336650336616696016136305249270439994750455999976355016813893374679934978966663336874175463959234068182819352192294013998998795150056909827586397271521917339845217574844177330972640886847305573120409399292795818005177146919011371066531456908571668621153101939338331087940222861647385461359284571896120398957055877923963818349357865293419970536471817737979274696926185545182016922127768275814007788216070499860247584637030179489051493389027621587690304249348420444520458481992811771861825749467220010656511159895073865918777816314328819032843564261419604128484705615364717502871210864044990576002279313637236837923906936609063142998233601626477241917032888509818717404428639542726842609917211209238357021513285849201880071987556925980300582913081674265422889087172927058044861591241114281274858636596658634521091899767403387347753161631760189338468104739417499372223041850463185149959268132734829351667981842658517085346497520736307937288302389519855787953966346112146920122436724597312498095882504723914100076515165995927567726564225126750668989461930514235577292564775177037764489613107398084664309817217892890001154154579605719206918085459336085651175657176208852946564959147235279902527074750554127909160026290053410739838209458002887449699821681486015576100427516467977154202774534780104447744371229626180627479438225874668645984049888707449012423353467779103233405120494704148747159452409968663691338402721888131724146642834510078680584827861495198740358067315451433843123279749328388196363472199493546627506591974961879247071504889423181687601979620472742796563808006785213624815209505368380416958358657702634639700000960787869417865072369919798551317300927993624961998327079072878826806821507444787659637058518125766923399048058371062120956858461115053521593362162571719005521612243804020868013038848553815900325235470934042201344517457340021721524901263296672015252689169315136064922486157350708748878942543774589757655875810763959201552916088876670269371525306319142439471833690865163553195214035278317210444684611896319505285264971180389442668766544138281736877666574323180600530525515621517198988392969318714034182234679471598358030314769929674177660146189877809170151472275129769306727400228897796003394126268225608492588055468207728313896917711549138213251482775054937598332652670177428729231330176753755615641859063393291032465765392178437416615758340777874480709694156369036278943136507723492110106133734513026562921753660924009822577184112995187951464438737319463085590547926446606569939630965652184997853629333210761537164725064557711311969703984976250340040366458802625055916367423545955941285831278209374653142312980362203973851580397108887777621475213933312924762034974646489097852806712318833765807494257198521323517305015108920856286994506855300354177422237025966895756598155891755956592603369419677164667339207529195024907431196211425890391451431800773555241596674274341256316124634341247060145679026587035087571837184363530432343404051316821530509173055906889336104134206846494256141743844210893307060338273456815850155907127068258620354375573375480169140506953103055332896634236965220564386686376340246046140646069978231610526722548565935482568551928825126318600509133548553724257948610292674497718649644252706046289905832515437849156877412603760068372975704174668915801519502124731085236351204731765887414847253790535920879653179342025714108499302634715053060654291534013483111627793758308703657759280699465363936087446723588987441571349781322503349501240187696428472541691897597239014322854818951969065560379702241995451125159620564633832326114524880611539134094556841717095644598140245152135320487636575969240623100428718870244724459732950688728440701548789427093084873424781463847947164424722810213449306734183415672975479034838231284231783340226334732156998454481614721364266375589033928257791151641046778100527892277760258630417638374658454159761382135072312665910483642366289011943423364705854011013635271095062820580998151865518097811243862506482932839247316717974102946363999844717980149466505297764345032821073930008875034758368196969006782629654966445820539069175052784274469104407884680876488873935937109802710189449955248566943209270061010881214788647601799620636391869115700253464572276525251037727326698119555821047573853393513769835707734047725762089655252730541711897990733368655851996883260188217261027839139012764657553229755379402697539203036650191165170307333225557992114503108473414451582363046468642968275928339191052672948947570109238798417969252088963679173783242837378813939486212604503922315245222866400976057981751817781863002462763949846715144092978368984944652825422369735628768393235066863619609105994555274074407807550100352966332362905148095590706829617061064089927001396604286485444087549083633333213919274121727210363116072629755597844352650682927339285345735665345833346092310725614154056758438903135696402626693107202359134167661777031677647286897295122966843903045669026300497730323188674759001679533899276058889154702297881730317199079416063592424303907219653257487381468390875949958447594373984341326051270112224748064907035215447816439451232769316606366347646221969220949596174516799395163459669023435895660493974398043515831251778100656887756438894203933571181038634378085041017781297000377247286853156007997784195072