i1 : m = mutableMatrix map(ZZ^5,ZZ^6, (i,j) -> 100*i+j) o1 = | . . . . . . | | 1 156176923989869154237677569 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560695992251056129 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560695992251056129 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560695992251056129 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560695992251056129 | | 2 958218199741026006463782499109574311167189039338720031653426768146558613783583917596754595310302614954602666221853758140204743929622260503466384289773198316148867615623499269949870389726177069388129689199091446662880587762274402390416436617321457458700622437459951618 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696043790663682 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696043790663682 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696043790663682 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696043790663682 | | 3 334804776419367764925262655905182427817665839630179145904983140151140008093324346500234367644484301970125075151208069384377043586452627215698522132421909524545604152634856957234788081907708726904302026592601802738126490377280512575556492154477456906706461272245428034626837635784442735531174989828071882948908092230327193432021547198197724651733821050757397761249375187944456246762773613038836666797137012470806408863323228573768790938493652880703671518420898757922956575646234100479089642814798492067667613556092276033826478823085554041484132591553012063649239476333767627913376373513287171574572269381220145634494860597180805985812640273181686287918964022894618639444514125510703673498702378564572467383695855501545090302862960823309883634744729716456693248616884389986964199720095656184519094271067135507079436453553858046568835928311166379114034809640555234290603821280176701477589476392450126191461424765249190687768976902912627982739017522742247494942744057687000855251903078572373521509260466096446898904433189533119704717447104973528503594013585358573365703785731699238834366388819678673470230841690339888569712879299097438591106174987082880278474271322270865902796023555286380757448451273582288380376298528737438782080260324517577574089909797848952407993048237849079154372810060122570404431983076602813553209100661338896118887697343866075473010072650960813905500307766401337654001552314402603166091139105727914863479533843863966785629998793413300665501683774495524456635807581355502190560900808404897922547778709170487243918224170991572793011048954797587800902395171574146196438071233080349575920147595913318107089605433507247991866580655211500478496967446585568599935995589579188626680635736776605811243725326097400518053937422723261280499533734549545242637794399404408752442974742563032632719418254523659624231949573284878798792219628650687664112557307626896072751206812338733324236900144346974324227781021480557165149884464109400175334899563546336115810182105792928094171820763522403617602000673951206234415526967917650223459147555763603598225511006898086912410383564979187351636971590076558789884896550030847194104199140942578362949910440410425132765121665497359578298002720970229027336386486252775347150428965261992992213272286284611096240740943701964828261270546748498102775642516838777217632845846593828033348496937181783821982539356611950469087715322896269247582338936397349662241926312564892579006152692964656552364517241869387870558864025101076649679320430522318646797753535304769953478968044292225673302614465970185497910585136542383310252875177505638906735630114357251 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696095330271235 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696095330271235 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696095330271235 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696095330271235 | | 4 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696146869878788 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696146869878788 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696146869878788 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696146869878788 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934621375658182926958889174137037018916963492298626632797375425865676764369471494098006910359753275662642658782008478460201867901088013027952404226939082395442871542984547026705496540454440758039653467093198225180457002548561476970563412075667332099888708430061130423300187089398668560624081900590111077146917935600893723742731735819660183336307944510250215089251972988553938860748309801082635209135616501347724790088869128604375189106124314880593026446025151083537295002438966462636989155475483919146860855006113395837494579599441590430032000781739532309445072256123523626425806980701230150645667894606163165690011880724387810276024033731277864636013103006757257129377106236052198996368433309521841459965563691717984886561210400800010791521823807014985389115351771147362146589303501350616297388242549386211786485821908507120786129495124099988405840048933145699879141618516940049988821651413154230052075206513566045013706266338244279014501180713921182150758713707447961527831132926873801302189570932418223553961729568333924835306485375504970690428746296503983527415792383706859122911560007180830546573241525421814559653059452640505048582147266391393323835245850177325639068769985394670208452827275951819849172086986805210643979483173457607584885483752113815594953700723002154277439080937965231542661101653302305425722045128310450718484836793948090198812587869150877527246540020065287203796375054003867376452585907620600724562927353489455757671909351877356183331531883037803328306931092943731981005490282369184817583834559728391891447101473117269268960010007067094826133710685051877595400757798787426622080092763700832942772519581891797963133760713157278127040892757335611370907089132517590615624269138972599289817259946271047892616961109512362933899219240632852738233256359363034259971588173792428682175947927359815648138562721288312241496634285039078301186347654238068880702613640436072797508179330384350129516163550168384723263071664710490482991949207555022111668066251651994982019045557152788499695457720149392043073502329852818748901487908594651281021342224119279536728848793036651180202630185110390783769822431726456426767376890443250145853991342433948151504810942516871849975959886190529704591874996875602142217429822685863654505784771125415934472692941422423081145828664734964284800863932656556606637566632402621604461830357531152272367068736404097250721537921413035190096580846139761732517762566545288288419834054827010754899854395844055133919818091165108614070874013595689580122039207973896950085033524442875053795983396003976619424272020597612797746408708340983656543184169931035566684245288981896206523710185327434310213877190961301140887201895691696634320634371392943790528629576806520014054138756776341030499533184128477316534677468326700723826885290254686712695751414769954378782264858131878633514198829008340081556462434220808757339132961407232690609241890746043860292716846545730041173005935487974394820610243984176526666375840398774302127207240041696043546675033566586658446849310760921281698554042565515630390208175498249090002435239878120501826101332709542314976175110112393453552210803807235595538062531888247917944243364890251845377559250462787109011613621986818923326962288463830738819644548619952566466553938396351028359917512078648218515920331539228966120830445291557238822594485809904482772401113270124585830018786342312076116478604256796060037577931796949916168652195889385301221927918603099568585090207909087642980681198101339143011872586611822481071320899302021472985456600352811443551174906373016560558581706926262501320654328531317066093186958927660181892277833114503787782979025524652899482057018946576792878266260628068771153284994799113727922528888147398916099473326557119123115336428192835060711241963700027329180453301279411288684560152746446352044170013831333027735600950548586203582431950651724085965637960680819179772448902871738143545641375877426801908727309714060417617550579119399712201444537047000426596540970809188573839376558491658952244375720443860673600423604212514624796139382041358077399885307948188522602727637493812263572004429572828149064430021048357296771023459462404652434845034190426105842741864571640441150904806311598158010479823647643525663876385549385543312993817368564467918213978727897218845064834018169625565624905324412793207929614622318679317191494831718095508191418440038793772830723110169968544710435986871771717248320625945769029330419925783279859546855004594001237145226732482724116566543830228850533079237934427587397774959224780524513981826347408465908774283041414819329080348872608337675087757485529633872021190870049604002716562431833680191314837710121096061328736724898536451149664129345280883692895690186741665809771040950087716612967440978821641961874024245710997407503897228831274014366709537573695898800807204743506677155483615998544667272757636468342182590123625432703836021624708462913653460725536620864415897333862003246606312119376385026915171945113791149887532769511045243510672410945046475657163090554704888297475070862058638955845405441783581591362223901907207367130427301429741362799301728861999378026879295286649312255529822946718023437071668996957475545244704130843617762905220702155064191466652859431603303167242963874798826597505746731499141964414993775484072476672404503679659730679304252500785621915492774014599000499024520541526541930959069893306038223087384196589162875854817560696146869878788 | o1 : MutableMatrix |
i2 : rowPermute(m,1,{2,0,1}) o2 = | . . . . . . | | 1 156176923989869154237677569 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914700733644801 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914700733644801 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914700733644801 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914700733644801 | | 2 958218199741026006463782499109574311167189039338720031653426768146558613783583917596754595310126356446269830067378884005205617953506102966948223242654444971778595920037104661577784629095938576547320275161527300199330301563316160187431524781902015876527296025920012290 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914752273252354 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914752273252354 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914752273252354 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914752273252354 | | 3 334804776300967089228214581666728740962167269220914687678086969990705019380857359313813021229522981180567377054598932447710605281105750853721221655829126593952902797186062448067870399716337812203916355276652657900597433867076606905622598759024526718993180894738284643917614452624426985935025772063347654419985825752655697059952635956824654548928092324219741713123437072309230443679553117903503433917298753170378750799823337758869647778404448691849286454259871526370983258175298030687358247195354144834936798815974008328795718515680737199223549587956237433035132935975640907791383577201025867299329256909499129000474862967500169708399713893741253081537305172008973682888358157955839526972046819401224844964148379666263217346536047245298629699644995430046089827938887745259331829575173608821469274092889675673937747089994637672972477451949415028034078729815725715696413761563004431747228831897068969089778980211374308842458673441494655748844389188181597024533510794530173556733540516374462653151885873221449747357553034609066334732740108363532731485675978198032336841494205780462432128953959453107802831633433371545072648695934626548694055116708760467028425732607768146947198435251990301764331842523946828058942340192722003143079205850775104439482575470487064342649720637938716642709132604626552524137460587241190831545090313733654452557829297286101949199455847509406688407563113176587521243214874133563747047460070236397149065985832765968168481473410777130289236996910654840840944071933077537524278787612929535121553522617139635468448490341600894201674280480313881706332357425138322517632034138987536501883418765985682233710385118400687369133844235571367297743476987643832092293860336244936710931805055360020598682405559167095884992554045092944496962074578488030238623188273143539465462048264849255401480085958135690489033072136086847483609026163084317454836104519408427533822509348623688703794175007733689911877233150708414137549308927362210359842208697264380782935743500111524542522205961603528992357082003199379066927882705420142506844360933689688388647610139555986708058649806000906414897281221762500123628342746539230078039935358645695417444983566366335037977310696046050933569907524446855815779782321727745816218920572408766919046255418312187587752016207289120147094416566625335883749218199036475347087109234017434498313601920899293966794234094384816056404061536680926387160024396105301515617136757830305311997264701161528378522684852963407338555470195942208575130584165545804682328535228951506405272365252991318345769420097032967012011489981917629417925782980763283991281025299775491 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914803812859907 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914803812859907 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914803812859907 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914803812859907 | | 4 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914855352467460 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914855352467460 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914855352467460 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914855352467460 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566634788364920621568338980937310322810687503406820390618285059050638817886363219890725224251249830194451548766247320092567401418002748455251015710480969405241944146659107204666020493005376164609862708633784639836367974012768429958704157967466841783876467951064541825006169940560473311508754879662762786849743696418812143604277848032947604483187697729698100921232473325561420046766330678038298487686237227129975586801855018641719827068980435573212407802187415567916323151641509745062960264776004266185668585211285414579964091478902462933103384436498375244890478816731210017417519308791850270156524602213375035646031147393652988860110274513371944738892628583193407304309268451000540288295841977697876166865264859684058428666824263955444802318067031006794691697649329260157647232564251118344606377200530030147408718947952241069056557722828670246976407596722746663094155856891324808983326244481001328689621394447503609643355089202397591105388480968922072578527920202053343787229694560313784069135555093218095831460687671610821481530486734068668454455900491293053747766818598104955950479657536081253229509862992970239657859319802576618891942710071762405497388425770032473640469164025298518517225116197618159733553536148170663579228497725325156901845940927255923626346944747725061508255453299914121800740176278274043242343288319779611108701494302089438211731801009914757130709573515651657137176826262402882898436564372631971902623638014025053766389681957148285158823516046866250902696506697474482427186922941586878965367167256282176588961963904649847417314339763359544489314352124398294206504448965240973420306683682962936367605261893650737701589654422667765589969382610609221085635044369037046052339818256533699384785464462318660627304986378602007659315904896243423910170870858968469491628922673995279031960975437298024739963638043315227848281048240158661107252555292105403973499028347101301643541092190338165426697247905086292462740912261112470196114082431631373312063345534473422082032097975098397102600919107732410161528273850869266366380393372226447217148292610410819153364220009869842343647978545394393189475310223330222923767470193299366708266387356637158134783281397220267810520926061860553375948962408477829417535104896888574246857786538029663870564710430270910511107094992191012161093311378309708332421479892034526836215105228413350452082692771919573701522325384752674218805418823144512258192565085915005044237306413987274763175673943148982835624118703811513864426386385077115129097223812856470487017335470461747500847699413525053488729014527073274087468804639172760640374251853715108973481622789210417388170447542825345438478419450022067033329874693767757659138287656724189393104738249478710423235260797668425522017907772624002518493748912874004771429055584097116982737938668935587657147425259070048683296014836269748811823258218537453733758355915386626758951424475570083622701289867883614992167886728319462662934000099878424192308137022452717096613692772046130179274405552061221201679048456379410437414503573601393085372531501617403113392472416883226830672575740419716573071049907457710926538446202280683648710037793818362899552883132281003648200168540555977989133000473781168865013728769409425939753891794330567490872392508073836985466566070692507739447044562012417549133837414309666487773456160228364233161282843315538129864780114989855753978099517885844808241871449452353533937811521492841516349254999643215412672382104392477699606236287377111683874677219685040117301756319640620568830496109806221420964538412966925541016543477806103851190086156174469884339448683651491748418647228906667455767864052518883039124965474728157916767461396967975503523328200692782565387067580486786497577948622853699465165208543374240035255491435693341376656233148742347968479364138157914752462650985790404663663389386792442329065801011946138271845545625940741340572740286530543613249336785474350068329597938975887129195833187513144803532822425060013558335203985996730767487632833706217181747866430383636933089449323001157211817150867302289379210419552781563954710438972390637759692664116237672369281025348567222618875701335400990087621468399439328812829866017712921830220150036945193430030744087976275147472791343370335717909988856748638110701317163538000772010842234793556016527396083041951660471847285436228219104283274902443583709201063140387874606012776321928307281235584995372007043716453330054969151746532777178468814087214822721381605045545312181798960765495255282387132150588415917134374975920846693642951104837738394325566348864818991581559483487021852198008922239116730081733406435722906003848421023556093034986586396404628471448694063163487352471466109922417619977163585479462828030320361095181817885109166950821977265746301674572611374599234775587597110627578361189052550306708828196878472413990300575654296902367976875954244880621476712752150939724589527967215088830838065734560169175066088746170935795298261279969252495874341637336475467052610601308381827099186435367952300597243953648139609002253236520074902639574146124075804970813166294229343445851453136244746738178540768396343348950566223692228545855089265348368597578279042974131874324351192975048917031320943364639603724378098636007304315364559444334778374560485950899135145533916316151707156292940632149870528042716135270945686689091071958692880277229811180320382845897037890600567713910098494286920411017255441891072441687780084330402380841059931540469881467624277112877629050766172630407913937560275815795519573050971053369562578067686633673741610757851129057506099698697662427538876187553402093123106307093476528743361596819786153007991382452561323080133982415528699888991449118178049141504600232589579159001037968448139356972897825115370751274229945709196555624816026595778000494408374638139650136116920419491540141409294874819844849111133476842857651856230021154252947393374536940855901389921740661310038253218820990899529679795763831278951172293400808586359595668832755956251312676548257880246307282684526091940535455337994801390509866929350133267266077657207965117650938408452938721631835725559492731101647883767905408799914624708337219054474609144853406405712539195416685412966895953637406399899063967666652820223072331551950612566774485975137073644625627274606183531615413841466601376959772094967834803666085104468271832263456259613740807255227134140780290038550780787533426490235109890045054033385178875344561483423271811450375807810169472638734174855222939257759460934179124081281659082294851895736871123960873415676442954125754145493260593081821431515554122029463612132268321403793979983225153720542186326679241215175851861273667061217579954411118672980574845096861278501977959170017152613287394690334404935888687366811329852267450795820276180290650450245392514929864934817190795300838504703097954834167023802281956778213040483333022296503189329818043918359167962677530202674036415372823483260503432373765525086969423391898568886610880640093470879614372042026207275599713741464030660662705857415049443414960661830915621390208846780298194418698386546884117205699063153422510861991206290708607244255851492770372950371198352446815072057458842112253446301242731329166592751452841382488223570331024534060662057952407832158333768838780002846931713606000629149134565557337037198267035256437779567382761058800058462561503568841049445125269400822856535191437971044222703622338718050938409342138004456825434288630311876422679937273488800306288297815237375897743105460842800038653232322914806041036090344288326454529975616263300867952954028824676199839642620671016942261770427241101646185252714374972972648126248733127947671377331097029566335363464429809272662799899738319182678651700147994262782814966520674709876767629109676886897605450119630958115731924947451914035995109186007828634875239797696644323202999850751925964691650946297052717600602096305830378297722399221183995708949506814589591439332985596350348864826465067614728425456974521539005716023407232859627708859209576897065531332347772264261663332328408243617446043613652351012283437617779807163122741998013725980192318069092303147195834694760948394204758421160559403137528986294630196082762230336324759085153973557374236957941416958599325524347001141287639016651937826548459984042349644289153866033456090646030875688676442307698174842423207856949405706725002098166722061823807121950157097238202976793872597047119709348971678001462910314774742697388567515947810704564377063139186142025400821260093215747165950215811461035013442664953981921725169429790108272014073665020900860484650917850133264249774497697676634086948083135120164746201885912380141146926711705769050521277466198363023886674069406519359937942639977543733255256170835522087886663402029621673657729983122582434048116878886124933325994759432694594259023588217996205232866308813374652844058384412139021283858192005115510760140620605249975418862241931450802318989894599782131914461754854773266572453846456866784286064907296610654470456987711433481406716351949581426646273644689436861582286826662721582420282107667334939803786532147162131824933957949854806547773881096114721171088045172163093218997675613343812711025977361556815038489177775637489859283615854800935904089029371673336478463550872889126667838137647271225261470630120416252452458544979773185322544098452546009463264424924283097612332394299644031096877973117518053124573858068740203811252376282913413172342252623503840992527090182580402305750339749650100575319177729210825961954139025989316690840668443033140430511661351193308483775568859418860930358231638963976027791254450586347241290191728073032815296001861755236157675628942504935322545507495144085623339027162756453125832720326259268410780954400840186097083512022468196191490532957426713211006382248187987631168067713244320011430266774692777524784980716173472271156504832484017474137646964163947451383018701160203374963673818931536043623649288962889522028766314675669142239905773933120842924632401818362316652008185956800020070558128778718211786377361360807787806354189305401523618005532003844799850329767165472282891726783132787114767999314675152299883851450564833079166535530455394560227699588821566224426334823927238463481399398250691559644408777571094027802824419475425282093376434366857569417070817887239487146410205105863193659156836562275230844287749120002999464984555099034156788260714693226054442221368493982068727285223253261218316183089064813811490225213854695930175226251025496017061732715567357408790214032528752065784613218084804213435286963121283451537989099836269791938714794199864146644146291984861449575973277233949238465273343748053747302400734320757215449686986527031868712047708410877445478011457884071929724855000709195092365221746717134892206130346926578442926806148521896682078708461252914514791362426024496787122210931327996787645592136709875320264156338210780307077699447033623183356797415130728009961760458835842982401238753783802232878654460189017759872375417089157714265097744595295133592184111151072540509580861740799438039826849638096433739838693306334008014337344680394863309550993318653984207284344977962934791437219305882690706307147879248138051018050211289427049556009907645416364934613754542372867550910011043098306244082607350219292220354635857532357978804566131672108617656749544804707143446705623611308794803264238105181025219873113180350023282723784143580586994828284476308717149832021918517301160687327358254044031563743736942936853389560173847825486422566372138919057576724654115969692482515457120588484284275487106622744168568932329947141294800193030781142740602113723226048373773886193969127806959900215400291516912722959884195359932896264727749158710031088339683713876771127851134150297721362503790134573565827150618211113636217852913495257859000126789604492690124512341820381206549469964057118707766472970674594869240047886124819790989856595517363677025960636400597841526974277051564773564101704865539835644592121844834541044567244199008087571148983711716716037118046105085167537696344329672592844882111988360237140223040272054374042078913420898668438800365192168287653193308197446185059630791026294195206372088697191477064730259587998966387399064113612832125624820914855352467460 | o2 : MutableMatrix |